diff --git a/packages/google-cloud-speech/README.md b/packages/google-cloud-speech/README.md index ef9d52985b1c..d956037d7a65 100644 --- a/packages/google-cloud-speech/README.md +++ b/packages/google-cloud-speech/README.md @@ -68,7 +68,6 @@ Samples are in the [`samples/`][homepage_samples] directory. Each sample's `READ | list phrase set | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-speech/samples/generated/v1/adaptation.list_phrase_set.js) | | update custom class | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-speech/samples/generated/v1/adaptation.update_custom_class.js) | | update phrase set | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-speech/samples/generated/v1/adaptation.update_phrase_set.js) | -| cloud | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-speech/samples/generated/v1/snippet_metadata_google.cloud.speech.v1.json) | | long running recognize | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-speech/samples/generated/v1/speech.long_running_recognize.js) | | recognize | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-speech/samples/generated/v1/speech.recognize.js) | | streaming recognize | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-speech/samples/generated/v1/speech.streaming_recognize.js) | @@ -82,11 +81,9 @@ Samples are in the [`samples/`][homepage_samples] directory. Each sample's `READ | list phrase set | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-speech/samples/generated/v1p1beta1/adaptation.list_phrase_set.js) | | update custom class | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-speech/samples/generated/v1p1beta1/adaptation.update_custom_class.js) | | update phrase set | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-speech/samples/generated/v1p1beta1/adaptation.update_phrase_set.js) | -| cloud | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-speech/samples/generated/v1p1beta1/snippet_metadata_google.cloud.speech.v1p1beta1.json) | | long running recognize | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-speech/samples/generated/v1p1beta1/speech.long_running_recognize.js) | | recognize | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-speech/samples/generated/v1p1beta1/speech.recognize.js) | | streaming recognize | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-speech/samples/generated/v1p1beta1/speech.streaming_recognize.js) | -| cloud | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-speech/samples/generated/v2/snippet_metadata_google.cloud.speech.v2.json) | | batch recognize | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-speech/samples/generated/v2/speech.batch_recognize.js) | | create custom class | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-speech/samples/generated/v2/speech.create_custom_class.js) | | create phrase set | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-speech/samples/generated/v2/speech.create_phrase_set.js) | @@ -143,7 +140,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-speech/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`) @@ -153,7 +150,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-speech/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-speech/protos/protos.d.ts b/packages/google-cloud-speech/protos/protos.d.ts index 13e582d52919..3fa1b1f4cf39 100644 --- a/packages/google-cloud-speech/protos/protos.d.ts +++ b/packages/google-cloud-speech/protos/protos.d.ts @@ -19438,6 +19438,9 @@ export namespace google { /** CommonLanguageSettings destinations */ destinations?: (google.api.ClientLibraryDestination[]|null); + + /** CommonLanguageSettings selectiveGapicGeneration */ + selectiveGapicGeneration?: (google.api.ISelectiveGapicGeneration|null); } /** Represents a CommonLanguageSettings. */ @@ -19455,6 +19458,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 @@ -20155,6 +20161,9 @@ export namespace google { /** PythonSettings common */ common?: (google.api.ICommonLanguageSettings|null); + + /** PythonSettings experimentalFeatures */ + experimentalFeatures?: (google.api.PythonSettings.IExperimentalFeatures|null); } /** Represents a PythonSettings. */ @@ -20169,6 +20178,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 @@ -20247,6 +20259,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 { @@ -20573,6 +20697,9 @@ export namespace google { /** GoSettings common */ common?: (google.api.ICommonLanguageSettings|null); + + /** GoSettings renamedServices */ + renamedServices?: ({ [k: string]: string }|null); } /** Represents a GoSettings. */ @@ -20587,6 +20714,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 @@ -20911,6 +21041,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, @@ -21193,6 +21426,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. */ @@ -21207,6 +21443,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 @@ -21296,6 +21535,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. */ @@ -21401,6 +21737,7 @@ export namespace google { /** Edition enum. */ enum Edition { EDITION_UNKNOWN = 0, + EDITION_LEGACY = 900, EDITION_PROTO2 = 998, EDITION_PROTO3 = 999, EDITION_2023 = 1000, @@ -21431,6 +21768,9 @@ export namespace google { /** FileDescriptorProto weakDependency */ weakDependency?: (number[]|null); + /** FileDescriptorProto optionDependency */ + optionDependency?: (string[]|null); + /** FileDescriptorProto messageType */ messageType?: (google.protobuf.IDescriptorProto[]|null); @@ -21480,6 +21820,9 @@ export namespace google { /** FileDescriptorProto weakDependency. */ public weakDependency: number[]; + /** FileDescriptorProto optionDependency. */ + public optionDependency: string[]; + /** FileDescriptorProto messageType. */ public messageType: google.protobuf.IDescriptorProto[]; @@ -21614,6 +21957,9 @@ export namespace google { /** DescriptorProto reservedName */ reservedName?: (string[]|null); + + /** DescriptorProto visibility */ + visibility?: (google.protobuf.SymbolVisibility|keyof typeof google.protobuf.SymbolVisibility|null); } /** Represents a DescriptorProto. */ @@ -21655,6 +22001,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 @@ -22502,6 +22851,9 @@ export namespace google { /** EnumDescriptorProto reservedName */ reservedName?: (string[]|null); + + /** EnumDescriptorProto visibility */ + visibility?: (google.protobuf.SymbolVisibility|keyof typeof google.protobuf.SymbolVisibility|null); } /** Represents an EnumDescriptorProto. */ @@ -22528,6 +22880,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 @@ -23462,6 +23817,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); @@ -23520,6 +23878,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[]; @@ -23740,6 +24101,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. */ @@ -23978,6 +24454,9 @@ export namespace google { /** EnumValueOptions debugRedact */ debugRedact?: (boolean|null); + /** EnumValueOptions featureSupport */ + featureSupport?: (google.protobuf.FieldOptions.IFeatureSupport|null); + /** EnumValueOptions uninterpretedOption */ uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); } @@ -24000,6 +24479,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[]; @@ -24592,6 +25074,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. */ @@ -24621,6 +25109,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 @@ -24743,6 +25237,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. */ @@ -24862,8 +25466,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. */ @@ -24878,8 +25485,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. @@ -25412,6 +26022,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-speech/protos/protos.js b/packages/google-cloud-speech/protos/protos.js index 9ee4dd311637..85a8976389f4 100644 --- a/packages/google-cloud-speech/protos/protos.js +++ b/packages/google-cloud-speech/protos/protos.js @@ -221,7 +221,7 @@ function RecognizeRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -296,9 +296,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RecognizeRequest.decode = function decode(reader, length, error) { + RecognizeRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.RecognizeRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -306,15 +310,15 @@ break; switch (tag >>> 3) { case 1: { - message.config = $root.google.cloud.speech.v1.RecognitionConfig.decode(reader, reader.uint32()); + message.config = $root.google.cloud.speech.v1.RecognitionConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.audio = $root.google.cloud.speech.v1.RecognitionAudio.decode(reader, reader.uint32()); + message.audio = $root.google.cloud.speech.v1.RecognitionAudio.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -345,16 +349,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RecognizeRequest.verify = function verify(message) { + RecognizeRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.config != null && message.hasOwnProperty("config")) { - var error = $root.google.cloud.speech.v1.RecognitionConfig.verify(message.config); + var error = $root.google.cloud.speech.v1.RecognitionConfig.verify(message.config, long + 1); if (error) return "config." + error; } if (message.audio != null && message.hasOwnProperty("audio")) { - var error = $root.google.cloud.speech.v1.RecognitionAudio.verify(message.audio); + var error = $root.google.cloud.speech.v1.RecognitionAudio.verify(message.audio, long + 1); if (error) return "audio." + error; } @@ -369,19 +377,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.RecognizeRequest} RecognizeRequest */ - RecognizeRequest.fromObject = function fromObject(object) { + RecognizeRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.RecognizeRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.RecognizeRequest(); if (object.config != null) { if (typeof object.config !== "object") throw TypeError(".google.cloud.speech.v1.RecognizeRequest.config: object expected"); - message.config = $root.google.cloud.speech.v1.RecognitionConfig.fromObject(object.config); + message.config = $root.google.cloud.speech.v1.RecognitionConfig.fromObject(object.config, long + 1); } if (object.audio != null) { if (typeof object.audio !== "object") throw TypeError(".google.cloud.speech.v1.RecognizeRequest.audio: object expected"); - message.audio = $root.google.cloud.speech.v1.RecognitionAudio.fromObject(object.audio); + message.audio = $root.google.cloud.speech.v1.RecognitionAudio.fromObject(object.audio, long + 1); } return message; }; @@ -461,7 +473,7 @@ function LongRunningRecognizeRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -546,9 +558,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LongRunningRecognizeRequest.decode = function decode(reader, length, error) { + LongRunningRecognizeRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.LongRunningRecognizeRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -556,19 +572,19 @@ break; switch (tag >>> 3) { case 1: { - message.config = $root.google.cloud.speech.v1.RecognitionConfig.decode(reader, reader.uint32()); + message.config = $root.google.cloud.speech.v1.RecognitionConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.audio = $root.google.cloud.speech.v1.RecognitionAudio.decode(reader, reader.uint32()); + message.audio = $root.google.cloud.speech.v1.RecognitionAudio.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { - message.outputConfig = $root.google.cloud.speech.v1.TranscriptOutputConfig.decode(reader, reader.uint32()); + message.outputConfig = $root.google.cloud.speech.v1.TranscriptOutputConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -599,21 +615,25 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LongRunningRecognizeRequest.verify = function verify(message) { + LongRunningRecognizeRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.config != null && message.hasOwnProperty("config")) { - var error = $root.google.cloud.speech.v1.RecognitionConfig.verify(message.config); + var error = $root.google.cloud.speech.v1.RecognitionConfig.verify(message.config, long + 1); if (error) return "config." + error; } if (message.audio != null && message.hasOwnProperty("audio")) { - var error = $root.google.cloud.speech.v1.RecognitionAudio.verify(message.audio); + var error = $root.google.cloud.speech.v1.RecognitionAudio.verify(message.audio, long + 1); if (error) return "audio." + error; } if (message.outputConfig != null && message.hasOwnProperty("outputConfig")) { - var error = $root.google.cloud.speech.v1.TranscriptOutputConfig.verify(message.outputConfig); + var error = $root.google.cloud.speech.v1.TranscriptOutputConfig.verify(message.outputConfig, long + 1); if (error) return "outputConfig." + error; } @@ -628,24 +648,28 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.LongRunningRecognizeRequest} LongRunningRecognizeRequest */ - LongRunningRecognizeRequest.fromObject = function fromObject(object) { + LongRunningRecognizeRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.LongRunningRecognizeRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.LongRunningRecognizeRequest(); if (object.config != null) { if (typeof object.config !== "object") throw TypeError(".google.cloud.speech.v1.LongRunningRecognizeRequest.config: object expected"); - message.config = $root.google.cloud.speech.v1.RecognitionConfig.fromObject(object.config); + message.config = $root.google.cloud.speech.v1.RecognitionConfig.fromObject(object.config, long + 1); } if (object.audio != null) { if (typeof object.audio !== "object") throw TypeError(".google.cloud.speech.v1.LongRunningRecognizeRequest.audio: object expected"); - message.audio = $root.google.cloud.speech.v1.RecognitionAudio.fromObject(object.audio); + message.audio = $root.google.cloud.speech.v1.RecognitionAudio.fromObject(object.audio, long + 1); } if (object.outputConfig != null) { if (typeof object.outputConfig !== "object") throw TypeError(".google.cloud.speech.v1.LongRunningRecognizeRequest.outputConfig: object expected"); - message.outputConfig = $root.google.cloud.speech.v1.TranscriptOutputConfig.fromObject(object.outputConfig); + message.outputConfig = $root.google.cloud.speech.v1.TranscriptOutputConfig.fromObject(object.outputConfig, long + 1); } return message; }; @@ -726,7 +750,7 @@ function TranscriptOutputConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -805,9 +829,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - TranscriptOutputConfig.decode = function decode(reader, length, error) { + TranscriptOutputConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.TranscriptOutputConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -819,7 +847,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -850,9 +878,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - TranscriptOutputConfig.verify = function verify(message) { + TranscriptOutputConfig.verify = function verify(message, 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.gcsUri != null && message.hasOwnProperty("gcsUri")) { properties.outputType = 1; @@ -870,9 +902,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.TranscriptOutputConfig} TranscriptOutputConfig */ - TranscriptOutputConfig.fromObject = function fromObject(object) { + TranscriptOutputConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.TranscriptOutputConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.TranscriptOutputConfig(); if (object.gcsUri != null) message.gcsUri = String(object.gcsUri); @@ -950,7 +986,7 @@ function StreamingRecognizeRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -1039,9 +1075,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - StreamingRecognizeRequest.decode = function decode(reader, length, error) { + StreamingRecognizeRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.StreamingRecognizeRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -1049,7 +1089,7 @@ break; switch (tag >>> 3) { case 1: { - message.streamingConfig = $root.google.cloud.speech.v1.StreamingRecognitionConfig.decode(reader, reader.uint32()); + message.streamingConfig = $root.google.cloud.speech.v1.StreamingRecognitionConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -1057,7 +1097,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -1088,14 +1128,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - StreamingRecognizeRequest.verify = function verify(message) { + StreamingRecognizeRequest.verify = function verify(message, 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.streamingConfig != null && message.hasOwnProperty("streamingConfig")) { properties.streamingRequest = 1; { - var error = $root.google.cloud.speech.v1.StreamingRecognitionConfig.verify(message.streamingConfig); + var error = $root.google.cloud.speech.v1.StreamingRecognitionConfig.verify(message.streamingConfig, long + 1); if (error) return "streamingConfig." + error; } @@ -1118,14 +1162,18 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.StreamingRecognizeRequest} StreamingRecognizeRequest */ - StreamingRecognizeRequest.fromObject = function fromObject(object) { + StreamingRecognizeRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.StreamingRecognizeRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.StreamingRecognizeRequest(); if (object.streamingConfig != null) { if (typeof object.streamingConfig !== "object") throw TypeError(".google.cloud.speech.v1.StreamingRecognizeRequest.streamingConfig: object expected"); - message.streamingConfig = $root.google.cloud.speech.v1.StreamingRecognitionConfig.fromObject(object.streamingConfig); + message.streamingConfig = $root.google.cloud.speech.v1.StreamingRecognitionConfig.fromObject(object.streamingConfig, long + 1); } if (object.audioContent != null) if (typeof object.audioContent === "string") @@ -1214,7 +1262,7 @@ function StreamingRecognitionConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -1319,9 +1367,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - StreamingRecognitionConfig.decode = function decode(reader, length, error) { + StreamingRecognitionConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.StreamingRecognitionConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -1329,7 +1381,7 @@ break; switch (tag >>> 3) { case 1: { - message.config = $root.google.cloud.speech.v1.RecognitionConfig.decode(reader, reader.uint32()); + message.config = $root.google.cloud.speech.v1.RecognitionConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -1345,11 +1397,11 @@ break; } case 6: { - message.voiceActivityTimeout = $root.google.cloud.speech.v1.StreamingRecognitionConfig.VoiceActivityTimeout.decode(reader, reader.uint32()); + message.voiceActivityTimeout = $root.google.cloud.speech.v1.StreamingRecognitionConfig.VoiceActivityTimeout.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -1380,11 +1432,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - StreamingRecognitionConfig.verify = function verify(message) { + StreamingRecognitionConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.config != null && message.hasOwnProperty("config")) { - var error = $root.google.cloud.speech.v1.RecognitionConfig.verify(message.config); + var error = $root.google.cloud.speech.v1.RecognitionConfig.verify(message.config, long + 1); if (error) return "config." + error; } @@ -1398,7 +1454,7 @@ if (typeof message.enableVoiceActivityEvents !== "boolean") return "enableVoiceActivityEvents: boolean expected"; if (message.voiceActivityTimeout != null && message.hasOwnProperty("voiceActivityTimeout")) { - var error = $root.google.cloud.speech.v1.StreamingRecognitionConfig.VoiceActivityTimeout.verify(message.voiceActivityTimeout); + var error = $root.google.cloud.speech.v1.StreamingRecognitionConfig.VoiceActivityTimeout.verify(message.voiceActivityTimeout, long + 1); if (error) return "voiceActivityTimeout." + error; } @@ -1413,14 +1469,18 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.StreamingRecognitionConfig} StreamingRecognitionConfig */ - StreamingRecognitionConfig.fromObject = function fromObject(object) { + StreamingRecognitionConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.StreamingRecognitionConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.StreamingRecognitionConfig(); if (object.config != null) { if (typeof object.config !== "object") throw TypeError(".google.cloud.speech.v1.StreamingRecognitionConfig.config: object expected"); - message.config = $root.google.cloud.speech.v1.RecognitionConfig.fromObject(object.config); + message.config = $root.google.cloud.speech.v1.RecognitionConfig.fromObject(object.config, long + 1); } if (object.singleUtterance != null) message.singleUtterance = Boolean(object.singleUtterance); @@ -1431,7 +1491,7 @@ if (object.voiceActivityTimeout != null) { if (typeof object.voiceActivityTimeout !== "object") throw TypeError(".google.cloud.speech.v1.StreamingRecognitionConfig.voiceActivityTimeout: object expected"); - message.voiceActivityTimeout = $root.google.cloud.speech.v1.StreamingRecognitionConfig.VoiceActivityTimeout.fromObject(object.voiceActivityTimeout); + message.voiceActivityTimeout = $root.google.cloud.speech.v1.StreamingRecognitionConfig.VoiceActivityTimeout.fromObject(object.voiceActivityTimeout, long + 1); } return message; }; @@ -1516,7 +1576,7 @@ function VoiceActivityTimeout(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -1591,9 +1651,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - VoiceActivityTimeout.decode = function decode(reader, length, error) { + VoiceActivityTimeout.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.StreamingRecognitionConfig.VoiceActivityTimeout(); while (reader.pos < end) { var tag = reader.uint32(); @@ -1601,15 +1665,15 @@ break; switch (tag >>> 3) { case 1: { - message.speechStartTimeout = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.speechStartTimeout = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.speechEndTimeout = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.speechEndTimeout = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -1640,16 +1704,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - VoiceActivityTimeout.verify = function verify(message) { + VoiceActivityTimeout.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.speechStartTimeout != null && message.hasOwnProperty("speechStartTimeout")) { - var error = $root.google.protobuf.Duration.verify(message.speechStartTimeout); + var error = $root.google.protobuf.Duration.verify(message.speechStartTimeout, long + 1); if (error) return "speechStartTimeout." + error; } if (message.speechEndTimeout != null && message.hasOwnProperty("speechEndTimeout")) { - var error = $root.google.protobuf.Duration.verify(message.speechEndTimeout); + var error = $root.google.protobuf.Duration.verify(message.speechEndTimeout, long + 1); if (error) return "speechEndTimeout." + error; } @@ -1664,19 +1732,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.StreamingRecognitionConfig.VoiceActivityTimeout} VoiceActivityTimeout */ - VoiceActivityTimeout.fromObject = function fromObject(object) { + VoiceActivityTimeout.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.StreamingRecognitionConfig.VoiceActivityTimeout) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.StreamingRecognitionConfig.VoiceActivityTimeout(); if (object.speechStartTimeout != null) { if (typeof object.speechStartTimeout !== "object") throw TypeError(".google.cloud.speech.v1.StreamingRecognitionConfig.VoiceActivityTimeout.speechStartTimeout: object expected"); - message.speechStartTimeout = $root.google.protobuf.Duration.fromObject(object.speechStartTimeout); + message.speechStartTimeout = $root.google.protobuf.Duration.fromObject(object.speechStartTimeout, long + 1); } if (object.speechEndTimeout != null) { if (typeof object.speechEndTimeout !== "object") throw TypeError(".google.cloud.speech.v1.StreamingRecognitionConfig.VoiceActivityTimeout.speechEndTimeout: object expected"); - message.speechEndTimeout = $root.google.protobuf.Duration.fromObject(object.speechEndTimeout); + message.speechEndTimeout = $root.google.protobuf.Duration.fromObject(object.speechEndTimeout, long + 1); } return message; }; @@ -1778,7 +1850,7 @@ this.speechContexts = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -2035,9 +2107,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RecognitionConfig.decode = function decode(reader, length, error) { + RecognitionConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.RecognitionConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -2079,17 +2155,17 @@ break; } case 20: { - message.adaptation = $root.google.cloud.speech.v1.SpeechAdaptation.decode(reader, reader.uint32()); + message.adaptation = $root.google.cloud.speech.v1.SpeechAdaptation.decode(reader, reader.uint32(), undefined, long + 1); break; } case 24: { - message.transcriptNormalization = $root.google.cloud.speech.v1.TranscriptNormalization.decode(reader, reader.uint32()); + message.transcriptNormalization = $root.google.cloud.speech.v1.TranscriptNormalization.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { if (!(message.speechContexts && message.speechContexts.length)) message.speechContexts = []; - message.speechContexts.push($root.google.cloud.speech.v1.SpeechContext.decode(reader, reader.uint32())); + message.speechContexts.push($root.google.cloud.speech.v1.SpeechContext.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 8: { @@ -2105,19 +2181,19 @@ break; } case 22: { - message.enableSpokenPunctuation = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.enableSpokenPunctuation = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 23: { - message.enableSpokenEmojis = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.enableSpokenEmojis = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 19: { - message.diarizationConfig = $root.google.cloud.speech.v1.SpeakerDiarizationConfig.decode(reader, reader.uint32()); + message.diarizationConfig = $root.google.cloud.speech.v1.SpeakerDiarizationConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { - message.metadata = $root.google.cloud.speech.v1.RecognitionMetadata.decode(reader, reader.uint32()); + message.metadata = $root.google.cloud.speech.v1.RecognitionMetadata.decode(reader, reader.uint32(), undefined, long + 1); break; } case 13: { @@ -2129,7 +2205,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -2160,9 +2236,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RecognitionConfig.verify = function verify(message) { + RecognitionConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.encoding != null && message.hasOwnProperty("encoding")) switch (message.encoding) { default: @@ -2205,12 +2285,12 @@ if (typeof message.profanityFilter !== "boolean") return "profanityFilter: boolean expected"; if (message.adaptation != null && message.hasOwnProperty("adaptation")) { - var error = $root.google.cloud.speech.v1.SpeechAdaptation.verify(message.adaptation); + var error = $root.google.cloud.speech.v1.SpeechAdaptation.verify(message.adaptation, long + 1); if (error) return "adaptation." + error; } if (message.transcriptNormalization != null && message.hasOwnProperty("transcriptNormalization")) { - var error = $root.google.cloud.speech.v1.TranscriptNormalization.verify(message.transcriptNormalization); + var error = $root.google.cloud.speech.v1.TranscriptNormalization.verify(message.transcriptNormalization, long + 1); if (error) return "transcriptNormalization." + error; } @@ -2218,7 +2298,7 @@ if (!Array.isArray(message.speechContexts)) return "speechContexts: array expected"; for (var i = 0; i < message.speechContexts.length; ++i) { - var error = $root.google.cloud.speech.v1.SpeechContext.verify(message.speechContexts[i]); + var error = $root.google.cloud.speech.v1.SpeechContext.verify(message.speechContexts[i], long + 1); if (error) return "speechContexts." + error; } @@ -2233,22 +2313,22 @@ if (typeof message.enableAutomaticPunctuation !== "boolean") return "enableAutomaticPunctuation: boolean expected"; if (message.enableSpokenPunctuation != null && message.hasOwnProperty("enableSpokenPunctuation")) { - var error = $root.google.protobuf.BoolValue.verify(message.enableSpokenPunctuation); + var error = $root.google.protobuf.BoolValue.verify(message.enableSpokenPunctuation, long + 1); if (error) return "enableSpokenPunctuation." + error; } if (message.enableSpokenEmojis != null && message.hasOwnProperty("enableSpokenEmojis")) { - var error = $root.google.protobuf.BoolValue.verify(message.enableSpokenEmojis); + var error = $root.google.protobuf.BoolValue.verify(message.enableSpokenEmojis, long + 1); if (error) return "enableSpokenEmojis." + error; } if (message.diarizationConfig != null && message.hasOwnProperty("diarizationConfig")) { - var error = $root.google.cloud.speech.v1.SpeakerDiarizationConfig.verify(message.diarizationConfig); + var error = $root.google.cloud.speech.v1.SpeakerDiarizationConfig.verify(message.diarizationConfig, long + 1); if (error) return "diarizationConfig." + error; } if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.google.cloud.speech.v1.RecognitionMetadata.verify(message.metadata); + var error = $root.google.cloud.speech.v1.RecognitionMetadata.verify(message.metadata, long + 1); if (error) return "metadata." + error; } @@ -2269,9 +2349,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.RecognitionConfig} RecognitionConfig */ - RecognitionConfig.fromObject = function fromObject(object) { + RecognitionConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.RecognitionConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.RecognitionConfig(); switch (object.encoding) { default: @@ -2343,12 +2427,12 @@ if (object.adaptation != null) { if (typeof object.adaptation !== "object") throw TypeError(".google.cloud.speech.v1.RecognitionConfig.adaptation: object expected"); - message.adaptation = $root.google.cloud.speech.v1.SpeechAdaptation.fromObject(object.adaptation); + message.adaptation = $root.google.cloud.speech.v1.SpeechAdaptation.fromObject(object.adaptation, long + 1); } if (object.transcriptNormalization != null) { if (typeof object.transcriptNormalization !== "object") throw TypeError(".google.cloud.speech.v1.RecognitionConfig.transcriptNormalization: object expected"); - message.transcriptNormalization = $root.google.cloud.speech.v1.TranscriptNormalization.fromObject(object.transcriptNormalization); + message.transcriptNormalization = $root.google.cloud.speech.v1.TranscriptNormalization.fromObject(object.transcriptNormalization, long + 1); } if (object.speechContexts) { if (!Array.isArray(object.speechContexts)) @@ -2357,7 +2441,7 @@ for (var i = 0; i < object.speechContexts.length; ++i) { if (typeof object.speechContexts[i] !== "object") throw TypeError(".google.cloud.speech.v1.RecognitionConfig.speechContexts: object expected"); - message.speechContexts[i] = $root.google.cloud.speech.v1.SpeechContext.fromObject(object.speechContexts[i]); + message.speechContexts[i] = $root.google.cloud.speech.v1.SpeechContext.fromObject(object.speechContexts[i], long + 1); } } if (object.enableWordTimeOffsets != null) @@ -2369,22 +2453,22 @@ if (object.enableSpokenPunctuation != null) { if (typeof object.enableSpokenPunctuation !== "object") throw TypeError(".google.cloud.speech.v1.RecognitionConfig.enableSpokenPunctuation: object expected"); - message.enableSpokenPunctuation = $root.google.protobuf.BoolValue.fromObject(object.enableSpokenPunctuation); + message.enableSpokenPunctuation = $root.google.protobuf.BoolValue.fromObject(object.enableSpokenPunctuation, long + 1); } if (object.enableSpokenEmojis != null) { if (typeof object.enableSpokenEmojis !== "object") throw TypeError(".google.cloud.speech.v1.RecognitionConfig.enableSpokenEmojis: object expected"); - message.enableSpokenEmojis = $root.google.protobuf.BoolValue.fromObject(object.enableSpokenEmojis); + message.enableSpokenEmojis = $root.google.protobuf.BoolValue.fromObject(object.enableSpokenEmojis, long + 1); } if (object.diarizationConfig != null) { if (typeof object.diarizationConfig !== "object") throw TypeError(".google.cloud.speech.v1.RecognitionConfig.diarizationConfig: object expected"); - message.diarizationConfig = $root.google.cloud.speech.v1.SpeakerDiarizationConfig.fromObject(object.diarizationConfig); + message.diarizationConfig = $root.google.cloud.speech.v1.SpeakerDiarizationConfig.fromObject(object.diarizationConfig, long + 1); } if (object.metadata != null) { if (typeof object.metadata !== "object") throw TypeError(".google.cloud.speech.v1.RecognitionConfig.metadata: object expected"); - message.metadata = $root.google.cloud.speech.v1.RecognitionMetadata.fromObject(object.metadata); + message.metadata = $root.google.cloud.speech.v1.RecognitionMetadata.fromObject(object.metadata, long + 1); } if (object.model != null) message.model = String(object.model); @@ -2561,7 +2645,7 @@ function SpeakerDiarizationConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -2656,9 +2740,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SpeakerDiarizationConfig.decode = function decode(reader, length, error) { + SpeakerDiarizationConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.SpeakerDiarizationConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -2682,7 +2770,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -2713,9 +2801,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SpeakerDiarizationConfig.verify = function verify(message) { + SpeakerDiarizationConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.enableSpeakerDiarization != null && message.hasOwnProperty("enableSpeakerDiarization")) if (typeof message.enableSpeakerDiarization !== "boolean") return "enableSpeakerDiarization: boolean expected"; @@ -2739,9 +2831,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.SpeakerDiarizationConfig} SpeakerDiarizationConfig */ - SpeakerDiarizationConfig.fromObject = function fromObject(object) { + SpeakerDiarizationConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.SpeakerDiarizationConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.SpeakerDiarizationConfig(); if (object.enableSpeakerDiarization != null) message.enableSpeakerDiarization = Boolean(object.enableSpeakerDiarization); @@ -2840,7 +2936,7 @@ function RecognitionMetadata(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -2975,9 +3071,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RecognitionMetadata.decode = function decode(reader, length, error) { + RecognitionMetadata.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.RecognitionMetadata(); while (reader.pos < end) { var tag = reader.uint32(); @@ -3017,7 +3117,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -3048,9 +3148,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RecognitionMetadata.verify = function verify(message) { + RecognitionMetadata.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.interactionType != null && message.hasOwnProperty("interactionType")) switch (message.interactionType) { default: @@ -3121,9 +3225,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.RecognitionMetadata} RecognitionMetadata */ - RecognitionMetadata.fromObject = function fromObject(object) { + RecognitionMetadata.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.RecognitionMetadata) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.RecognitionMetadata(); switch (object.interactionType) { default: @@ -3439,7 +3547,7 @@ this.phrases = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -3515,9 +3623,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SpeechContext.decode = function decode(reader, length, error) { + SpeechContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.SpeechContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -3535,7 +3647,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -3566,9 +3678,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SpeechContext.verify = function verify(message) { + SpeechContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.phrases != null && message.hasOwnProperty("phrases")) { if (!Array.isArray(message.phrases)) return "phrases: array expected"; @@ -3590,9 +3706,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.SpeechContext} SpeechContext */ - SpeechContext.fromObject = function fromObject(object) { + SpeechContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.SpeechContext) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.SpeechContext(); if (object.phrases) { if (!Array.isArray(object.phrases)) @@ -3683,7 +3803,7 @@ function RecognitionAudio(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -3772,9 +3892,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RecognitionAudio.decode = function decode(reader, length, error) { + RecognitionAudio.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.RecognitionAudio(); while (reader.pos < end) { var tag = reader.uint32(); @@ -3790,7 +3914,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -3821,9 +3945,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RecognitionAudio.verify = function verify(message) { + RecognitionAudio.verify = function verify(message, 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.content != null && message.hasOwnProperty("content")) { properties.audioSource = 1; @@ -3848,9 +3976,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.RecognitionAudio} RecognitionAudio */ - RecognitionAudio.fromObject = function fromObject(object) { + RecognitionAudio.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.RecognitionAudio) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.RecognitionAudio(); if (object.content != null) if (typeof object.content === "string") @@ -3941,7 +4073,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]]; } @@ -4037,9 +4169,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RecognizeResponse.decode = function decode(reader, length, error) { + RecognizeResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.RecognizeResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -4049,15 +4185,15 @@ case 2: { if (!(message.results && message.results.length)) message.results = []; - message.results.push($root.google.cloud.speech.v1.SpeechRecognitionResult.decode(reader, reader.uint32())); + message.results.push($root.google.cloud.speech.v1.SpeechRecognitionResult.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { - message.totalBilledTime = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.totalBilledTime = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { - message.speechAdaptationInfo = $root.google.cloud.speech.v1.SpeechAdaptationInfo.decode(reader, reader.uint32()); + message.speechAdaptationInfo = $root.google.cloud.speech.v1.SpeechAdaptationInfo.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { @@ -4065,7 +4201,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -4096,25 +4232,29 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RecognizeResponse.verify = function verify(message) { + RecognizeResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.results != null && message.hasOwnProperty("results")) { if (!Array.isArray(message.results)) return "results: array expected"; for (var i = 0; i < message.results.length; ++i) { - var error = $root.google.cloud.speech.v1.SpeechRecognitionResult.verify(message.results[i]); + var error = $root.google.cloud.speech.v1.SpeechRecognitionResult.verify(message.results[i], long + 1); if (error) return "results." + error; } } if (message.totalBilledTime != null && message.hasOwnProperty("totalBilledTime")) { - var error = $root.google.protobuf.Duration.verify(message.totalBilledTime); + var error = $root.google.protobuf.Duration.verify(message.totalBilledTime, long + 1); if (error) return "totalBilledTime." + error; } if (message.speechAdaptationInfo != null && message.hasOwnProperty("speechAdaptationInfo")) { - var error = $root.google.cloud.speech.v1.SpeechAdaptationInfo.verify(message.speechAdaptationInfo); + var error = $root.google.cloud.speech.v1.SpeechAdaptationInfo.verify(message.speechAdaptationInfo, long + 1); if (error) return "speechAdaptationInfo." + error; } @@ -4132,9 +4272,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.RecognizeResponse} RecognizeResponse */ - RecognizeResponse.fromObject = function fromObject(object) { + RecognizeResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.RecognizeResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.RecognizeResponse(); if (object.results) { if (!Array.isArray(object.results)) @@ -4143,18 +4287,18 @@ for (var i = 0; i < object.results.length; ++i) { if (typeof object.results[i] !== "object") throw TypeError(".google.cloud.speech.v1.RecognizeResponse.results: object expected"); - message.results[i] = $root.google.cloud.speech.v1.SpeechRecognitionResult.fromObject(object.results[i]); + message.results[i] = $root.google.cloud.speech.v1.SpeechRecognitionResult.fromObject(object.results[i], long + 1); } } if (object.totalBilledTime != null) { if (typeof object.totalBilledTime !== "object") throw TypeError(".google.cloud.speech.v1.RecognizeResponse.totalBilledTime: object expected"); - message.totalBilledTime = $root.google.protobuf.Duration.fromObject(object.totalBilledTime); + message.totalBilledTime = $root.google.protobuf.Duration.fromObject(object.totalBilledTime, long + 1); } if (object.speechAdaptationInfo != null) { if (typeof object.speechAdaptationInfo !== "object") throw TypeError(".google.cloud.speech.v1.RecognizeResponse.speechAdaptationInfo: object expected"); - message.speechAdaptationInfo = $root.google.cloud.speech.v1.SpeechAdaptationInfo.fromObject(object.speechAdaptationInfo); + message.speechAdaptationInfo = $root.google.cloud.speech.v1.SpeechAdaptationInfo.fromObject(object.speechAdaptationInfo, long + 1); } if (object.requestId != null) if ($util.Long) @@ -4264,7 +4408,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]]; } @@ -4380,9 +4524,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LongRunningRecognizeResponse.decode = function decode(reader, length, error) { + LongRunningRecognizeResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.LongRunningRecognizeResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -4392,23 +4540,23 @@ case 2: { if (!(message.results && message.results.length)) message.results = []; - message.results.push($root.google.cloud.speech.v1.SpeechRecognitionResult.decode(reader, reader.uint32())); + message.results.push($root.google.cloud.speech.v1.SpeechRecognitionResult.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { - message.totalBilledTime = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.totalBilledTime = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { - message.outputConfig = $root.google.cloud.speech.v1.TranscriptOutputConfig.decode(reader, reader.uint32()); + message.outputConfig = $root.google.cloud.speech.v1.TranscriptOutputConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { - message.outputError = $root.google.rpc.Status.decode(reader, reader.uint32()); + message.outputError = $root.google.rpc.Status.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { - message.speechAdaptationInfo = $root.google.cloud.speech.v1.SpeechAdaptationInfo.decode(reader, reader.uint32()); + message.speechAdaptationInfo = $root.google.cloud.speech.v1.SpeechAdaptationInfo.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { @@ -4416,7 +4564,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -4447,35 +4595,39 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LongRunningRecognizeResponse.verify = function verify(message) { + LongRunningRecognizeResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.results != null && message.hasOwnProperty("results")) { if (!Array.isArray(message.results)) return "results: array expected"; for (var i = 0; i < message.results.length; ++i) { - var error = $root.google.cloud.speech.v1.SpeechRecognitionResult.verify(message.results[i]); + var error = $root.google.cloud.speech.v1.SpeechRecognitionResult.verify(message.results[i], long + 1); if (error) return "results." + error; } } if (message.totalBilledTime != null && message.hasOwnProperty("totalBilledTime")) { - var error = $root.google.protobuf.Duration.verify(message.totalBilledTime); + var error = $root.google.protobuf.Duration.verify(message.totalBilledTime, long + 1); if (error) return "totalBilledTime." + error; } if (message.outputConfig != null && message.hasOwnProperty("outputConfig")) { - var error = $root.google.cloud.speech.v1.TranscriptOutputConfig.verify(message.outputConfig); + var error = $root.google.cloud.speech.v1.TranscriptOutputConfig.verify(message.outputConfig, long + 1); if (error) return "outputConfig." + error; } if (message.outputError != null && message.hasOwnProperty("outputError")) { - var error = $root.google.rpc.Status.verify(message.outputError); + var error = $root.google.rpc.Status.verify(message.outputError, long + 1); if (error) return "outputError." + error; } if (message.speechAdaptationInfo != null && message.hasOwnProperty("speechAdaptationInfo")) { - var error = $root.google.cloud.speech.v1.SpeechAdaptationInfo.verify(message.speechAdaptationInfo); + var error = $root.google.cloud.speech.v1.SpeechAdaptationInfo.verify(message.speechAdaptationInfo, long + 1); if (error) return "speechAdaptationInfo." + error; } @@ -4493,9 +4645,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.LongRunningRecognizeResponse} LongRunningRecognizeResponse */ - LongRunningRecognizeResponse.fromObject = function fromObject(object) { + LongRunningRecognizeResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.LongRunningRecognizeResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.LongRunningRecognizeResponse(); if (object.results) { if (!Array.isArray(object.results)) @@ -4504,28 +4660,28 @@ for (var i = 0; i < object.results.length; ++i) { if (typeof object.results[i] !== "object") throw TypeError(".google.cloud.speech.v1.LongRunningRecognizeResponse.results: object expected"); - message.results[i] = $root.google.cloud.speech.v1.SpeechRecognitionResult.fromObject(object.results[i]); + message.results[i] = $root.google.cloud.speech.v1.SpeechRecognitionResult.fromObject(object.results[i], long + 1); } } if (object.totalBilledTime != null) { if (typeof object.totalBilledTime !== "object") throw TypeError(".google.cloud.speech.v1.LongRunningRecognizeResponse.totalBilledTime: object expected"); - message.totalBilledTime = $root.google.protobuf.Duration.fromObject(object.totalBilledTime); + message.totalBilledTime = $root.google.protobuf.Duration.fromObject(object.totalBilledTime, long + 1); } if (object.outputConfig != null) { if (typeof object.outputConfig !== "object") throw TypeError(".google.cloud.speech.v1.LongRunningRecognizeResponse.outputConfig: object expected"); - message.outputConfig = $root.google.cloud.speech.v1.TranscriptOutputConfig.fromObject(object.outputConfig); + message.outputConfig = $root.google.cloud.speech.v1.TranscriptOutputConfig.fromObject(object.outputConfig, long + 1); } if (object.outputError != null) { if (typeof object.outputError !== "object") throw TypeError(".google.cloud.speech.v1.LongRunningRecognizeResponse.outputError: object expected"); - message.outputError = $root.google.rpc.Status.fromObject(object.outputError); + message.outputError = $root.google.rpc.Status.fromObject(object.outputError, long + 1); } if (object.speechAdaptationInfo != null) { if (typeof object.speechAdaptationInfo !== "object") throw TypeError(".google.cloud.speech.v1.LongRunningRecognizeResponse.speechAdaptationInfo: object expected"); - message.speechAdaptationInfo = $root.google.cloud.speech.v1.SpeechAdaptationInfo.fromObject(object.speechAdaptationInfo); + message.speechAdaptationInfo = $root.google.cloud.speech.v1.SpeechAdaptationInfo.fromObject(object.speechAdaptationInfo, long + 1); } if (object.requestId != null) if ($util.Long) @@ -4638,7 +4794,7 @@ function LongRunningRecognizeMetadata(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -4733,9 +4889,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LongRunningRecognizeMetadata.decode = function decode(reader, length, error) { + LongRunningRecognizeMetadata.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.LongRunningRecognizeMetadata(); while (reader.pos < end) { var tag = reader.uint32(); @@ -4747,11 +4907,11 @@ break; } case 2: { - 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 3: { - message.lastUpdateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.lastUpdateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { @@ -4759,7 +4919,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -4790,19 +4950,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LongRunningRecognizeMetadata.verify = function verify(message) { + LongRunningRecognizeMetadata.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.progressPercent != null && message.hasOwnProperty("progressPercent")) if (!$util.isInteger(message.progressPercent)) return "progressPercent: integer 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.lastUpdateTime != null && message.hasOwnProperty("lastUpdateTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.lastUpdateTime); + var error = $root.google.protobuf.Timestamp.verify(message.lastUpdateTime, long + 1); if (error) return "lastUpdateTime." + error; } @@ -4820,21 +4984,25 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.LongRunningRecognizeMetadata} LongRunningRecognizeMetadata */ - LongRunningRecognizeMetadata.fromObject = function fromObject(object) { + LongRunningRecognizeMetadata.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.LongRunningRecognizeMetadata) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.LongRunningRecognizeMetadata(); if (object.progressPercent != null) message.progressPercent = object.progressPercent | 0; if (object.startTime != null) { if (typeof object.startTime !== "object") throw TypeError(".google.cloud.speech.v1.LongRunningRecognizeMetadata.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.lastUpdateTime != null) { if (typeof object.lastUpdateTime !== "object") throw TypeError(".google.cloud.speech.v1.LongRunningRecognizeMetadata.lastUpdateTime: object expected"); - message.lastUpdateTime = $root.google.protobuf.Timestamp.fromObject(object.lastUpdateTime); + message.lastUpdateTime = $root.google.protobuf.Timestamp.fromObject(object.lastUpdateTime, long + 1); } if (object.uri != null) message.uri = String(object.uri); @@ -4927,7 +5095,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]]; } @@ -5053,9 +5221,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - StreamingRecognizeResponse.decode = function decode(reader, length, error) { + StreamingRecognizeResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.StreamingRecognizeResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -5063,13 +5235,13 @@ break; switch (tag >>> 3) { case 1: { - message.error = $root.google.rpc.Status.decode(reader, reader.uint32()); + message.error = $root.google.rpc.Status.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { if (!(message.results && message.results.length)) message.results = []; - message.results.push($root.google.cloud.speech.v1.StreamingRecognitionResult.decode(reader, reader.uint32())); + message.results.push($root.google.cloud.speech.v1.StreamingRecognitionResult.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 4: { @@ -5077,15 +5249,15 @@ break; } case 8: { - message.speechEventTime = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.speechEventTime = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.totalBilledTime = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.totalBilledTime = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { - message.speechAdaptationInfo = $root.google.cloud.speech.v1.SpeechAdaptationInfo.decode(reader, reader.uint32()); + message.speechAdaptationInfo = $root.google.cloud.speech.v1.SpeechAdaptationInfo.decode(reader, reader.uint32(), undefined, long + 1); break; } case 10: { @@ -5093,7 +5265,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -5124,11 +5296,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - StreamingRecognizeResponse.verify = function verify(message) { + StreamingRecognizeResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.error != null && message.hasOwnProperty("error")) { - var error = $root.google.rpc.Status.verify(message.error); + var error = $root.google.rpc.Status.verify(message.error, long + 1); if (error) return "error." + error; } @@ -5136,7 +5312,7 @@ if (!Array.isArray(message.results)) return "results: array expected"; for (var i = 0; i < message.results.length; ++i) { - var error = $root.google.cloud.speech.v1.StreamingRecognitionResult.verify(message.results[i]); + var error = $root.google.cloud.speech.v1.StreamingRecognitionResult.verify(message.results[i], long + 1); if (error) return "results." + error; } @@ -5153,17 +5329,17 @@ break; } if (message.speechEventTime != null && message.hasOwnProperty("speechEventTime")) { - var error = $root.google.protobuf.Duration.verify(message.speechEventTime); + var error = $root.google.protobuf.Duration.verify(message.speechEventTime, long + 1); if (error) return "speechEventTime." + error; } if (message.totalBilledTime != null && message.hasOwnProperty("totalBilledTime")) { - var error = $root.google.protobuf.Duration.verify(message.totalBilledTime); + var error = $root.google.protobuf.Duration.verify(message.totalBilledTime, long + 1); if (error) return "totalBilledTime." + error; } if (message.speechAdaptationInfo != null && message.hasOwnProperty("speechAdaptationInfo")) { - var error = $root.google.cloud.speech.v1.SpeechAdaptationInfo.verify(message.speechAdaptationInfo); + var error = $root.google.cloud.speech.v1.SpeechAdaptationInfo.verify(message.speechAdaptationInfo, long + 1); if (error) return "speechAdaptationInfo." + error; } @@ -5181,14 +5357,18 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.StreamingRecognizeResponse} StreamingRecognizeResponse */ - StreamingRecognizeResponse.fromObject = function fromObject(object) { + StreamingRecognizeResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.StreamingRecognizeResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.StreamingRecognizeResponse(); if (object.error != null) { if (typeof object.error !== "object") throw TypeError(".google.cloud.speech.v1.StreamingRecognizeResponse.error: object expected"); - message.error = $root.google.rpc.Status.fromObject(object.error); + message.error = $root.google.rpc.Status.fromObject(object.error, long + 1); } if (object.results) { if (!Array.isArray(object.results)) @@ -5197,7 +5377,7 @@ for (var i = 0; i < object.results.length; ++i) { if (typeof object.results[i] !== "object") throw TypeError(".google.cloud.speech.v1.StreamingRecognizeResponse.results: object expected"); - message.results[i] = $root.google.cloud.speech.v1.StreamingRecognitionResult.fromObject(object.results[i]); + message.results[i] = $root.google.cloud.speech.v1.StreamingRecognitionResult.fromObject(object.results[i], long + 1); } } switch (object.speechEventType) { @@ -5231,17 +5411,17 @@ if (object.speechEventTime != null) { if (typeof object.speechEventTime !== "object") throw TypeError(".google.cloud.speech.v1.StreamingRecognizeResponse.speechEventTime: object expected"); - message.speechEventTime = $root.google.protobuf.Duration.fromObject(object.speechEventTime); + message.speechEventTime = $root.google.protobuf.Duration.fromObject(object.speechEventTime, long + 1); } if (object.totalBilledTime != null) { if (typeof object.totalBilledTime !== "object") throw TypeError(".google.cloud.speech.v1.StreamingRecognizeResponse.totalBilledTime: object expected"); - message.totalBilledTime = $root.google.protobuf.Duration.fromObject(object.totalBilledTime); + message.totalBilledTime = $root.google.protobuf.Duration.fromObject(object.totalBilledTime, long + 1); } if (object.speechAdaptationInfo != null) { if (typeof object.speechAdaptationInfo !== "object") throw TypeError(".google.cloud.speech.v1.StreamingRecognizeResponse.speechAdaptationInfo: object expected"); - message.speechAdaptationInfo = $root.google.cloud.speech.v1.SpeechAdaptationInfo.fromObject(object.speechAdaptationInfo); + message.speechAdaptationInfo = $root.google.cloud.speech.v1.SpeechAdaptationInfo.fromObject(object.speechAdaptationInfo, long + 1); } if (object.requestId != null) if ($util.Long) @@ -5380,7 +5560,7 @@ this.alternatives = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -5496,9 +5676,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - StreamingRecognitionResult.decode = function decode(reader, length, error) { + StreamingRecognitionResult.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.StreamingRecognitionResult(); while (reader.pos < end) { var tag = reader.uint32(); @@ -5508,7 +5692,7 @@ case 1: { if (!(message.alternatives && message.alternatives.length)) message.alternatives = []; - message.alternatives.push($root.google.cloud.speech.v1.SpeechRecognitionAlternative.decode(reader, reader.uint32())); + message.alternatives.push($root.google.cloud.speech.v1.SpeechRecognitionAlternative.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -5520,7 +5704,7 @@ break; } case 4: { - message.resultEndTime = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.resultEndTime = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { @@ -5532,7 +5716,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -5563,14 +5747,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - StreamingRecognitionResult.verify = function verify(message) { + StreamingRecognitionResult.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.alternatives != null && message.hasOwnProperty("alternatives")) { if (!Array.isArray(message.alternatives)) return "alternatives: array expected"; for (var i = 0; i < message.alternatives.length; ++i) { - var error = $root.google.cloud.speech.v1.SpeechRecognitionAlternative.verify(message.alternatives[i]); + var error = $root.google.cloud.speech.v1.SpeechRecognitionAlternative.verify(message.alternatives[i], long + 1); if (error) return "alternatives." + error; } @@ -5582,7 +5770,7 @@ if (typeof message.stability !== "number") return "stability: number expected"; if (message.resultEndTime != null && message.hasOwnProperty("resultEndTime")) { - var error = $root.google.protobuf.Duration.verify(message.resultEndTime); + var error = $root.google.protobuf.Duration.verify(message.resultEndTime, long + 1); if (error) return "resultEndTime." + error; } @@ -5603,9 +5791,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.StreamingRecognitionResult} StreamingRecognitionResult */ - StreamingRecognitionResult.fromObject = function fromObject(object) { + StreamingRecognitionResult.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.StreamingRecognitionResult) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.StreamingRecognitionResult(); if (object.alternatives) { if (!Array.isArray(object.alternatives)) @@ -5614,7 +5806,7 @@ for (var i = 0; i < object.alternatives.length; ++i) { if (typeof object.alternatives[i] !== "object") throw TypeError(".google.cloud.speech.v1.StreamingRecognitionResult.alternatives: object expected"); - message.alternatives[i] = $root.google.cloud.speech.v1.SpeechRecognitionAlternative.fromObject(object.alternatives[i]); + message.alternatives[i] = $root.google.cloud.speech.v1.SpeechRecognitionAlternative.fromObject(object.alternatives[i], long + 1); } } if (object.isFinal != null) @@ -5624,7 +5816,7 @@ if (object.resultEndTime != null) { if (typeof object.resultEndTime !== "object") throw TypeError(".google.cloud.speech.v1.StreamingRecognitionResult.resultEndTime: object expected"); - message.resultEndTime = $root.google.protobuf.Duration.fromObject(object.resultEndTime); + message.resultEndTime = $root.google.protobuf.Duration.fromObject(object.resultEndTime, long + 1); } if (object.channelTag != null) message.channelTag = object.channelTag | 0; @@ -5726,7 +5918,7 @@ this.alternatives = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -5822,9 +6014,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SpeechRecognitionResult.decode = function decode(reader, length, error) { + SpeechRecognitionResult.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.SpeechRecognitionResult(); while (reader.pos < end) { var tag = reader.uint32(); @@ -5834,7 +6030,7 @@ case 1: { if (!(message.alternatives && message.alternatives.length)) message.alternatives = []; - message.alternatives.push($root.google.cloud.speech.v1.SpeechRecognitionAlternative.decode(reader, reader.uint32())); + message.alternatives.push($root.google.cloud.speech.v1.SpeechRecognitionAlternative.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -5842,7 +6038,7 @@ break; } case 4: { - message.resultEndTime = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.resultEndTime = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { @@ -5850,7 +6046,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -5881,14 +6077,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SpeechRecognitionResult.verify = function verify(message) { + SpeechRecognitionResult.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.alternatives != null && message.hasOwnProperty("alternatives")) { if (!Array.isArray(message.alternatives)) return "alternatives: array expected"; for (var i = 0; i < message.alternatives.length; ++i) { - var error = $root.google.cloud.speech.v1.SpeechRecognitionAlternative.verify(message.alternatives[i]); + var error = $root.google.cloud.speech.v1.SpeechRecognitionAlternative.verify(message.alternatives[i], long + 1); if (error) return "alternatives." + error; } @@ -5897,7 +6097,7 @@ if (!$util.isInteger(message.channelTag)) return "channelTag: integer expected"; if (message.resultEndTime != null && message.hasOwnProperty("resultEndTime")) { - var error = $root.google.protobuf.Duration.verify(message.resultEndTime); + var error = $root.google.protobuf.Duration.verify(message.resultEndTime, long + 1); if (error) return "resultEndTime." + error; } @@ -5915,9 +6115,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.SpeechRecognitionResult} SpeechRecognitionResult */ - SpeechRecognitionResult.fromObject = function fromObject(object) { + SpeechRecognitionResult.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.SpeechRecognitionResult) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.SpeechRecognitionResult(); if (object.alternatives) { if (!Array.isArray(object.alternatives)) @@ -5926,7 +6130,7 @@ for (var i = 0; i < object.alternatives.length; ++i) { if (typeof object.alternatives[i] !== "object") throw TypeError(".google.cloud.speech.v1.SpeechRecognitionResult.alternatives: object expected"); - message.alternatives[i] = $root.google.cloud.speech.v1.SpeechRecognitionAlternative.fromObject(object.alternatives[i]); + message.alternatives[i] = $root.google.cloud.speech.v1.SpeechRecognitionAlternative.fromObject(object.alternatives[i], long + 1); } } if (object.channelTag != null) @@ -5934,7 +6138,7 @@ if (object.resultEndTime != null) { if (typeof object.resultEndTime !== "object") throw TypeError(".google.cloud.speech.v1.SpeechRecognitionResult.resultEndTime: object expected"); - message.resultEndTime = $root.google.protobuf.Duration.fromObject(object.resultEndTime); + message.resultEndTime = $root.google.protobuf.Duration.fromObject(object.resultEndTime, long + 1); } if (object.languageCode != null) message.languageCode = String(object.languageCode); @@ -6027,7 +6231,7 @@ this.words = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -6113,9 +6317,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SpeechRecognitionAlternative.decode = function decode(reader, length, error) { + SpeechRecognitionAlternative.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.SpeechRecognitionAlternative(); while (reader.pos < end) { var tag = reader.uint32(); @@ -6133,11 +6341,11 @@ case 3: { if (!(message.words && message.words.length)) message.words = []; - message.words.push($root.google.cloud.speech.v1.WordInfo.decode(reader, reader.uint32())); + message.words.push($root.google.cloud.speech.v1.WordInfo.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -6168,9 +6376,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SpeechRecognitionAlternative.verify = function verify(message) { + SpeechRecognitionAlternative.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.transcript != null && message.hasOwnProperty("transcript")) if (!$util.isString(message.transcript)) return "transcript: string expected"; @@ -6181,7 +6393,7 @@ if (!Array.isArray(message.words)) return "words: array expected"; for (var i = 0; i < message.words.length; ++i) { - var error = $root.google.cloud.speech.v1.WordInfo.verify(message.words[i]); + var error = $root.google.cloud.speech.v1.WordInfo.verify(message.words[i], long + 1); if (error) return "words." + error; } @@ -6197,9 +6409,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.SpeechRecognitionAlternative} SpeechRecognitionAlternative */ - SpeechRecognitionAlternative.fromObject = function fromObject(object) { + SpeechRecognitionAlternative.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.SpeechRecognitionAlternative) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.SpeechRecognitionAlternative(); if (object.transcript != null) message.transcript = String(object.transcript); @@ -6212,7 +6428,7 @@ for (var i = 0; i < object.words.length; ++i) { if (typeof object.words[i] !== "object") throw TypeError(".google.cloud.speech.v1.SpeechRecognitionAlternative.words: object expected"); - message.words[i] = $root.google.cloud.speech.v1.WordInfo.fromObject(object.words[i]); + message.words[i] = $root.google.cloud.speech.v1.WordInfo.fromObject(object.words[i], long + 1); } } return message; @@ -6303,7 +6519,7 @@ function WordInfo(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -6418,9 +6634,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - WordInfo.decode = function decode(reader, length, error) { + WordInfo.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.WordInfo(); while (reader.pos < end) { var tag = reader.uint32(); @@ -6428,11 +6648,11 @@ break; switch (tag >>> 3) { case 1: { - message.startTime = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.startTime = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.endTime = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.endTime = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -6452,7 +6672,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -6483,16 +6703,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - WordInfo.verify = function verify(message) { + WordInfo.verify = function verify(message, long) { if (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.Duration.verify(message.startTime); + var error = $root.google.protobuf.Duration.verify(message.startTime, long + 1); if (error) return "startTime." + error; } if (message.endTime != null && message.hasOwnProperty("endTime")) { - var error = $root.google.protobuf.Duration.verify(message.endTime); + var error = $root.google.protobuf.Duration.verify(message.endTime, long + 1); if (error) return "endTime." + error; } @@ -6519,19 +6743,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.WordInfo} WordInfo */ - WordInfo.fromObject = function fromObject(object) { + WordInfo.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.WordInfo) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.WordInfo(); if (object.startTime != null) { if (typeof object.startTime !== "object") throw TypeError(".google.cloud.speech.v1.WordInfo.startTime: object expected"); - message.startTime = $root.google.protobuf.Duration.fromObject(object.startTime); + message.startTime = $root.google.protobuf.Duration.fromObject(object.startTime, long + 1); } if (object.endTime != null) { if (typeof object.endTime !== "object") throw TypeError(".google.cloud.speech.v1.WordInfo.endTime: object expected"); - message.endTime = $root.google.protobuf.Duration.fromObject(object.endTime); + message.endTime = $root.google.protobuf.Duration.fromObject(object.endTime, long + 1); } if (object.word != null) message.word = String(object.word); @@ -6630,7 +6858,7 @@ function SpeechAdaptationInfo(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -6705,9 +6933,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SpeechAdaptationInfo.decode = function decode(reader, length, error) { + SpeechAdaptationInfo.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.SpeechAdaptationInfo(); while (reader.pos < end) { var tag = reader.uint32(); @@ -6723,7 +6955,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -6754,9 +6986,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SpeechAdaptationInfo.verify = function verify(message) { + SpeechAdaptationInfo.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.adaptationTimeout != null && message.hasOwnProperty("adaptationTimeout")) if (typeof message.adaptationTimeout !== "boolean") return "adaptationTimeout: boolean expected"; @@ -6774,9 +7010,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.SpeechAdaptationInfo} SpeechAdaptationInfo */ - SpeechAdaptationInfo.fromObject = function fromObject(object) { + SpeechAdaptationInfo.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.SpeechAdaptationInfo) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.SpeechAdaptationInfo(); if (object.adaptationTimeout != null) message.adaptationTimeout = Boolean(object.adaptationTimeout); @@ -6861,7 +7101,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]]; } @@ -6947,9 +7187,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CustomClass.decode = function decode(reader, length, error) { + CustomClass.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.CustomClass(); while (reader.pos < end) { var tag = reader.uint32(); @@ -6967,11 +7211,11 @@ case 3: { if (!(message.items && message.items.length)) message.items = []; - message.items.push($root.google.cloud.speech.v1.CustomClass.ClassItem.decode(reader, reader.uint32())); + message.items.push($root.google.cloud.speech.v1.CustomClass.ClassItem.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -7002,9 +7246,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CustomClass.verify = function verify(message) { + CustomClass.verify = function verify(message, long) { if (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"; @@ -7015,7 +7263,7 @@ if (!Array.isArray(message.items)) return "items: array expected"; for (var i = 0; i < message.items.length; ++i) { - var error = $root.google.cloud.speech.v1.CustomClass.ClassItem.verify(message.items[i]); + var error = $root.google.cloud.speech.v1.CustomClass.ClassItem.verify(message.items[i], long + 1); if (error) return "items." + error; } @@ -7031,9 +7279,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.CustomClass} CustomClass */ - CustomClass.fromObject = function fromObject(object) { + CustomClass.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.CustomClass) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.CustomClass(); if (object.name != null) message.name = String(object.name); @@ -7046,7 +7298,7 @@ for (var i = 0; i < object.items.length; ++i) { if (typeof object.items[i] !== "object") throw TypeError(".google.cloud.speech.v1.CustomClass.items: object expected"); - message.items[i] = $root.google.cloud.speech.v1.CustomClass.ClassItem.fromObject(object.items[i]); + message.items[i] = $root.google.cloud.speech.v1.CustomClass.ClassItem.fromObject(object.items[i], long + 1); } } return message; @@ -7129,7 +7381,7 @@ function ClassItem(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -7194,9 +7446,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ClassItem.decode = function decode(reader, length, error) { + ClassItem.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.CustomClass.ClassItem(); while (reader.pos < end) { var tag = reader.uint32(); @@ -7208,7 +7464,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -7239,9 +7495,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ClassItem.verify = function verify(message) { + ClassItem.verify = function verify(message, long) { if (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"; @@ -7256,9 +7516,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.CustomClass.ClassItem} ClassItem */ - ClassItem.fromObject = function fromObject(object) { + ClassItem.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.CustomClass.ClassItem) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.CustomClass.ClassItem(); if (object.value != null) message.value = String(object.value); @@ -7340,7 +7604,7 @@ this.phrases = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -7426,9 +7690,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PhraseSet.decode = function decode(reader, length, error) { + PhraseSet.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.PhraseSet(); while (reader.pos < end) { var tag = reader.uint32(); @@ -7442,7 +7710,7 @@ case 2: { if (!(message.phrases && message.phrases.length)) message.phrases = []; - message.phrases.push($root.google.cloud.speech.v1.PhraseSet.Phrase.decode(reader, reader.uint32())); + message.phrases.push($root.google.cloud.speech.v1.PhraseSet.Phrase.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 4: { @@ -7450,7 +7718,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -7481,9 +7749,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PhraseSet.verify = function verify(message) { + PhraseSet.verify = function verify(message, long) { if (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"; @@ -7491,7 +7763,7 @@ if (!Array.isArray(message.phrases)) return "phrases: array expected"; for (var i = 0; i < message.phrases.length; ++i) { - var error = $root.google.cloud.speech.v1.PhraseSet.Phrase.verify(message.phrases[i]); + var error = $root.google.cloud.speech.v1.PhraseSet.Phrase.verify(message.phrases[i], long + 1); if (error) return "phrases." + error; } @@ -7510,9 +7782,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.PhraseSet} PhraseSet */ - PhraseSet.fromObject = function fromObject(object) { + PhraseSet.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.PhraseSet) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.PhraseSet(); if (object.name != null) message.name = String(object.name); @@ -7523,7 +7799,7 @@ for (var i = 0; i < object.phrases.length; ++i) { if (typeof object.phrases[i] !== "object") throw TypeError(".google.cloud.speech.v1.PhraseSet.phrases: object expected"); - message.phrases[i] = $root.google.cloud.speech.v1.PhraseSet.Phrase.fromObject(object.phrases[i]); + message.phrases[i] = $root.google.cloud.speech.v1.PhraseSet.Phrase.fromObject(object.phrases[i], long + 1); } } if (object.boost != null) @@ -7609,7 +7885,7 @@ function Phrase(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -7684,9 +7960,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Phrase.decode = function decode(reader, length, error) { + Phrase.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.PhraseSet.Phrase(); while (reader.pos < end) { var tag = reader.uint32(); @@ -7702,7 +7982,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -7733,9 +8013,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Phrase.verify = function verify(message) { + Phrase.verify = function verify(message, long) { if (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"; @@ -7753,9 +8037,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.PhraseSet.Phrase} Phrase */ - Phrase.fromObject = function fromObject(object) { + Phrase.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.PhraseSet.Phrase) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.PhraseSet.Phrase(); if (object.value != null) message.value = String(object.value); @@ -7846,7 +8134,7 @@ this.customClasses = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -7944,9 +8232,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SpeechAdaptation.decode = function decode(reader, length, error) { + SpeechAdaptation.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.SpeechAdaptation(); while (reader.pos < end) { var tag = reader.uint32(); @@ -7956,7 +8248,7 @@ case 1: { if (!(message.phraseSets && message.phraseSets.length)) message.phraseSets = []; - message.phraseSets.push($root.google.cloud.speech.v1.PhraseSet.decode(reader, reader.uint32())); + message.phraseSets.push($root.google.cloud.speech.v1.PhraseSet.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -7968,15 +8260,15 @@ case 3: { if (!(message.customClasses && message.customClasses.length)) message.customClasses = []; - message.customClasses.push($root.google.cloud.speech.v1.CustomClass.decode(reader, reader.uint32())); + message.customClasses.push($root.google.cloud.speech.v1.CustomClass.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 4: { - message.abnfGrammar = $root.google.cloud.speech.v1.SpeechAdaptation.ABNFGrammar.decode(reader, reader.uint32()); + message.abnfGrammar = $root.google.cloud.speech.v1.SpeechAdaptation.ABNFGrammar.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -8007,14 +8299,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SpeechAdaptation.verify = function verify(message) { + SpeechAdaptation.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.phraseSets != null && message.hasOwnProperty("phraseSets")) { if (!Array.isArray(message.phraseSets)) return "phraseSets: array expected"; for (var i = 0; i < message.phraseSets.length; ++i) { - var error = $root.google.cloud.speech.v1.PhraseSet.verify(message.phraseSets[i]); + var error = $root.google.cloud.speech.v1.PhraseSet.verify(message.phraseSets[i], long + 1); if (error) return "phraseSets." + error; } @@ -8030,13 +8326,13 @@ if (!Array.isArray(message.customClasses)) return "customClasses: array expected"; for (var i = 0; i < message.customClasses.length; ++i) { - var error = $root.google.cloud.speech.v1.CustomClass.verify(message.customClasses[i]); + var error = $root.google.cloud.speech.v1.CustomClass.verify(message.customClasses[i], long + 1); if (error) return "customClasses." + error; } } if (message.abnfGrammar != null && message.hasOwnProperty("abnfGrammar")) { - var error = $root.google.cloud.speech.v1.SpeechAdaptation.ABNFGrammar.verify(message.abnfGrammar); + var error = $root.google.cloud.speech.v1.SpeechAdaptation.ABNFGrammar.verify(message.abnfGrammar, long + 1); if (error) return "abnfGrammar." + error; } @@ -8051,9 +8347,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.SpeechAdaptation} SpeechAdaptation */ - SpeechAdaptation.fromObject = function fromObject(object) { + SpeechAdaptation.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.SpeechAdaptation) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.SpeechAdaptation(); if (object.phraseSets) { if (!Array.isArray(object.phraseSets)) @@ -8062,7 +8362,7 @@ for (var i = 0; i < object.phraseSets.length; ++i) { if (typeof object.phraseSets[i] !== "object") throw TypeError(".google.cloud.speech.v1.SpeechAdaptation.phraseSets: object expected"); - message.phraseSets[i] = $root.google.cloud.speech.v1.PhraseSet.fromObject(object.phraseSets[i]); + message.phraseSets[i] = $root.google.cloud.speech.v1.PhraseSet.fromObject(object.phraseSets[i], long + 1); } } if (object.phraseSetReferences) { @@ -8079,13 +8379,13 @@ for (var i = 0; i < object.customClasses.length; ++i) { if (typeof object.customClasses[i] !== "object") throw TypeError(".google.cloud.speech.v1.SpeechAdaptation.customClasses: object expected"); - message.customClasses[i] = $root.google.cloud.speech.v1.CustomClass.fromObject(object.customClasses[i]); + message.customClasses[i] = $root.google.cloud.speech.v1.CustomClass.fromObject(object.customClasses[i], long + 1); } } if (object.abnfGrammar != null) { if (typeof object.abnfGrammar !== "object") throw TypeError(".google.cloud.speech.v1.SpeechAdaptation.abnfGrammar: object expected"); - message.abnfGrammar = $root.google.cloud.speech.v1.SpeechAdaptation.ABNFGrammar.fromObject(object.abnfGrammar); + message.abnfGrammar = $root.google.cloud.speech.v1.SpeechAdaptation.ABNFGrammar.fromObject(object.abnfGrammar, long + 1); } return message; }; @@ -8177,7 +8477,7 @@ this.abnfStrings = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -8243,9 +8543,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ABNFGrammar.decode = function decode(reader, length, error) { + ABNFGrammar.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.SpeechAdaptation.ABNFGrammar(); while (reader.pos < end) { var tag = reader.uint32(); @@ -8259,7 +8563,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -8290,9 +8594,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ABNFGrammar.verify = function verify(message) { + ABNFGrammar.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.abnfStrings != null && message.hasOwnProperty("abnfStrings")) { if (!Array.isArray(message.abnfStrings)) return "abnfStrings: array expected"; @@ -8311,9 +8619,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.SpeechAdaptation.ABNFGrammar} ABNFGrammar */ - ABNFGrammar.fromObject = function fromObject(object) { + ABNFGrammar.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.SpeechAdaptation.ABNFGrammar) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.SpeechAdaptation.ABNFGrammar(); if (object.abnfStrings) { if (!Array.isArray(object.abnfStrings)) @@ -8401,7 +8713,7 @@ this.entries = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -8467,9 +8779,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - TranscriptNormalization.decode = function decode(reader, length, error) { + TranscriptNormalization.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.TranscriptNormalization(); while (reader.pos < end) { var tag = reader.uint32(); @@ -8479,11 +8795,11 @@ case 1: { if (!(message.entries && message.entries.length)) message.entries = []; - message.entries.push($root.google.cloud.speech.v1.TranscriptNormalization.Entry.decode(reader, reader.uint32())); + message.entries.push($root.google.cloud.speech.v1.TranscriptNormalization.Entry.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -8514,14 +8830,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - TranscriptNormalization.verify = function verify(message) { + TranscriptNormalization.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.entries != null && message.hasOwnProperty("entries")) { if (!Array.isArray(message.entries)) return "entries: array expected"; for (var i = 0; i < message.entries.length; ++i) { - var error = $root.google.cloud.speech.v1.TranscriptNormalization.Entry.verify(message.entries[i]); + var error = $root.google.cloud.speech.v1.TranscriptNormalization.Entry.verify(message.entries[i], long + 1); if (error) return "entries." + error; } @@ -8537,9 +8857,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.TranscriptNormalization} TranscriptNormalization */ - TranscriptNormalization.fromObject = function fromObject(object) { + TranscriptNormalization.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.TranscriptNormalization) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.TranscriptNormalization(); if (object.entries) { if (!Array.isArray(object.entries)) @@ -8548,7 +8872,7 @@ for (var i = 0; i < object.entries.length; ++i) { if (typeof object.entries[i] !== "object") throw TypeError(".google.cloud.speech.v1.TranscriptNormalization.entries: object expected"); - message.entries[i] = $root.google.cloud.speech.v1.TranscriptNormalization.Entry.fromObject(object.entries[i]); + message.entries[i] = $root.google.cloud.speech.v1.TranscriptNormalization.Entry.fromObject(object.entries[i], long + 1); } } return message; @@ -8625,7 +8949,7 @@ function Entry(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -8710,9 +9034,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Entry.decode = function decode(reader, length, error) { + Entry.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.TranscriptNormalization.Entry(); while (reader.pos < end) { var tag = reader.uint32(); @@ -8732,7 +9060,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -8763,9 +9091,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Entry.verify = function verify(message) { + Entry.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.search != null && message.hasOwnProperty("search")) if (!$util.isString(message.search)) return "search: string expected"; @@ -8786,9 +9118,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.TranscriptNormalization.Entry} Entry */ - Entry.fromObject = function fromObject(object) { + Entry.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.TranscriptNormalization.Entry) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.TranscriptNormalization.Entry(); if (object.search != null) message.search = String(object.search); @@ -9245,7 +9581,7 @@ function CreatePhraseSetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -9330,9 +9666,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CreatePhraseSetRequest.decode = function decode(reader, length, error) { + CreatePhraseSetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.CreatePhraseSetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -9348,11 +9688,11 @@ break; } case 3: { - message.phraseSet = $root.google.cloud.speech.v1.PhraseSet.decode(reader, reader.uint32()); + message.phraseSet = $root.google.cloud.speech.v1.PhraseSet.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -9383,9 +9723,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CreatePhraseSetRequest.verify = function verify(message) { + CreatePhraseSetRequest.verify = function verify(message, long) { if (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"; @@ -9393,7 +9737,7 @@ if (!$util.isString(message.phraseSetId)) return "phraseSetId: string expected"; if (message.phraseSet != null && message.hasOwnProperty("phraseSet")) { - var error = $root.google.cloud.speech.v1.PhraseSet.verify(message.phraseSet); + var error = $root.google.cloud.speech.v1.PhraseSet.verify(message.phraseSet, long + 1); if (error) return "phraseSet." + error; } @@ -9408,9 +9752,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.CreatePhraseSetRequest} CreatePhraseSetRequest */ - CreatePhraseSetRequest.fromObject = function fromObject(object) { + CreatePhraseSetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.CreatePhraseSetRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.CreatePhraseSetRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -9419,7 +9767,7 @@ if (object.phraseSet != null) { if (typeof object.phraseSet !== "object") throw TypeError(".google.cloud.speech.v1.CreatePhraseSetRequest.phraseSet: object expected"); - message.phraseSet = $root.google.cloud.speech.v1.PhraseSet.fromObject(object.phraseSet); + message.phraseSet = $root.google.cloud.speech.v1.PhraseSet.fromObject(object.phraseSet, long + 1); } return message; }; @@ -9501,7 +9849,7 @@ function UpdatePhraseSetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -9576,9 +9924,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UpdatePhraseSetRequest.decode = function decode(reader, length, error) { + UpdatePhraseSetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.UpdatePhraseSetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -9586,15 +9938,15 @@ break; switch (tag >>> 3) { case 1: { - message.phraseSet = $root.google.cloud.speech.v1.PhraseSet.decode(reader, reader.uint32()); + message.phraseSet = $root.google.cloud.speech.v1.PhraseSet.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; } } @@ -9625,16 +9977,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UpdatePhraseSetRequest.verify = function verify(message) { + UpdatePhraseSetRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.phraseSet != null && message.hasOwnProperty("phraseSet")) { - var error = $root.google.cloud.speech.v1.PhraseSet.verify(message.phraseSet); + var error = $root.google.cloud.speech.v1.PhraseSet.verify(message.phraseSet, long + 1); if (error) return "phraseSet." + 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; } @@ -9649,19 +10005,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.UpdatePhraseSetRequest} UpdatePhraseSetRequest */ - UpdatePhraseSetRequest.fromObject = function fromObject(object) { + UpdatePhraseSetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.UpdatePhraseSetRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.UpdatePhraseSetRequest(); if (object.phraseSet != null) { if (typeof object.phraseSet !== "object") throw TypeError(".google.cloud.speech.v1.UpdatePhraseSetRequest.phraseSet: object expected"); - message.phraseSet = $root.google.cloud.speech.v1.PhraseSet.fromObject(object.phraseSet); + message.phraseSet = $root.google.cloud.speech.v1.PhraseSet.fromObject(object.phraseSet, long + 1); } if (object.updateMask != null) { if (typeof object.updateMask !== "object") throw TypeError(".google.cloud.speech.v1.UpdatePhraseSetRequest.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; }; @@ -9739,7 +10099,7 @@ function GetPhraseSetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -9804,9 +10164,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetPhraseSetRequest.decode = function decode(reader, length, error) { + GetPhraseSetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.GetPhraseSetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -9818,7 +10182,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -9849,9 +10213,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetPhraseSetRequest.verify = function verify(message) { + GetPhraseSetRequest.verify = function verify(message, long) { if (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"; @@ -9866,9 +10234,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.GetPhraseSetRequest} GetPhraseSetRequest */ - GetPhraseSetRequest.fromObject = function fromObject(object) { + GetPhraseSetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.GetPhraseSetRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.GetPhraseSetRequest(); if (object.name != null) message.name = String(object.name); @@ -9946,7 +10318,7 @@ function ListPhraseSetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -10031,9 +10403,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListPhraseSetRequest.decode = function decode(reader, length, error) { + ListPhraseSetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.ListPhraseSetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -10053,7 +10429,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -10084,9 +10460,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListPhraseSetRequest.verify = function verify(message) { + ListPhraseSetRequest.verify = function verify(message, long) { if (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"; @@ -10107,9 +10487,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.ListPhraseSetRequest} ListPhraseSetRequest */ - ListPhraseSetRequest.fromObject = function fromObject(object) { + ListPhraseSetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.ListPhraseSetRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.ListPhraseSetRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -10198,7 +10582,7 @@ this.phraseSets = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -10274,9 +10658,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListPhraseSetResponse.decode = function decode(reader, length, error) { + ListPhraseSetResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.ListPhraseSetResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -10286,7 +10674,7 @@ case 1: { if (!(message.phraseSets && message.phraseSets.length)) message.phraseSets = []; - message.phraseSets.push($root.google.cloud.speech.v1.PhraseSet.decode(reader, reader.uint32())); + message.phraseSets.push($root.google.cloud.speech.v1.PhraseSet.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -10294,7 +10682,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -10325,14 +10713,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListPhraseSetResponse.verify = function verify(message) { + ListPhraseSetResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.phraseSets != null && message.hasOwnProperty("phraseSets")) { if (!Array.isArray(message.phraseSets)) return "phraseSets: array expected"; for (var i = 0; i < message.phraseSets.length; ++i) { - var error = $root.google.cloud.speech.v1.PhraseSet.verify(message.phraseSets[i]); + var error = $root.google.cloud.speech.v1.PhraseSet.verify(message.phraseSets[i], long + 1); if (error) return "phraseSets." + error; } @@ -10351,9 +10743,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.ListPhraseSetResponse} ListPhraseSetResponse */ - ListPhraseSetResponse.fromObject = function fromObject(object) { + ListPhraseSetResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.ListPhraseSetResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.ListPhraseSetResponse(); if (object.phraseSets) { if (!Array.isArray(object.phraseSets)) @@ -10362,7 +10758,7 @@ for (var i = 0; i < object.phraseSets.length; ++i) { if (typeof object.phraseSets[i] !== "object") throw TypeError(".google.cloud.speech.v1.ListPhraseSetResponse.phraseSets: object expected"); - message.phraseSets[i] = $root.google.cloud.speech.v1.PhraseSet.fromObject(object.phraseSets[i]); + message.phraseSets[i] = $root.google.cloud.speech.v1.PhraseSet.fromObject(object.phraseSets[i], long + 1); } } if (object.nextPageToken != null) @@ -10446,7 +10842,7 @@ function DeletePhraseSetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -10511,9 +10907,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DeletePhraseSetRequest.decode = function decode(reader, length, error) { + DeletePhraseSetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.DeletePhraseSetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -10525,7 +10925,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -10556,9 +10956,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DeletePhraseSetRequest.verify = function verify(message) { + DeletePhraseSetRequest.verify = function verify(message, long) { if (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"; @@ -10573,9 +10977,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.DeletePhraseSetRequest} DeletePhraseSetRequest */ - DeletePhraseSetRequest.fromObject = function fromObject(object) { + DeletePhraseSetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.DeletePhraseSetRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.DeletePhraseSetRequest(); if (object.name != null) message.name = String(object.name); @@ -10653,7 +11061,7 @@ function CreateCustomClassRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -10738,9 +11146,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CreateCustomClassRequest.decode = function decode(reader, length, error) { + CreateCustomClassRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.CreateCustomClassRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -10756,11 +11168,11 @@ break; } case 3: { - message.customClass = $root.google.cloud.speech.v1.CustomClass.decode(reader, reader.uint32()); + message.customClass = $root.google.cloud.speech.v1.CustomClass.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -10791,9 +11203,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CreateCustomClassRequest.verify = function verify(message) { + CreateCustomClassRequest.verify = function verify(message, long) { if (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"; @@ -10801,7 +11217,7 @@ if (!$util.isString(message.customClassId)) return "customClassId: string expected"; if (message.customClass != null && message.hasOwnProperty("customClass")) { - var error = $root.google.cloud.speech.v1.CustomClass.verify(message.customClass); + var error = $root.google.cloud.speech.v1.CustomClass.verify(message.customClass, long + 1); if (error) return "customClass." + error; } @@ -10816,9 +11232,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.CreateCustomClassRequest} CreateCustomClassRequest */ - CreateCustomClassRequest.fromObject = function fromObject(object) { + CreateCustomClassRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.CreateCustomClassRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.CreateCustomClassRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -10827,7 +11247,7 @@ if (object.customClass != null) { if (typeof object.customClass !== "object") throw TypeError(".google.cloud.speech.v1.CreateCustomClassRequest.customClass: object expected"); - message.customClass = $root.google.cloud.speech.v1.CustomClass.fromObject(object.customClass); + message.customClass = $root.google.cloud.speech.v1.CustomClass.fromObject(object.customClass, long + 1); } return message; }; @@ -10909,7 +11329,7 @@ function UpdateCustomClassRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -10984,9 +11404,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UpdateCustomClassRequest.decode = function decode(reader, length, error) { + UpdateCustomClassRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.UpdateCustomClassRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -10994,15 +11418,15 @@ break; switch (tag >>> 3) { case 1: { - message.customClass = $root.google.cloud.speech.v1.CustomClass.decode(reader, reader.uint32()); + message.customClass = $root.google.cloud.speech.v1.CustomClass.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; } } @@ -11033,16 +11457,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UpdateCustomClassRequest.verify = function verify(message) { + UpdateCustomClassRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.customClass != null && message.hasOwnProperty("customClass")) { - var error = $root.google.cloud.speech.v1.CustomClass.verify(message.customClass); + var error = $root.google.cloud.speech.v1.CustomClass.verify(message.customClass, long + 1); if (error) return "customClass." + 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; } @@ -11057,19 +11485,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.UpdateCustomClassRequest} UpdateCustomClassRequest */ - UpdateCustomClassRequest.fromObject = function fromObject(object) { + UpdateCustomClassRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.UpdateCustomClassRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.UpdateCustomClassRequest(); if (object.customClass != null) { if (typeof object.customClass !== "object") throw TypeError(".google.cloud.speech.v1.UpdateCustomClassRequest.customClass: object expected"); - message.customClass = $root.google.cloud.speech.v1.CustomClass.fromObject(object.customClass); + message.customClass = $root.google.cloud.speech.v1.CustomClass.fromObject(object.customClass, long + 1); } if (object.updateMask != null) { if (typeof object.updateMask !== "object") throw TypeError(".google.cloud.speech.v1.UpdateCustomClassRequest.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; }; @@ -11147,7 +11579,7 @@ function GetCustomClassRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -11212,9 +11644,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetCustomClassRequest.decode = function decode(reader, length, error) { + GetCustomClassRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.GetCustomClassRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -11226,7 +11662,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -11257,9 +11693,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetCustomClassRequest.verify = function verify(message) { + GetCustomClassRequest.verify = function verify(message, long) { if (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"; @@ -11274,9 +11714,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.GetCustomClassRequest} GetCustomClassRequest */ - GetCustomClassRequest.fromObject = function fromObject(object) { + GetCustomClassRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.GetCustomClassRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.GetCustomClassRequest(); if (object.name != null) message.name = String(object.name); @@ -11354,7 +11798,7 @@ function ListCustomClassesRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -11439,9 +11883,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListCustomClassesRequest.decode = function decode(reader, length, error) { + ListCustomClassesRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.ListCustomClassesRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -11461,7 +11909,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -11492,9 +11940,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListCustomClassesRequest.verify = function verify(message) { + ListCustomClassesRequest.verify = function verify(message, long) { if (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"; @@ -11515,9 +11967,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.ListCustomClassesRequest} ListCustomClassesRequest */ - ListCustomClassesRequest.fromObject = function fromObject(object) { + ListCustomClassesRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.ListCustomClassesRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.ListCustomClassesRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -11606,7 +12062,7 @@ this.customClasses = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -11682,9 +12138,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListCustomClassesResponse.decode = function decode(reader, length, error) { + ListCustomClassesResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.ListCustomClassesResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -11694,7 +12154,7 @@ case 1: { if (!(message.customClasses && message.customClasses.length)) message.customClasses = []; - message.customClasses.push($root.google.cloud.speech.v1.CustomClass.decode(reader, reader.uint32())); + message.customClasses.push($root.google.cloud.speech.v1.CustomClass.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -11702,7 +12162,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -11733,14 +12193,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListCustomClassesResponse.verify = function verify(message) { + ListCustomClassesResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.customClasses != null && message.hasOwnProperty("customClasses")) { if (!Array.isArray(message.customClasses)) return "customClasses: array expected"; for (var i = 0; i < message.customClasses.length; ++i) { - var error = $root.google.cloud.speech.v1.CustomClass.verify(message.customClasses[i]); + var error = $root.google.cloud.speech.v1.CustomClass.verify(message.customClasses[i], long + 1); if (error) return "customClasses." + error; } @@ -11759,9 +12223,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.ListCustomClassesResponse} ListCustomClassesResponse */ - ListCustomClassesResponse.fromObject = function fromObject(object) { + ListCustomClassesResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.ListCustomClassesResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.ListCustomClassesResponse(); if (object.customClasses) { if (!Array.isArray(object.customClasses)) @@ -11770,7 +12238,7 @@ for (var i = 0; i < object.customClasses.length; ++i) { if (typeof object.customClasses[i] !== "object") throw TypeError(".google.cloud.speech.v1.ListCustomClassesResponse.customClasses: object expected"); - message.customClasses[i] = $root.google.cloud.speech.v1.CustomClass.fromObject(object.customClasses[i]); + message.customClasses[i] = $root.google.cloud.speech.v1.CustomClass.fromObject(object.customClasses[i], long + 1); } } if (object.nextPageToken != null) @@ -11854,7 +12322,7 @@ function DeleteCustomClassRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -11919,9 +12387,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DeleteCustomClassRequest.decode = function decode(reader, length, error) { + DeleteCustomClassRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1.DeleteCustomClassRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -11933,7 +12405,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -11964,9 +12436,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DeleteCustomClassRequest.verify = function verify(message) { + DeleteCustomClassRequest.verify = function verify(message, long) { if (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"; @@ -11981,9 +12457,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1.DeleteCustomClassRequest} DeleteCustomClassRequest */ - DeleteCustomClassRequest.fromObject = function fromObject(object) { + DeleteCustomClassRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1.DeleteCustomClassRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1.DeleteCustomClassRequest(); if (object.name != null) message.name = String(object.name); @@ -12206,7 +12686,7 @@ function RecognizeRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -12281,9 +12761,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RecognizeRequest.decode = function decode(reader, length, error) { + RecognizeRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.RecognizeRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -12291,15 +12775,15 @@ break; switch (tag >>> 3) { case 1: { - message.config = $root.google.cloud.speech.v1p1beta1.RecognitionConfig.decode(reader, reader.uint32()); + message.config = $root.google.cloud.speech.v1p1beta1.RecognitionConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.audio = $root.google.cloud.speech.v1p1beta1.RecognitionAudio.decode(reader, reader.uint32()); + message.audio = $root.google.cloud.speech.v1p1beta1.RecognitionAudio.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -12330,16 +12814,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RecognizeRequest.verify = function verify(message) { + RecognizeRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.config != null && message.hasOwnProperty("config")) { - var error = $root.google.cloud.speech.v1p1beta1.RecognitionConfig.verify(message.config); + var error = $root.google.cloud.speech.v1p1beta1.RecognitionConfig.verify(message.config, long + 1); if (error) return "config." + error; } if (message.audio != null && message.hasOwnProperty("audio")) { - var error = $root.google.cloud.speech.v1p1beta1.RecognitionAudio.verify(message.audio); + var error = $root.google.cloud.speech.v1p1beta1.RecognitionAudio.verify(message.audio, long + 1); if (error) return "audio." + error; } @@ -12354,19 +12842,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.RecognizeRequest} RecognizeRequest */ - RecognizeRequest.fromObject = function fromObject(object) { + RecognizeRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.RecognizeRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.RecognizeRequest(); if (object.config != null) { if (typeof object.config !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.RecognizeRequest.config: object expected"); - message.config = $root.google.cloud.speech.v1p1beta1.RecognitionConfig.fromObject(object.config); + message.config = $root.google.cloud.speech.v1p1beta1.RecognitionConfig.fromObject(object.config, long + 1); } if (object.audio != null) { if (typeof object.audio !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.RecognizeRequest.audio: object expected"); - message.audio = $root.google.cloud.speech.v1p1beta1.RecognitionAudio.fromObject(object.audio); + message.audio = $root.google.cloud.speech.v1p1beta1.RecognitionAudio.fromObject(object.audio, long + 1); } return message; }; @@ -12446,7 +12938,7 @@ function LongRunningRecognizeRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -12531,9 +13023,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LongRunningRecognizeRequest.decode = function decode(reader, length, error) { + LongRunningRecognizeRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.LongRunningRecognizeRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -12541,19 +13037,19 @@ break; switch (tag >>> 3) { case 1: { - message.config = $root.google.cloud.speech.v1p1beta1.RecognitionConfig.decode(reader, reader.uint32()); + message.config = $root.google.cloud.speech.v1p1beta1.RecognitionConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.audio = $root.google.cloud.speech.v1p1beta1.RecognitionAudio.decode(reader, reader.uint32()); + message.audio = $root.google.cloud.speech.v1p1beta1.RecognitionAudio.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { - message.outputConfig = $root.google.cloud.speech.v1p1beta1.TranscriptOutputConfig.decode(reader, reader.uint32()); + message.outputConfig = $root.google.cloud.speech.v1p1beta1.TranscriptOutputConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -12584,21 +13080,25 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LongRunningRecognizeRequest.verify = function verify(message) { + LongRunningRecognizeRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.config != null && message.hasOwnProperty("config")) { - var error = $root.google.cloud.speech.v1p1beta1.RecognitionConfig.verify(message.config); + var error = $root.google.cloud.speech.v1p1beta1.RecognitionConfig.verify(message.config, long + 1); if (error) return "config." + error; } if (message.audio != null && message.hasOwnProperty("audio")) { - var error = $root.google.cloud.speech.v1p1beta1.RecognitionAudio.verify(message.audio); + var error = $root.google.cloud.speech.v1p1beta1.RecognitionAudio.verify(message.audio, long + 1); if (error) return "audio." + error; } if (message.outputConfig != null && message.hasOwnProperty("outputConfig")) { - var error = $root.google.cloud.speech.v1p1beta1.TranscriptOutputConfig.verify(message.outputConfig); + var error = $root.google.cloud.speech.v1p1beta1.TranscriptOutputConfig.verify(message.outputConfig, long + 1); if (error) return "outputConfig." + error; } @@ -12613,24 +13113,28 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.LongRunningRecognizeRequest} LongRunningRecognizeRequest */ - LongRunningRecognizeRequest.fromObject = function fromObject(object) { + LongRunningRecognizeRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.LongRunningRecognizeRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.LongRunningRecognizeRequest(); if (object.config != null) { if (typeof object.config !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.LongRunningRecognizeRequest.config: object expected"); - message.config = $root.google.cloud.speech.v1p1beta1.RecognitionConfig.fromObject(object.config); + message.config = $root.google.cloud.speech.v1p1beta1.RecognitionConfig.fromObject(object.config, long + 1); } if (object.audio != null) { if (typeof object.audio !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.LongRunningRecognizeRequest.audio: object expected"); - message.audio = $root.google.cloud.speech.v1p1beta1.RecognitionAudio.fromObject(object.audio); + message.audio = $root.google.cloud.speech.v1p1beta1.RecognitionAudio.fromObject(object.audio, long + 1); } if (object.outputConfig != null) { if (typeof object.outputConfig !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.LongRunningRecognizeRequest.outputConfig: object expected"); - message.outputConfig = $root.google.cloud.speech.v1p1beta1.TranscriptOutputConfig.fromObject(object.outputConfig); + message.outputConfig = $root.google.cloud.speech.v1p1beta1.TranscriptOutputConfig.fromObject(object.outputConfig, long + 1); } return message; }; @@ -12711,7 +13215,7 @@ function TranscriptOutputConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -12790,9 +13294,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - TranscriptOutputConfig.decode = function decode(reader, length, error) { + TranscriptOutputConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.TranscriptOutputConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -12804,7 +13312,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -12835,9 +13343,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - TranscriptOutputConfig.verify = function verify(message) { + TranscriptOutputConfig.verify = function verify(message, 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.gcsUri != null && message.hasOwnProperty("gcsUri")) { properties.outputType = 1; @@ -12855,9 +13367,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.TranscriptOutputConfig} TranscriptOutputConfig */ - TranscriptOutputConfig.fromObject = function fromObject(object) { + TranscriptOutputConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.TranscriptOutputConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.TranscriptOutputConfig(); if (object.gcsUri != null) message.gcsUri = String(object.gcsUri); @@ -12935,7 +13451,7 @@ function StreamingRecognizeRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -13024,9 +13540,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - StreamingRecognizeRequest.decode = function decode(reader, length, error) { + StreamingRecognizeRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.StreamingRecognizeRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -13034,7 +13554,7 @@ break; switch (tag >>> 3) { case 1: { - message.streamingConfig = $root.google.cloud.speech.v1p1beta1.StreamingRecognitionConfig.decode(reader, reader.uint32()); + message.streamingConfig = $root.google.cloud.speech.v1p1beta1.StreamingRecognitionConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -13042,7 +13562,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -13073,14 +13593,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - StreamingRecognizeRequest.verify = function verify(message) { + StreamingRecognizeRequest.verify = function verify(message, 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.streamingConfig != null && message.hasOwnProperty("streamingConfig")) { properties.streamingRequest = 1; { - var error = $root.google.cloud.speech.v1p1beta1.StreamingRecognitionConfig.verify(message.streamingConfig); + var error = $root.google.cloud.speech.v1p1beta1.StreamingRecognitionConfig.verify(message.streamingConfig, long + 1); if (error) return "streamingConfig." + error; } @@ -13103,14 +13627,18 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.StreamingRecognizeRequest} StreamingRecognizeRequest */ - StreamingRecognizeRequest.fromObject = function fromObject(object) { + StreamingRecognizeRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.StreamingRecognizeRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.StreamingRecognizeRequest(); if (object.streamingConfig != null) { if (typeof object.streamingConfig !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.StreamingRecognizeRequest.streamingConfig: object expected"); - message.streamingConfig = $root.google.cloud.speech.v1p1beta1.StreamingRecognitionConfig.fromObject(object.streamingConfig); + message.streamingConfig = $root.google.cloud.speech.v1p1beta1.StreamingRecognitionConfig.fromObject(object.streamingConfig, long + 1); } if (object.audioContent != null) if (typeof object.audioContent === "string") @@ -13199,7 +13727,7 @@ function StreamingRecognitionConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -13304,9 +13832,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - StreamingRecognitionConfig.decode = function decode(reader, length, error) { + StreamingRecognitionConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.StreamingRecognitionConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -13314,7 +13846,7 @@ break; switch (tag >>> 3) { case 1: { - message.config = $root.google.cloud.speech.v1p1beta1.RecognitionConfig.decode(reader, reader.uint32()); + message.config = $root.google.cloud.speech.v1p1beta1.RecognitionConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -13330,11 +13862,11 @@ break; } case 6: { - message.voiceActivityTimeout = $root.google.cloud.speech.v1p1beta1.StreamingRecognitionConfig.VoiceActivityTimeout.decode(reader, reader.uint32()); + message.voiceActivityTimeout = $root.google.cloud.speech.v1p1beta1.StreamingRecognitionConfig.VoiceActivityTimeout.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -13365,11 +13897,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - StreamingRecognitionConfig.verify = function verify(message) { + StreamingRecognitionConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.config != null && message.hasOwnProperty("config")) { - var error = $root.google.cloud.speech.v1p1beta1.RecognitionConfig.verify(message.config); + var error = $root.google.cloud.speech.v1p1beta1.RecognitionConfig.verify(message.config, long + 1); if (error) return "config." + error; } @@ -13383,7 +13919,7 @@ if (typeof message.enableVoiceActivityEvents !== "boolean") return "enableVoiceActivityEvents: boolean expected"; if (message.voiceActivityTimeout != null && message.hasOwnProperty("voiceActivityTimeout")) { - var error = $root.google.cloud.speech.v1p1beta1.StreamingRecognitionConfig.VoiceActivityTimeout.verify(message.voiceActivityTimeout); + var error = $root.google.cloud.speech.v1p1beta1.StreamingRecognitionConfig.VoiceActivityTimeout.verify(message.voiceActivityTimeout, long + 1); if (error) return "voiceActivityTimeout." + error; } @@ -13398,14 +13934,18 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.StreamingRecognitionConfig} StreamingRecognitionConfig */ - StreamingRecognitionConfig.fromObject = function fromObject(object) { + StreamingRecognitionConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.StreamingRecognitionConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.StreamingRecognitionConfig(); if (object.config != null) { if (typeof object.config !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.StreamingRecognitionConfig.config: object expected"); - message.config = $root.google.cloud.speech.v1p1beta1.RecognitionConfig.fromObject(object.config); + message.config = $root.google.cloud.speech.v1p1beta1.RecognitionConfig.fromObject(object.config, long + 1); } if (object.singleUtterance != null) message.singleUtterance = Boolean(object.singleUtterance); @@ -13416,7 +13956,7 @@ if (object.voiceActivityTimeout != null) { if (typeof object.voiceActivityTimeout !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.StreamingRecognitionConfig.voiceActivityTimeout: object expected"); - message.voiceActivityTimeout = $root.google.cloud.speech.v1p1beta1.StreamingRecognitionConfig.VoiceActivityTimeout.fromObject(object.voiceActivityTimeout); + message.voiceActivityTimeout = $root.google.cloud.speech.v1p1beta1.StreamingRecognitionConfig.VoiceActivityTimeout.fromObject(object.voiceActivityTimeout, long + 1); } return message; }; @@ -13501,7 +14041,7 @@ function VoiceActivityTimeout(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -13576,9 +14116,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - VoiceActivityTimeout.decode = function decode(reader, length, error) { + VoiceActivityTimeout.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.StreamingRecognitionConfig.VoiceActivityTimeout(); while (reader.pos < end) { var tag = reader.uint32(); @@ -13586,15 +14130,15 @@ break; switch (tag >>> 3) { case 1: { - message.speechStartTimeout = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.speechStartTimeout = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.speechEndTimeout = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.speechEndTimeout = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -13625,16 +14169,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - VoiceActivityTimeout.verify = function verify(message) { + VoiceActivityTimeout.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.speechStartTimeout != null && message.hasOwnProperty("speechStartTimeout")) { - var error = $root.google.protobuf.Duration.verify(message.speechStartTimeout); + var error = $root.google.protobuf.Duration.verify(message.speechStartTimeout, long + 1); if (error) return "speechStartTimeout." + error; } if (message.speechEndTimeout != null && message.hasOwnProperty("speechEndTimeout")) { - var error = $root.google.protobuf.Duration.verify(message.speechEndTimeout); + var error = $root.google.protobuf.Duration.verify(message.speechEndTimeout, long + 1); if (error) return "speechEndTimeout." + error; } @@ -13649,19 +14197,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.StreamingRecognitionConfig.VoiceActivityTimeout} VoiceActivityTimeout */ - VoiceActivityTimeout.fromObject = function fromObject(object) { + VoiceActivityTimeout.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.StreamingRecognitionConfig.VoiceActivityTimeout) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.StreamingRecognitionConfig.VoiceActivityTimeout(); if (object.speechStartTimeout != null) { if (typeof object.speechStartTimeout !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.StreamingRecognitionConfig.VoiceActivityTimeout.speechStartTimeout: object expected"); - message.speechStartTimeout = $root.google.protobuf.Duration.fromObject(object.speechStartTimeout); + message.speechStartTimeout = $root.google.protobuf.Duration.fromObject(object.speechStartTimeout, long + 1); } if (object.speechEndTimeout != null) { if (typeof object.speechEndTimeout !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.StreamingRecognitionConfig.VoiceActivityTimeout.speechEndTimeout: object expected"); - message.speechEndTimeout = $root.google.protobuf.Duration.fromObject(object.speechEndTimeout); + message.speechEndTimeout = $root.google.protobuf.Duration.fromObject(object.speechEndTimeout, long + 1); } return message; }; @@ -13765,7 +14317,7 @@ this.speechContexts = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -14042,9 +14594,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RecognitionConfig.decode = function decode(reader, length, error) { + RecognitionConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.RecognitionConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -14086,17 +14642,17 @@ break; } case 20: { - message.adaptation = $root.google.cloud.speech.v1p1beta1.SpeechAdaptation.decode(reader, reader.uint32()); + message.adaptation = $root.google.cloud.speech.v1p1beta1.SpeechAdaptation.decode(reader, reader.uint32(), undefined, long + 1); break; } case 24: { - message.transcriptNormalization = $root.google.cloud.speech.v1p1beta1.TranscriptNormalization.decode(reader, reader.uint32()); + message.transcriptNormalization = $root.google.cloud.speech.v1p1beta1.TranscriptNormalization.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { if (!(message.speechContexts && message.speechContexts.length)) message.speechContexts = []; - message.speechContexts.push($root.google.cloud.speech.v1p1beta1.SpeechContext.decode(reader, reader.uint32())); + message.speechContexts.push($root.google.cloud.speech.v1p1beta1.SpeechContext.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 8: { @@ -14112,11 +14668,11 @@ break; } case 22: { - message.enableSpokenPunctuation = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.enableSpokenPunctuation = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 23: { - message.enableSpokenEmojis = $root.google.protobuf.BoolValue.decode(reader, reader.uint32()); + message.enableSpokenEmojis = $root.google.protobuf.BoolValue.decode(reader, reader.uint32(), undefined, long + 1); break; } case 16: { @@ -14128,11 +14684,11 @@ break; } case 19: { - message.diarizationConfig = $root.google.cloud.speech.v1p1beta1.SpeakerDiarizationConfig.decode(reader, reader.uint32()); + message.diarizationConfig = $root.google.cloud.speech.v1p1beta1.SpeakerDiarizationConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { - message.metadata = $root.google.cloud.speech.v1p1beta1.RecognitionMetadata.decode(reader, reader.uint32()); + message.metadata = $root.google.cloud.speech.v1p1beta1.RecognitionMetadata.decode(reader, reader.uint32(), undefined, long + 1); break; } case 13: { @@ -14144,7 +14700,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -14175,9 +14731,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RecognitionConfig.verify = function verify(message) { + RecognitionConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.encoding != null && message.hasOwnProperty("encoding")) switch (message.encoding) { default: @@ -14221,12 +14781,12 @@ if (typeof message.profanityFilter !== "boolean") return "profanityFilter: boolean expected"; if (message.adaptation != null && message.hasOwnProperty("adaptation")) { - var error = $root.google.cloud.speech.v1p1beta1.SpeechAdaptation.verify(message.adaptation); + var error = $root.google.cloud.speech.v1p1beta1.SpeechAdaptation.verify(message.adaptation, long + 1); if (error) return "adaptation." + error; } if (message.transcriptNormalization != null && message.hasOwnProperty("transcriptNormalization")) { - var error = $root.google.cloud.speech.v1p1beta1.TranscriptNormalization.verify(message.transcriptNormalization); + var error = $root.google.cloud.speech.v1p1beta1.TranscriptNormalization.verify(message.transcriptNormalization, long + 1); if (error) return "transcriptNormalization." + error; } @@ -14234,7 +14794,7 @@ if (!Array.isArray(message.speechContexts)) return "speechContexts: array expected"; for (var i = 0; i < message.speechContexts.length; ++i) { - var error = $root.google.cloud.speech.v1p1beta1.SpeechContext.verify(message.speechContexts[i]); + var error = $root.google.cloud.speech.v1p1beta1.SpeechContext.verify(message.speechContexts[i], long + 1); if (error) return "speechContexts." + error; } @@ -14249,12 +14809,12 @@ if (typeof message.enableAutomaticPunctuation !== "boolean") return "enableAutomaticPunctuation: boolean expected"; if (message.enableSpokenPunctuation != null && message.hasOwnProperty("enableSpokenPunctuation")) { - var error = $root.google.protobuf.BoolValue.verify(message.enableSpokenPunctuation); + var error = $root.google.protobuf.BoolValue.verify(message.enableSpokenPunctuation, long + 1); if (error) return "enableSpokenPunctuation." + error; } if (message.enableSpokenEmojis != null && message.hasOwnProperty("enableSpokenEmojis")) { - var error = $root.google.protobuf.BoolValue.verify(message.enableSpokenEmojis); + var error = $root.google.protobuf.BoolValue.verify(message.enableSpokenEmojis, long + 1); if (error) return "enableSpokenEmojis." + error; } @@ -14265,12 +14825,12 @@ if (!$util.isInteger(message.diarizationSpeakerCount)) return "diarizationSpeakerCount: integer expected"; if (message.diarizationConfig != null && message.hasOwnProperty("diarizationConfig")) { - var error = $root.google.cloud.speech.v1p1beta1.SpeakerDiarizationConfig.verify(message.diarizationConfig); + var error = $root.google.cloud.speech.v1p1beta1.SpeakerDiarizationConfig.verify(message.diarizationConfig, long + 1); if (error) return "diarizationConfig." + error; } if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.google.cloud.speech.v1p1beta1.RecognitionMetadata.verify(message.metadata); + var error = $root.google.cloud.speech.v1p1beta1.RecognitionMetadata.verify(message.metadata, long + 1); if (error) return "metadata." + error; } @@ -14291,9 +14851,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.RecognitionConfig} RecognitionConfig */ - RecognitionConfig.fromObject = function fromObject(object) { + RecognitionConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.RecognitionConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.RecognitionConfig(); switch (object.encoding) { default: @@ -14369,12 +14933,12 @@ if (object.adaptation != null) { if (typeof object.adaptation !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.RecognitionConfig.adaptation: object expected"); - message.adaptation = $root.google.cloud.speech.v1p1beta1.SpeechAdaptation.fromObject(object.adaptation); + message.adaptation = $root.google.cloud.speech.v1p1beta1.SpeechAdaptation.fromObject(object.adaptation, long + 1); } if (object.transcriptNormalization != null) { if (typeof object.transcriptNormalization !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.RecognitionConfig.transcriptNormalization: object expected"); - message.transcriptNormalization = $root.google.cloud.speech.v1p1beta1.TranscriptNormalization.fromObject(object.transcriptNormalization); + message.transcriptNormalization = $root.google.cloud.speech.v1p1beta1.TranscriptNormalization.fromObject(object.transcriptNormalization, long + 1); } if (object.speechContexts) { if (!Array.isArray(object.speechContexts)) @@ -14383,7 +14947,7 @@ for (var i = 0; i < object.speechContexts.length; ++i) { if (typeof object.speechContexts[i] !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.RecognitionConfig.speechContexts: object expected"); - message.speechContexts[i] = $root.google.cloud.speech.v1p1beta1.SpeechContext.fromObject(object.speechContexts[i]); + message.speechContexts[i] = $root.google.cloud.speech.v1p1beta1.SpeechContext.fromObject(object.speechContexts[i], long + 1); } } if (object.enableWordTimeOffsets != null) @@ -14395,12 +14959,12 @@ if (object.enableSpokenPunctuation != null) { if (typeof object.enableSpokenPunctuation !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.RecognitionConfig.enableSpokenPunctuation: object expected"); - message.enableSpokenPunctuation = $root.google.protobuf.BoolValue.fromObject(object.enableSpokenPunctuation); + message.enableSpokenPunctuation = $root.google.protobuf.BoolValue.fromObject(object.enableSpokenPunctuation, long + 1); } if (object.enableSpokenEmojis != null) { if (typeof object.enableSpokenEmojis !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.RecognitionConfig.enableSpokenEmojis: object expected"); - message.enableSpokenEmojis = $root.google.protobuf.BoolValue.fromObject(object.enableSpokenEmojis); + message.enableSpokenEmojis = $root.google.protobuf.BoolValue.fromObject(object.enableSpokenEmojis, long + 1); } if (object.enableSpeakerDiarization != null) message.enableSpeakerDiarization = Boolean(object.enableSpeakerDiarization); @@ -14409,12 +14973,12 @@ if (object.diarizationConfig != null) { if (typeof object.diarizationConfig !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.RecognitionConfig.diarizationConfig: object expected"); - message.diarizationConfig = $root.google.cloud.speech.v1p1beta1.SpeakerDiarizationConfig.fromObject(object.diarizationConfig); + message.diarizationConfig = $root.google.cloud.speech.v1p1beta1.SpeakerDiarizationConfig.fromObject(object.diarizationConfig, long + 1); } if (object.metadata != null) { if (typeof object.metadata !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.RecognitionConfig.metadata: object expected"); - message.metadata = $root.google.cloud.speech.v1p1beta1.RecognitionMetadata.fromObject(object.metadata); + message.metadata = $root.google.cloud.speech.v1p1beta1.RecognitionMetadata.fromObject(object.metadata, long + 1); } if (object.model != null) message.model = String(object.model); @@ -14599,7 +15163,7 @@ function SpeakerDiarizationConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -14694,9 +15258,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SpeakerDiarizationConfig.decode = function decode(reader, length, error) { + SpeakerDiarizationConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.SpeakerDiarizationConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -14720,7 +15288,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -14751,9 +15319,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SpeakerDiarizationConfig.verify = function verify(message) { + SpeakerDiarizationConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.enableSpeakerDiarization != null && message.hasOwnProperty("enableSpeakerDiarization")) if (typeof message.enableSpeakerDiarization !== "boolean") return "enableSpeakerDiarization: boolean expected"; @@ -14777,9 +15349,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.SpeakerDiarizationConfig} SpeakerDiarizationConfig */ - SpeakerDiarizationConfig.fromObject = function fromObject(object) { + SpeakerDiarizationConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.SpeakerDiarizationConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.SpeakerDiarizationConfig(); if (object.enableSpeakerDiarization != null) message.enableSpeakerDiarization = Boolean(object.enableSpeakerDiarization); @@ -14879,7 +15455,7 @@ function RecognitionMetadata(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -15024,9 +15600,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RecognitionMetadata.decode = function decode(reader, length, error) { + RecognitionMetadata.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.RecognitionMetadata(); while (reader.pos < end) { var tag = reader.uint32(); @@ -15070,7 +15650,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -15101,9 +15681,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RecognitionMetadata.verify = function verify(message) { + RecognitionMetadata.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.interactionType != null && message.hasOwnProperty("interactionType")) switch (message.interactionType) { default: @@ -15177,9 +15761,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.RecognitionMetadata} RecognitionMetadata */ - RecognitionMetadata.fromObject = function fromObject(object) { + RecognitionMetadata.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.RecognitionMetadata) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.RecognitionMetadata(); switch (object.interactionType) { default: @@ -15514,7 +16102,7 @@ this.phrases = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -15590,9 +16178,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SpeechContext.decode = function decode(reader, length, error) { + SpeechContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.SpeechContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -15610,7 +16202,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -15641,9 +16233,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SpeechContext.verify = function verify(message) { + SpeechContext.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.phrases != null && message.hasOwnProperty("phrases")) { if (!Array.isArray(message.phrases)) return "phrases: array expected"; @@ -15665,9 +16261,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.SpeechContext} SpeechContext */ - SpeechContext.fromObject = function fromObject(object) { + SpeechContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.SpeechContext) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.SpeechContext(); if (object.phrases) { if (!Array.isArray(object.phrases)) @@ -15758,7 +16358,7 @@ function RecognitionAudio(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -15847,9 +16447,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RecognitionAudio.decode = function decode(reader, length, error) { + RecognitionAudio.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.RecognitionAudio(); while (reader.pos < end) { var tag = reader.uint32(); @@ -15865,7 +16469,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -15896,9 +16500,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RecognitionAudio.verify = function verify(message) { + RecognitionAudio.verify = function verify(message, 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.content != null && message.hasOwnProperty("content")) { properties.audioSource = 1; @@ -15923,9 +16531,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.RecognitionAudio} RecognitionAudio */ - RecognitionAudio.fromObject = function fromObject(object) { + RecognitionAudio.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.RecognitionAudio) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.RecognitionAudio(); if (object.content != null) if (typeof object.content === "string") @@ -16017,7 +16629,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]]; } @@ -16123,9 +16735,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RecognizeResponse.decode = function decode(reader, length, error) { + RecognizeResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.RecognizeResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -16135,15 +16751,15 @@ case 2: { if (!(message.results && message.results.length)) message.results = []; - message.results.push($root.google.cloud.speech.v1p1beta1.SpeechRecognitionResult.decode(reader, reader.uint32())); + message.results.push($root.google.cloud.speech.v1p1beta1.SpeechRecognitionResult.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { - message.totalBilledTime = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.totalBilledTime = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { - message.speechAdaptationInfo = $root.google.cloud.speech.v1p1beta1.SpeechAdaptationInfo.decode(reader, reader.uint32()); + message.speechAdaptationInfo = $root.google.cloud.speech.v1p1beta1.SpeechAdaptationInfo.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { @@ -16155,7 +16771,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -16186,25 +16802,29 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RecognizeResponse.verify = function verify(message) { + RecognizeResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.results != null && message.hasOwnProperty("results")) { if (!Array.isArray(message.results)) return "results: array expected"; for (var i = 0; i < message.results.length; ++i) { - var error = $root.google.cloud.speech.v1p1beta1.SpeechRecognitionResult.verify(message.results[i]); + var error = $root.google.cloud.speech.v1p1beta1.SpeechRecognitionResult.verify(message.results[i], long + 1); if (error) return "results." + error; } } if (message.totalBilledTime != null && message.hasOwnProperty("totalBilledTime")) { - var error = $root.google.protobuf.Duration.verify(message.totalBilledTime); + var error = $root.google.protobuf.Duration.verify(message.totalBilledTime, long + 1); if (error) return "totalBilledTime." + error; } if (message.speechAdaptationInfo != null && message.hasOwnProperty("speechAdaptationInfo")) { - var error = $root.google.cloud.speech.v1p1beta1.SpeechAdaptationInfo.verify(message.speechAdaptationInfo); + var error = $root.google.cloud.speech.v1p1beta1.SpeechAdaptationInfo.verify(message.speechAdaptationInfo, long + 1); if (error) return "speechAdaptationInfo." + error; } @@ -16225,9 +16845,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.RecognizeResponse} RecognizeResponse */ - RecognizeResponse.fromObject = function fromObject(object) { + RecognizeResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.RecognizeResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.RecognizeResponse(); if (object.results) { if (!Array.isArray(object.results)) @@ -16236,18 +16860,18 @@ for (var i = 0; i < object.results.length; ++i) { if (typeof object.results[i] !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.RecognizeResponse.results: object expected"); - message.results[i] = $root.google.cloud.speech.v1p1beta1.SpeechRecognitionResult.fromObject(object.results[i]); + message.results[i] = $root.google.cloud.speech.v1p1beta1.SpeechRecognitionResult.fromObject(object.results[i], long + 1); } } if (object.totalBilledTime != null) { if (typeof object.totalBilledTime !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.RecognizeResponse.totalBilledTime: object expected"); - message.totalBilledTime = $root.google.protobuf.Duration.fromObject(object.totalBilledTime); + message.totalBilledTime = $root.google.protobuf.Duration.fromObject(object.totalBilledTime, long + 1); } if (object.speechAdaptationInfo != null) { if (typeof object.speechAdaptationInfo !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.RecognizeResponse.speechAdaptationInfo: object expected"); - message.speechAdaptationInfo = $root.google.cloud.speech.v1p1beta1.SpeechAdaptationInfo.fromObject(object.speechAdaptationInfo); + message.speechAdaptationInfo = $root.google.cloud.speech.v1p1beta1.SpeechAdaptationInfo.fromObject(object.speechAdaptationInfo, long + 1); } if (object.requestId != null) if ($util.Long) @@ -16362,7 +16986,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]]; } @@ -16478,9 +17102,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LongRunningRecognizeResponse.decode = function decode(reader, length, error) { + LongRunningRecognizeResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.LongRunningRecognizeResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -16490,23 +17118,23 @@ case 2: { if (!(message.results && message.results.length)) message.results = []; - message.results.push($root.google.cloud.speech.v1p1beta1.SpeechRecognitionResult.decode(reader, reader.uint32())); + message.results.push($root.google.cloud.speech.v1p1beta1.SpeechRecognitionResult.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { - message.totalBilledTime = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.totalBilledTime = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { - message.outputConfig = $root.google.cloud.speech.v1p1beta1.TranscriptOutputConfig.decode(reader, reader.uint32()); + message.outputConfig = $root.google.cloud.speech.v1p1beta1.TranscriptOutputConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { - message.outputError = $root.google.rpc.Status.decode(reader, reader.uint32()); + message.outputError = $root.google.rpc.Status.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { - message.speechAdaptationInfo = $root.google.cloud.speech.v1p1beta1.SpeechAdaptationInfo.decode(reader, reader.uint32()); + message.speechAdaptationInfo = $root.google.cloud.speech.v1p1beta1.SpeechAdaptationInfo.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { @@ -16514,7 +17142,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -16545,35 +17173,39 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LongRunningRecognizeResponse.verify = function verify(message) { + LongRunningRecognizeResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.results != null && message.hasOwnProperty("results")) { if (!Array.isArray(message.results)) return "results: array expected"; for (var i = 0; i < message.results.length; ++i) { - var error = $root.google.cloud.speech.v1p1beta1.SpeechRecognitionResult.verify(message.results[i]); + var error = $root.google.cloud.speech.v1p1beta1.SpeechRecognitionResult.verify(message.results[i], long + 1); if (error) return "results." + error; } } if (message.totalBilledTime != null && message.hasOwnProperty("totalBilledTime")) { - var error = $root.google.protobuf.Duration.verify(message.totalBilledTime); + var error = $root.google.protobuf.Duration.verify(message.totalBilledTime, long + 1); if (error) return "totalBilledTime." + error; } if (message.outputConfig != null && message.hasOwnProperty("outputConfig")) { - var error = $root.google.cloud.speech.v1p1beta1.TranscriptOutputConfig.verify(message.outputConfig); + var error = $root.google.cloud.speech.v1p1beta1.TranscriptOutputConfig.verify(message.outputConfig, long + 1); if (error) return "outputConfig." + error; } if (message.outputError != null && message.hasOwnProperty("outputError")) { - var error = $root.google.rpc.Status.verify(message.outputError); + var error = $root.google.rpc.Status.verify(message.outputError, long + 1); if (error) return "outputError." + error; } if (message.speechAdaptationInfo != null && message.hasOwnProperty("speechAdaptationInfo")) { - var error = $root.google.cloud.speech.v1p1beta1.SpeechAdaptationInfo.verify(message.speechAdaptationInfo); + var error = $root.google.cloud.speech.v1p1beta1.SpeechAdaptationInfo.verify(message.speechAdaptationInfo, long + 1); if (error) return "speechAdaptationInfo." + error; } @@ -16591,9 +17223,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.LongRunningRecognizeResponse} LongRunningRecognizeResponse */ - LongRunningRecognizeResponse.fromObject = function fromObject(object) { + LongRunningRecognizeResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.LongRunningRecognizeResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.LongRunningRecognizeResponse(); if (object.results) { if (!Array.isArray(object.results)) @@ -16602,28 +17238,28 @@ for (var i = 0; i < object.results.length; ++i) { if (typeof object.results[i] !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.LongRunningRecognizeResponse.results: object expected"); - message.results[i] = $root.google.cloud.speech.v1p1beta1.SpeechRecognitionResult.fromObject(object.results[i]); + message.results[i] = $root.google.cloud.speech.v1p1beta1.SpeechRecognitionResult.fromObject(object.results[i], long + 1); } } if (object.totalBilledTime != null) { if (typeof object.totalBilledTime !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.LongRunningRecognizeResponse.totalBilledTime: object expected"); - message.totalBilledTime = $root.google.protobuf.Duration.fromObject(object.totalBilledTime); + message.totalBilledTime = $root.google.protobuf.Duration.fromObject(object.totalBilledTime, long + 1); } if (object.outputConfig != null) { if (typeof object.outputConfig !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.LongRunningRecognizeResponse.outputConfig: object expected"); - message.outputConfig = $root.google.cloud.speech.v1p1beta1.TranscriptOutputConfig.fromObject(object.outputConfig); + message.outputConfig = $root.google.cloud.speech.v1p1beta1.TranscriptOutputConfig.fromObject(object.outputConfig, long + 1); } if (object.outputError != null) { if (typeof object.outputError !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.LongRunningRecognizeResponse.outputError: object expected"); - message.outputError = $root.google.rpc.Status.fromObject(object.outputError); + message.outputError = $root.google.rpc.Status.fromObject(object.outputError, long + 1); } if (object.speechAdaptationInfo != null) { if (typeof object.speechAdaptationInfo !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.LongRunningRecognizeResponse.speechAdaptationInfo: object expected"); - message.speechAdaptationInfo = $root.google.cloud.speech.v1p1beta1.SpeechAdaptationInfo.fromObject(object.speechAdaptationInfo); + message.speechAdaptationInfo = $root.google.cloud.speech.v1p1beta1.SpeechAdaptationInfo.fromObject(object.speechAdaptationInfo, long + 1); } if (object.requestId != null) if ($util.Long) @@ -16737,7 +17373,7 @@ function LongRunningRecognizeMetadata(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -16842,9 +17478,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LongRunningRecognizeMetadata.decode = function decode(reader, length, error) { + LongRunningRecognizeMetadata.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.LongRunningRecognizeMetadata(); while (reader.pos < end) { var tag = reader.uint32(); @@ -16856,11 +17496,11 @@ break; } case 2: { - 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 3: { - message.lastUpdateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.lastUpdateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { @@ -16868,11 +17508,11 @@ break; } case 5: { - message.outputConfig = $root.google.cloud.speech.v1p1beta1.TranscriptOutputConfig.decode(reader, reader.uint32()); + message.outputConfig = $root.google.cloud.speech.v1p1beta1.TranscriptOutputConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -16903,19 +17543,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LongRunningRecognizeMetadata.verify = function verify(message) { + LongRunningRecognizeMetadata.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.progressPercent != null && message.hasOwnProperty("progressPercent")) if (!$util.isInteger(message.progressPercent)) return "progressPercent: integer 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.lastUpdateTime != null && message.hasOwnProperty("lastUpdateTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.lastUpdateTime); + var error = $root.google.protobuf.Timestamp.verify(message.lastUpdateTime, long + 1); if (error) return "lastUpdateTime." + error; } @@ -16923,7 +17567,7 @@ if (!$util.isString(message.uri)) return "uri: string expected"; if (message.outputConfig != null && message.hasOwnProperty("outputConfig")) { - var error = $root.google.cloud.speech.v1p1beta1.TranscriptOutputConfig.verify(message.outputConfig); + var error = $root.google.cloud.speech.v1p1beta1.TranscriptOutputConfig.verify(message.outputConfig, long + 1); if (error) return "outputConfig." + error; } @@ -16938,28 +17582,32 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.LongRunningRecognizeMetadata} LongRunningRecognizeMetadata */ - LongRunningRecognizeMetadata.fromObject = function fromObject(object) { + LongRunningRecognizeMetadata.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.LongRunningRecognizeMetadata) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.LongRunningRecognizeMetadata(); if (object.progressPercent != null) message.progressPercent = object.progressPercent | 0; if (object.startTime != null) { if (typeof object.startTime !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.LongRunningRecognizeMetadata.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.lastUpdateTime != null) { if (typeof object.lastUpdateTime !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.LongRunningRecognizeMetadata.lastUpdateTime: object expected"); - message.lastUpdateTime = $root.google.protobuf.Timestamp.fromObject(object.lastUpdateTime); + message.lastUpdateTime = $root.google.protobuf.Timestamp.fromObject(object.lastUpdateTime, long + 1); } if (object.uri != null) message.uri = String(object.uri); if (object.outputConfig != null) { if (typeof object.outputConfig !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.LongRunningRecognizeMetadata.outputConfig: object expected"); - message.outputConfig = $root.google.cloud.speech.v1p1beta1.TranscriptOutputConfig.fromObject(object.outputConfig); + message.outputConfig = $root.google.cloud.speech.v1p1beta1.TranscriptOutputConfig.fromObject(object.outputConfig, long + 1); } return message; }; @@ -17053,7 +17701,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]]; } @@ -17179,9 +17827,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - StreamingRecognizeResponse.decode = function decode(reader, length, error) { + StreamingRecognizeResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.StreamingRecognizeResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -17189,13 +17841,13 @@ break; switch (tag >>> 3) { case 1: { - message.error = $root.google.rpc.Status.decode(reader, reader.uint32()); + message.error = $root.google.rpc.Status.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { if (!(message.results && message.results.length)) message.results = []; - message.results.push($root.google.cloud.speech.v1p1beta1.StreamingRecognitionResult.decode(reader, reader.uint32())); + message.results.push($root.google.cloud.speech.v1p1beta1.StreamingRecognitionResult.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 4: { @@ -17203,15 +17855,15 @@ break; } case 8: { - message.speechEventTime = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.speechEventTime = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.totalBilledTime = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.totalBilledTime = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { - message.speechAdaptationInfo = $root.google.cloud.speech.v1p1beta1.SpeechAdaptationInfo.decode(reader, reader.uint32()); + message.speechAdaptationInfo = $root.google.cloud.speech.v1p1beta1.SpeechAdaptationInfo.decode(reader, reader.uint32(), undefined, long + 1); break; } case 10: { @@ -17219,7 +17871,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -17250,11 +17902,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - StreamingRecognizeResponse.verify = function verify(message) { + StreamingRecognizeResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.error != null && message.hasOwnProperty("error")) { - var error = $root.google.rpc.Status.verify(message.error); + var error = $root.google.rpc.Status.verify(message.error, long + 1); if (error) return "error." + error; } @@ -17262,7 +17918,7 @@ if (!Array.isArray(message.results)) return "results: array expected"; for (var i = 0; i < message.results.length; ++i) { - var error = $root.google.cloud.speech.v1p1beta1.StreamingRecognitionResult.verify(message.results[i]); + var error = $root.google.cloud.speech.v1p1beta1.StreamingRecognitionResult.verify(message.results[i], long + 1); if (error) return "results." + error; } @@ -17279,17 +17935,17 @@ break; } if (message.speechEventTime != null && message.hasOwnProperty("speechEventTime")) { - var error = $root.google.protobuf.Duration.verify(message.speechEventTime); + var error = $root.google.protobuf.Duration.verify(message.speechEventTime, long + 1); if (error) return "speechEventTime." + error; } if (message.totalBilledTime != null && message.hasOwnProperty("totalBilledTime")) { - var error = $root.google.protobuf.Duration.verify(message.totalBilledTime); + var error = $root.google.protobuf.Duration.verify(message.totalBilledTime, long + 1); if (error) return "totalBilledTime." + error; } if (message.speechAdaptationInfo != null && message.hasOwnProperty("speechAdaptationInfo")) { - var error = $root.google.cloud.speech.v1p1beta1.SpeechAdaptationInfo.verify(message.speechAdaptationInfo); + var error = $root.google.cloud.speech.v1p1beta1.SpeechAdaptationInfo.verify(message.speechAdaptationInfo, long + 1); if (error) return "speechAdaptationInfo." + error; } @@ -17307,14 +17963,18 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.StreamingRecognizeResponse} StreamingRecognizeResponse */ - StreamingRecognizeResponse.fromObject = function fromObject(object) { + StreamingRecognizeResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.StreamingRecognizeResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.StreamingRecognizeResponse(); if (object.error != null) { if (typeof object.error !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.StreamingRecognizeResponse.error: object expected"); - message.error = $root.google.rpc.Status.fromObject(object.error); + message.error = $root.google.rpc.Status.fromObject(object.error, long + 1); } if (object.results) { if (!Array.isArray(object.results)) @@ -17323,7 +17983,7 @@ for (var i = 0; i < object.results.length; ++i) { if (typeof object.results[i] !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.StreamingRecognizeResponse.results: object expected"); - message.results[i] = $root.google.cloud.speech.v1p1beta1.StreamingRecognitionResult.fromObject(object.results[i]); + message.results[i] = $root.google.cloud.speech.v1p1beta1.StreamingRecognitionResult.fromObject(object.results[i], long + 1); } } switch (object.speechEventType) { @@ -17357,17 +18017,17 @@ if (object.speechEventTime != null) { if (typeof object.speechEventTime !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.StreamingRecognizeResponse.speechEventTime: object expected"); - message.speechEventTime = $root.google.protobuf.Duration.fromObject(object.speechEventTime); + message.speechEventTime = $root.google.protobuf.Duration.fromObject(object.speechEventTime, long + 1); } if (object.totalBilledTime != null) { if (typeof object.totalBilledTime !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.StreamingRecognizeResponse.totalBilledTime: object expected"); - message.totalBilledTime = $root.google.protobuf.Duration.fromObject(object.totalBilledTime); + message.totalBilledTime = $root.google.protobuf.Duration.fromObject(object.totalBilledTime, long + 1); } if (object.speechAdaptationInfo != null) { if (typeof object.speechAdaptationInfo !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.StreamingRecognizeResponse.speechAdaptationInfo: object expected"); - message.speechAdaptationInfo = $root.google.cloud.speech.v1p1beta1.SpeechAdaptationInfo.fromObject(object.speechAdaptationInfo); + message.speechAdaptationInfo = $root.google.cloud.speech.v1p1beta1.SpeechAdaptationInfo.fromObject(object.speechAdaptationInfo, long + 1); } if (object.requestId != null) if ($util.Long) @@ -17506,7 +18166,7 @@ this.alternatives = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -17622,9 +18282,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - StreamingRecognitionResult.decode = function decode(reader, length, error) { + StreamingRecognitionResult.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.StreamingRecognitionResult(); while (reader.pos < end) { var tag = reader.uint32(); @@ -17634,7 +18298,7 @@ case 1: { if (!(message.alternatives && message.alternatives.length)) message.alternatives = []; - message.alternatives.push($root.google.cloud.speech.v1p1beta1.SpeechRecognitionAlternative.decode(reader, reader.uint32())); + message.alternatives.push($root.google.cloud.speech.v1p1beta1.SpeechRecognitionAlternative.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -17646,7 +18310,7 @@ break; } case 4: { - message.resultEndTime = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.resultEndTime = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { @@ -17658,7 +18322,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -17689,14 +18353,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - StreamingRecognitionResult.verify = function verify(message) { + StreamingRecognitionResult.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.alternatives != null && message.hasOwnProperty("alternatives")) { if (!Array.isArray(message.alternatives)) return "alternatives: array expected"; for (var i = 0; i < message.alternatives.length; ++i) { - var error = $root.google.cloud.speech.v1p1beta1.SpeechRecognitionAlternative.verify(message.alternatives[i]); + var error = $root.google.cloud.speech.v1p1beta1.SpeechRecognitionAlternative.verify(message.alternatives[i], long + 1); if (error) return "alternatives." + error; } @@ -17708,7 +18376,7 @@ if (typeof message.stability !== "number") return "stability: number expected"; if (message.resultEndTime != null && message.hasOwnProperty("resultEndTime")) { - var error = $root.google.protobuf.Duration.verify(message.resultEndTime); + var error = $root.google.protobuf.Duration.verify(message.resultEndTime, long + 1); if (error) return "resultEndTime." + error; } @@ -17729,9 +18397,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.StreamingRecognitionResult} StreamingRecognitionResult */ - StreamingRecognitionResult.fromObject = function fromObject(object) { + StreamingRecognitionResult.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.StreamingRecognitionResult) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.StreamingRecognitionResult(); if (object.alternatives) { if (!Array.isArray(object.alternatives)) @@ -17740,7 +18412,7 @@ for (var i = 0; i < object.alternatives.length; ++i) { if (typeof object.alternatives[i] !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.StreamingRecognitionResult.alternatives: object expected"); - message.alternatives[i] = $root.google.cloud.speech.v1p1beta1.SpeechRecognitionAlternative.fromObject(object.alternatives[i]); + message.alternatives[i] = $root.google.cloud.speech.v1p1beta1.SpeechRecognitionAlternative.fromObject(object.alternatives[i], long + 1); } } if (object.isFinal != null) @@ -17750,7 +18422,7 @@ if (object.resultEndTime != null) { if (typeof object.resultEndTime !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.StreamingRecognitionResult.resultEndTime: object expected"); - message.resultEndTime = $root.google.protobuf.Duration.fromObject(object.resultEndTime); + message.resultEndTime = $root.google.protobuf.Duration.fromObject(object.resultEndTime, long + 1); } if (object.channelTag != null) message.channelTag = object.channelTag | 0; @@ -17852,7 +18524,7 @@ this.alternatives = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -17948,9 +18620,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SpeechRecognitionResult.decode = function decode(reader, length, error) { + SpeechRecognitionResult.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.SpeechRecognitionResult(); while (reader.pos < end) { var tag = reader.uint32(); @@ -17960,7 +18636,7 @@ case 1: { if (!(message.alternatives && message.alternatives.length)) message.alternatives = []; - message.alternatives.push($root.google.cloud.speech.v1p1beta1.SpeechRecognitionAlternative.decode(reader, reader.uint32())); + message.alternatives.push($root.google.cloud.speech.v1p1beta1.SpeechRecognitionAlternative.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -17968,7 +18644,7 @@ break; } case 4: { - message.resultEndTime = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.resultEndTime = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { @@ -17976,7 +18652,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -18007,14 +18683,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SpeechRecognitionResult.verify = function verify(message) { + SpeechRecognitionResult.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.alternatives != null && message.hasOwnProperty("alternatives")) { if (!Array.isArray(message.alternatives)) return "alternatives: array expected"; for (var i = 0; i < message.alternatives.length; ++i) { - var error = $root.google.cloud.speech.v1p1beta1.SpeechRecognitionAlternative.verify(message.alternatives[i]); + var error = $root.google.cloud.speech.v1p1beta1.SpeechRecognitionAlternative.verify(message.alternatives[i], long + 1); if (error) return "alternatives." + error; } @@ -18023,7 +18703,7 @@ if (!$util.isInteger(message.channelTag)) return "channelTag: integer expected"; if (message.resultEndTime != null && message.hasOwnProperty("resultEndTime")) { - var error = $root.google.protobuf.Duration.verify(message.resultEndTime); + var error = $root.google.protobuf.Duration.verify(message.resultEndTime, long + 1); if (error) return "resultEndTime." + error; } @@ -18041,9 +18721,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.SpeechRecognitionResult} SpeechRecognitionResult */ - SpeechRecognitionResult.fromObject = function fromObject(object) { + SpeechRecognitionResult.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.SpeechRecognitionResult) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.SpeechRecognitionResult(); if (object.alternatives) { if (!Array.isArray(object.alternatives)) @@ -18052,7 +18736,7 @@ for (var i = 0; i < object.alternatives.length; ++i) { if (typeof object.alternatives[i] !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.SpeechRecognitionResult.alternatives: object expected"); - message.alternatives[i] = $root.google.cloud.speech.v1p1beta1.SpeechRecognitionAlternative.fromObject(object.alternatives[i]); + message.alternatives[i] = $root.google.cloud.speech.v1p1beta1.SpeechRecognitionAlternative.fromObject(object.alternatives[i], long + 1); } } if (object.channelTag != null) @@ -18060,7 +18744,7 @@ if (object.resultEndTime != null) { if (typeof object.resultEndTime !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.SpeechRecognitionResult.resultEndTime: object expected"); - message.resultEndTime = $root.google.protobuf.Duration.fromObject(object.resultEndTime); + message.resultEndTime = $root.google.protobuf.Duration.fromObject(object.resultEndTime, long + 1); } if (object.languageCode != null) message.languageCode = String(object.languageCode); @@ -18153,7 +18837,7 @@ this.words = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -18239,9 +18923,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SpeechRecognitionAlternative.decode = function decode(reader, length, error) { + SpeechRecognitionAlternative.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.SpeechRecognitionAlternative(); while (reader.pos < end) { var tag = reader.uint32(); @@ -18259,11 +18947,11 @@ case 3: { if (!(message.words && message.words.length)) message.words = []; - message.words.push($root.google.cloud.speech.v1p1beta1.WordInfo.decode(reader, reader.uint32())); + message.words.push($root.google.cloud.speech.v1p1beta1.WordInfo.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -18294,9 +18982,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SpeechRecognitionAlternative.verify = function verify(message) { + SpeechRecognitionAlternative.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.transcript != null && message.hasOwnProperty("transcript")) if (!$util.isString(message.transcript)) return "transcript: string expected"; @@ -18307,7 +18999,7 @@ if (!Array.isArray(message.words)) return "words: array expected"; for (var i = 0; i < message.words.length; ++i) { - var error = $root.google.cloud.speech.v1p1beta1.WordInfo.verify(message.words[i]); + var error = $root.google.cloud.speech.v1p1beta1.WordInfo.verify(message.words[i], long + 1); if (error) return "words." + error; } @@ -18323,9 +19015,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.SpeechRecognitionAlternative} SpeechRecognitionAlternative */ - SpeechRecognitionAlternative.fromObject = function fromObject(object) { + SpeechRecognitionAlternative.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.SpeechRecognitionAlternative) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.SpeechRecognitionAlternative(); if (object.transcript != null) message.transcript = String(object.transcript); @@ -18338,7 +19034,7 @@ for (var i = 0; i < object.words.length; ++i) { if (typeof object.words[i] !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.SpeechRecognitionAlternative.words: object expected"); - message.words[i] = $root.google.cloud.speech.v1p1beta1.WordInfo.fromObject(object.words[i]); + message.words[i] = $root.google.cloud.speech.v1p1beta1.WordInfo.fromObject(object.words[i], long + 1); } } return message; @@ -18429,7 +19125,7 @@ function WordInfo(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -18544,9 +19240,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - WordInfo.decode = function decode(reader, length, error) { + WordInfo.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.WordInfo(); while (reader.pos < end) { var tag = reader.uint32(); @@ -18554,11 +19254,11 @@ break; switch (tag >>> 3) { case 1: { - message.startTime = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.startTime = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.endTime = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.endTime = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -18578,7 +19278,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -18609,16 +19309,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - WordInfo.verify = function verify(message) { + WordInfo.verify = function verify(message, long) { if (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.Duration.verify(message.startTime); + var error = $root.google.protobuf.Duration.verify(message.startTime, long + 1); if (error) return "startTime." + error; } if (message.endTime != null && message.hasOwnProperty("endTime")) { - var error = $root.google.protobuf.Duration.verify(message.endTime); + var error = $root.google.protobuf.Duration.verify(message.endTime, long + 1); if (error) return "endTime." + error; } @@ -18645,19 +19349,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.WordInfo} WordInfo */ - WordInfo.fromObject = function fromObject(object) { + WordInfo.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.WordInfo) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.WordInfo(); if (object.startTime != null) { if (typeof object.startTime !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.WordInfo.startTime: object expected"); - message.startTime = $root.google.protobuf.Duration.fromObject(object.startTime); + message.startTime = $root.google.protobuf.Duration.fromObject(object.startTime, long + 1); } if (object.endTime != null) { if (typeof object.endTime !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.WordInfo.endTime: object expected"); - message.endTime = $root.google.protobuf.Duration.fromObject(object.endTime); + message.endTime = $root.google.protobuf.Duration.fromObject(object.endTime, long + 1); } if (object.word != null) message.word = String(object.word); @@ -18756,7 +19464,7 @@ function SpeechAdaptationInfo(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -18831,9 +19539,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SpeechAdaptationInfo.decode = function decode(reader, length, error) { + SpeechAdaptationInfo.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.SpeechAdaptationInfo(); while (reader.pos < end) { var tag = reader.uint32(); @@ -18849,7 +19561,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -18880,9 +19592,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SpeechAdaptationInfo.verify = function verify(message) { + SpeechAdaptationInfo.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.adaptationTimeout != null && message.hasOwnProperty("adaptationTimeout")) if (typeof message.adaptationTimeout !== "boolean") return "adaptationTimeout: boolean expected"; @@ -18900,9 +19616,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.SpeechAdaptationInfo} SpeechAdaptationInfo */ - SpeechAdaptationInfo.fromObject = function fromObject(object) { + SpeechAdaptationInfo.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.SpeechAdaptationInfo) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.SpeechAdaptationInfo(); if (object.adaptationTimeout != null) message.adaptationTimeout = Boolean(object.adaptationTimeout); @@ -18998,7 +19718,7 @@ this.annotations = {}; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -19185,9 +19905,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CustomClass.decode = function decode(reader, length, error) { + CustomClass.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.CustomClass(), key, value; while (reader.pos < end) { var tag = reader.uint32(); @@ -19205,7 +19929,7 @@ case 3: { if (!(message.items && message.items.length)) message.items = []; - message.items.push($root.google.cloud.speech.v1p1beta1.CustomClass.ClassItem.decode(reader, reader.uint32())); + message.items.push($root.google.cloud.speech.v1p1beta1.CustomClass.ClassItem.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 6: { @@ -19229,11 +19953,11 @@ break; } case 11: { - message.deleteTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.deleteTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 12: { - message.expireTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.expireTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 13: { @@ -19252,10 +19976,12 @@ value = reader.string(); break; default: - reader.skipType(tag2 & 7); + reader.skipType(tag2 & 7, long); break; } } + if (key === "__proto__") + $util.makeProp(message.annotations, key); message.annotations[key] = value; break; } @@ -19268,7 +19994,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -19299,9 +20025,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CustomClass.verify = function verify(message) { + CustomClass.verify = function verify(message, long) { if (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"; @@ -19312,7 +20042,7 @@ if (!Array.isArray(message.items)) return "items: array expected"; for (var i = 0; i < message.items.length; ++i) { - var error = $root.google.cloud.speech.v1p1beta1.CustomClass.ClassItem.verify(message.items[i]); + var error = $root.google.cloud.speech.v1p1beta1.CustomClass.ClassItem.verify(message.items[i], long + 1); if (error) return "items." + error; } @@ -19339,12 +20069,12 @@ break; } if (message.deleteTime != null && message.hasOwnProperty("deleteTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.deleteTime); + var error = $root.google.protobuf.Timestamp.verify(message.deleteTime, long + 1); if (error) return "deleteTime." + error; } if (message.expireTime != null && message.hasOwnProperty("expireTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.expireTime); + var error = $root.google.protobuf.Timestamp.verify(message.expireTime, long + 1); if (error) return "expireTime." + error; } @@ -19373,9 +20103,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.CustomClass} CustomClass */ - CustomClass.fromObject = function fromObject(object) { + CustomClass.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.CustomClass) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.CustomClass(); if (object.name != null) message.name = String(object.name); @@ -19388,7 +20122,7 @@ for (var i = 0; i < object.items.length; ++i) { if (typeof object.items[i] !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.CustomClass.items: object expected"); - message.items[i] = $root.google.cloud.speech.v1p1beta1.CustomClass.ClassItem.fromObject(object.items[i]); + message.items[i] = $root.google.cloud.speech.v1p1beta1.CustomClass.ClassItem.fromObject(object.items[i], long + 1); } } if (object.kmsKeyName != null) @@ -19422,19 +20156,22 @@ if (object.deleteTime != null) { if (typeof object.deleteTime !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.CustomClass.deleteTime: object expected"); - message.deleteTime = $root.google.protobuf.Timestamp.fromObject(object.deleteTime); + message.deleteTime = $root.google.protobuf.Timestamp.fromObject(object.deleteTime, long + 1); } if (object.expireTime != null) { if (typeof object.expireTime !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.CustomClass.expireTime: object expected"); - message.expireTime = $root.google.protobuf.Timestamp.fromObject(object.expireTime); + message.expireTime = $root.google.protobuf.Timestamp.fromObject(object.expireTime, long + 1); } if (object.annotations) { if (typeof object.annotations !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.CustomClass.annotations: object expected"); message.annotations = {}; - for (var keys = Object.keys(object.annotations), i = 0; i < keys.length; ++i) + for (var keys = Object.keys(object.annotations), i = 0; i < keys.length; ++i) { + if (keys[i] === "__proto__") + $util.makeProp(message.annotations, keys[i]); message.annotations[keys[i]] = String(object.annotations[keys[i]]); + } } if (object.etag != null) message.etag = String(object.etag); @@ -19499,8 +20236,11 @@ var keys2; if (message.annotations && (keys2 = Object.keys(message.annotations)).length) { object.annotations = {}; - for (var j = 0; j < keys2.length; ++j) + for (var j = 0; j < keys2.length; ++j) { + if (keys2[j] === "__proto__") + $util.makeProp(object.annotations, keys2[j]); object.annotations[keys2[j]] = message.annotations[keys2[j]]; + } } if (message.etag != null && message.hasOwnProperty("etag")) object.etag = message.etag; @@ -19555,7 +20295,7 @@ function ClassItem(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -19620,9 +20360,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ClassItem.decode = function decode(reader, length, error) { + ClassItem.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.CustomClass.ClassItem(); while (reader.pos < end) { var tag = reader.uint32(); @@ -19634,7 +20378,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -19665,9 +20409,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ClassItem.verify = function verify(message) { + ClassItem.verify = function verify(message, long) { if (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"; @@ -19682,9 +20430,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.CustomClass.ClassItem} ClassItem */ - ClassItem.fromObject = function fromObject(object) { + ClassItem.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.CustomClass.ClassItem) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.CustomClass.ClassItem(); if (object.value != null) message.value = String(object.value); @@ -19793,7 +20545,7 @@ this.annotations = {}; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -19980,9 +20732,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PhraseSet.decode = function decode(reader, length, error) { + PhraseSet.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.PhraseSet(), key, value; while (reader.pos < end) { var tag = reader.uint32(); @@ -19996,7 +20752,7 @@ case 2: { if (!(message.phrases && message.phrases.length)) message.phrases = []; - message.phrases.push($root.google.cloud.speech.v1p1beta1.PhraseSet.Phrase.decode(reader, reader.uint32())); + message.phrases.push($root.google.cloud.speech.v1p1beta1.PhraseSet.Phrase.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 4: { @@ -20024,11 +20780,11 @@ break; } case 12: { - message.deleteTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.deleteTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 13: { - message.expireTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.expireTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 14: { @@ -20047,10 +20803,12 @@ value = reader.string(); break; default: - reader.skipType(tag2 & 7); + reader.skipType(tag2 & 7, long); break; } } + if (key === "__proto__") + $util.makeProp(message.annotations, key); message.annotations[key] = value; break; } @@ -20063,7 +20821,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -20094,9 +20852,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PhraseSet.verify = function verify(message) { + PhraseSet.verify = function verify(message, long) { if (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"; @@ -20104,7 +20866,7 @@ if (!Array.isArray(message.phrases)) return "phrases: array expected"; for (var i = 0; i < message.phrases.length; ++i) { - var error = $root.google.cloud.speech.v1p1beta1.PhraseSet.Phrase.verify(message.phrases[i]); + var error = $root.google.cloud.speech.v1p1beta1.PhraseSet.Phrase.verify(message.phrases[i], long + 1); if (error) return "phrases." + error; } @@ -20134,12 +20896,12 @@ break; } if (message.deleteTime != null && message.hasOwnProperty("deleteTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.deleteTime); + var error = $root.google.protobuf.Timestamp.verify(message.deleteTime, long + 1); if (error) return "deleteTime." + error; } if (message.expireTime != null && message.hasOwnProperty("expireTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.expireTime); + var error = $root.google.protobuf.Timestamp.verify(message.expireTime, long + 1); if (error) return "expireTime." + error; } @@ -20168,9 +20930,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.PhraseSet} PhraseSet */ - PhraseSet.fromObject = function fromObject(object) { + PhraseSet.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.PhraseSet) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.PhraseSet(); if (object.name != null) message.name = String(object.name); @@ -20181,7 +20947,7 @@ for (var i = 0; i < object.phrases.length; ++i) { if (typeof object.phrases[i] !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.PhraseSet.phrases: object expected"); - message.phrases[i] = $root.google.cloud.speech.v1p1beta1.PhraseSet.Phrase.fromObject(object.phrases[i]); + message.phrases[i] = $root.google.cloud.speech.v1p1beta1.PhraseSet.Phrase.fromObject(object.phrases[i], long + 1); } } if (object.boost != null) @@ -20217,19 +20983,22 @@ if (object.deleteTime != null) { if (typeof object.deleteTime !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.PhraseSet.deleteTime: object expected"); - message.deleteTime = $root.google.protobuf.Timestamp.fromObject(object.deleteTime); + message.deleteTime = $root.google.protobuf.Timestamp.fromObject(object.deleteTime, long + 1); } if (object.expireTime != null) { if (typeof object.expireTime !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.PhraseSet.expireTime: object expected"); - message.expireTime = $root.google.protobuf.Timestamp.fromObject(object.expireTime); + message.expireTime = $root.google.protobuf.Timestamp.fromObject(object.expireTime, long + 1); } if (object.annotations) { if (typeof object.annotations !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.PhraseSet.annotations: object expected"); message.annotations = {}; - for (var keys = Object.keys(object.annotations), i = 0; i < keys.length; ++i) + for (var keys = Object.keys(object.annotations), i = 0; i < keys.length; ++i) { + if (keys[i] === "__proto__") + $util.makeProp(message.annotations, keys[i]); message.annotations[keys[i]] = String(object.annotations[keys[i]]); + } } if (object.etag != null) message.etag = String(object.etag); @@ -20294,8 +21063,11 @@ var keys2; if (message.annotations && (keys2 = Object.keys(message.annotations)).length) { object.annotations = {}; - for (var j = 0; j < keys2.length; ++j) + for (var j = 0; j < keys2.length; ++j) { + if (keys2[j] === "__proto__") + $util.makeProp(object.annotations, keys2[j]); object.annotations[keys2[j]] = message.annotations[keys2[j]]; + } } if (message.etag != null && message.hasOwnProperty("etag")) object.etag = message.etag; @@ -20351,7 +21123,7 @@ function Phrase(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -20426,9 +21198,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Phrase.decode = function decode(reader, length, error) { + Phrase.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.PhraseSet.Phrase(); while (reader.pos < end) { var tag = reader.uint32(); @@ -20444,7 +21220,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -20475,9 +21251,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Phrase.verify = function verify(message) { + Phrase.verify = function verify(message, long) { if (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"; @@ -20495,9 +21275,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.PhraseSet.Phrase} Phrase */ - Phrase.fromObject = function fromObject(object) { + Phrase.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.PhraseSet.Phrase) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.PhraseSet.Phrase(); if (object.value != null) message.value = String(object.value); @@ -20604,7 +21388,7 @@ this.customClasses = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -20702,9 +21486,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SpeechAdaptation.decode = function decode(reader, length, error) { + SpeechAdaptation.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.SpeechAdaptation(); while (reader.pos < end) { var tag = reader.uint32(); @@ -20714,7 +21502,7 @@ case 1: { if (!(message.phraseSets && message.phraseSets.length)) message.phraseSets = []; - message.phraseSets.push($root.google.cloud.speech.v1p1beta1.PhraseSet.decode(reader, reader.uint32())); + message.phraseSets.push($root.google.cloud.speech.v1p1beta1.PhraseSet.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -20726,15 +21514,15 @@ case 3: { if (!(message.customClasses && message.customClasses.length)) message.customClasses = []; - message.customClasses.push($root.google.cloud.speech.v1p1beta1.CustomClass.decode(reader, reader.uint32())); + message.customClasses.push($root.google.cloud.speech.v1p1beta1.CustomClass.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 4: { - message.abnfGrammar = $root.google.cloud.speech.v1p1beta1.SpeechAdaptation.ABNFGrammar.decode(reader, reader.uint32()); + message.abnfGrammar = $root.google.cloud.speech.v1p1beta1.SpeechAdaptation.ABNFGrammar.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -20765,14 +21553,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SpeechAdaptation.verify = function verify(message) { + SpeechAdaptation.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.phraseSets != null && message.hasOwnProperty("phraseSets")) { if (!Array.isArray(message.phraseSets)) return "phraseSets: array expected"; for (var i = 0; i < message.phraseSets.length; ++i) { - var error = $root.google.cloud.speech.v1p1beta1.PhraseSet.verify(message.phraseSets[i]); + var error = $root.google.cloud.speech.v1p1beta1.PhraseSet.verify(message.phraseSets[i], long + 1); if (error) return "phraseSets." + error; } @@ -20788,13 +21580,13 @@ if (!Array.isArray(message.customClasses)) return "customClasses: array expected"; for (var i = 0; i < message.customClasses.length; ++i) { - var error = $root.google.cloud.speech.v1p1beta1.CustomClass.verify(message.customClasses[i]); + var error = $root.google.cloud.speech.v1p1beta1.CustomClass.verify(message.customClasses[i], long + 1); if (error) return "customClasses." + error; } } if (message.abnfGrammar != null && message.hasOwnProperty("abnfGrammar")) { - var error = $root.google.cloud.speech.v1p1beta1.SpeechAdaptation.ABNFGrammar.verify(message.abnfGrammar); + var error = $root.google.cloud.speech.v1p1beta1.SpeechAdaptation.ABNFGrammar.verify(message.abnfGrammar, long + 1); if (error) return "abnfGrammar." + error; } @@ -20809,9 +21601,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.SpeechAdaptation} SpeechAdaptation */ - SpeechAdaptation.fromObject = function fromObject(object) { + SpeechAdaptation.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.SpeechAdaptation) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.SpeechAdaptation(); if (object.phraseSets) { if (!Array.isArray(object.phraseSets)) @@ -20820,7 +21616,7 @@ for (var i = 0; i < object.phraseSets.length; ++i) { if (typeof object.phraseSets[i] !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.SpeechAdaptation.phraseSets: object expected"); - message.phraseSets[i] = $root.google.cloud.speech.v1p1beta1.PhraseSet.fromObject(object.phraseSets[i]); + message.phraseSets[i] = $root.google.cloud.speech.v1p1beta1.PhraseSet.fromObject(object.phraseSets[i], long + 1); } } if (object.phraseSetReferences) { @@ -20837,13 +21633,13 @@ for (var i = 0; i < object.customClasses.length; ++i) { if (typeof object.customClasses[i] !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.SpeechAdaptation.customClasses: object expected"); - message.customClasses[i] = $root.google.cloud.speech.v1p1beta1.CustomClass.fromObject(object.customClasses[i]); + message.customClasses[i] = $root.google.cloud.speech.v1p1beta1.CustomClass.fromObject(object.customClasses[i], long + 1); } } if (object.abnfGrammar != null) { if (typeof object.abnfGrammar !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.SpeechAdaptation.abnfGrammar: object expected"); - message.abnfGrammar = $root.google.cloud.speech.v1p1beta1.SpeechAdaptation.ABNFGrammar.fromObject(object.abnfGrammar); + message.abnfGrammar = $root.google.cloud.speech.v1p1beta1.SpeechAdaptation.ABNFGrammar.fromObject(object.abnfGrammar, long + 1); } return message; }; @@ -20935,7 +21731,7 @@ this.abnfStrings = []; if (properties) for (var keys = Object.keys(properties), i = 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 +21797,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ABNFGrammar.decode = function decode(reader, length, error) { + ABNFGrammar.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.SpeechAdaptation.ABNFGrammar(); while (reader.pos < end) { var tag = reader.uint32(); @@ -21017,7 +21817,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -21048,9 +21848,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ABNFGrammar.verify = function verify(message) { + ABNFGrammar.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.abnfStrings != null && message.hasOwnProperty("abnfStrings")) { if (!Array.isArray(message.abnfStrings)) return "abnfStrings: array expected"; @@ -21069,9 +21873,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.SpeechAdaptation.ABNFGrammar} ABNFGrammar */ - ABNFGrammar.fromObject = function fromObject(object) { + ABNFGrammar.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.SpeechAdaptation.ABNFGrammar) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.SpeechAdaptation.ABNFGrammar(); if (object.abnfStrings) { if (!Array.isArray(object.abnfStrings)) @@ -21159,7 +21967,7 @@ this.entries = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -21225,9 +22033,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - TranscriptNormalization.decode = function decode(reader, length, error) { + TranscriptNormalization.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.TranscriptNormalization(); while (reader.pos < end) { var tag = reader.uint32(); @@ -21237,11 +22049,11 @@ case 1: { if (!(message.entries && message.entries.length)) message.entries = []; - message.entries.push($root.google.cloud.speech.v1p1beta1.TranscriptNormalization.Entry.decode(reader, reader.uint32())); + message.entries.push($root.google.cloud.speech.v1p1beta1.TranscriptNormalization.Entry.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -21272,14 +22084,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - TranscriptNormalization.verify = function verify(message) { + TranscriptNormalization.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.entries != null && message.hasOwnProperty("entries")) { if (!Array.isArray(message.entries)) return "entries: array expected"; for (var i = 0; i < message.entries.length; ++i) { - var error = $root.google.cloud.speech.v1p1beta1.TranscriptNormalization.Entry.verify(message.entries[i]); + var error = $root.google.cloud.speech.v1p1beta1.TranscriptNormalization.Entry.verify(message.entries[i], long + 1); if (error) return "entries." + error; } @@ -21295,9 +22111,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.TranscriptNormalization} TranscriptNormalization */ - TranscriptNormalization.fromObject = function fromObject(object) { + TranscriptNormalization.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.TranscriptNormalization) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.TranscriptNormalization(); if (object.entries) { if (!Array.isArray(object.entries)) @@ -21306,7 +22126,7 @@ for (var i = 0; i < object.entries.length; ++i) { if (typeof object.entries[i] !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.TranscriptNormalization.entries: object expected"); - message.entries[i] = $root.google.cloud.speech.v1p1beta1.TranscriptNormalization.Entry.fromObject(object.entries[i]); + message.entries[i] = $root.google.cloud.speech.v1p1beta1.TranscriptNormalization.Entry.fromObject(object.entries[i], long + 1); } } return message; @@ -21383,7 +22203,7 @@ function Entry(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -21468,9 +22288,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Entry.decode = function decode(reader, length, error) { + Entry.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.TranscriptNormalization.Entry(); while (reader.pos < end) { var tag = reader.uint32(); @@ -21490,7 +22314,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -21521,9 +22345,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Entry.verify = function verify(message) { + Entry.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.search != null && message.hasOwnProperty("search")) if (!$util.isString(message.search)) return "search: string expected"; @@ -21544,9 +22372,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.TranscriptNormalization.Entry} Entry */ - Entry.fromObject = function fromObject(object) { + Entry.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.TranscriptNormalization.Entry) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.TranscriptNormalization.Entry(); if (object.search != null) message.search = String(object.search); @@ -22003,7 +22835,7 @@ function CreatePhraseSetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -22088,9 +22920,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CreatePhraseSetRequest.decode = function decode(reader, length, error) { + CreatePhraseSetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.CreatePhraseSetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -22106,11 +22942,11 @@ break; } case 3: { - message.phraseSet = $root.google.cloud.speech.v1p1beta1.PhraseSet.decode(reader, reader.uint32()); + message.phraseSet = $root.google.cloud.speech.v1p1beta1.PhraseSet.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -22141,9 +22977,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CreatePhraseSetRequest.verify = function verify(message) { + CreatePhraseSetRequest.verify = function verify(message, long) { if (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"; @@ -22151,7 +22991,7 @@ if (!$util.isString(message.phraseSetId)) return "phraseSetId: string expected"; if (message.phraseSet != null && message.hasOwnProperty("phraseSet")) { - var error = $root.google.cloud.speech.v1p1beta1.PhraseSet.verify(message.phraseSet); + var error = $root.google.cloud.speech.v1p1beta1.PhraseSet.verify(message.phraseSet, long + 1); if (error) return "phraseSet." + error; } @@ -22166,9 +23006,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.CreatePhraseSetRequest} CreatePhraseSetRequest */ - CreatePhraseSetRequest.fromObject = function fromObject(object) { + CreatePhraseSetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.CreatePhraseSetRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.CreatePhraseSetRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -22177,7 +23021,7 @@ if (object.phraseSet != null) { if (typeof object.phraseSet !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.CreatePhraseSetRequest.phraseSet: object expected"); - message.phraseSet = $root.google.cloud.speech.v1p1beta1.PhraseSet.fromObject(object.phraseSet); + message.phraseSet = $root.google.cloud.speech.v1p1beta1.PhraseSet.fromObject(object.phraseSet, long + 1); } return message; }; @@ -22259,7 +23103,7 @@ function UpdatePhraseSetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -22334,9 +23178,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UpdatePhraseSetRequest.decode = function decode(reader, length, error) { + UpdatePhraseSetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.UpdatePhraseSetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -22344,15 +23192,15 @@ break; switch (tag >>> 3) { case 1: { - message.phraseSet = $root.google.cloud.speech.v1p1beta1.PhraseSet.decode(reader, reader.uint32()); + message.phraseSet = $root.google.cloud.speech.v1p1beta1.PhraseSet.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; } } @@ -22383,16 +23231,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UpdatePhraseSetRequest.verify = function verify(message) { + UpdatePhraseSetRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.phraseSet != null && message.hasOwnProperty("phraseSet")) { - var error = $root.google.cloud.speech.v1p1beta1.PhraseSet.verify(message.phraseSet); + var error = $root.google.cloud.speech.v1p1beta1.PhraseSet.verify(message.phraseSet, long + 1); if (error) return "phraseSet." + 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; } @@ -22407,19 +23259,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.UpdatePhraseSetRequest} UpdatePhraseSetRequest */ - UpdatePhraseSetRequest.fromObject = function fromObject(object) { + UpdatePhraseSetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.UpdatePhraseSetRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.UpdatePhraseSetRequest(); if (object.phraseSet != null) { if (typeof object.phraseSet !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.UpdatePhraseSetRequest.phraseSet: object expected"); - message.phraseSet = $root.google.cloud.speech.v1p1beta1.PhraseSet.fromObject(object.phraseSet); + message.phraseSet = $root.google.cloud.speech.v1p1beta1.PhraseSet.fromObject(object.phraseSet, long + 1); } if (object.updateMask != null) { if (typeof object.updateMask !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.UpdatePhraseSetRequest.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; }; @@ -22497,7 +23353,7 @@ function GetPhraseSetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -22562,9 +23418,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetPhraseSetRequest.decode = function decode(reader, length, error) { + GetPhraseSetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.GetPhraseSetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -22576,7 +23436,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -22607,9 +23467,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetPhraseSetRequest.verify = function verify(message) { + GetPhraseSetRequest.verify = function verify(message, long) { if (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"; @@ -22624,9 +23488,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.GetPhraseSetRequest} GetPhraseSetRequest */ - GetPhraseSetRequest.fromObject = function fromObject(object) { + GetPhraseSetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.GetPhraseSetRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.GetPhraseSetRequest(); if (object.name != null) message.name = String(object.name); @@ -22704,7 +23572,7 @@ function ListPhraseSetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -22789,9 +23657,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListPhraseSetRequest.decode = function decode(reader, length, error) { + ListPhraseSetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.ListPhraseSetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -22811,7 +23683,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -22842,9 +23714,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListPhraseSetRequest.verify = function verify(message) { + ListPhraseSetRequest.verify = function verify(message, long) { if (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"; @@ -22865,9 +23741,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.ListPhraseSetRequest} ListPhraseSetRequest */ - ListPhraseSetRequest.fromObject = function fromObject(object) { + ListPhraseSetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.ListPhraseSetRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.ListPhraseSetRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -22956,7 +23836,7 @@ this.phraseSets = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -23032,9 +23912,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListPhraseSetResponse.decode = function decode(reader, length, error) { + ListPhraseSetResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.ListPhraseSetResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -23044,7 +23928,7 @@ case 1: { if (!(message.phraseSets && message.phraseSets.length)) message.phraseSets = []; - message.phraseSets.push($root.google.cloud.speech.v1p1beta1.PhraseSet.decode(reader, reader.uint32())); + message.phraseSets.push($root.google.cloud.speech.v1p1beta1.PhraseSet.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -23052,7 +23936,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -23083,14 +23967,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListPhraseSetResponse.verify = function verify(message) { + ListPhraseSetResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.phraseSets != null && message.hasOwnProperty("phraseSets")) { if (!Array.isArray(message.phraseSets)) return "phraseSets: array expected"; for (var i = 0; i < message.phraseSets.length; ++i) { - var error = $root.google.cloud.speech.v1p1beta1.PhraseSet.verify(message.phraseSets[i]); + var error = $root.google.cloud.speech.v1p1beta1.PhraseSet.verify(message.phraseSets[i], long + 1); if (error) return "phraseSets." + error; } @@ -23109,9 +23997,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.ListPhraseSetResponse} ListPhraseSetResponse */ - ListPhraseSetResponse.fromObject = function fromObject(object) { + ListPhraseSetResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.ListPhraseSetResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.ListPhraseSetResponse(); if (object.phraseSets) { if (!Array.isArray(object.phraseSets)) @@ -23120,7 +24012,7 @@ for (var i = 0; i < object.phraseSets.length; ++i) { if (typeof object.phraseSets[i] !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.ListPhraseSetResponse.phraseSets: object expected"); - message.phraseSets[i] = $root.google.cloud.speech.v1p1beta1.PhraseSet.fromObject(object.phraseSets[i]); + message.phraseSets[i] = $root.google.cloud.speech.v1p1beta1.PhraseSet.fromObject(object.phraseSets[i], long + 1); } } if (object.nextPageToken != null) @@ -23204,7 +24096,7 @@ function DeletePhraseSetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -23269,9 +24161,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DeletePhraseSetRequest.decode = function decode(reader, length, error) { + DeletePhraseSetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.DeletePhraseSetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -23283,7 +24179,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -23314,9 +24210,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DeletePhraseSetRequest.verify = function verify(message) { + DeletePhraseSetRequest.verify = function verify(message, long) { if (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"; @@ -23331,9 +24231,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.DeletePhraseSetRequest} DeletePhraseSetRequest */ - DeletePhraseSetRequest.fromObject = function fromObject(object) { + DeletePhraseSetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.DeletePhraseSetRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.DeletePhraseSetRequest(); if (object.name != null) message.name = String(object.name); @@ -23411,7 +24315,7 @@ function CreateCustomClassRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -23496,9 +24400,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CreateCustomClassRequest.decode = function decode(reader, length, error) { + CreateCustomClassRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.CreateCustomClassRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -23514,11 +24422,11 @@ break; } case 3: { - message.customClass = $root.google.cloud.speech.v1p1beta1.CustomClass.decode(reader, reader.uint32()); + message.customClass = $root.google.cloud.speech.v1p1beta1.CustomClass.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -23549,9 +24457,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CreateCustomClassRequest.verify = function verify(message) { + CreateCustomClassRequest.verify = function verify(message, long) { if (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"; @@ -23559,7 +24471,7 @@ if (!$util.isString(message.customClassId)) return "customClassId: string expected"; if (message.customClass != null && message.hasOwnProperty("customClass")) { - var error = $root.google.cloud.speech.v1p1beta1.CustomClass.verify(message.customClass); + var error = $root.google.cloud.speech.v1p1beta1.CustomClass.verify(message.customClass, long + 1); if (error) return "customClass." + error; } @@ -23574,9 +24486,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.CreateCustomClassRequest} CreateCustomClassRequest */ - CreateCustomClassRequest.fromObject = function fromObject(object) { + CreateCustomClassRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.CreateCustomClassRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.CreateCustomClassRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -23585,7 +24501,7 @@ if (object.customClass != null) { if (typeof object.customClass !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.CreateCustomClassRequest.customClass: object expected"); - message.customClass = $root.google.cloud.speech.v1p1beta1.CustomClass.fromObject(object.customClass); + message.customClass = $root.google.cloud.speech.v1p1beta1.CustomClass.fromObject(object.customClass, long + 1); } return message; }; @@ -23667,7 +24583,7 @@ function UpdateCustomClassRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -23742,9 +24658,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UpdateCustomClassRequest.decode = function decode(reader, length, error) { + UpdateCustomClassRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.UpdateCustomClassRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -23752,15 +24672,15 @@ break; switch (tag >>> 3) { case 1: { - message.customClass = $root.google.cloud.speech.v1p1beta1.CustomClass.decode(reader, reader.uint32()); + message.customClass = $root.google.cloud.speech.v1p1beta1.CustomClass.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; } } @@ -23791,16 +24711,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UpdateCustomClassRequest.verify = function verify(message) { + UpdateCustomClassRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.customClass != null && message.hasOwnProperty("customClass")) { - var error = $root.google.cloud.speech.v1p1beta1.CustomClass.verify(message.customClass); + var error = $root.google.cloud.speech.v1p1beta1.CustomClass.verify(message.customClass, long + 1); if (error) return "customClass." + 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; } @@ -23815,19 +24739,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.UpdateCustomClassRequest} UpdateCustomClassRequest */ - UpdateCustomClassRequest.fromObject = function fromObject(object) { + UpdateCustomClassRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.UpdateCustomClassRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.UpdateCustomClassRequest(); if (object.customClass != null) { if (typeof object.customClass !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.UpdateCustomClassRequest.customClass: object expected"); - message.customClass = $root.google.cloud.speech.v1p1beta1.CustomClass.fromObject(object.customClass); + message.customClass = $root.google.cloud.speech.v1p1beta1.CustomClass.fromObject(object.customClass, long + 1); } if (object.updateMask != null) { if (typeof object.updateMask !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.UpdateCustomClassRequest.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; }; @@ -23905,7 +24833,7 @@ function GetCustomClassRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -23970,9 +24898,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetCustomClassRequest.decode = function decode(reader, length, error) { + GetCustomClassRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.GetCustomClassRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -23984,7 +24916,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -24015,9 +24947,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetCustomClassRequest.verify = function verify(message) { + GetCustomClassRequest.verify = function verify(message, long) { if (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"; @@ -24032,9 +24968,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.GetCustomClassRequest} GetCustomClassRequest */ - GetCustomClassRequest.fromObject = function fromObject(object) { + GetCustomClassRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.GetCustomClassRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.GetCustomClassRequest(); if (object.name != null) message.name = String(object.name); @@ -24112,7 +25052,7 @@ function ListCustomClassesRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -24197,9 +25137,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListCustomClassesRequest.decode = function decode(reader, length, error) { + ListCustomClassesRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.ListCustomClassesRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -24219,7 +25163,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -24250,9 +25194,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListCustomClassesRequest.verify = function verify(message) { + ListCustomClassesRequest.verify = function verify(message, long) { if (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"; @@ -24273,9 +25221,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.ListCustomClassesRequest} ListCustomClassesRequest */ - ListCustomClassesRequest.fromObject = function fromObject(object) { + ListCustomClassesRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.ListCustomClassesRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.ListCustomClassesRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -24364,7 +25316,7 @@ this.customClasses = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -24440,9 +25392,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListCustomClassesResponse.decode = function decode(reader, length, error) { + ListCustomClassesResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.ListCustomClassesResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -24452,7 +25408,7 @@ case 1: { if (!(message.customClasses && message.customClasses.length)) message.customClasses = []; - message.customClasses.push($root.google.cloud.speech.v1p1beta1.CustomClass.decode(reader, reader.uint32())); + message.customClasses.push($root.google.cloud.speech.v1p1beta1.CustomClass.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -24460,7 +25416,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -24491,14 +25447,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListCustomClassesResponse.verify = function verify(message) { + ListCustomClassesResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.customClasses != null && message.hasOwnProperty("customClasses")) { if (!Array.isArray(message.customClasses)) return "customClasses: array expected"; for (var i = 0; i < message.customClasses.length; ++i) { - var error = $root.google.cloud.speech.v1p1beta1.CustomClass.verify(message.customClasses[i]); + var error = $root.google.cloud.speech.v1p1beta1.CustomClass.verify(message.customClasses[i], long + 1); if (error) return "customClasses." + error; } @@ -24517,9 +25477,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.ListCustomClassesResponse} ListCustomClassesResponse */ - ListCustomClassesResponse.fromObject = function fromObject(object) { + ListCustomClassesResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.ListCustomClassesResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.ListCustomClassesResponse(); if (object.customClasses) { if (!Array.isArray(object.customClasses)) @@ -24528,7 +25492,7 @@ for (var i = 0; i < object.customClasses.length; ++i) { if (typeof object.customClasses[i] !== "object") throw TypeError(".google.cloud.speech.v1p1beta1.ListCustomClassesResponse.customClasses: object expected"); - message.customClasses[i] = $root.google.cloud.speech.v1p1beta1.CustomClass.fromObject(object.customClasses[i]); + message.customClasses[i] = $root.google.cloud.speech.v1p1beta1.CustomClass.fromObject(object.customClasses[i], long + 1); } } if (object.nextPageToken != null) @@ -24612,7 +25576,7 @@ function DeleteCustomClassRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -24677,9 +25641,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DeleteCustomClassRequest.decode = function decode(reader, length, error) { + DeleteCustomClassRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v1p1beta1.DeleteCustomClassRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -24691,7 +25659,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -24722,9 +25690,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DeleteCustomClassRequest.verify = function verify(message) { + DeleteCustomClassRequest.verify = function verify(message, long) { if (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"; @@ -24739,9 +25711,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v1p1beta1.DeleteCustomClassRequest} DeleteCustomClassRequest */ - DeleteCustomClassRequest.fromObject = function fromObject(object) { + DeleteCustomClassRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v1p1beta1.DeleteCustomClassRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v1p1beta1.DeleteCustomClassRequest(); if (object.name != null) message.name = String(object.name); @@ -25626,7 +26602,7 @@ function CreateRecognizerRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -25721,9 +26697,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CreateRecognizerRequest.decode = function decode(reader, length, error) { + CreateRecognizerRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.CreateRecognizerRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -25731,7 +26711,7 @@ break; switch (tag >>> 3) { case 1: { - message.recognizer = $root.google.cloud.speech.v2.Recognizer.decode(reader, reader.uint32()); + message.recognizer = $root.google.cloud.speech.v2.Recognizer.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -25747,7 +26727,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -25778,11 +26758,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CreateRecognizerRequest.verify = function verify(message) { + CreateRecognizerRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.recognizer != null && message.hasOwnProperty("recognizer")) { - var error = $root.google.cloud.speech.v2.Recognizer.verify(message.recognizer); + var error = $root.google.cloud.speech.v2.Recognizer.verify(message.recognizer, long + 1); if (error) return "recognizer." + error; } @@ -25806,14 +26790,18 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.CreateRecognizerRequest} CreateRecognizerRequest */ - CreateRecognizerRequest.fromObject = function fromObject(object) { + CreateRecognizerRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.CreateRecognizerRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.CreateRecognizerRequest(); if (object.recognizer != null) { if (typeof object.recognizer !== "object") throw TypeError(".google.cloud.speech.v2.CreateRecognizerRequest.recognizer: object expected"); - message.recognizer = $root.google.cloud.speech.v2.Recognizer.fromObject(object.recognizer); + message.recognizer = $root.google.cloud.speech.v2.Recognizer.fromObject(object.recognizer, long + 1); } if (object.validateOnly != null) message.validateOnly = Boolean(object.validateOnly); @@ -25924,7 +26912,7 @@ function OperationMetadata(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -26224,9 +27212,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OperationMetadata.decode = function decode(reader, length, error) { + OperationMetadata.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.OperationMetadata(); while (reader.pos < end) { var tag = reader.uint32(); @@ -26234,11 +27226,11 @@ break; switch (tag >>> 3) { case 1: { - 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 2: { - message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -26258,59 +27250,59 @@ break; } case 8: { - message.batchRecognizeRequest = $root.google.cloud.speech.v2.BatchRecognizeRequest.decode(reader, reader.uint32()); + message.batchRecognizeRequest = $root.google.cloud.speech.v2.BatchRecognizeRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { - message.createRecognizerRequest = $root.google.cloud.speech.v2.CreateRecognizerRequest.decode(reader, reader.uint32()); + message.createRecognizerRequest = $root.google.cloud.speech.v2.CreateRecognizerRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } case 10: { - message.updateRecognizerRequest = $root.google.cloud.speech.v2.UpdateRecognizerRequest.decode(reader, reader.uint32()); + message.updateRecognizerRequest = $root.google.cloud.speech.v2.UpdateRecognizerRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } case 11: { - message.deleteRecognizerRequest = $root.google.cloud.speech.v2.DeleteRecognizerRequest.decode(reader, reader.uint32()); + message.deleteRecognizerRequest = $root.google.cloud.speech.v2.DeleteRecognizerRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } case 12: { - message.undeleteRecognizerRequest = $root.google.cloud.speech.v2.UndeleteRecognizerRequest.decode(reader, reader.uint32()); + message.undeleteRecognizerRequest = $root.google.cloud.speech.v2.UndeleteRecognizerRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } case 13: { - message.createCustomClassRequest = $root.google.cloud.speech.v2.CreateCustomClassRequest.decode(reader, reader.uint32()); + message.createCustomClassRequest = $root.google.cloud.speech.v2.CreateCustomClassRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } case 14: { - message.updateCustomClassRequest = $root.google.cloud.speech.v2.UpdateCustomClassRequest.decode(reader, reader.uint32()); + message.updateCustomClassRequest = $root.google.cloud.speech.v2.UpdateCustomClassRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } case 15: { - message.deleteCustomClassRequest = $root.google.cloud.speech.v2.DeleteCustomClassRequest.decode(reader, reader.uint32()); + message.deleteCustomClassRequest = $root.google.cloud.speech.v2.DeleteCustomClassRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } case 16: { - message.undeleteCustomClassRequest = $root.google.cloud.speech.v2.UndeleteCustomClassRequest.decode(reader, reader.uint32()); + message.undeleteCustomClassRequest = $root.google.cloud.speech.v2.UndeleteCustomClassRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } case 17: { - message.createPhraseSetRequest = $root.google.cloud.speech.v2.CreatePhraseSetRequest.decode(reader, reader.uint32()); + message.createPhraseSetRequest = $root.google.cloud.speech.v2.CreatePhraseSetRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } case 18: { - message.updatePhraseSetRequest = $root.google.cloud.speech.v2.UpdatePhraseSetRequest.decode(reader, reader.uint32()); + message.updatePhraseSetRequest = $root.google.cloud.speech.v2.UpdatePhraseSetRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } case 19: { - message.deletePhraseSetRequest = $root.google.cloud.speech.v2.DeletePhraseSetRequest.decode(reader, reader.uint32()); + message.deletePhraseSetRequest = $root.google.cloud.speech.v2.DeletePhraseSetRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } case 20: { - message.undeletePhraseSetRequest = $root.google.cloud.speech.v2.UndeletePhraseSetRequest.decode(reader, reader.uint32()); + message.undeletePhraseSetRequest = $root.google.cloud.speech.v2.UndeletePhraseSetRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } case 21: { - message.updateConfigRequest = $root.google.cloud.speech.v2.UpdateConfigRequest.decode(reader, reader.uint32()); + message.updateConfigRequest = $root.google.cloud.speech.v2.UpdateConfigRequest.decode(reader, reader.uint32(), undefined, long + 1); break; } case 22: { @@ -26318,11 +27310,11 @@ break; } case 23: { - message.batchRecognizeMetadata = $root.google.cloud.speech.v2.BatchRecognizeMetadata.decode(reader, reader.uint32()); + message.batchRecognizeMetadata = $root.google.cloud.speech.v2.BatchRecognizeMetadata.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -26353,17 +27345,21 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - OperationMetadata.verify = function verify(message) { + OperationMetadata.verify = function verify(message, 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.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; } if (message.updateTime != null && message.hasOwnProperty("updateTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.updateTime); + var error = $root.google.protobuf.Timestamp.verify(message.updateTime, long + 1); if (error) return "updateTime." + error; } @@ -26382,7 +27378,7 @@ if (message.batchRecognizeRequest != null && message.hasOwnProperty("batchRecognizeRequest")) { properties.request = 1; { - var error = $root.google.cloud.speech.v2.BatchRecognizeRequest.verify(message.batchRecognizeRequest); + var error = $root.google.cloud.speech.v2.BatchRecognizeRequest.verify(message.batchRecognizeRequest, long + 1); if (error) return "batchRecognizeRequest." + error; } @@ -26392,7 +27388,7 @@ return "request: multiple values"; properties.request = 1; { - var error = $root.google.cloud.speech.v2.CreateRecognizerRequest.verify(message.createRecognizerRequest); + var error = $root.google.cloud.speech.v2.CreateRecognizerRequest.verify(message.createRecognizerRequest, long + 1); if (error) return "createRecognizerRequest." + error; } @@ -26402,7 +27398,7 @@ return "request: multiple values"; properties.request = 1; { - var error = $root.google.cloud.speech.v2.UpdateRecognizerRequest.verify(message.updateRecognizerRequest); + var error = $root.google.cloud.speech.v2.UpdateRecognizerRequest.verify(message.updateRecognizerRequest, long + 1); if (error) return "updateRecognizerRequest." + error; } @@ -26412,7 +27408,7 @@ return "request: multiple values"; properties.request = 1; { - var error = $root.google.cloud.speech.v2.DeleteRecognizerRequest.verify(message.deleteRecognizerRequest); + var error = $root.google.cloud.speech.v2.DeleteRecognizerRequest.verify(message.deleteRecognizerRequest, long + 1); if (error) return "deleteRecognizerRequest." + error; } @@ -26422,7 +27418,7 @@ return "request: multiple values"; properties.request = 1; { - var error = $root.google.cloud.speech.v2.UndeleteRecognizerRequest.verify(message.undeleteRecognizerRequest); + var error = $root.google.cloud.speech.v2.UndeleteRecognizerRequest.verify(message.undeleteRecognizerRequest, long + 1); if (error) return "undeleteRecognizerRequest." + error; } @@ -26432,7 +27428,7 @@ return "request: multiple values"; properties.request = 1; { - var error = $root.google.cloud.speech.v2.CreateCustomClassRequest.verify(message.createCustomClassRequest); + var error = $root.google.cloud.speech.v2.CreateCustomClassRequest.verify(message.createCustomClassRequest, long + 1); if (error) return "createCustomClassRequest." + error; } @@ -26442,7 +27438,7 @@ return "request: multiple values"; properties.request = 1; { - var error = $root.google.cloud.speech.v2.UpdateCustomClassRequest.verify(message.updateCustomClassRequest); + var error = $root.google.cloud.speech.v2.UpdateCustomClassRequest.verify(message.updateCustomClassRequest, long + 1); if (error) return "updateCustomClassRequest." + error; } @@ -26452,7 +27448,7 @@ return "request: multiple values"; properties.request = 1; { - var error = $root.google.cloud.speech.v2.DeleteCustomClassRequest.verify(message.deleteCustomClassRequest); + var error = $root.google.cloud.speech.v2.DeleteCustomClassRequest.verify(message.deleteCustomClassRequest, long + 1); if (error) return "deleteCustomClassRequest." + error; } @@ -26462,7 +27458,7 @@ return "request: multiple values"; properties.request = 1; { - var error = $root.google.cloud.speech.v2.UndeleteCustomClassRequest.verify(message.undeleteCustomClassRequest); + var error = $root.google.cloud.speech.v2.UndeleteCustomClassRequest.verify(message.undeleteCustomClassRequest, long + 1); if (error) return "undeleteCustomClassRequest." + error; } @@ -26472,7 +27468,7 @@ return "request: multiple values"; properties.request = 1; { - var error = $root.google.cloud.speech.v2.CreatePhraseSetRequest.verify(message.createPhraseSetRequest); + var error = $root.google.cloud.speech.v2.CreatePhraseSetRequest.verify(message.createPhraseSetRequest, long + 1); if (error) return "createPhraseSetRequest." + error; } @@ -26482,7 +27478,7 @@ return "request: multiple values"; properties.request = 1; { - var error = $root.google.cloud.speech.v2.UpdatePhraseSetRequest.verify(message.updatePhraseSetRequest); + var error = $root.google.cloud.speech.v2.UpdatePhraseSetRequest.verify(message.updatePhraseSetRequest, long + 1); if (error) return "updatePhraseSetRequest." + error; } @@ -26492,7 +27488,7 @@ return "request: multiple values"; properties.request = 1; { - var error = $root.google.cloud.speech.v2.DeletePhraseSetRequest.verify(message.deletePhraseSetRequest); + var error = $root.google.cloud.speech.v2.DeletePhraseSetRequest.verify(message.deletePhraseSetRequest, long + 1); if (error) return "deletePhraseSetRequest." + error; } @@ -26502,7 +27498,7 @@ return "request: multiple values"; properties.request = 1; { - var error = $root.google.cloud.speech.v2.UndeletePhraseSetRequest.verify(message.undeletePhraseSetRequest); + var error = $root.google.cloud.speech.v2.UndeletePhraseSetRequest.verify(message.undeletePhraseSetRequest, long + 1); if (error) return "undeletePhraseSetRequest." + error; } @@ -26512,7 +27508,7 @@ return "request: multiple values"; properties.request = 1; { - var error = $root.google.cloud.speech.v2.UpdateConfigRequest.verify(message.updateConfigRequest); + var error = $root.google.cloud.speech.v2.UpdateConfigRequest.verify(message.updateConfigRequest, long + 1); if (error) return "updateConfigRequest." + error; } @@ -26523,7 +27519,7 @@ if (message.batchRecognizeMetadata != null && message.hasOwnProperty("batchRecognizeMetadata")) { properties.metadata = 1; { - var error = $root.google.cloud.speech.v2.BatchRecognizeMetadata.verify(message.batchRecognizeMetadata); + var error = $root.google.cloud.speech.v2.BatchRecognizeMetadata.verify(message.batchRecognizeMetadata, long + 1); if (error) return "batchRecognizeMetadata." + error; } @@ -26539,19 +27535,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.OperationMetadata} OperationMetadata */ - OperationMetadata.fromObject = function fromObject(object) { + OperationMetadata.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.OperationMetadata) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.OperationMetadata(); if (object.createTime != null) { if (typeof object.createTime !== "object") throw TypeError(".google.cloud.speech.v2.OperationMetadata.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.updateTime != null) { if (typeof object.updateTime !== "object") throw TypeError(".google.cloud.speech.v2.OperationMetadata.updateTime: object expected"); - message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime); + message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime, long + 1); } if (object.resource != null) message.resource = String(object.resource); @@ -26564,79 +27564,79 @@ if (object.batchRecognizeRequest != null) { if (typeof object.batchRecognizeRequest !== "object") throw TypeError(".google.cloud.speech.v2.OperationMetadata.batchRecognizeRequest: object expected"); - message.batchRecognizeRequest = $root.google.cloud.speech.v2.BatchRecognizeRequest.fromObject(object.batchRecognizeRequest); + message.batchRecognizeRequest = $root.google.cloud.speech.v2.BatchRecognizeRequest.fromObject(object.batchRecognizeRequest, long + 1); } if (object.createRecognizerRequest != null) { if (typeof object.createRecognizerRequest !== "object") throw TypeError(".google.cloud.speech.v2.OperationMetadata.createRecognizerRequest: object expected"); - message.createRecognizerRequest = $root.google.cloud.speech.v2.CreateRecognizerRequest.fromObject(object.createRecognizerRequest); + message.createRecognizerRequest = $root.google.cloud.speech.v2.CreateRecognizerRequest.fromObject(object.createRecognizerRequest, long + 1); } if (object.updateRecognizerRequest != null) { if (typeof object.updateRecognizerRequest !== "object") throw TypeError(".google.cloud.speech.v2.OperationMetadata.updateRecognizerRequest: object expected"); - message.updateRecognizerRequest = $root.google.cloud.speech.v2.UpdateRecognizerRequest.fromObject(object.updateRecognizerRequest); + message.updateRecognizerRequest = $root.google.cloud.speech.v2.UpdateRecognizerRequest.fromObject(object.updateRecognizerRequest, long + 1); } if (object.deleteRecognizerRequest != null) { if (typeof object.deleteRecognizerRequest !== "object") throw TypeError(".google.cloud.speech.v2.OperationMetadata.deleteRecognizerRequest: object expected"); - message.deleteRecognizerRequest = $root.google.cloud.speech.v2.DeleteRecognizerRequest.fromObject(object.deleteRecognizerRequest); + message.deleteRecognizerRequest = $root.google.cloud.speech.v2.DeleteRecognizerRequest.fromObject(object.deleteRecognizerRequest, long + 1); } if (object.undeleteRecognizerRequest != null) { if (typeof object.undeleteRecognizerRequest !== "object") throw TypeError(".google.cloud.speech.v2.OperationMetadata.undeleteRecognizerRequest: object expected"); - message.undeleteRecognizerRequest = $root.google.cloud.speech.v2.UndeleteRecognizerRequest.fromObject(object.undeleteRecognizerRequest); + message.undeleteRecognizerRequest = $root.google.cloud.speech.v2.UndeleteRecognizerRequest.fromObject(object.undeleteRecognizerRequest, long + 1); } if (object.createCustomClassRequest != null) { if (typeof object.createCustomClassRequest !== "object") throw TypeError(".google.cloud.speech.v2.OperationMetadata.createCustomClassRequest: object expected"); - message.createCustomClassRequest = $root.google.cloud.speech.v2.CreateCustomClassRequest.fromObject(object.createCustomClassRequest); + message.createCustomClassRequest = $root.google.cloud.speech.v2.CreateCustomClassRequest.fromObject(object.createCustomClassRequest, long + 1); } if (object.updateCustomClassRequest != null) { if (typeof object.updateCustomClassRequest !== "object") throw TypeError(".google.cloud.speech.v2.OperationMetadata.updateCustomClassRequest: object expected"); - message.updateCustomClassRequest = $root.google.cloud.speech.v2.UpdateCustomClassRequest.fromObject(object.updateCustomClassRequest); + message.updateCustomClassRequest = $root.google.cloud.speech.v2.UpdateCustomClassRequest.fromObject(object.updateCustomClassRequest, long + 1); } if (object.deleteCustomClassRequest != null) { if (typeof object.deleteCustomClassRequest !== "object") throw TypeError(".google.cloud.speech.v2.OperationMetadata.deleteCustomClassRequest: object expected"); - message.deleteCustomClassRequest = $root.google.cloud.speech.v2.DeleteCustomClassRequest.fromObject(object.deleteCustomClassRequest); + message.deleteCustomClassRequest = $root.google.cloud.speech.v2.DeleteCustomClassRequest.fromObject(object.deleteCustomClassRequest, long + 1); } if (object.undeleteCustomClassRequest != null) { if (typeof object.undeleteCustomClassRequest !== "object") throw TypeError(".google.cloud.speech.v2.OperationMetadata.undeleteCustomClassRequest: object expected"); - message.undeleteCustomClassRequest = $root.google.cloud.speech.v2.UndeleteCustomClassRequest.fromObject(object.undeleteCustomClassRequest); + message.undeleteCustomClassRequest = $root.google.cloud.speech.v2.UndeleteCustomClassRequest.fromObject(object.undeleteCustomClassRequest, long + 1); } if (object.createPhraseSetRequest != null) { if (typeof object.createPhraseSetRequest !== "object") throw TypeError(".google.cloud.speech.v2.OperationMetadata.createPhraseSetRequest: object expected"); - message.createPhraseSetRequest = $root.google.cloud.speech.v2.CreatePhraseSetRequest.fromObject(object.createPhraseSetRequest); + message.createPhraseSetRequest = $root.google.cloud.speech.v2.CreatePhraseSetRequest.fromObject(object.createPhraseSetRequest, long + 1); } if (object.updatePhraseSetRequest != null) { if (typeof object.updatePhraseSetRequest !== "object") throw TypeError(".google.cloud.speech.v2.OperationMetadata.updatePhraseSetRequest: object expected"); - message.updatePhraseSetRequest = $root.google.cloud.speech.v2.UpdatePhraseSetRequest.fromObject(object.updatePhraseSetRequest); + message.updatePhraseSetRequest = $root.google.cloud.speech.v2.UpdatePhraseSetRequest.fromObject(object.updatePhraseSetRequest, long + 1); } if (object.deletePhraseSetRequest != null) { if (typeof object.deletePhraseSetRequest !== "object") throw TypeError(".google.cloud.speech.v2.OperationMetadata.deletePhraseSetRequest: object expected"); - message.deletePhraseSetRequest = $root.google.cloud.speech.v2.DeletePhraseSetRequest.fromObject(object.deletePhraseSetRequest); + message.deletePhraseSetRequest = $root.google.cloud.speech.v2.DeletePhraseSetRequest.fromObject(object.deletePhraseSetRequest, long + 1); } if (object.undeletePhraseSetRequest != null) { if (typeof object.undeletePhraseSetRequest !== "object") throw TypeError(".google.cloud.speech.v2.OperationMetadata.undeletePhraseSetRequest: object expected"); - message.undeletePhraseSetRequest = $root.google.cloud.speech.v2.UndeletePhraseSetRequest.fromObject(object.undeletePhraseSetRequest); + message.undeletePhraseSetRequest = $root.google.cloud.speech.v2.UndeletePhraseSetRequest.fromObject(object.undeletePhraseSetRequest, long + 1); } if (object.updateConfigRequest != null) { if (typeof object.updateConfigRequest !== "object") throw TypeError(".google.cloud.speech.v2.OperationMetadata.updateConfigRequest: object expected"); - message.updateConfigRequest = $root.google.cloud.speech.v2.UpdateConfigRequest.fromObject(object.updateConfigRequest); + message.updateConfigRequest = $root.google.cloud.speech.v2.UpdateConfigRequest.fromObject(object.updateConfigRequest, long + 1); } if (object.progressPercent != null) message.progressPercent = object.progressPercent | 0; if (object.batchRecognizeMetadata != null) { if (typeof object.batchRecognizeMetadata !== "object") throw TypeError(".google.cloud.speech.v2.OperationMetadata.batchRecognizeMetadata: object expected"); - message.batchRecognizeMetadata = $root.google.cloud.speech.v2.BatchRecognizeMetadata.fromObject(object.batchRecognizeMetadata); + message.batchRecognizeMetadata = $root.google.cloud.speech.v2.BatchRecognizeMetadata.fromObject(object.batchRecognizeMetadata, long + 1); } return message; }; @@ -26807,7 +27807,7 @@ function ListRecognizersRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -26902,9 +27902,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListRecognizersRequest.decode = function decode(reader, length, error) { + ListRecognizersRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.ListRecognizersRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -26928,7 +27932,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -26959,9 +27963,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListRecognizersRequest.verify = function verify(message) { + ListRecognizersRequest.verify = function verify(message, long) { if (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"; @@ -26985,9 +27993,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.ListRecognizersRequest} ListRecognizersRequest */ - ListRecognizersRequest.fromObject = function fromObject(object) { + ListRecognizersRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.ListRecognizersRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.ListRecognizersRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -27081,7 +28093,7 @@ this.recognizers = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -27157,9 +28169,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListRecognizersResponse.decode = function decode(reader, length, error) { + ListRecognizersResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.ListRecognizersResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -27169,7 +28185,7 @@ case 1: { if (!(message.recognizers && message.recognizers.length)) message.recognizers = []; - message.recognizers.push($root.google.cloud.speech.v2.Recognizer.decode(reader, reader.uint32())); + message.recognizers.push($root.google.cloud.speech.v2.Recognizer.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -27177,7 +28193,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -27208,14 +28224,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListRecognizersResponse.verify = function verify(message) { + ListRecognizersResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.recognizers != null && message.hasOwnProperty("recognizers")) { if (!Array.isArray(message.recognizers)) return "recognizers: array expected"; for (var i = 0; i < message.recognizers.length; ++i) { - var error = $root.google.cloud.speech.v2.Recognizer.verify(message.recognizers[i]); + var error = $root.google.cloud.speech.v2.Recognizer.verify(message.recognizers[i], long + 1); if (error) return "recognizers." + error; } @@ -27234,9 +28254,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.ListRecognizersResponse} ListRecognizersResponse */ - ListRecognizersResponse.fromObject = function fromObject(object) { + ListRecognizersResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.ListRecognizersResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.ListRecognizersResponse(); if (object.recognizers) { if (!Array.isArray(object.recognizers)) @@ -27245,7 +28269,7 @@ for (var i = 0; i < object.recognizers.length; ++i) { if (typeof object.recognizers[i] !== "object") throw TypeError(".google.cloud.speech.v2.ListRecognizersResponse.recognizers: object expected"); - message.recognizers[i] = $root.google.cloud.speech.v2.Recognizer.fromObject(object.recognizers[i]); + message.recognizers[i] = $root.google.cloud.speech.v2.Recognizer.fromObject(object.recognizers[i], long + 1); } } if (object.nextPageToken != null) @@ -27329,7 +28353,7 @@ function GetRecognizerRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -27394,9 +28418,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetRecognizerRequest.decode = function decode(reader, length, error) { + GetRecognizerRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.GetRecognizerRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -27408,7 +28436,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -27439,9 +28467,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetRecognizerRequest.verify = function verify(message) { + GetRecognizerRequest.verify = function verify(message, long) { if (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"; @@ -27456,9 +28488,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.GetRecognizerRequest} GetRecognizerRequest */ - GetRecognizerRequest.fromObject = function fromObject(object) { + GetRecognizerRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.GetRecognizerRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.GetRecognizerRequest(); if (object.name != null) message.name = String(object.name); @@ -27536,7 +28572,7 @@ function UpdateRecognizerRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -27621,9 +28657,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UpdateRecognizerRequest.decode = function decode(reader, length, error) { + UpdateRecognizerRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.UpdateRecognizerRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -27631,11 +28671,11 @@ break; switch (tag >>> 3) { case 1: { - message.recognizer = $root.google.cloud.speech.v2.Recognizer.decode(reader, reader.uint32()); + message.recognizer = $root.google.cloud.speech.v2.Recognizer.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; } case 4: { @@ -27643,7 +28683,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -27674,16 +28714,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UpdateRecognizerRequest.verify = function verify(message) { + UpdateRecognizerRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.recognizer != null && message.hasOwnProperty("recognizer")) { - var error = $root.google.cloud.speech.v2.Recognizer.verify(message.recognizer); + var error = $root.google.cloud.speech.v2.Recognizer.verify(message.recognizer, long + 1); if (error) return "recognizer." + 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; } @@ -27701,19 +28745,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.UpdateRecognizerRequest} UpdateRecognizerRequest */ - UpdateRecognizerRequest.fromObject = function fromObject(object) { + UpdateRecognizerRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.UpdateRecognizerRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.UpdateRecognizerRequest(); if (object.recognizer != null) { if (typeof object.recognizer !== "object") throw TypeError(".google.cloud.speech.v2.UpdateRecognizerRequest.recognizer: object expected"); - message.recognizer = $root.google.cloud.speech.v2.Recognizer.fromObject(object.recognizer); + message.recognizer = $root.google.cloud.speech.v2.Recognizer.fromObject(object.recognizer, long + 1); } if (object.updateMask != null) { if (typeof object.updateMask !== "object") throw TypeError(".google.cloud.speech.v2.UpdateRecognizerRequest.updateMask: object expected"); - message.updateMask = $root.google.protobuf.FieldMask.fromObject(object.updateMask); + message.updateMask = $root.google.protobuf.FieldMask.fromObject(object.updateMask, long + 1); } if (object.validateOnly != null) message.validateOnly = Boolean(object.validateOnly); @@ -27799,7 +28847,7 @@ function DeleteRecognizerRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -27894,9 +28942,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DeleteRecognizerRequest.decode = function decode(reader, length, error) { + DeleteRecognizerRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.DeleteRecognizerRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -27920,7 +28972,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -27951,9 +29003,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DeleteRecognizerRequest.verify = function verify(message) { + DeleteRecognizerRequest.verify = function verify(message, long) { if (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"; @@ -27977,9 +29033,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.DeleteRecognizerRequest} DeleteRecognizerRequest */ - DeleteRecognizerRequest.fromObject = function fromObject(object) { + DeleteRecognizerRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.DeleteRecognizerRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.DeleteRecognizerRequest(); if (object.name != null) message.name = String(object.name); @@ -28073,7 +29133,7 @@ function UndeleteRecognizerRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -28158,9 +29218,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UndeleteRecognizerRequest.decode = function decode(reader, length, error) { + UndeleteRecognizerRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.UndeleteRecognizerRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -28180,7 +29244,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -28211,9 +29275,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UndeleteRecognizerRequest.verify = function verify(message) { + UndeleteRecognizerRequest.verify = function verify(message, long) { if (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"; @@ -28234,9 +29302,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.UndeleteRecognizerRequest} UndeleteRecognizerRequest */ - UndeleteRecognizerRequest.fromObject = function fromObject(object) { + UndeleteRecognizerRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.UndeleteRecognizerRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.UndeleteRecognizerRequest(); if (object.name != null) message.name = String(object.name); @@ -28340,7 +29412,7 @@ this.annotations = {}; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -28557,9 +29629,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Recognizer.decode = function decode(reader, length, error) { + Recognizer.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.Recognizer(), key, value; while (reader.pos < end) { var tag = reader.uint32(); @@ -28589,7 +29665,7 @@ break; } case 6: { - message.defaultRecognitionConfig = $root.google.cloud.speech.v2.RecognitionConfig.decode(reader, reader.uint32()); + message.defaultRecognitionConfig = $root.google.cloud.speech.v2.RecognitionConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { @@ -28608,10 +29684,12 @@ value = reader.string(); break; default: - reader.skipType(tag2 & 7); + reader.skipType(tag2 & 7, long); break; } } + if (key === "__proto__") + $util.makeProp(message.annotations, key); message.annotations[key] = value; break; } @@ -28620,19 +29698,19 @@ break; } case 9: { - 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 10: { - message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 11: { - message.deleteTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.deleteTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 14: { - message.expireTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.expireTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 12: { @@ -28652,7 +29730,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -28683,9 +29761,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Recognizer.verify = function verify(message) { + Recognizer.verify = function verify(message, long) { if (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"; @@ -28706,7 +29788,7 @@ return "languageCodes: string[] expected"; } if (message.defaultRecognitionConfig != null && message.hasOwnProperty("defaultRecognitionConfig")) { - var error = $root.google.cloud.speech.v2.RecognitionConfig.verify(message.defaultRecognitionConfig); + var error = $root.google.cloud.speech.v2.RecognitionConfig.verify(message.defaultRecognitionConfig, long + 1); if (error) return "defaultRecognitionConfig." + error; } @@ -28728,22 +29810,22 @@ break; } 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; } if (message.updateTime != null && message.hasOwnProperty("updateTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.updateTime); + var error = $root.google.protobuf.Timestamp.verify(message.updateTime, long + 1); if (error) return "updateTime." + error; } if (message.deleteTime != null && message.hasOwnProperty("deleteTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.deleteTime); + var error = $root.google.protobuf.Timestamp.verify(message.deleteTime, long + 1); if (error) return "deleteTime." + error; } if (message.expireTime != null && message.hasOwnProperty("expireTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.expireTime); + var error = $root.google.protobuf.Timestamp.verify(message.expireTime, long + 1); if (error) return "expireTime." + error; } @@ -28770,9 +29852,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.Recognizer} Recognizer */ - Recognizer.fromObject = function fromObject(object) { + Recognizer.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.Recognizer) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.Recognizer(); if (object.name != null) message.name = String(object.name); @@ -28792,14 +29878,17 @@ if (object.defaultRecognitionConfig != null) { if (typeof object.defaultRecognitionConfig !== "object") throw TypeError(".google.cloud.speech.v2.Recognizer.defaultRecognitionConfig: object expected"); - message.defaultRecognitionConfig = $root.google.cloud.speech.v2.RecognitionConfig.fromObject(object.defaultRecognitionConfig); + message.defaultRecognitionConfig = $root.google.cloud.speech.v2.RecognitionConfig.fromObject(object.defaultRecognitionConfig, long + 1); } if (object.annotations) { if (typeof object.annotations !== "object") throw TypeError(".google.cloud.speech.v2.Recognizer.annotations: object expected"); message.annotations = {}; - for (var keys = Object.keys(object.annotations), i = 0; i < keys.length; ++i) + for (var keys = Object.keys(object.annotations), i = 0; i < keys.length; ++i) { + if (keys[i] === "__proto__") + $util.makeProp(message.annotations, keys[i]); message.annotations[keys[i]] = String(object.annotations[keys[i]]); + } } switch (object.state) { default: @@ -28824,22 +29913,22 @@ if (object.createTime != null) { if (typeof object.createTime !== "object") throw TypeError(".google.cloud.speech.v2.Recognizer.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.updateTime != null) { if (typeof object.updateTime !== "object") throw TypeError(".google.cloud.speech.v2.Recognizer.updateTime: object expected"); - message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime); + message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime, long + 1); } if (object.deleteTime != null) { if (typeof object.deleteTime !== "object") throw TypeError(".google.cloud.speech.v2.Recognizer.deleteTime: object expected"); - message.deleteTime = $root.google.protobuf.Timestamp.fromObject(object.deleteTime); + message.deleteTime = $root.google.protobuf.Timestamp.fromObject(object.deleteTime, long + 1); } if (object.expireTime != null) { if (typeof object.expireTime !== "object") throw TypeError(".google.cloud.speech.v2.Recognizer.expireTime: object expected"); - message.expireTime = $root.google.protobuf.Timestamp.fromObject(object.expireTime); + message.expireTime = $root.google.protobuf.Timestamp.fromObject(object.expireTime, long + 1); } if (object.etag != null) message.etag = String(object.etag); @@ -28898,8 +29987,11 @@ var keys2; if (message.annotations && (keys2 = Object.keys(message.annotations)).length) { object.annotations = {}; - for (var j = 0; j < keys2.length; ++j) + for (var j = 0; j < keys2.length; ++j) { + if (keys2[j] === "__proto__") + $util.makeProp(object.annotations, keys2[j]); object.annotations[keys2[j]] = message.annotations[keys2[j]]; + } } if (message.state != null && message.hasOwnProperty("state")) object.state = options.enums === String ? $root.google.cloud.speech.v2.Recognizer.State[message.state] === undefined ? message.state : $root.google.cloud.speech.v2.Recognizer.State[message.state] : message.state; @@ -28991,7 +30083,7 @@ function AutoDetectDecodingConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -29046,9 +30138,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - AutoDetectDecodingConfig.decode = function decode(reader, length, error) { + AutoDetectDecodingConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.AutoDetectDecodingConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -29056,7 +30152,7 @@ break; switch (tag >>> 3) { default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -29087,9 +30183,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - AutoDetectDecodingConfig.verify = function verify(message) { + AutoDetectDecodingConfig.verify = function verify(message, 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; }; @@ -29101,9 +30201,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.AutoDetectDecodingConfig} AutoDetectDecodingConfig */ - AutoDetectDecodingConfig.fromObject = function fromObject(object) { + AutoDetectDecodingConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.AutoDetectDecodingConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); return new $root.google.cloud.speech.v2.AutoDetectDecodingConfig(); }; @@ -29171,7 +30275,7 @@ function ExplicitDecodingConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -29256,9 +30360,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ExplicitDecodingConfig.decode = function decode(reader, length, error) { + ExplicitDecodingConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.ExplicitDecodingConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -29278,7 +30386,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -29309,9 +30417,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ExplicitDecodingConfig.verify = function verify(message) { + ExplicitDecodingConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.encoding != null && message.hasOwnProperty("encoding")) switch (message.encoding) { default: @@ -29348,9 +30460,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.ExplicitDecodingConfig} ExplicitDecodingConfig */ - ExplicitDecodingConfig.fromObject = function fromObject(object) { + ExplicitDecodingConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.ExplicitDecodingConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.ExplicitDecodingConfig(); switch (object.encoding) { default: @@ -29532,7 +30648,7 @@ function SpeakerDiarizationConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -29607,9 +30723,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SpeakerDiarizationConfig.decode = function decode(reader, length, error) { + SpeakerDiarizationConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.SpeakerDiarizationConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -29625,7 +30745,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -29656,9 +30776,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SpeakerDiarizationConfig.verify = function verify(message) { + SpeakerDiarizationConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.minSpeakerCount != null && message.hasOwnProperty("minSpeakerCount")) if (!$util.isInteger(message.minSpeakerCount)) return "minSpeakerCount: integer expected"; @@ -29676,9 +30800,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.SpeakerDiarizationConfig} SpeakerDiarizationConfig */ - SpeakerDiarizationConfig.fromObject = function fromObject(object) { + SpeakerDiarizationConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.SpeakerDiarizationConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.SpeakerDiarizationConfig(); if (object.minSpeakerCount != null) message.minSpeakerCount = object.minSpeakerCount | 0; @@ -29760,7 +30888,7 @@ function CustomPromptConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -29825,9 +30953,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CustomPromptConfig.decode = function decode(reader, length, error) { + CustomPromptConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.CustomPromptConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -29839,7 +30971,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -29870,9 +31002,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CustomPromptConfig.verify = function verify(message) { + CustomPromptConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.customPrompt != null && message.hasOwnProperty("customPrompt")) if (!$util.isString(message.customPrompt)) return "customPrompt: string expected"; @@ -29887,9 +31023,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.CustomPromptConfig} CustomPromptConfig */ - CustomPromptConfig.fromObject = function fromObject(object) { + CustomPromptConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.CustomPromptConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.CustomPromptConfig(); if (object.customPrompt != null) message.customPrompt = String(object.customPrompt); @@ -29974,7 +31114,7 @@ function RecognitionFeatures(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -30129,9 +31269,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RecognitionFeatures.decode = function decode(reader, length, error) { + RecognitionFeatures.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.RecognitionFeatures(); while (reader.pos < end) { var tag = reader.uint32(); @@ -30167,7 +31311,7 @@ break; } case 9: { - message.diarizationConfig = $root.google.cloud.speech.v2.SpeakerDiarizationConfig.decode(reader, reader.uint32()); + message.diarizationConfig = $root.google.cloud.speech.v2.SpeakerDiarizationConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 16: { @@ -30175,11 +31319,11 @@ break; } case 18: { - message.customPromptConfig = $root.google.cloud.speech.v2.CustomPromptConfig.decode(reader, reader.uint32()); + message.customPromptConfig = $root.google.cloud.speech.v2.CustomPromptConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -30210,9 +31354,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RecognitionFeatures.verify = function verify(message) { + RecognitionFeatures.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.profanityFilter != null && message.hasOwnProperty("profanityFilter")) if (typeof message.profanityFilter !== "boolean") return "profanityFilter: boolean expected"; @@ -30240,7 +31388,7 @@ break; } if (message.diarizationConfig != null && message.hasOwnProperty("diarizationConfig")) { - var error = $root.google.cloud.speech.v2.SpeakerDiarizationConfig.verify(message.diarizationConfig); + var error = $root.google.cloud.speech.v2.SpeakerDiarizationConfig.verify(message.diarizationConfig, long + 1); if (error) return "diarizationConfig." + error; } @@ -30248,7 +31396,7 @@ if (!$util.isInteger(message.maxAlternatives)) return "maxAlternatives: integer expected"; if (message.customPromptConfig != null && message.hasOwnProperty("customPromptConfig")) { - var error = $root.google.cloud.speech.v2.CustomPromptConfig.verify(message.customPromptConfig); + var error = $root.google.cloud.speech.v2.CustomPromptConfig.verify(message.customPromptConfig, long + 1); if (error) return "customPromptConfig." + error; } @@ -30263,9 +31411,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.RecognitionFeatures} RecognitionFeatures */ - RecognitionFeatures.fromObject = function fromObject(object) { + RecognitionFeatures.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.RecognitionFeatures) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.RecognitionFeatures(); if (object.profanityFilter != null) message.profanityFilter = Boolean(object.profanityFilter); @@ -30298,14 +31450,14 @@ if (object.diarizationConfig != null) { if (typeof object.diarizationConfig !== "object") throw TypeError(".google.cloud.speech.v2.RecognitionFeatures.diarizationConfig: object expected"); - message.diarizationConfig = $root.google.cloud.speech.v2.SpeakerDiarizationConfig.fromObject(object.diarizationConfig); + message.diarizationConfig = $root.google.cloud.speech.v2.SpeakerDiarizationConfig.fromObject(object.diarizationConfig, long + 1); } if (object.maxAlternatives != null) message.maxAlternatives = object.maxAlternatives | 0; if (object.customPromptConfig != null) { if (typeof object.customPromptConfig !== "object") throw TypeError(".google.cloud.speech.v2.RecognitionFeatures.customPromptConfig: object expected"); - message.customPromptConfig = $root.google.cloud.speech.v2.CustomPromptConfig.fromObject(object.customPromptConfig); + message.customPromptConfig = $root.google.cloud.speech.v2.CustomPromptConfig.fromObject(object.customPromptConfig, long + 1); } return message; }; @@ -30422,7 +31574,7 @@ this.entries = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -30488,9 +31640,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - TranscriptNormalization.decode = function decode(reader, length, error) { + TranscriptNormalization.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.TranscriptNormalization(); while (reader.pos < end) { var tag = reader.uint32(); @@ -30500,11 +31656,11 @@ case 1: { if (!(message.entries && message.entries.length)) message.entries = []; - message.entries.push($root.google.cloud.speech.v2.TranscriptNormalization.Entry.decode(reader, reader.uint32())); + message.entries.push($root.google.cloud.speech.v2.TranscriptNormalization.Entry.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -30535,14 +31691,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - TranscriptNormalization.verify = function verify(message) { + TranscriptNormalization.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.entries != null && message.hasOwnProperty("entries")) { if (!Array.isArray(message.entries)) return "entries: array expected"; for (var i = 0; i < message.entries.length; ++i) { - var error = $root.google.cloud.speech.v2.TranscriptNormalization.Entry.verify(message.entries[i]); + var error = $root.google.cloud.speech.v2.TranscriptNormalization.Entry.verify(message.entries[i], long + 1); if (error) return "entries." + error; } @@ -30558,9 +31718,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.TranscriptNormalization} TranscriptNormalization */ - TranscriptNormalization.fromObject = function fromObject(object) { + TranscriptNormalization.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.TranscriptNormalization) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.TranscriptNormalization(); if (object.entries) { if (!Array.isArray(object.entries)) @@ -30569,7 +31733,7 @@ for (var i = 0; i < object.entries.length; ++i) { if (typeof object.entries[i] !== "object") throw TypeError(".google.cloud.speech.v2.TranscriptNormalization.entries: object expected"); - message.entries[i] = $root.google.cloud.speech.v2.TranscriptNormalization.Entry.fromObject(object.entries[i]); + message.entries[i] = $root.google.cloud.speech.v2.TranscriptNormalization.Entry.fromObject(object.entries[i], long + 1); } } return message; @@ -30646,7 +31810,7 @@ function Entry(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -30731,9 +31895,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Entry.decode = function decode(reader, length, error) { + Entry.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.TranscriptNormalization.Entry(); while (reader.pos < end) { var tag = reader.uint32(); @@ -30753,7 +31921,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -30784,9 +31952,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Entry.verify = function verify(message) { + Entry.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.search != null && message.hasOwnProperty("search")) if (!$util.isString(message.search)) return "search: string expected"; @@ -30807,9 +31979,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.TranscriptNormalization.Entry} Entry */ - Entry.fromObject = function fromObject(object) { + Entry.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.TranscriptNormalization.Entry) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.TranscriptNormalization.Entry(); if (object.search != null) message.search = String(object.search); @@ -30899,7 +32075,7 @@ function TranslationConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -30964,9 +32140,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - TranslationConfig.decode = function decode(reader, length, error) { + TranslationConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.TranslationConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -30978,7 +32158,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -31009,9 +32189,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - TranslationConfig.verify = function verify(message) { + TranslationConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.targetLanguage != null && message.hasOwnProperty("targetLanguage")) if (!$util.isString(message.targetLanguage)) return "targetLanguage: string expected"; @@ -31026,9 +32210,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.TranslationConfig} TranslationConfig */ - TranslationConfig.fromObject = function fromObject(object) { + TranslationConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.TranslationConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.TranslationConfig(); if (object.targetLanguage != null) message.targetLanguage = String(object.targetLanguage); @@ -31107,7 +32295,7 @@ this.customClasses = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -31184,9 +32372,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SpeechAdaptation.decode = function decode(reader, length, error) { + SpeechAdaptation.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.SpeechAdaptation(); while (reader.pos < end) { var tag = reader.uint32(); @@ -31196,17 +32388,17 @@ case 1: { if (!(message.phraseSets && message.phraseSets.length)) message.phraseSets = []; - message.phraseSets.push($root.google.cloud.speech.v2.SpeechAdaptation.AdaptationPhraseSet.decode(reader, reader.uint32())); + message.phraseSets.push($root.google.cloud.speech.v2.SpeechAdaptation.AdaptationPhraseSet.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { if (!(message.customClasses && message.customClasses.length)) message.customClasses = []; - message.customClasses.push($root.google.cloud.speech.v2.CustomClass.decode(reader, reader.uint32())); + message.customClasses.push($root.google.cloud.speech.v2.CustomClass.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -31237,14 +32429,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SpeechAdaptation.verify = function verify(message) { + SpeechAdaptation.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.phraseSets != null && message.hasOwnProperty("phraseSets")) { if (!Array.isArray(message.phraseSets)) return "phraseSets: array expected"; for (var i = 0; i < message.phraseSets.length; ++i) { - var error = $root.google.cloud.speech.v2.SpeechAdaptation.AdaptationPhraseSet.verify(message.phraseSets[i]); + var error = $root.google.cloud.speech.v2.SpeechAdaptation.AdaptationPhraseSet.verify(message.phraseSets[i], long + 1); if (error) return "phraseSets." + error; } @@ -31253,7 +32449,7 @@ if (!Array.isArray(message.customClasses)) return "customClasses: array expected"; for (var i = 0; i < message.customClasses.length; ++i) { - var error = $root.google.cloud.speech.v2.CustomClass.verify(message.customClasses[i]); + var error = $root.google.cloud.speech.v2.CustomClass.verify(message.customClasses[i], long + 1); if (error) return "customClasses." + error; } @@ -31269,9 +32465,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.SpeechAdaptation} SpeechAdaptation */ - SpeechAdaptation.fromObject = function fromObject(object) { + SpeechAdaptation.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.SpeechAdaptation) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.SpeechAdaptation(); if (object.phraseSets) { if (!Array.isArray(object.phraseSets)) @@ -31280,7 +32480,7 @@ for (var i = 0; i < object.phraseSets.length; ++i) { if (typeof object.phraseSets[i] !== "object") throw TypeError(".google.cloud.speech.v2.SpeechAdaptation.phraseSets: object expected"); - message.phraseSets[i] = $root.google.cloud.speech.v2.SpeechAdaptation.AdaptationPhraseSet.fromObject(object.phraseSets[i]); + message.phraseSets[i] = $root.google.cloud.speech.v2.SpeechAdaptation.AdaptationPhraseSet.fromObject(object.phraseSets[i], long + 1); } } if (object.customClasses) { @@ -31290,7 +32490,7 @@ for (var i = 0; i < object.customClasses.length; ++i) { if (typeof object.customClasses[i] !== "object") throw TypeError(".google.cloud.speech.v2.SpeechAdaptation.customClasses: object expected"); - message.customClasses[i] = $root.google.cloud.speech.v2.CustomClass.fromObject(object.customClasses[i]); + message.customClasses[i] = $root.google.cloud.speech.v2.CustomClass.fromObject(object.customClasses[i], long + 1); } } return message; @@ -31373,7 +32573,7 @@ function AdaptationPhraseSet(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -31462,9 +32662,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - AdaptationPhraseSet.decode = function decode(reader, length, error) { + AdaptationPhraseSet.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.SpeechAdaptation.AdaptationPhraseSet(); while (reader.pos < end) { var tag = reader.uint32(); @@ -31476,11 +32680,11 @@ break; } case 2: { - message.inlinePhraseSet = $root.google.cloud.speech.v2.PhraseSet.decode(reader, reader.uint32()); + message.inlinePhraseSet = $root.google.cloud.speech.v2.PhraseSet.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -31511,9 +32715,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - AdaptationPhraseSet.verify = function verify(message) { + AdaptationPhraseSet.verify = function verify(message, 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.phraseSet != null && message.hasOwnProperty("phraseSet")) { properties.value = 1; @@ -31525,7 +32733,7 @@ return "value: multiple values"; properties.value = 1; { - var error = $root.google.cloud.speech.v2.PhraseSet.verify(message.inlinePhraseSet); + var error = $root.google.cloud.speech.v2.PhraseSet.verify(message.inlinePhraseSet, long + 1); if (error) return "inlinePhraseSet." + error; } @@ -31541,16 +32749,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.SpeechAdaptation.AdaptationPhraseSet} AdaptationPhraseSet */ - AdaptationPhraseSet.fromObject = function fromObject(object) { + AdaptationPhraseSet.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.SpeechAdaptation.AdaptationPhraseSet) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.SpeechAdaptation.AdaptationPhraseSet(); if (object.phraseSet != null) message.phraseSet = String(object.phraseSet); if (object.inlinePhraseSet != null) { if (typeof object.inlinePhraseSet !== "object") throw TypeError(".google.cloud.speech.v2.SpeechAdaptation.AdaptationPhraseSet.inlinePhraseSet: object expected"); - message.inlinePhraseSet = $root.google.cloud.speech.v2.PhraseSet.fromObject(object.inlinePhraseSet); + message.inlinePhraseSet = $root.google.cloud.speech.v2.PhraseSet.fromObject(object.inlinePhraseSet, long + 1); } return message; }; @@ -31634,7 +32846,7 @@ function DenoiserConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -31709,9 +32921,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DenoiserConfig.decode = function decode(reader, length, error) { + DenoiserConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.DenoiserConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -31727,7 +32943,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -31758,9 +32974,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DenoiserConfig.verify = function verify(message) { + DenoiserConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.denoiseAudio != null && message.hasOwnProperty("denoiseAudio")) if (typeof message.denoiseAudio !== "boolean") return "denoiseAudio: boolean expected"; @@ -31778,9 +32998,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.DenoiserConfig} DenoiserConfig */ - DenoiserConfig.fromObject = function fromObject(object) { + DenoiserConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.DenoiserConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.DenoiserConfig(); if (object.denoiseAudio != null) message.denoiseAudio = Boolean(object.denoiseAudio); @@ -31871,7 +33095,7 @@ this.languageCodes = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -32031,9 +33255,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RecognitionConfig.decode = function decode(reader, length, error) { + RecognitionConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.RecognitionConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -32041,11 +33269,11 @@ break; switch (tag >>> 3) { case 7: { - message.autoDecodingConfig = $root.google.cloud.speech.v2.AutoDetectDecodingConfig.decode(reader, reader.uint32()); + message.autoDecodingConfig = $root.google.cloud.speech.v2.AutoDetectDecodingConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { - message.explicitDecodingConfig = $root.google.cloud.speech.v2.ExplicitDecodingConfig.decode(reader, reader.uint32()); + message.explicitDecodingConfig = $root.google.cloud.speech.v2.ExplicitDecodingConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { @@ -32059,27 +33287,27 @@ break; } case 2: { - message.features = $root.google.cloud.speech.v2.RecognitionFeatures.decode(reader, reader.uint32()); + message.features = $root.google.cloud.speech.v2.RecognitionFeatures.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { - message.adaptation = $root.google.cloud.speech.v2.SpeechAdaptation.decode(reader, reader.uint32()); + message.adaptation = $root.google.cloud.speech.v2.SpeechAdaptation.decode(reader, reader.uint32(), undefined, long + 1); break; } case 11: { - message.transcriptNormalization = $root.google.cloud.speech.v2.TranscriptNormalization.decode(reader, reader.uint32()); + message.transcriptNormalization = $root.google.cloud.speech.v2.TranscriptNormalization.decode(reader, reader.uint32(), undefined, long + 1); break; } case 15: { - message.translationConfig = $root.google.cloud.speech.v2.TranslationConfig.decode(reader, reader.uint32()); + message.translationConfig = $root.google.cloud.speech.v2.TranslationConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 16: { - message.denoiserConfig = $root.google.cloud.speech.v2.DenoiserConfig.decode(reader, reader.uint32()); + message.denoiserConfig = $root.google.cloud.speech.v2.DenoiserConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -32110,14 +33338,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RecognitionConfig.verify = function verify(message) { + RecognitionConfig.verify = function verify(message, 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.autoDecodingConfig != null && message.hasOwnProperty("autoDecodingConfig")) { properties.decodingConfig = 1; { - var error = $root.google.cloud.speech.v2.AutoDetectDecodingConfig.verify(message.autoDecodingConfig); + var error = $root.google.cloud.speech.v2.AutoDetectDecodingConfig.verify(message.autoDecodingConfig, long + 1); if (error) return "autoDecodingConfig." + error; } @@ -32127,7 +33359,7 @@ return "decodingConfig: multiple values"; properties.decodingConfig = 1; { - var error = $root.google.cloud.speech.v2.ExplicitDecodingConfig.verify(message.explicitDecodingConfig); + var error = $root.google.cloud.speech.v2.ExplicitDecodingConfig.verify(message.explicitDecodingConfig, long + 1); if (error) return "explicitDecodingConfig." + error; } @@ -32143,27 +33375,27 @@ return "languageCodes: string[] expected"; } if (message.features != null && message.hasOwnProperty("features")) { - var error = $root.google.cloud.speech.v2.RecognitionFeatures.verify(message.features); + var error = $root.google.cloud.speech.v2.RecognitionFeatures.verify(message.features, long + 1); if (error) return "features." + error; } if (message.adaptation != null && message.hasOwnProperty("adaptation")) { - var error = $root.google.cloud.speech.v2.SpeechAdaptation.verify(message.adaptation); + var error = $root.google.cloud.speech.v2.SpeechAdaptation.verify(message.adaptation, long + 1); if (error) return "adaptation." + error; } if (message.transcriptNormalization != null && message.hasOwnProperty("transcriptNormalization")) { - var error = $root.google.cloud.speech.v2.TranscriptNormalization.verify(message.transcriptNormalization); + var error = $root.google.cloud.speech.v2.TranscriptNormalization.verify(message.transcriptNormalization, long + 1); if (error) return "transcriptNormalization." + error; } if (message.translationConfig != null && message.hasOwnProperty("translationConfig")) { - var error = $root.google.cloud.speech.v2.TranslationConfig.verify(message.translationConfig); + var error = $root.google.cloud.speech.v2.TranslationConfig.verify(message.translationConfig, long + 1); if (error) return "translationConfig." + error; } if (message.denoiserConfig != null && message.hasOwnProperty("denoiserConfig")) { - var error = $root.google.cloud.speech.v2.DenoiserConfig.verify(message.denoiserConfig); + var error = $root.google.cloud.speech.v2.DenoiserConfig.verify(message.denoiserConfig, long + 1); if (error) return "denoiserConfig." + error; } @@ -32178,19 +33410,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.RecognitionConfig} RecognitionConfig */ - RecognitionConfig.fromObject = function fromObject(object) { + RecognitionConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.RecognitionConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.RecognitionConfig(); if (object.autoDecodingConfig != null) { if (typeof object.autoDecodingConfig !== "object") throw TypeError(".google.cloud.speech.v2.RecognitionConfig.autoDecodingConfig: object expected"); - message.autoDecodingConfig = $root.google.cloud.speech.v2.AutoDetectDecodingConfig.fromObject(object.autoDecodingConfig); + message.autoDecodingConfig = $root.google.cloud.speech.v2.AutoDetectDecodingConfig.fromObject(object.autoDecodingConfig, long + 1); } if (object.explicitDecodingConfig != null) { if (typeof object.explicitDecodingConfig !== "object") throw TypeError(".google.cloud.speech.v2.RecognitionConfig.explicitDecodingConfig: object expected"); - message.explicitDecodingConfig = $root.google.cloud.speech.v2.ExplicitDecodingConfig.fromObject(object.explicitDecodingConfig); + message.explicitDecodingConfig = $root.google.cloud.speech.v2.ExplicitDecodingConfig.fromObject(object.explicitDecodingConfig, long + 1); } if (object.model != null) message.model = String(object.model); @@ -32204,27 +33440,27 @@ if (object.features != null) { if (typeof object.features !== "object") throw TypeError(".google.cloud.speech.v2.RecognitionConfig.features: object expected"); - message.features = $root.google.cloud.speech.v2.RecognitionFeatures.fromObject(object.features); + message.features = $root.google.cloud.speech.v2.RecognitionFeatures.fromObject(object.features, long + 1); } if (object.adaptation != null) { if (typeof object.adaptation !== "object") throw TypeError(".google.cloud.speech.v2.RecognitionConfig.adaptation: object expected"); - message.adaptation = $root.google.cloud.speech.v2.SpeechAdaptation.fromObject(object.adaptation); + message.adaptation = $root.google.cloud.speech.v2.SpeechAdaptation.fromObject(object.adaptation, long + 1); } if (object.transcriptNormalization != null) { if (typeof object.transcriptNormalization !== "object") throw TypeError(".google.cloud.speech.v2.RecognitionConfig.transcriptNormalization: object expected"); - message.transcriptNormalization = $root.google.cloud.speech.v2.TranscriptNormalization.fromObject(object.transcriptNormalization); + message.transcriptNormalization = $root.google.cloud.speech.v2.TranscriptNormalization.fromObject(object.transcriptNormalization, long + 1); } if (object.translationConfig != null) { if (typeof object.translationConfig !== "object") throw TypeError(".google.cloud.speech.v2.RecognitionConfig.translationConfig: object expected"); - message.translationConfig = $root.google.cloud.speech.v2.TranslationConfig.fromObject(object.translationConfig); + message.translationConfig = $root.google.cloud.speech.v2.TranslationConfig.fromObject(object.translationConfig, long + 1); } if (object.denoiserConfig != null) { if (typeof object.denoiserConfig !== "object") throw TypeError(".google.cloud.speech.v2.RecognitionConfig.denoiserConfig: object expected"); - message.denoiserConfig = $root.google.cloud.speech.v2.DenoiserConfig.fromObject(object.denoiserConfig); + message.denoiserConfig = $root.google.cloud.speech.v2.DenoiserConfig.fromObject(object.denoiserConfig, long + 1); } return message; }; @@ -32335,7 +33571,7 @@ function RecognizeRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -32454,9 +33690,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RecognizeRequest.decode = function decode(reader, length, error) { + RecognizeRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.RecognizeRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -32468,11 +33708,11 @@ break; } case 1: { - message.config = $root.google.cloud.speech.v2.RecognitionConfig.decode(reader, reader.uint32()); + message.config = $root.google.cloud.speech.v2.RecognitionConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { - message.configMask = $root.google.protobuf.FieldMask.decode(reader, reader.uint32()); + message.configMask = $root.google.protobuf.FieldMask.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { @@ -32484,7 +33724,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -32515,20 +33755,24 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RecognizeRequest.verify = function verify(message) { + RecognizeRequest.verify = function verify(message, 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.recognizer != null && message.hasOwnProperty("recognizer")) if (!$util.isString(message.recognizer)) return "recognizer: string expected"; if (message.config != null && message.hasOwnProperty("config")) { - var error = $root.google.cloud.speech.v2.RecognitionConfig.verify(message.config); + var error = $root.google.cloud.speech.v2.RecognitionConfig.verify(message.config, long + 1); if (error) return "config." + error; } if (message.configMask != null && message.hasOwnProperty("configMask")) { - var error = $root.google.protobuf.FieldMask.verify(message.configMask); + var error = $root.google.protobuf.FieldMask.verify(message.configMask, long + 1); if (error) return "configMask." + error; } @@ -32555,21 +33799,25 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.RecognizeRequest} RecognizeRequest */ - RecognizeRequest.fromObject = function fromObject(object) { + RecognizeRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.RecognizeRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.RecognizeRequest(); if (object.recognizer != null) message.recognizer = String(object.recognizer); if (object.config != null) { if (typeof object.config !== "object") throw TypeError(".google.cloud.speech.v2.RecognizeRequest.config: object expected"); - message.config = $root.google.cloud.speech.v2.RecognitionConfig.fromObject(object.config); + message.config = $root.google.cloud.speech.v2.RecognitionConfig.fromObject(object.config, long + 1); } if (object.configMask != null) { if (typeof object.configMask !== "object") throw TypeError(".google.cloud.speech.v2.RecognizeRequest.configMask: object expected"); - message.configMask = $root.google.protobuf.FieldMask.fromObject(object.configMask); + message.configMask = $root.google.protobuf.FieldMask.fromObject(object.configMask, long + 1); } if (object.content != null) if (typeof object.content === "string") @@ -32669,7 +33917,7 @@ function RecognitionResponseMetadata(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -32763,9 +34011,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RecognitionResponseMetadata.decode = function decode(reader, length, error) { + RecognitionResponseMetadata.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.RecognitionResponseMetadata(); while (reader.pos < end) { var tag = reader.uint32(); @@ -32777,7 +34029,7 @@ break; } case 6: { - message.totalBilledDuration = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.totalBilledDuration = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 10: { @@ -32785,7 +34037,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -32816,15 +34068,19 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RecognitionResponseMetadata.verify = function verify(message) { + RecognitionResponseMetadata.verify = function verify(message, 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.requestId != null && message.hasOwnProperty("requestId")) if (!$util.isString(message.requestId)) return "requestId: string expected"; if (message.totalBilledDuration != null && message.hasOwnProperty("totalBilledDuration")) { - var error = $root.google.protobuf.Duration.verify(message.totalBilledDuration); + var error = $root.google.protobuf.Duration.verify(message.totalBilledDuration, long + 1); if (error) return "totalBilledDuration." + error; } @@ -32844,16 +34100,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.RecognitionResponseMetadata} RecognitionResponseMetadata */ - RecognitionResponseMetadata.fromObject = function fromObject(object) { + RecognitionResponseMetadata.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.RecognitionResponseMetadata) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.RecognitionResponseMetadata(); if (object.requestId != null) message.requestId = String(object.requestId); if (object.totalBilledDuration != null) { if (typeof object.totalBilledDuration !== "object") throw TypeError(".google.cloud.speech.v2.RecognitionResponseMetadata.totalBilledDuration: object expected"); - message.totalBilledDuration = $root.google.protobuf.Duration.fromObject(object.totalBilledDuration); + message.totalBilledDuration = $root.google.protobuf.Duration.fromObject(object.totalBilledDuration, long + 1); } if (object.prompt != null) message.prompt = String(object.prompt); @@ -32941,7 +34201,7 @@ this.words = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -33027,9 +34287,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SpeechRecognitionAlternative.decode = function decode(reader, length, error) { + SpeechRecognitionAlternative.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.SpeechRecognitionAlternative(); while (reader.pos < end) { var tag = reader.uint32(); @@ -33047,11 +34311,11 @@ case 3: { if (!(message.words && message.words.length)) message.words = []; - message.words.push($root.google.cloud.speech.v2.WordInfo.decode(reader, reader.uint32())); + message.words.push($root.google.cloud.speech.v2.WordInfo.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -33082,9 +34346,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SpeechRecognitionAlternative.verify = function verify(message) { + SpeechRecognitionAlternative.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.transcript != null && message.hasOwnProperty("transcript")) if (!$util.isString(message.transcript)) return "transcript: string expected"; @@ -33095,7 +34363,7 @@ if (!Array.isArray(message.words)) return "words: array expected"; for (var i = 0; i < message.words.length; ++i) { - var error = $root.google.cloud.speech.v2.WordInfo.verify(message.words[i]); + var error = $root.google.cloud.speech.v2.WordInfo.verify(message.words[i], long + 1); if (error) return "words." + error; } @@ -33111,9 +34379,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.SpeechRecognitionAlternative} SpeechRecognitionAlternative */ - SpeechRecognitionAlternative.fromObject = function fromObject(object) { + SpeechRecognitionAlternative.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.SpeechRecognitionAlternative) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.SpeechRecognitionAlternative(); if (object.transcript != null) message.transcript = String(object.transcript); @@ -33126,7 +34398,7 @@ for (var i = 0; i < object.words.length; ++i) { if (typeof object.words[i] !== "object") throw TypeError(".google.cloud.speech.v2.SpeechRecognitionAlternative.words: object expected"); - message.words[i] = $root.google.cloud.speech.v2.WordInfo.fromObject(object.words[i]); + message.words[i] = $root.google.cloud.speech.v2.WordInfo.fromObject(object.words[i], long + 1); } } return message; @@ -33216,7 +34488,7 @@ function WordInfo(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -33321,9 +34593,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - WordInfo.decode = function decode(reader, length, error) { + WordInfo.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.WordInfo(); while (reader.pos < end) { var tag = reader.uint32(); @@ -33331,11 +34607,11 @@ break; switch (tag >>> 3) { case 1: { - message.startOffset = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.startOffset = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.endOffset = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.endOffset = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -33351,7 +34627,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -33382,16 +34658,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - WordInfo.verify = function verify(message) { + WordInfo.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.startOffset != null && message.hasOwnProperty("startOffset")) { - var error = $root.google.protobuf.Duration.verify(message.startOffset); + var error = $root.google.protobuf.Duration.verify(message.startOffset, long + 1); if (error) return "startOffset." + error; } if (message.endOffset != null && message.hasOwnProperty("endOffset")) { - var error = $root.google.protobuf.Duration.verify(message.endOffset); + var error = $root.google.protobuf.Duration.verify(message.endOffset, long + 1); if (error) return "endOffset." + error; } @@ -33415,19 +34695,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.WordInfo} WordInfo */ - WordInfo.fromObject = function fromObject(object) { + WordInfo.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.WordInfo) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.WordInfo(); if (object.startOffset != null) { if (typeof object.startOffset !== "object") throw TypeError(".google.cloud.speech.v2.WordInfo.startOffset: object expected"); - message.startOffset = $root.google.protobuf.Duration.fromObject(object.startOffset); + message.startOffset = $root.google.protobuf.Duration.fromObject(object.startOffset, long + 1); } if (object.endOffset != null) { if (typeof object.endOffset !== "object") throw TypeError(".google.cloud.speech.v2.WordInfo.endOffset: object expected"); - message.endOffset = $root.google.protobuf.Duration.fromObject(object.endOffset); + message.endOffset = $root.google.protobuf.Duration.fromObject(object.endOffset, long + 1); } if (object.word != null) message.word = String(object.word); @@ -33524,7 +34808,7 @@ this.alternatives = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -33620,9 +34904,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SpeechRecognitionResult.decode = function decode(reader, length, error) { + SpeechRecognitionResult.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.SpeechRecognitionResult(); while (reader.pos < end) { var tag = reader.uint32(); @@ -33632,7 +34920,7 @@ case 1: { if (!(message.alternatives && message.alternatives.length)) message.alternatives = []; - message.alternatives.push($root.google.cloud.speech.v2.SpeechRecognitionAlternative.decode(reader, reader.uint32())); + message.alternatives.push($root.google.cloud.speech.v2.SpeechRecognitionAlternative.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -33640,7 +34928,7 @@ break; } case 4: { - message.resultEndOffset = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.resultEndOffset = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { @@ -33648,7 +34936,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -33679,14 +34967,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SpeechRecognitionResult.verify = function verify(message) { + SpeechRecognitionResult.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.alternatives != null && message.hasOwnProperty("alternatives")) { if (!Array.isArray(message.alternatives)) return "alternatives: array expected"; for (var i = 0; i < message.alternatives.length; ++i) { - var error = $root.google.cloud.speech.v2.SpeechRecognitionAlternative.verify(message.alternatives[i]); + var error = $root.google.cloud.speech.v2.SpeechRecognitionAlternative.verify(message.alternatives[i], long + 1); if (error) return "alternatives." + error; } @@ -33695,7 +34987,7 @@ if (!$util.isInteger(message.channelTag)) return "channelTag: integer expected"; if (message.resultEndOffset != null && message.hasOwnProperty("resultEndOffset")) { - var error = $root.google.protobuf.Duration.verify(message.resultEndOffset); + var error = $root.google.protobuf.Duration.verify(message.resultEndOffset, long + 1); if (error) return "resultEndOffset." + error; } @@ -33713,9 +35005,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.SpeechRecognitionResult} SpeechRecognitionResult */ - SpeechRecognitionResult.fromObject = function fromObject(object) { + SpeechRecognitionResult.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.SpeechRecognitionResult) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.SpeechRecognitionResult(); if (object.alternatives) { if (!Array.isArray(object.alternatives)) @@ -33724,7 +35020,7 @@ for (var i = 0; i < object.alternatives.length; ++i) { if (typeof object.alternatives[i] !== "object") throw TypeError(".google.cloud.speech.v2.SpeechRecognitionResult.alternatives: object expected"); - message.alternatives[i] = $root.google.cloud.speech.v2.SpeechRecognitionAlternative.fromObject(object.alternatives[i]); + message.alternatives[i] = $root.google.cloud.speech.v2.SpeechRecognitionAlternative.fromObject(object.alternatives[i], long + 1); } } if (object.channelTag != null) @@ -33732,7 +35028,7 @@ if (object.resultEndOffset != null) { if (typeof object.resultEndOffset !== "object") throw TypeError(".google.cloud.speech.v2.SpeechRecognitionResult.resultEndOffset: object expected"); - message.resultEndOffset = $root.google.protobuf.Duration.fromObject(object.resultEndOffset); + message.resultEndOffset = $root.google.protobuf.Duration.fromObject(object.resultEndOffset, long + 1); } if (object.languageCode != null) message.languageCode = String(object.languageCode); @@ -33824,7 +35120,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]]; } @@ -33900,9 +35196,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RecognizeResponse.decode = function decode(reader, length, error) { + RecognizeResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.RecognizeResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -33912,15 +35212,15 @@ case 3: { if (!(message.results && message.results.length)) message.results = []; - message.results.push($root.google.cloud.speech.v2.SpeechRecognitionResult.decode(reader, reader.uint32())); + message.results.push($root.google.cloud.speech.v2.SpeechRecognitionResult.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { - message.metadata = $root.google.cloud.speech.v2.RecognitionResponseMetadata.decode(reader, reader.uint32()); + message.metadata = $root.google.cloud.speech.v2.RecognitionResponseMetadata.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -33951,20 +35251,24 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RecognizeResponse.verify = function verify(message) { + RecognizeResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.results != null && message.hasOwnProperty("results")) { if (!Array.isArray(message.results)) return "results: array expected"; for (var i = 0; i < message.results.length; ++i) { - var error = $root.google.cloud.speech.v2.SpeechRecognitionResult.verify(message.results[i]); + var error = $root.google.cloud.speech.v2.SpeechRecognitionResult.verify(message.results[i], long + 1); if (error) return "results." + error; } } if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.google.cloud.speech.v2.RecognitionResponseMetadata.verify(message.metadata); + var error = $root.google.cloud.speech.v2.RecognitionResponseMetadata.verify(message.metadata, long + 1); if (error) return "metadata." + error; } @@ -33979,9 +35283,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.RecognizeResponse} RecognizeResponse */ - RecognizeResponse.fromObject = function fromObject(object) { + RecognizeResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.RecognizeResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.RecognizeResponse(); if (object.results) { if (!Array.isArray(object.results)) @@ -33990,13 +35298,13 @@ for (var i = 0; i < object.results.length; ++i) { if (typeof object.results[i] !== "object") throw TypeError(".google.cloud.speech.v2.RecognizeResponse.results: object expected"); - message.results[i] = $root.google.cloud.speech.v2.SpeechRecognitionResult.fromObject(object.results[i]); + message.results[i] = $root.google.cloud.speech.v2.SpeechRecognitionResult.fromObject(object.results[i], long + 1); } } if (object.metadata != null) { if (typeof object.metadata !== "object") throw TypeError(".google.cloud.speech.v2.RecognizeResponse.metadata: object expected"); - message.metadata = $root.google.cloud.speech.v2.RecognitionResponseMetadata.fromObject(object.metadata); + message.metadata = $root.google.cloud.speech.v2.RecognitionResponseMetadata.fromObject(object.metadata, long + 1); } return message; }; @@ -34080,7 +35388,7 @@ function StreamingRecognitionFeatures(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -34175,9 +35483,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - StreamingRecognitionFeatures.decode = function decode(reader, length, error) { + StreamingRecognitionFeatures.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.StreamingRecognitionFeatures(); while (reader.pos < end) { var tag = reader.uint32(); @@ -34193,7 +35505,7 @@ break; } case 3: { - message.voiceActivityTimeout = $root.google.cloud.speech.v2.StreamingRecognitionFeatures.VoiceActivityTimeout.decode(reader, reader.uint32()); + message.voiceActivityTimeout = $root.google.cloud.speech.v2.StreamingRecognitionFeatures.VoiceActivityTimeout.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { @@ -34201,7 +35513,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -34232,9 +35544,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - StreamingRecognitionFeatures.verify = function verify(message) { + StreamingRecognitionFeatures.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.enableVoiceActivityEvents != null && message.hasOwnProperty("enableVoiceActivityEvents")) if (typeof message.enableVoiceActivityEvents !== "boolean") return "enableVoiceActivityEvents: boolean expected"; @@ -34242,7 +35558,7 @@ if (typeof message.interimResults !== "boolean") return "interimResults: boolean expected"; if (message.voiceActivityTimeout != null && message.hasOwnProperty("voiceActivityTimeout")) { - var error = $root.google.cloud.speech.v2.StreamingRecognitionFeatures.VoiceActivityTimeout.verify(message.voiceActivityTimeout); + var error = $root.google.cloud.speech.v2.StreamingRecognitionFeatures.VoiceActivityTimeout.verify(message.voiceActivityTimeout, long + 1); if (error) return "voiceActivityTimeout." + error; } @@ -34267,9 +35583,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.StreamingRecognitionFeatures} StreamingRecognitionFeatures */ - StreamingRecognitionFeatures.fromObject = function fromObject(object) { + StreamingRecognitionFeatures.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.StreamingRecognitionFeatures) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.StreamingRecognitionFeatures(); if (object.enableVoiceActivityEvents != null) message.enableVoiceActivityEvents = Boolean(object.enableVoiceActivityEvents); @@ -34278,7 +35598,7 @@ if (object.voiceActivityTimeout != null) { if (typeof object.voiceActivityTimeout !== "object") throw TypeError(".google.cloud.speech.v2.StreamingRecognitionFeatures.voiceActivityTimeout: object expected"); - message.voiceActivityTimeout = $root.google.cloud.speech.v2.StreamingRecognitionFeatures.VoiceActivityTimeout.fromObject(object.voiceActivityTimeout); + message.voiceActivityTimeout = $root.google.cloud.speech.v2.StreamingRecognitionFeatures.VoiceActivityTimeout.fromObject(object.voiceActivityTimeout, long + 1); } switch (object.endpointingSensitivity) { default: @@ -34384,7 +35704,7 @@ function VoiceActivityTimeout(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -34459,9 +35779,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - VoiceActivityTimeout.decode = function decode(reader, length, error) { + VoiceActivityTimeout.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.StreamingRecognitionFeatures.VoiceActivityTimeout(); while (reader.pos < end) { var tag = reader.uint32(); @@ -34469,15 +35793,15 @@ break; switch (tag >>> 3) { case 1: { - message.speechStartTimeout = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.speechStartTimeout = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.speechEndTimeout = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.speechEndTimeout = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -34508,16 +35832,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - VoiceActivityTimeout.verify = function verify(message) { + VoiceActivityTimeout.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.speechStartTimeout != null && message.hasOwnProperty("speechStartTimeout")) { - var error = $root.google.protobuf.Duration.verify(message.speechStartTimeout); + var error = $root.google.protobuf.Duration.verify(message.speechStartTimeout, long + 1); if (error) return "speechStartTimeout." + error; } if (message.speechEndTimeout != null && message.hasOwnProperty("speechEndTimeout")) { - var error = $root.google.protobuf.Duration.verify(message.speechEndTimeout); + var error = $root.google.protobuf.Duration.verify(message.speechEndTimeout, long + 1); if (error) return "speechEndTimeout." + error; } @@ -34532,19 +35860,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.StreamingRecognitionFeatures.VoiceActivityTimeout} VoiceActivityTimeout */ - VoiceActivityTimeout.fromObject = function fromObject(object) { + VoiceActivityTimeout.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.StreamingRecognitionFeatures.VoiceActivityTimeout) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.StreamingRecognitionFeatures.VoiceActivityTimeout(); if (object.speechStartTimeout != null) { if (typeof object.speechStartTimeout !== "object") throw TypeError(".google.cloud.speech.v2.StreamingRecognitionFeatures.VoiceActivityTimeout.speechStartTimeout: object expected"); - message.speechStartTimeout = $root.google.protobuf.Duration.fromObject(object.speechStartTimeout); + message.speechStartTimeout = $root.google.protobuf.Duration.fromObject(object.speechStartTimeout, long + 1); } if (object.speechEndTimeout != null) { if (typeof object.speechEndTimeout !== "object") throw TypeError(".google.cloud.speech.v2.StreamingRecognitionFeatures.VoiceActivityTimeout.speechEndTimeout: object expected"); - message.speechEndTimeout = $root.google.protobuf.Duration.fromObject(object.speechEndTimeout); + message.speechEndTimeout = $root.google.protobuf.Duration.fromObject(object.speechEndTimeout, long + 1); } return message; }; @@ -34645,7 +35977,7 @@ function StreamingRecognitionConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -34730,9 +36062,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - StreamingRecognitionConfig.decode = function decode(reader, length, error) { + StreamingRecognitionConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.StreamingRecognitionConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -34740,19 +36076,19 @@ break; switch (tag >>> 3) { case 1: { - message.config = $root.google.cloud.speech.v2.RecognitionConfig.decode(reader, reader.uint32()); + message.config = $root.google.cloud.speech.v2.RecognitionConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { - message.configMask = $root.google.protobuf.FieldMask.decode(reader, reader.uint32()); + message.configMask = $root.google.protobuf.FieldMask.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.streamingFeatures = $root.google.cloud.speech.v2.StreamingRecognitionFeatures.decode(reader, reader.uint32()); + message.streamingFeatures = $root.google.cloud.speech.v2.StreamingRecognitionFeatures.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -34783,21 +36119,25 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - StreamingRecognitionConfig.verify = function verify(message) { + StreamingRecognitionConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.config != null && message.hasOwnProperty("config")) { - var error = $root.google.cloud.speech.v2.RecognitionConfig.verify(message.config); + var error = $root.google.cloud.speech.v2.RecognitionConfig.verify(message.config, long + 1); if (error) return "config." + error; } if (message.configMask != null && message.hasOwnProperty("configMask")) { - var error = $root.google.protobuf.FieldMask.verify(message.configMask); + var error = $root.google.protobuf.FieldMask.verify(message.configMask, long + 1); if (error) return "configMask." + error; } if (message.streamingFeatures != null && message.hasOwnProperty("streamingFeatures")) { - var error = $root.google.cloud.speech.v2.StreamingRecognitionFeatures.verify(message.streamingFeatures); + var error = $root.google.cloud.speech.v2.StreamingRecognitionFeatures.verify(message.streamingFeatures, long + 1); if (error) return "streamingFeatures." + error; } @@ -34812,24 +36152,28 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.StreamingRecognitionConfig} StreamingRecognitionConfig */ - StreamingRecognitionConfig.fromObject = function fromObject(object) { + StreamingRecognitionConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.StreamingRecognitionConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.StreamingRecognitionConfig(); if (object.config != null) { if (typeof object.config !== "object") throw TypeError(".google.cloud.speech.v2.StreamingRecognitionConfig.config: object expected"); - message.config = $root.google.cloud.speech.v2.RecognitionConfig.fromObject(object.config); + message.config = $root.google.cloud.speech.v2.RecognitionConfig.fromObject(object.config, long + 1); } if (object.configMask != null) { if (typeof object.configMask !== "object") throw TypeError(".google.cloud.speech.v2.StreamingRecognitionConfig.configMask: object expected"); - message.configMask = $root.google.protobuf.FieldMask.fromObject(object.configMask); + message.configMask = $root.google.protobuf.FieldMask.fromObject(object.configMask, long + 1); } if (object.streamingFeatures != null) { if (typeof object.streamingFeatures !== "object") throw TypeError(".google.cloud.speech.v2.StreamingRecognitionConfig.streamingFeatures: object expected"); - message.streamingFeatures = $root.google.cloud.speech.v2.StreamingRecognitionFeatures.fromObject(object.streamingFeatures); + message.streamingFeatures = $root.google.cloud.speech.v2.StreamingRecognitionFeatures.fromObject(object.streamingFeatures, long + 1); } return message; }; @@ -34912,7 +36256,7 @@ function StreamingRecognizeRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -35011,9 +36355,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - StreamingRecognizeRequest.decode = function decode(reader, length, error) { + StreamingRecognizeRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.StreamingRecognizeRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -35025,7 +36373,7 @@ break; } case 6: { - message.streamingConfig = $root.google.cloud.speech.v2.StreamingRecognitionConfig.decode(reader, reader.uint32()); + message.streamingConfig = $root.google.cloud.speech.v2.StreamingRecognitionConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { @@ -35033,7 +36381,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -35064,9 +36412,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - StreamingRecognizeRequest.verify = function verify(message) { + StreamingRecognizeRequest.verify = function verify(message, 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.recognizer != null && message.hasOwnProperty("recognizer")) if (!$util.isString(message.recognizer)) @@ -35074,7 +36426,7 @@ if (message.streamingConfig != null && message.hasOwnProperty("streamingConfig")) { properties.streamingRequest = 1; { - var error = $root.google.cloud.speech.v2.StreamingRecognitionConfig.verify(message.streamingConfig); + var error = $root.google.cloud.speech.v2.StreamingRecognitionConfig.verify(message.streamingConfig, long + 1); if (error) return "streamingConfig." + error; } @@ -35097,16 +36449,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.StreamingRecognizeRequest} StreamingRecognizeRequest */ - StreamingRecognizeRequest.fromObject = function fromObject(object) { + StreamingRecognizeRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.StreamingRecognizeRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.StreamingRecognizeRequest(); if (object.recognizer != null) message.recognizer = String(object.recognizer); if (object.streamingConfig != null) { if (typeof object.streamingConfig !== "object") throw TypeError(".google.cloud.speech.v2.StreamingRecognizeRequest.streamingConfig: object expected"); - message.streamingConfig = $root.google.cloud.speech.v2.StreamingRecognitionConfig.fromObject(object.streamingConfig); + message.streamingConfig = $root.google.cloud.speech.v2.StreamingRecognitionConfig.fromObject(object.streamingConfig, long + 1); } if (object.audio != null) if (typeof object.audio === "string") @@ -35201,7 +36557,7 @@ this.files = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -35317,9 +36673,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BatchRecognizeRequest.decode = function decode(reader, length, error) { + BatchRecognizeRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.BatchRecognizeRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -35331,21 +36691,21 @@ break; } case 4: { - message.config = $root.google.cloud.speech.v2.RecognitionConfig.decode(reader, reader.uint32()); + message.config = $root.google.cloud.speech.v2.RecognitionConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.configMask = $root.google.protobuf.FieldMask.decode(reader, reader.uint32()); + message.configMask = $root.google.protobuf.FieldMask.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { if (!(message.files && message.files.length)) message.files = []; - message.files.push($root.google.cloud.speech.v2.BatchRecognizeFileMetadata.decode(reader, reader.uint32())); + message.files.push($root.google.cloud.speech.v2.BatchRecognizeFileMetadata.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 6: { - message.recognitionOutputConfig = $root.google.cloud.speech.v2.RecognitionOutputConfig.decode(reader, reader.uint32()); + message.recognitionOutputConfig = $root.google.cloud.speech.v2.RecognitionOutputConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { @@ -35353,7 +36713,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -35384,19 +36744,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BatchRecognizeRequest.verify = function verify(message) { + BatchRecognizeRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.recognizer != null && message.hasOwnProperty("recognizer")) if (!$util.isString(message.recognizer)) return "recognizer: string expected"; if (message.config != null && message.hasOwnProperty("config")) { - var error = $root.google.cloud.speech.v2.RecognitionConfig.verify(message.config); + var error = $root.google.cloud.speech.v2.RecognitionConfig.verify(message.config, long + 1); if (error) return "config." + error; } if (message.configMask != null && message.hasOwnProperty("configMask")) { - var error = $root.google.protobuf.FieldMask.verify(message.configMask); + var error = $root.google.protobuf.FieldMask.verify(message.configMask, long + 1); if (error) return "configMask." + error; } @@ -35404,13 +36768,13 @@ if (!Array.isArray(message.files)) return "files: array expected"; for (var i = 0; i < message.files.length; ++i) { - var error = $root.google.cloud.speech.v2.BatchRecognizeFileMetadata.verify(message.files[i]); + var error = $root.google.cloud.speech.v2.BatchRecognizeFileMetadata.verify(message.files[i], long + 1); if (error) return "files." + error; } } if (message.recognitionOutputConfig != null && message.hasOwnProperty("recognitionOutputConfig")) { - var error = $root.google.cloud.speech.v2.RecognitionOutputConfig.verify(message.recognitionOutputConfig); + var error = $root.google.cloud.speech.v2.RecognitionOutputConfig.verify(message.recognitionOutputConfig, long + 1); if (error) return "recognitionOutputConfig." + error; } @@ -35433,21 +36797,25 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.BatchRecognizeRequest} BatchRecognizeRequest */ - BatchRecognizeRequest.fromObject = function fromObject(object) { + BatchRecognizeRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.BatchRecognizeRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.BatchRecognizeRequest(); if (object.recognizer != null) message.recognizer = String(object.recognizer); if (object.config != null) { if (typeof object.config !== "object") throw TypeError(".google.cloud.speech.v2.BatchRecognizeRequest.config: object expected"); - message.config = $root.google.cloud.speech.v2.RecognitionConfig.fromObject(object.config); + message.config = $root.google.cloud.speech.v2.RecognitionConfig.fromObject(object.config, long + 1); } if (object.configMask != null) { if (typeof object.configMask !== "object") throw TypeError(".google.cloud.speech.v2.BatchRecognizeRequest.configMask: object expected"); - message.configMask = $root.google.protobuf.FieldMask.fromObject(object.configMask); + message.configMask = $root.google.protobuf.FieldMask.fromObject(object.configMask, long + 1); } if (object.files) { if (!Array.isArray(object.files)) @@ -35456,13 +36824,13 @@ for (var i = 0; i < object.files.length; ++i) { if (typeof object.files[i] !== "object") throw TypeError(".google.cloud.speech.v2.BatchRecognizeRequest.files: object expected"); - message.files[i] = $root.google.cloud.speech.v2.BatchRecognizeFileMetadata.fromObject(object.files[i]); + message.files[i] = $root.google.cloud.speech.v2.BatchRecognizeFileMetadata.fromObject(object.files[i], long + 1); } } if (object.recognitionOutputConfig != null) { if (typeof object.recognitionOutputConfig !== "object") throw TypeError(".google.cloud.speech.v2.BatchRecognizeRequest.recognitionOutputConfig: object expected"); - message.recognitionOutputConfig = $root.google.cloud.speech.v2.RecognitionOutputConfig.fromObject(object.recognitionOutputConfig); + message.recognitionOutputConfig = $root.google.cloud.speech.v2.RecognitionOutputConfig.fromObject(object.recognitionOutputConfig, long + 1); } switch (object.processingStrategy) { default: @@ -35586,7 +36954,7 @@ function GcsOutputConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -35651,9 +37019,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GcsOutputConfig.decode = function decode(reader, length, error) { + GcsOutputConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.GcsOutputConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -35665,7 +37037,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -35696,9 +37068,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GcsOutputConfig.verify = function verify(message) { + GcsOutputConfig.verify = function verify(message, long) { if (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"; @@ -35713,9 +37089,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.GcsOutputConfig} GcsOutputConfig */ - GcsOutputConfig.fromObject = function fromObject(object) { + GcsOutputConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.GcsOutputConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.GcsOutputConfig(); if (object.uri != null) message.uri = String(object.uri); @@ -35790,7 +37170,7 @@ function InlineOutputConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -35845,9 +37225,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InlineOutputConfig.decode = function decode(reader, length, error) { + InlineOutputConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.InlineOutputConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -35855,7 +37239,7 @@ break; switch (tag >>> 3) { default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -35886,9 +37270,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InlineOutputConfig.verify = function verify(message) { + InlineOutputConfig.verify = function verify(message, 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; }; @@ -35900,9 +37288,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.InlineOutputConfig} InlineOutputConfig */ - InlineOutputConfig.fromObject = function fromObject(object) { + InlineOutputConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.InlineOutputConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); return new $root.google.cloud.speech.v2.InlineOutputConfig(); }; @@ -35967,7 +37359,7 @@ function NativeOutputFileFormatConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -36022,9 +37414,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - NativeOutputFileFormatConfig.decode = function decode(reader, length, error) { + NativeOutputFileFormatConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.NativeOutputFileFormatConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -36032,7 +37428,7 @@ break; switch (tag >>> 3) { default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -36063,9 +37459,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - NativeOutputFileFormatConfig.verify = function verify(message) { + NativeOutputFileFormatConfig.verify = function verify(message, 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; }; @@ -36077,9 +37477,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.NativeOutputFileFormatConfig} NativeOutputFileFormatConfig */ - NativeOutputFileFormatConfig.fromObject = function fromObject(object) { + NativeOutputFileFormatConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.NativeOutputFileFormatConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); return new $root.google.cloud.speech.v2.NativeOutputFileFormatConfig(); }; @@ -36144,7 +37548,7 @@ function VttOutputFileFormatConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -36199,9 +37603,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - VttOutputFileFormatConfig.decode = function decode(reader, length, error) { + VttOutputFileFormatConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.VttOutputFileFormatConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -36209,7 +37617,7 @@ break; switch (tag >>> 3) { default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -36240,9 +37648,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - VttOutputFileFormatConfig.verify = function verify(message) { + VttOutputFileFormatConfig.verify = function verify(message, 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; }; @@ -36254,9 +37666,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.VttOutputFileFormatConfig} VttOutputFileFormatConfig */ - VttOutputFileFormatConfig.fromObject = function fromObject(object) { + VttOutputFileFormatConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.VttOutputFileFormatConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); return new $root.google.cloud.speech.v2.VttOutputFileFormatConfig(); }; @@ -36321,7 +37737,7 @@ function SrtOutputFileFormatConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -36376,9 +37792,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SrtOutputFileFormatConfig.decode = function decode(reader, length, error) { + SrtOutputFileFormatConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.SrtOutputFileFormatConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -36386,7 +37806,7 @@ break; switch (tag >>> 3) { default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -36417,9 +37837,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SrtOutputFileFormatConfig.verify = function verify(message) { + SrtOutputFileFormatConfig.verify = function verify(message, 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; }; @@ -36431,9 +37855,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.SrtOutputFileFormatConfig} SrtOutputFileFormatConfig */ - SrtOutputFileFormatConfig.fromObject = function fromObject(object) { + SrtOutputFileFormatConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.SrtOutputFileFormatConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); return new $root.google.cloud.speech.v2.SrtOutputFileFormatConfig(); }; @@ -36501,7 +37929,7 @@ function OutputFormatConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -36586,9 +38014,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OutputFormatConfig.decode = function decode(reader, length, error) { + OutputFormatConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.OutputFormatConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -36596,19 +38028,19 @@ break; switch (tag >>> 3) { case 1: { - message.native = $root.google.cloud.speech.v2.NativeOutputFileFormatConfig.decode(reader, reader.uint32()); + message.native = $root.google.cloud.speech.v2.NativeOutputFileFormatConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.vtt = $root.google.cloud.speech.v2.VttOutputFileFormatConfig.decode(reader, reader.uint32()); + message.vtt = $root.google.cloud.speech.v2.VttOutputFileFormatConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { - message.srt = $root.google.cloud.speech.v2.SrtOutputFileFormatConfig.decode(reader, reader.uint32()); + message.srt = $root.google.cloud.speech.v2.SrtOutputFileFormatConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -36639,21 +38071,25 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - OutputFormatConfig.verify = function verify(message) { + OutputFormatConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.native != null && message.hasOwnProperty("native")) { - var error = $root.google.cloud.speech.v2.NativeOutputFileFormatConfig.verify(message.native); + var error = $root.google.cloud.speech.v2.NativeOutputFileFormatConfig.verify(message.native, long + 1); if (error) return "native." + error; } if (message.vtt != null && message.hasOwnProperty("vtt")) { - var error = $root.google.cloud.speech.v2.VttOutputFileFormatConfig.verify(message.vtt); + var error = $root.google.cloud.speech.v2.VttOutputFileFormatConfig.verify(message.vtt, long + 1); if (error) return "vtt." + error; } if (message.srt != null && message.hasOwnProperty("srt")) { - var error = $root.google.cloud.speech.v2.SrtOutputFileFormatConfig.verify(message.srt); + var error = $root.google.cloud.speech.v2.SrtOutputFileFormatConfig.verify(message.srt, long + 1); if (error) return "srt." + error; } @@ -36668,24 +38104,28 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.OutputFormatConfig} OutputFormatConfig */ - OutputFormatConfig.fromObject = function fromObject(object) { + OutputFormatConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.OutputFormatConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.OutputFormatConfig(); if (object.native != null) { if (typeof object.native !== "object") throw TypeError(".google.cloud.speech.v2.OutputFormatConfig.native: object expected"); - message.native = $root.google.cloud.speech.v2.NativeOutputFileFormatConfig.fromObject(object.native); + message.native = $root.google.cloud.speech.v2.NativeOutputFileFormatConfig.fromObject(object.native, long + 1); } if (object.vtt != null) { if (typeof object.vtt !== "object") throw TypeError(".google.cloud.speech.v2.OutputFormatConfig.vtt: object expected"); - message.vtt = $root.google.cloud.speech.v2.VttOutputFileFormatConfig.fromObject(object.vtt); + message.vtt = $root.google.cloud.speech.v2.VttOutputFileFormatConfig.fromObject(object.vtt, long + 1); } if (object.srt != null) { if (typeof object.srt !== "object") throw TypeError(".google.cloud.speech.v2.OutputFormatConfig.srt: object expected"); - message.srt = $root.google.cloud.speech.v2.SrtOutputFileFormatConfig.fromObject(object.srt); + message.srt = $root.google.cloud.speech.v2.SrtOutputFileFormatConfig.fromObject(object.srt, long + 1); } return message; }; @@ -36768,7 +38208,7 @@ function RecognitionOutputConfig(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -36867,9 +38307,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RecognitionOutputConfig.decode = function decode(reader, length, error) { + RecognitionOutputConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.RecognitionOutputConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -36877,19 +38321,19 @@ break; switch (tag >>> 3) { case 1: { - message.gcsOutputConfig = $root.google.cloud.speech.v2.GcsOutputConfig.decode(reader, reader.uint32()); + message.gcsOutputConfig = $root.google.cloud.speech.v2.GcsOutputConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.inlineResponseConfig = $root.google.cloud.speech.v2.InlineOutputConfig.decode(reader, reader.uint32()); + message.inlineResponseConfig = $root.google.cloud.speech.v2.InlineOutputConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { - message.outputFormatConfig = $root.google.cloud.speech.v2.OutputFormatConfig.decode(reader, reader.uint32()); + message.outputFormatConfig = $root.google.cloud.speech.v2.OutputFormatConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -36920,14 +38364,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RecognitionOutputConfig.verify = function verify(message) { + RecognitionOutputConfig.verify = function verify(message, 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.gcsOutputConfig != null && message.hasOwnProperty("gcsOutputConfig")) { properties.output = 1; { - var error = $root.google.cloud.speech.v2.GcsOutputConfig.verify(message.gcsOutputConfig); + var error = $root.google.cloud.speech.v2.GcsOutputConfig.verify(message.gcsOutputConfig, long + 1); if (error) return "gcsOutputConfig." + error; } @@ -36937,13 +38385,13 @@ return "output: multiple values"; properties.output = 1; { - var error = $root.google.cloud.speech.v2.InlineOutputConfig.verify(message.inlineResponseConfig); + var error = $root.google.cloud.speech.v2.InlineOutputConfig.verify(message.inlineResponseConfig, long + 1); if (error) return "inlineResponseConfig." + error; } } if (message.outputFormatConfig != null && message.hasOwnProperty("outputFormatConfig")) { - var error = $root.google.cloud.speech.v2.OutputFormatConfig.verify(message.outputFormatConfig); + var error = $root.google.cloud.speech.v2.OutputFormatConfig.verify(message.outputFormatConfig, long + 1); if (error) return "outputFormatConfig." + error; } @@ -36958,24 +38406,28 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.RecognitionOutputConfig} RecognitionOutputConfig */ - RecognitionOutputConfig.fromObject = function fromObject(object) { + RecognitionOutputConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.RecognitionOutputConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.RecognitionOutputConfig(); if (object.gcsOutputConfig != null) { if (typeof object.gcsOutputConfig !== "object") throw TypeError(".google.cloud.speech.v2.RecognitionOutputConfig.gcsOutputConfig: object expected"); - message.gcsOutputConfig = $root.google.cloud.speech.v2.GcsOutputConfig.fromObject(object.gcsOutputConfig); + message.gcsOutputConfig = $root.google.cloud.speech.v2.GcsOutputConfig.fromObject(object.gcsOutputConfig, long + 1); } if (object.inlineResponseConfig != null) { if (typeof object.inlineResponseConfig !== "object") throw TypeError(".google.cloud.speech.v2.RecognitionOutputConfig.inlineResponseConfig: object expected"); - message.inlineResponseConfig = $root.google.cloud.speech.v2.InlineOutputConfig.fromObject(object.inlineResponseConfig); + message.inlineResponseConfig = $root.google.cloud.speech.v2.InlineOutputConfig.fromObject(object.inlineResponseConfig, long + 1); } if (object.outputFormatConfig != null) { if (typeof object.outputFormatConfig !== "object") throw TypeError(".google.cloud.speech.v2.RecognitionOutputConfig.outputFormatConfig: object expected"); - message.outputFormatConfig = $root.google.cloud.speech.v2.OutputFormatConfig.fromObject(object.outputFormatConfig); + message.outputFormatConfig = $root.google.cloud.speech.v2.OutputFormatConfig.fromObject(object.outputFormatConfig, long + 1); } return message; }; @@ -37061,7 +38513,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]]; } @@ -37139,9 +38591,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BatchRecognizeResponse.decode = function decode(reader, length, error) { + BatchRecognizeResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.BatchRecognizeResponse(), key, value; while (reader.pos < end) { var tag = reader.uint32(); @@ -37161,22 +38617,24 @@ key = reader.string(); break; case 2: - value = $root.google.cloud.speech.v2.BatchRecognizeFileResult.decode(reader, reader.uint32()); + value = $root.google.cloud.speech.v2.BatchRecognizeFileResult.decode(reader, reader.uint32(), undefined, long + 1); break; default: - reader.skipType(tag2 & 7); + reader.skipType(tag2 & 7, long); break; } } + if (key === "__proto__") + $util.makeProp(message.results, key); message.results[key] = value; break; } case 2: { - message.totalBilledDuration = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.totalBilledDuration = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -37207,21 +38665,25 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BatchRecognizeResponse.verify = function verify(message) { + BatchRecognizeResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.results != null && message.hasOwnProperty("results")) { if (!$util.isObject(message.results)) return "results: object expected"; var key = Object.keys(message.results); for (var i = 0; i < key.length; ++i) { - var error = $root.google.cloud.speech.v2.BatchRecognizeFileResult.verify(message.results[key[i]]); + var error = $root.google.cloud.speech.v2.BatchRecognizeFileResult.verify(message.results[key[i]], long + 1); if (error) return "results." + error; } } if (message.totalBilledDuration != null && message.hasOwnProperty("totalBilledDuration")) { - var error = $root.google.protobuf.Duration.verify(message.totalBilledDuration); + var error = $root.google.protobuf.Duration.verify(message.totalBilledDuration, long + 1); if (error) return "totalBilledDuration." + error; } @@ -37236,24 +38698,30 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.BatchRecognizeResponse} BatchRecognizeResponse */ - BatchRecognizeResponse.fromObject = function fromObject(object) { + BatchRecognizeResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.BatchRecognizeResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.BatchRecognizeResponse(); if (object.results) { if (typeof object.results !== "object") throw TypeError(".google.cloud.speech.v2.BatchRecognizeResponse.results: object expected"); message.results = {}; for (var keys = Object.keys(object.results), i = 0; i < keys.length; ++i) { + if (keys[i] === "__proto__") + $util.makeProp(message.results, keys[i]); if (typeof object.results[keys[i]] !== "object") throw TypeError(".google.cloud.speech.v2.BatchRecognizeResponse.results: object expected"); - message.results[keys[i]] = $root.google.cloud.speech.v2.BatchRecognizeFileResult.fromObject(object.results[keys[i]]); + message.results[keys[i]] = $root.google.cloud.speech.v2.BatchRecognizeFileResult.fromObject(object.results[keys[i]], long + 1); } } if (object.totalBilledDuration != null) { if (typeof object.totalBilledDuration !== "object") throw TypeError(".google.cloud.speech.v2.BatchRecognizeResponse.totalBilledDuration: object expected"); - message.totalBilledDuration = $root.google.protobuf.Duration.fromObject(object.totalBilledDuration); + message.totalBilledDuration = $root.google.protobuf.Duration.fromObject(object.totalBilledDuration, long + 1); } return message; }; @@ -37278,8 +38746,11 @@ var keys2; if (message.results && (keys2 = Object.keys(message.results)).length) { object.results = {}; - for (var j = 0; j < keys2.length; ++j) + for (var j = 0; j < keys2.length; ++j) { + if (keys2[j] === "__proto__") + $util.makeProp(object.results, keys2[j]); object.results[keys2[j]] = $root.google.cloud.speech.v2.BatchRecognizeFileResult.toObject(message.results[keys2[j]], options); + } } if (message.totalBilledDuration != null && message.hasOwnProperty("totalBilledDuration")) object.totalBilledDuration = $root.google.protobuf.Duration.toObject(message.totalBilledDuration, options); @@ -37337,7 +38808,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]]; } @@ -37413,9 +38884,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BatchRecognizeResults.decode = function decode(reader, length, error) { + BatchRecognizeResults.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.BatchRecognizeResults(); while (reader.pos < end) { var tag = reader.uint32(); @@ -37425,15 +38900,15 @@ case 1: { if (!(message.results && message.results.length)) message.results = []; - message.results.push($root.google.cloud.speech.v2.SpeechRecognitionResult.decode(reader, reader.uint32())); + message.results.push($root.google.cloud.speech.v2.SpeechRecognitionResult.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { - message.metadata = $root.google.cloud.speech.v2.RecognitionResponseMetadata.decode(reader, reader.uint32()); + message.metadata = $root.google.cloud.speech.v2.RecognitionResponseMetadata.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -37464,20 +38939,24 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BatchRecognizeResults.verify = function verify(message) { + BatchRecognizeResults.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.results != null && message.hasOwnProperty("results")) { if (!Array.isArray(message.results)) return "results: array expected"; for (var i = 0; i < message.results.length; ++i) { - var error = $root.google.cloud.speech.v2.SpeechRecognitionResult.verify(message.results[i]); + var error = $root.google.cloud.speech.v2.SpeechRecognitionResult.verify(message.results[i], long + 1); if (error) return "results." + error; } } if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.google.cloud.speech.v2.RecognitionResponseMetadata.verify(message.metadata); + var error = $root.google.cloud.speech.v2.RecognitionResponseMetadata.verify(message.metadata, long + 1); if (error) return "metadata." + error; } @@ -37492,9 +38971,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.BatchRecognizeResults} BatchRecognizeResults */ - BatchRecognizeResults.fromObject = function fromObject(object) { + BatchRecognizeResults.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.BatchRecognizeResults) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.BatchRecognizeResults(); if (object.results) { if (!Array.isArray(object.results)) @@ -37503,13 +38986,13 @@ for (var i = 0; i < object.results.length; ++i) { if (typeof object.results[i] !== "object") throw TypeError(".google.cloud.speech.v2.BatchRecognizeResults.results: object expected"); - message.results[i] = $root.google.cloud.speech.v2.SpeechRecognitionResult.fromObject(object.results[i]); + message.results[i] = $root.google.cloud.speech.v2.SpeechRecognitionResult.fromObject(object.results[i], long + 1); } } if (object.metadata != null) { if (typeof object.metadata !== "object") throw TypeError(".google.cloud.speech.v2.BatchRecognizeResults.metadata: object expected"); - message.metadata = $root.google.cloud.speech.v2.RecognitionResponseMetadata.fromObject(object.metadata); + message.metadata = $root.google.cloud.speech.v2.RecognitionResponseMetadata.fromObject(object.metadata, long + 1); } return message; }; @@ -37592,7 +39075,7 @@ function CloudStorageResult(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -37677,9 +39160,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CloudStorageResult.decode = function decode(reader, length, error) { + CloudStorageResult.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.CloudStorageResult(); while (reader.pos < end) { var tag = reader.uint32(); @@ -37699,7 +39186,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -37730,9 +39217,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CloudStorageResult.verify = function verify(message) { + CloudStorageResult.verify = function verify(message, long) { if (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"; @@ -37753,9 +39244,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.CloudStorageResult} CloudStorageResult */ - CloudStorageResult.fromObject = function fromObject(object) { + CloudStorageResult.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.CloudStorageResult) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.CloudStorageResult(); if (object.uri != null) message.uri = String(object.uri); @@ -37844,7 +39339,7 @@ function InlineResult(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -37929,9 +39424,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - InlineResult.decode = function decode(reader, length, error) { + InlineResult.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.InlineResult(); while (reader.pos < end) { var tag = reader.uint32(); @@ -37939,7 +39438,7 @@ break; switch (tag >>> 3) { case 1: { - message.transcript = $root.google.cloud.speech.v2.BatchRecognizeResults.decode(reader, reader.uint32()); + message.transcript = $root.google.cloud.speech.v2.BatchRecognizeResults.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -37951,7 +39450,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -37982,11 +39481,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - InlineResult.verify = function verify(message) { + InlineResult.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.transcript != null && message.hasOwnProperty("transcript")) { - var error = $root.google.cloud.speech.v2.BatchRecognizeResults.verify(message.transcript); + var error = $root.google.cloud.speech.v2.BatchRecognizeResults.verify(message.transcript, long + 1); if (error) return "transcript." + error; } @@ -38007,14 +39510,18 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.InlineResult} InlineResult */ - InlineResult.fromObject = function fromObject(object) { + InlineResult.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.InlineResult) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.InlineResult(); if (object.transcript != null) { if (typeof object.transcript !== "object") throw TypeError(".google.cloud.speech.v2.InlineResult.transcript: object expected"); - message.transcript = $root.google.cloud.speech.v2.BatchRecognizeResults.fromObject(object.transcript); + message.transcript = $root.google.cloud.speech.v2.BatchRecognizeResults.fromObject(object.transcript, long + 1); } if (object.vttCaptions != null) message.vttCaptions = String(object.vttCaptions); @@ -38104,7 +39611,7 @@ function BatchRecognizeFileResult(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -38233,9 +39740,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BatchRecognizeFileResult.decode = function decode(reader, length, error) { + BatchRecognizeFileResult.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.BatchRecognizeFileResult(); while (reader.pos < end) { var tag = reader.uint32(); @@ -38243,19 +39754,19 @@ break; switch (tag >>> 3) { case 2: { - message.error = $root.google.rpc.Status.decode(reader, reader.uint32()); + message.error = $root.google.rpc.Status.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { - message.metadata = $root.google.cloud.speech.v2.RecognitionResponseMetadata.decode(reader, reader.uint32()); + message.metadata = $root.google.cloud.speech.v2.RecognitionResponseMetadata.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.cloudStorageResult = $root.google.cloud.speech.v2.CloudStorageResult.decode(reader, reader.uint32()); + message.cloudStorageResult = $root.google.cloud.speech.v2.CloudStorageResult.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { - message.inlineResult = $root.google.cloud.speech.v2.InlineResult.decode(reader, reader.uint32()); + message.inlineResult = $root.google.cloud.speech.v2.InlineResult.decode(reader, reader.uint32(), undefined, long + 1); break; } case 1: { @@ -38263,11 +39774,11 @@ break; } case 4: { - message.transcript = $root.google.cloud.speech.v2.BatchRecognizeResults.decode(reader, reader.uint32()); + message.transcript = $root.google.cloud.speech.v2.BatchRecognizeResults.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -38298,24 +39809,28 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BatchRecognizeFileResult.verify = function verify(message) { + BatchRecognizeFileResult.verify = function verify(message, 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.error != null && message.hasOwnProperty("error")) { - var error = $root.google.rpc.Status.verify(message.error); + var error = $root.google.rpc.Status.verify(message.error, long + 1); if (error) return "error." + error; } if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.google.cloud.speech.v2.RecognitionResponseMetadata.verify(message.metadata); + var error = $root.google.cloud.speech.v2.RecognitionResponseMetadata.verify(message.metadata, long + 1); if (error) return "metadata." + error; } if (message.cloudStorageResult != null && message.hasOwnProperty("cloudStorageResult")) { properties.result = 1; { - var error = $root.google.cloud.speech.v2.CloudStorageResult.verify(message.cloudStorageResult); + var error = $root.google.cloud.speech.v2.CloudStorageResult.verify(message.cloudStorageResult, long + 1); if (error) return "cloudStorageResult." + error; } @@ -38325,7 +39840,7 @@ return "result: multiple values"; properties.result = 1; { - var error = $root.google.cloud.speech.v2.InlineResult.verify(message.inlineResult); + var error = $root.google.cloud.speech.v2.InlineResult.verify(message.inlineResult, long + 1); if (error) return "inlineResult." + error; } @@ -38334,7 +39849,7 @@ if (!$util.isString(message.uri)) return "uri: string expected"; if (message.transcript != null && message.hasOwnProperty("transcript")) { - var error = $root.google.cloud.speech.v2.BatchRecognizeResults.verify(message.transcript); + var error = $root.google.cloud.speech.v2.BatchRecognizeResults.verify(message.transcript, long + 1); if (error) return "transcript." + error; } @@ -38349,36 +39864,40 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.BatchRecognizeFileResult} BatchRecognizeFileResult */ - BatchRecognizeFileResult.fromObject = function fromObject(object) { + BatchRecognizeFileResult.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.BatchRecognizeFileResult) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.BatchRecognizeFileResult(); if (object.error != null) { if (typeof object.error !== "object") throw TypeError(".google.cloud.speech.v2.BatchRecognizeFileResult.error: object expected"); - message.error = $root.google.rpc.Status.fromObject(object.error); + message.error = $root.google.rpc.Status.fromObject(object.error, long + 1); } if (object.metadata != null) { if (typeof object.metadata !== "object") throw TypeError(".google.cloud.speech.v2.BatchRecognizeFileResult.metadata: object expected"); - message.metadata = $root.google.cloud.speech.v2.RecognitionResponseMetadata.fromObject(object.metadata); + message.metadata = $root.google.cloud.speech.v2.RecognitionResponseMetadata.fromObject(object.metadata, long + 1); } if (object.cloudStorageResult != null) { if (typeof object.cloudStorageResult !== "object") throw TypeError(".google.cloud.speech.v2.BatchRecognizeFileResult.cloudStorageResult: object expected"); - message.cloudStorageResult = $root.google.cloud.speech.v2.CloudStorageResult.fromObject(object.cloudStorageResult); + message.cloudStorageResult = $root.google.cloud.speech.v2.CloudStorageResult.fromObject(object.cloudStorageResult, long + 1); } if (object.inlineResult != null) { if (typeof object.inlineResult !== "object") throw TypeError(".google.cloud.speech.v2.BatchRecognizeFileResult.inlineResult: object expected"); - message.inlineResult = $root.google.cloud.speech.v2.InlineResult.fromObject(object.inlineResult); + message.inlineResult = $root.google.cloud.speech.v2.InlineResult.fromObject(object.inlineResult, long + 1); } if (object.uri != null) message.uri = String(object.uri); if (object.transcript != null) { if (typeof object.transcript !== "object") throw TypeError(".google.cloud.speech.v2.BatchRecognizeFileResult.transcript: object expected"); - message.transcript = $root.google.cloud.speech.v2.BatchRecognizeResults.fromObject(object.transcript); + message.transcript = $root.google.cloud.speech.v2.BatchRecognizeResults.fromObject(object.transcript, long + 1); } return message; }; @@ -38474,7 +39993,7 @@ function BatchRecognizeTranscriptionMetadata(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -38559,9 +40078,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BatchRecognizeTranscriptionMetadata.decode = function decode(reader, length, error) { + BatchRecognizeTranscriptionMetadata.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.BatchRecognizeTranscriptionMetadata(); while (reader.pos < end) { var tag = reader.uint32(); @@ -38573,7 +40096,7 @@ break; } case 2: { - message.error = $root.google.rpc.Status.decode(reader, reader.uint32()); + message.error = $root.google.rpc.Status.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -38581,7 +40104,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -38612,14 +40135,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BatchRecognizeTranscriptionMetadata.verify = function verify(message) { + BatchRecognizeTranscriptionMetadata.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.progressPercent != null && message.hasOwnProperty("progressPercent")) if (!$util.isInteger(message.progressPercent)) return "progressPercent: integer expected"; if (message.error != null && message.hasOwnProperty("error")) { - var error = $root.google.rpc.Status.verify(message.error); + var error = $root.google.rpc.Status.verify(message.error, long + 1); if (error) return "error." + error; } @@ -38637,16 +40164,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.BatchRecognizeTranscriptionMetadata} BatchRecognizeTranscriptionMetadata */ - BatchRecognizeTranscriptionMetadata.fromObject = function fromObject(object) { + BatchRecognizeTranscriptionMetadata.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.BatchRecognizeTranscriptionMetadata) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.BatchRecognizeTranscriptionMetadata(); if (object.progressPercent != null) message.progressPercent = object.progressPercent | 0; if (object.error != null) { if (typeof object.error !== "object") throw TypeError(".google.cloud.speech.v2.BatchRecognizeTranscriptionMetadata.error: object expected"); - message.error = $root.google.rpc.Status.fromObject(object.error); + message.error = $root.google.rpc.Status.fromObject(object.error, long + 1); } if (object.uri != null) message.uri = String(object.uri); @@ -38730,7 +40261,7 @@ this.transcriptionMetadata = {}; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -38798,9 +40329,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BatchRecognizeMetadata.decode = function decode(reader, length, error) { + BatchRecognizeMetadata.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.BatchRecognizeMetadata(), key, value; while (reader.pos < end) { var tag = reader.uint32(); @@ -38820,18 +40355,20 @@ key = reader.string(); break; case 2: - value = $root.google.cloud.speech.v2.BatchRecognizeTranscriptionMetadata.decode(reader, reader.uint32()); + value = $root.google.cloud.speech.v2.BatchRecognizeTranscriptionMetadata.decode(reader, reader.uint32(), undefined, long + 1); break; default: - reader.skipType(tag2 & 7); + reader.skipType(tag2 & 7, long); break; } } + if (key === "__proto__") + $util.makeProp(message.transcriptionMetadata, key); message.transcriptionMetadata[key] = value; break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -38862,15 +40399,19 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BatchRecognizeMetadata.verify = function verify(message) { + BatchRecognizeMetadata.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.transcriptionMetadata != null && message.hasOwnProperty("transcriptionMetadata")) { if (!$util.isObject(message.transcriptionMetadata)) return "transcriptionMetadata: object expected"; var key = Object.keys(message.transcriptionMetadata); for (var i = 0; i < key.length; ++i) { - var error = $root.google.cloud.speech.v2.BatchRecognizeTranscriptionMetadata.verify(message.transcriptionMetadata[key[i]]); + var error = $root.google.cloud.speech.v2.BatchRecognizeTranscriptionMetadata.verify(message.transcriptionMetadata[key[i]], long + 1); if (error) return "transcriptionMetadata." + error; } @@ -38886,18 +40427,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.BatchRecognizeMetadata} BatchRecognizeMetadata */ - BatchRecognizeMetadata.fromObject = function fromObject(object) { + BatchRecognizeMetadata.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.BatchRecognizeMetadata) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.BatchRecognizeMetadata(); if (object.transcriptionMetadata) { if (typeof object.transcriptionMetadata !== "object") throw TypeError(".google.cloud.speech.v2.BatchRecognizeMetadata.transcriptionMetadata: object expected"); message.transcriptionMetadata = {}; for (var keys = Object.keys(object.transcriptionMetadata), i = 0; i < keys.length; ++i) { + if (keys[i] === "__proto__") + $util.makeProp(message.transcriptionMetadata, keys[i]); if (typeof object.transcriptionMetadata[keys[i]] !== "object") throw TypeError(".google.cloud.speech.v2.BatchRecognizeMetadata.transcriptionMetadata: object expected"); - message.transcriptionMetadata[keys[i]] = $root.google.cloud.speech.v2.BatchRecognizeTranscriptionMetadata.fromObject(object.transcriptionMetadata[keys[i]]); + message.transcriptionMetadata[keys[i]] = $root.google.cloud.speech.v2.BatchRecognizeTranscriptionMetadata.fromObject(object.transcriptionMetadata[keys[i]], long + 1); } } return message; @@ -38921,8 +40468,11 @@ var keys2; if (message.transcriptionMetadata && (keys2 = Object.keys(message.transcriptionMetadata)).length) { object.transcriptionMetadata = {}; - for (var j = 0; j < keys2.length; ++j) + for (var j = 0; j < keys2.length; ++j) { + if (keys2[j] === "__proto__") + $util.makeProp(object.transcriptionMetadata, keys2[j]); object.transcriptionMetadata[keys2[j]] = $root.google.cloud.speech.v2.BatchRecognizeTranscriptionMetadata.toObject(message.transcriptionMetadata[keys2[j]], options); + } } return object; }; @@ -38978,7 +40528,7 @@ function BatchRecognizeFileMetadata(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -39077,9 +40627,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BatchRecognizeFileMetadata.decode = function decode(reader, length, error) { + BatchRecognizeFileMetadata.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.BatchRecognizeFileMetadata(); while (reader.pos < end) { var tag = reader.uint32(); @@ -39091,15 +40645,15 @@ break; } case 4: { - message.config = $root.google.cloud.speech.v2.RecognitionConfig.decode(reader, reader.uint32()); + message.config = $root.google.cloud.speech.v2.RecognitionConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.configMask = $root.google.protobuf.FieldMask.decode(reader, reader.uint32()); + message.configMask = $root.google.protobuf.FieldMask.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -39130,9 +40684,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BatchRecognizeFileMetadata.verify = function verify(message) { + BatchRecognizeFileMetadata.verify = function verify(message, 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.uri != null && message.hasOwnProperty("uri")) { properties.audioSource = 1; @@ -39140,12 +40698,12 @@ return "uri: string expected"; } if (message.config != null && message.hasOwnProperty("config")) { - var error = $root.google.cloud.speech.v2.RecognitionConfig.verify(message.config); + var error = $root.google.cloud.speech.v2.RecognitionConfig.verify(message.config, long + 1); if (error) return "config." + error; } if (message.configMask != null && message.hasOwnProperty("configMask")) { - var error = $root.google.protobuf.FieldMask.verify(message.configMask); + var error = $root.google.protobuf.FieldMask.verify(message.configMask, long + 1); if (error) return "configMask." + error; } @@ -39160,21 +40718,25 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.BatchRecognizeFileMetadata} BatchRecognizeFileMetadata */ - BatchRecognizeFileMetadata.fromObject = function fromObject(object) { + BatchRecognizeFileMetadata.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.BatchRecognizeFileMetadata) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.BatchRecognizeFileMetadata(); if (object.uri != null) message.uri = String(object.uri); if (object.config != null) { if (typeof object.config !== "object") throw TypeError(".google.cloud.speech.v2.BatchRecognizeFileMetadata.config: object expected"); - message.config = $root.google.cloud.speech.v2.RecognitionConfig.fromObject(object.config); + message.config = $root.google.cloud.speech.v2.RecognitionConfig.fromObject(object.config, long + 1); } if (object.configMask != null) { if (typeof object.configMask !== "object") throw TypeError(".google.cloud.speech.v2.BatchRecognizeFileMetadata.configMask: object expected"); - message.configMask = $root.google.protobuf.FieldMask.fromObject(object.configMask); + message.configMask = $root.google.protobuf.FieldMask.fromObject(object.configMask, long + 1); } return message; }; @@ -39263,7 +40825,7 @@ this.alternatives = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -39379,9 +40941,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - StreamingRecognitionResult.decode = function decode(reader, length, error) { + StreamingRecognitionResult.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.StreamingRecognitionResult(); while (reader.pos < end) { var tag = reader.uint32(); @@ -39391,7 +40957,7 @@ case 1: { if (!(message.alternatives && message.alternatives.length)) message.alternatives = []; - message.alternatives.push($root.google.cloud.speech.v2.SpeechRecognitionAlternative.decode(reader, reader.uint32())); + message.alternatives.push($root.google.cloud.speech.v2.SpeechRecognitionAlternative.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -39403,7 +40969,7 @@ break; } case 4: { - message.resultEndOffset = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.resultEndOffset = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { @@ -39415,7 +40981,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -39446,14 +41012,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - StreamingRecognitionResult.verify = function verify(message) { + StreamingRecognitionResult.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.alternatives != null && message.hasOwnProperty("alternatives")) { if (!Array.isArray(message.alternatives)) return "alternatives: array expected"; for (var i = 0; i < message.alternatives.length; ++i) { - var error = $root.google.cloud.speech.v2.SpeechRecognitionAlternative.verify(message.alternatives[i]); + var error = $root.google.cloud.speech.v2.SpeechRecognitionAlternative.verify(message.alternatives[i], long + 1); if (error) return "alternatives." + error; } @@ -39465,7 +41035,7 @@ if (typeof message.stability !== "number") return "stability: number expected"; if (message.resultEndOffset != null && message.hasOwnProperty("resultEndOffset")) { - var error = $root.google.protobuf.Duration.verify(message.resultEndOffset); + var error = $root.google.protobuf.Duration.verify(message.resultEndOffset, long + 1); if (error) return "resultEndOffset." + error; } @@ -39486,9 +41056,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.StreamingRecognitionResult} StreamingRecognitionResult */ - StreamingRecognitionResult.fromObject = function fromObject(object) { + StreamingRecognitionResult.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.StreamingRecognitionResult) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.StreamingRecognitionResult(); if (object.alternatives) { if (!Array.isArray(object.alternatives)) @@ -39497,7 +41071,7 @@ for (var i = 0; i < object.alternatives.length; ++i) { if (typeof object.alternatives[i] !== "object") throw TypeError(".google.cloud.speech.v2.StreamingRecognitionResult.alternatives: object expected"); - message.alternatives[i] = $root.google.cloud.speech.v2.SpeechRecognitionAlternative.fromObject(object.alternatives[i]); + message.alternatives[i] = $root.google.cloud.speech.v2.SpeechRecognitionAlternative.fromObject(object.alternatives[i], long + 1); } } if (object.isFinal != null) @@ -39507,7 +41081,7 @@ if (object.resultEndOffset != null) { if (typeof object.resultEndOffset !== "object") throw TypeError(".google.cloud.speech.v2.StreamingRecognitionResult.resultEndOffset: object expected"); - message.resultEndOffset = $root.google.protobuf.Duration.fromObject(object.resultEndOffset); + message.resultEndOffset = $root.google.protobuf.Duration.fromObject(object.resultEndOffset, long + 1); } if (object.channelTag != null) message.channelTag = object.channelTag | 0; @@ -39609,7 +41183,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]]; } @@ -39705,9 +41279,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - StreamingRecognizeResponse.decode = function decode(reader, length, error) { + StreamingRecognizeResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.StreamingRecognizeResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -39717,7 +41295,7 @@ case 6: { if (!(message.results && message.results.length)) message.results = []; - message.results.push($root.google.cloud.speech.v2.StreamingRecognitionResult.decode(reader, reader.uint32())); + message.results.push($root.google.cloud.speech.v2.StreamingRecognitionResult.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 3: { @@ -39725,15 +41303,15 @@ break; } case 7: { - message.speechEventOffset = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.speechEventOffset = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.metadata = $root.google.cloud.speech.v2.RecognitionResponseMetadata.decode(reader, reader.uint32()); + message.metadata = $root.google.cloud.speech.v2.RecognitionResponseMetadata.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -39764,14 +41342,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - StreamingRecognizeResponse.verify = function verify(message) { + StreamingRecognizeResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.results != null && message.hasOwnProperty("results")) { if (!Array.isArray(message.results)) return "results: array expected"; for (var i = 0; i < message.results.length; ++i) { - var error = $root.google.cloud.speech.v2.StreamingRecognitionResult.verify(message.results[i]); + var error = $root.google.cloud.speech.v2.StreamingRecognitionResult.verify(message.results[i], long + 1); if (error) return "results." + error; } @@ -39787,12 +41369,12 @@ break; } if (message.speechEventOffset != null && message.hasOwnProperty("speechEventOffset")) { - var error = $root.google.protobuf.Duration.verify(message.speechEventOffset); + var error = $root.google.protobuf.Duration.verify(message.speechEventOffset, long + 1); if (error) return "speechEventOffset." + error; } if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.google.cloud.speech.v2.RecognitionResponseMetadata.verify(message.metadata); + var error = $root.google.cloud.speech.v2.RecognitionResponseMetadata.verify(message.metadata, long + 1); if (error) return "metadata." + error; } @@ -39807,9 +41389,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.StreamingRecognizeResponse} StreamingRecognizeResponse */ - StreamingRecognizeResponse.fromObject = function fromObject(object) { + StreamingRecognizeResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.StreamingRecognizeResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.StreamingRecognizeResponse(); if (object.results) { if (!Array.isArray(object.results)) @@ -39818,7 +41404,7 @@ for (var i = 0; i < object.results.length; ++i) { if (typeof object.results[i] !== "object") throw TypeError(".google.cloud.speech.v2.StreamingRecognizeResponse.results: object expected"); - message.results[i] = $root.google.cloud.speech.v2.StreamingRecognitionResult.fromObject(object.results[i]); + message.results[i] = $root.google.cloud.speech.v2.StreamingRecognitionResult.fromObject(object.results[i], long + 1); } } switch (object.speechEventType) { @@ -39848,12 +41434,12 @@ if (object.speechEventOffset != null) { if (typeof object.speechEventOffset !== "object") throw TypeError(".google.cloud.speech.v2.StreamingRecognizeResponse.speechEventOffset: object expected"); - message.speechEventOffset = $root.google.protobuf.Duration.fromObject(object.speechEventOffset); + message.speechEventOffset = $root.google.protobuf.Duration.fromObject(object.speechEventOffset, long + 1); } if (object.metadata != null) { if (typeof object.metadata !== "object") throw TypeError(".google.cloud.speech.v2.StreamingRecognizeResponse.metadata: object expected"); - message.metadata = $root.google.cloud.speech.v2.RecognitionResponseMetadata.fromObject(object.metadata); + message.metadata = $root.google.cloud.speech.v2.RecognitionResponseMetadata.fromObject(object.metadata, long + 1); } return message; }; @@ -39961,7 +41547,7 @@ function Config(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -40046,9 +41632,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Config.decode = function decode(reader, length, error) { + Config.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.Config(); while (reader.pos < end) { var tag = reader.uint32(); @@ -40064,11 +41654,11 @@ break; } case 3: { - message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -40099,9 +41689,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Config.verify = function verify(message) { + Config.verify = function verify(message, long) { if (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"; @@ -40109,7 +41703,7 @@ if (!$util.isString(message.kmsKeyName)) return "kmsKeyName: string expected"; if (message.updateTime != null && message.hasOwnProperty("updateTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.updateTime); + var error = $root.google.protobuf.Timestamp.verify(message.updateTime, long + 1); if (error) return "updateTime." + error; } @@ -40124,9 +41718,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.Config} Config */ - Config.fromObject = function fromObject(object) { + Config.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.Config) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.Config(); if (object.name != null) message.name = String(object.name); @@ -40135,7 +41733,7 @@ if (object.updateTime != null) { if (typeof object.updateTime !== "object") throw TypeError(".google.cloud.speech.v2.Config.updateTime: object expected"); - message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime); + message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime, long + 1); } return message; }; @@ -40216,7 +41814,7 @@ function GetConfigRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -40281,9 +41879,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetConfigRequest.decode = function decode(reader, length, error) { + GetConfigRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.GetConfigRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -40295,7 +41897,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -40326,9 +41928,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetConfigRequest.verify = function verify(message) { + GetConfigRequest.verify = function verify(message, long) { if (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"; @@ -40343,9 +41949,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.GetConfigRequest} GetConfigRequest */ - GetConfigRequest.fromObject = function fromObject(object) { + GetConfigRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.GetConfigRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.GetConfigRequest(); if (object.name != null) message.name = String(object.name); @@ -40422,7 +42032,7 @@ function UpdateConfigRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -40497,9 +42107,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UpdateConfigRequest.decode = function decode(reader, length, error) { + UpdateConfigRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.UpdateConfigRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -40507,15 +42121,15 @@ break; switch (tag >>> 3) { case 1: { - message.config = $root.google.cloud.speech.v2.Config.decode(reader, reader.uint32()); + message.config = $root.google.cloud.speech.v2.Config.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; } } @@ -40546,16 +42160,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UpdateConfigRequest.verify = function verify(message) { + UpdateConfigRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.config != null && message.hasOwnProperty("config")) { - var error = $root.google.cloud.speech.v2.Config.verify(message.config); + var error = $root.google.cloud.speech.v2.Config.verify(message.config, long + 1); if (error) return "config." + 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; } @@ -40570,19 +42188,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.UpdateConfigRequest} UpdateConfigRequest */ - UpdateConfigRequest.fromObject = function fromObject(object) { + UpdateConfigRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.UpdateConfigRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.UpdateConfigRequest(); if (object.config != null) { if (typeof object.config !== "object") throw TypeError(".google.cloud.speech.v2.UpdateConfigRequest.config: object expected"); - message.config = $root.google.cloud.speech.v2.Config.fromObject(object.config); + message.config = $root.google.cloud.speech.v2.Config.fromObject(object.config, long + 1); } if (object.updateMask != null) { if (typeof object.updateMask !== "object") throw TypeError(".google.cloud.speech.v2.UpdateConfigRequest.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; }; @@ -40675,7 +42297,7 @@ this.annotations = {}; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -40872,9 +42494,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CustomClass.decode = function decode(reader, length, error) { + CustomClass.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.CustomClass(), key, value; while (reader.pos < end) { var tag = reader.uint32(); @@ -40896,7 +42522,7 @@ case 5: { if (!(message.items && message.items.length)) message.items = []; - message.items.push($root.google.cloud.speech.v2.CustomClass.ClassItem.decode(reader, reader.uint32())); + message.items.push($root.google.cloud.speech.v2.CustomClass.ClassItem.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 15: { @@ -40904,19 +42530,19 @@ break; } case 6: { - 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 7: { - message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { - message.deleteTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.deleteTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { - message.expireTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.expireTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 10: { @@ -40935,10 +42561,12 @@ value = reader.string(); break; default: - reader.skipType(tag2 & 7); + reader.skipType(tag2 & 7, long); break; } } + if (key === "__proto__") + $util.makeProp(message.annotations, key); message.annotations[key] = value; break; } @@ -40959,7 +42587,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -40990,9 +42618,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CustomClass.verify = function verify(message) { + CustomClass.verify = function verify(message, long) { if (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"; @@ -41006,7 +42638,7 @@ if (!Array.isArray(message.items)) return "items: array expected"; for (var i = 0; i < message.items.length; ++i) { - var error = $root.google.cloud.speech.v2.CustomClass.ClassItem.verify(message.items[i]); + var error = $root.google.cloud.speech.v2.CustomClass.ClassItem.verify(message.items[i], long + 1); if (error) return "items." + error; } @@ -41021,22 +42653,22 @@ break; } 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; } if (message.updateTime != null && message.hasOwnProperty("updateTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.updateTime); + var error = $root.google.protobuf.Timestamp.verify(message.updateTime, long + 1); if (error) return "updateTime." + error; } if (message.deleteTime != null && message.hasOwnProperty("deleteTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.deleteTime); + var error = $root.google.protobuf.Timestamp.verify(message.deleteTime, long + 1); if (error) return "deleteTime." + error; } if (message.expireTime != null && message.hasOwnProperty("expireTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.expireTime); + var error = $root.google.protobuf.Timestamp.verify(message.expireTime, long + 1); if (error) return "expireTime." + error; } @@ -41071,9 +42703,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.CustomClass} CustomClass */ - CustomClass.fromObject = function fromObject(object) { + CustomClass.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.CustomClass) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.CustomClass(); if (object.name != null) message.name = String(object.name); @@ -41088,7 +42724,7 @@ for (var i = 0; i < object.items.length; ++i) { if (typeof object.items[i] !== "object") throw TypeError(".google.cloud.speech.v2.CustomClass.items: object expected"); - message.items[i] = $root.google.cloud.speech.v2.CustomClass.ClassItem.fromObject(object.items[i]); + message.items[i] = $root.google.cloud.speech.v2.CustomClass.ClassItem.fromObject(object.items[i], long + 1); } } switch (object.state) { @@ -41114,29 +42750,32 @@ if (object.createTime != null) { if (typeof object.createTime !== "object") throw TypeError(".google.cloud.speech.v2.CustomClass.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.updateTime != null) { if (typeof object.updateTime !== "object") throw TypeError(".google.cloud.speech.v2.CustomClass.updateTime: object expected"); - message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime); + message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime, long + 1); } if (object.deleteTime != null) { if (typeof object.deleteTime !== "object") throw TypeError(".google.cloud.speech.v2.CustomClass.deleteTime: object expected"); - message.deleteTime = $root.google.protobuf.Timestamp.fromObject(object.deleteTime); + message.deleteTime = $root.google.protobuf.Timestamp.fromObject(object.deleteTime, long + 1); } if (object.expireTime != null) { if (typeof object.expireTime !== "object") throw TypeError(".google.cloud.speech.v2.CustomClass.expireTime: object expected"); - message.expireTime = $root.google.protobuf.Timestamp.fromObject(object.expireTime); + message.expireTime = $root.google.protobuf.Timestamp.fromObject(object.expireTime, long + 1); } if (object.annotations) { if (typeof object.annotations !== "object") throw TypeError(".google.cloud.speech.v2.CustomClass.annotations: object expected"); message.annotations = {}; - for (var keys = Object.keys(object.annotations), i = 0; i < keys.length; ++i) + for (var keys = Object.keys(object.annotations), i = 0; i < keys.length; ++i) { + if (keys[i] === "__proto__") + $util.makeProp(message.annotations, keys[i]); message.annotations[keys[i]] = String(object.annotations[keys[i]]); + } } if (object.etag != null) message.etag = String(object.etag); @@ -41202,8 +42841,11 @@ var keys2; if (message.annotations && (keys2 = Object.keys(message.annotations)).length) { object.annotations = {}; - for (var j = 0; j < keys2.length; ++j) + for (var j = 0; j < keys2.length; ++j) { + if (keys2[j] === "__proto__") + $util.makeProp(object.annotations, keys2[j]); object.annotations[keys2[j]] = message.annotations[keys2[j]]; + } } if (message.etag != null && message.hasOwnProperty("etag")) object.etag = message.etag; @@ -41264,7 +42906,7 @@ function ClassItem(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -41329,9 +42971,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ClassItem.decode = function decode(reader, length, error) { + ClassItem.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.CustomClass.ClassItem(); while (reader.pos < end) { var tag = reader.uint32(); @@ -41343,7 +42989,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -41374,9 +43020,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ClassItem.verify = function verify(message) { + ClassItem.verify = function verify(message, long) { if (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"; @@ -41391,9 +43041,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.CustomClass.ClassItem} ClassItem */ - ClassItem.fromObject = function fromObject(object) { + ClassItem.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.CustomClass.ClassItem) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.CustomClass.ClassItem(); if (object.value != null) message.value = String(object.value); @@ -41504,7 +43158,7 @@ this.annotations = {}; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -41711,9 +43365,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PhraseSet.decode = function decode(reader, length, error) { + PhraseSet.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.PhraseSet(), key, value; while (reader.pos < end) { var tag = reader.uint32(); @@ -41731,7 +43389,7 @@ case 3: { if (!(message.phrases && message.phrases.length)) message.phrases = []; - message.phrases.push($root.google.cloud.speech.v2.PhraseSet.Phrase.decode(reader, reader.uint32())); + message.phrases.push($root.google.cloud.speech.v2.PhraseSet.Phrase.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 4: { @@ -41747,19 +43405,19 @@ break; } case 6: { - 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 7: { - message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { - message.deleteTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.deleteTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { - message.expireTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.expireTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 10: { @@ -41778,10 +43436,12 @@ value = reader.string(); break; default: - reader.skipType(tag2 & 7); + reader.skipType(tag2 & 7, long); break; } } + if (key === "__proto__") + $util.makeProp(message.annotations, key); message.annotations[key] = value; break; } @@ -41802,7 +43462,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -41833,9 +43493,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PhraseSet.verify = function verify(message) { + PhraseSet.verify = function verify(message, long) { if (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"; @@ -41846,7 +43510,7 @@ if (!Array.isArray(message.phrases)) return "phrases: array expected"; for (var i = 0; i < message.phrases.length; ++i) { - var error = $root.google.cloud.speech.v2.PhraseSet.Phrase.verify(message.phrases[i]); + var error = $root.google.cloud.speech.v2.PhraseSet.Phrase.verify(message.phrases[i], long + 1); if (error) return "phrases." + error; } @@ -41867,22 +43531,22 @@ break; } 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; } if (message.updateTime != null && message.hasOwnProperty("updateTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.updateTime); + var error = $root.google.protobuf.Timestamp.verify(message.updateTime, long + 1); if (error) return "updateTime." + error; } if (message.deleteTime != null && message.hasOwnProperty("deleteTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.deleteTime); + var error = $root.google.protobuf.Timestamp.verify(message.deleteTime, long + 1); if (error) return "deleteTime." + error; } if (message.expireTime != null && message.hasOwnProperty("expireTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.expireTime); + var error = $root.google.protobuf.Timestamp.verify(message.expireTime, long + 1); if (error) return "expireTime." + error; } @@ -41917,9 +43581,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.PhraseSet} PhraseSet */ - PhraseSet.fromObject = function fromObject(object) { + PhraseSet.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.PhraseSet) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.PhraseSet(); if (object.name != null) message.name = String(object.name); @@ -41932,7 +43600,7 @@ for (var i = 0; i < object.phrases.length; ++i) { if (typeof object.phrases[i] !== "object") throw TypeError(".google.cloud.speech.v2.PhraseSet.phrases: object expected"); - message.phrases[i] = $root.google.cloud.speech.v2.PhraseSet.Phrase.fromObject(object.phrases[i]); + message.phrases[i] = $root.google.cloud.speech.v2.PhraseSet.Phrase.fromObject(object.phrases[i], long + 1); } } if (object.boost != null) @@ -41962,29 +43630,32 @@ if (object.createTime != null) { if (typeof object.createTime !== "object") throw TypeError(".google.cloud.speech.v2.PhraseSet.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.updateTime != null) { if (typeof object.updateTime !== "object") throw TypeError(".google.cloud.speech.v2.PhraseSet.updateTime: object expected"); - message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime); + message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime, long + 1); } if (object.deleteTime != null) { if (typeof object.deleteTime !== "object") throw TypeError(".google.cloud.speech.v2.PhraseSet.deleteTime: object expected"); - message.deleteTime = $root.google.protobuf.Timestamp.fromObject(object.deleteTime); + message.deleteTime = $root.google.protobuf.Timestamp.fromObject(object.deleteTime, long + 1); } if (object.expireTime != null) { if (typeof object.expireTime !== "object") throw TypeError(".google.cloud.speech.v2.PhraseSet.expireTime: object expected"); - message.expireTime = $root.google.protobuf.Timestamp.fromObject(object.expireTime); + message.expireTime = $root.google.protobuf.Timestamp.fromObject(object.expireTime, long + 1); } if (object.annotations) { if (typeof object.annotations !== "object") throw TypeError(".google.cloud.speech.v2.PhraseSet.annotations: object expected"); message.annotations = {}; - for (var keys = Object.keys(object.annotations), i = 0; i < keys.length; ++i) + for (var keys = Object.keys(object.annotations), i = 0; i < keys.length; ++i) { + if (keys[i] === "__proto__") + $util.makeProp(message.annotations, keys[i]); message.annotations[keys[i]] = String(object.annotations[keys[i]]); + } } if (object.etag != null) message.etag = String(object.etag); @@ -42053,8 +43724,11 @@ var keys2; if (message.annotations && (keys2 = Object.keys(message.annotations)).length) { object.annotations = {}; - for (var j = 0; j < keys2.length; ++j) + for (var j = 0; j < keys2.length; ++j) { + if (keys2[j] === "__proto__") + $util.makeProp(object.annotations, keys2[j]); object.annotations[keys2[j]] = message.annotations[keys2[j]]; + } } if (message.etag != null && message.hasOwnProperty("etag")) object.etag = message.etag; @@ -42116,7 +43790,7 @@ function Phrase(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -42191,9 +43865,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Phrase.decode = function decode(reader, length, error) { + Phrase.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.PhraseSet.Phrase(); while (reader.pos < end) { var tag = reader.uint32(); @@ -42209,7 +43887,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -42240,9 +43918,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Phrase.verify = function verify(message) { + Phrase.verify = function verify(message, long) { if (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"; @@ -42260,9 +43942,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.PhraseSet.Phrase} Phrase */ - Phrase.fromObject = function fromObject(object) { + Phrase.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.PhraseSet.Phrase) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.PhraseSet.Phrase(); if (object.value != null) message.value = String(object.value); @@ -42366,7 +44052,7 @@ function CreateCustomClassRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -42461,9 +44147,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CreateCustomClassRequest.decode = function decode(reader, length, error) { + CreateCustomClassRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.CreateCustomClassRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -42471,7 +44161,7 @@ break; switch (tag >>> 3) { case 1: { - message.customClass = $root.google.cloud.speech.v2.CustomClass.decode(reader, reader.uint32()); + message.customClass = $root.google.cloud.speech.v2.CustomClass.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -42487,7 +44177,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -42518,11 +44208,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CreateCustomClassRequest.verify = function verify(message) { + CreateCustomClassRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.customClass != null && message.hasOwnProperty("customClass")) { - var error = $root.google.cloud.speech.v2.CustomClass.verify(message.customClass); + var error = $root.google.cloud.speech.v2.CustomClass.verify(message.customClass, long + 1); if (error) return "customClass." + error; } @@ -42546,14 +44240,18 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.CreateCustomClassRequest} CreateCustomClassRequest */ - CreateCustomClassRequest.fromObject = function fromObject(object) { + CreateCustomClassRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.CreateCustomClassRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.CreateCustomClassRequest(); if (object.customClass != null) { if (typeof object.customClass !== "object") throw TypeError(".google.cloud.speech.v2.CreateCustomClassRequest.customClass: object expected"); - message.customClass = $root.google.cloud.speech.v2.CustomClass.fromObject(object.customClass); + message.customClass = $root.google.cloud.speech.v2.CustomClass.fromObject(object.customClass, long + 1); } if (object.validateOnly != null) message.validateOnly = Boolean(object.validateOnly); @@ -42646,7 +44344,7 @@ function ListCustomClassesRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -42741,9 +44439,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListCustomClassesRequest.decode = function decode(reader, length, error) { + ListCustomClassesRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.ListCustomClassesRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -42767,7 +44469,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -42798,9 +44500,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListCustomClassesRequest.verify = function verify(message) { + ListCustomClassesRequest.verify = function verify(message, long) { if (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"; @@ -42824,9 +44530,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.ListCustomClassesRequest} ListCustomClassesRequest */ - ListCustomClassesRequest.fromObject = function fromObject(object) { + ListCustomClassesRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.ListCustomClassesRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.ListCustomClassesRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -42920,7 +44630,7 @@ this.customClasses = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -42996,9 +44706,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListCustomClassesResponse.decode = function decode(reader, length, error) { + ListCustomClassesResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.ListCustomClassesResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -43008,7 +44722,7 @@ case 1: { if (!(message.customClasses && message.customClasses.length)) message.customClasses = []; - message.customClasses.push($root.google.cloud.speech.v2.CustomClass.decode(reader, reader.uint32())); + message.customClasses.push($root.google.cloud.speech.v2.CustomClass.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -43016,7 +44730,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -43047,14 +44761,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListCustomClassesResponse.verify = function verify(message) { + ListCustomClassesResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.customClasses != null && message.hasOwnProperty("customClasses")) { if (!Array.isArray(message.customClasses)) return "customClasses: array expected"; for (var i = 0; i < message.customClasses.length; ++i) { - var error = $root.google.cloud.speech.v2.CustomClass.verify(message.customClasses[i]); + var error = $root.google.cloud.speech.v2.CustomClass.verify(message.customClasses[i], long + 1); if (error) return "customClasses." + error; } @@ -43073,9 +44791,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.ListCustomClassesResponse} ListCustomClassesResponse */ - ListCustomClassesResponse.fromObject = function fromObject(object) { + ListCustomClassesResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.ListCustomClassesResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.ListCustomClassesResponse(); if (object.customClasses) { if (!Array.isArray(object.customClasses)) @@ -43084,7 +44806,7 @@ for (var i = 0; i < object.customClasses.length; ++i) { if (typeof object.customClasses[i] !== "object") throw TypeError(".google.cloud.speech.v2.ListCustomClassesResponse.customClasses: object expected"); - message.customClasses[i] = $root.google.cloud.speech.v2.CustomClass.fromObject(object.customClasses[i]); + message.customClasses[i] = $root.google.cloud.speech.v2.CustomClass.fromObject(object.customClasses[i], long + 1); } } if (object.nextPageToken != null) @@ -43168,7 +44890,7 @@ function GetCustomClassRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -43233,9 +44955,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetCustomClassRequest.decode = function decode(reader, length, error) { + GetCustomClassRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.GetCustomClassRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -43247,7 +44973,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -43278,9 +45004,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetCustomClassRequest.verify = function verify(message) { + GetCustomClassRequest.verify = function verify(message, long) { if (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"; @@ -43295,9 +45025,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.GetCustomClassRequest} GetCustomClassRequest */ - GetCustomClassRequest.fromObject = function fromObject(object) { + GetCustomClassRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.GetCustomClassRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.GetCustomClassRequest(); if (object.name != null) message.name = String(object.name); @@ -43375,7 +45109,7 @@ function UpdateCustomClassRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -43460,9 +45194,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UpdateCustomClassRequest.decode = function decode(reader, length, error) { + UpdateCustomClassRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.UpdateCustomClassRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -43470,11 +45208,11 @@ break; switch (tag >>> 3) { case 1: { - message.customClass = $root.google.cloud.speech.v2.CustomClass.decode(reader, reader.uint32()); + message.customClass = $root.google.cloud.speech.v2.CustomClass.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; } case 4: { @@ -43482,7 +45220,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -43513,16 +45251,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UpdateCustomClassRequest.verify = function verify(message) { + UpdateCustomClassRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.customClass != null && message.hasOwnProperty("customClass")) { - var error = $root.google.cloud.speech.v2.CustomClass.verify(message.customClass); + var error = $root.google.cloud.speech.v2.CustomClass.verify(message.customClass, long + 1); if (error) return "customClass." + 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; } @@ -43540,19 +45282,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.UpdateCustomClassRequest} UpdateCustomClassRequest */ - UpdateCustomClassRequest.fromObject = function fromObject(object) { + UpdateCustomClassRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.UpdateCustomClassRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.UpdateCustomClassRequest(); if (object.customClass != null) { if (typeof object.customClass !== "object") throw TypeError(".google.cloud.speech.v2.UpdateCustomClassRequest.customClass: object expected"); - message.customClass = $root.google.cloud.speech.v2.CustomClass.fromObject(object.customClass); + message.customClass = $root.google.cloud.speech.v2.CustomClass.fromObject(object.customClass, long + 1); } if (object.updateMask != null) { if (typeof object.updateMask !== "object") throw TypeError(".google.cloud.speech.v2.UpdateCustomClassRequest.updateMask: object expected"); - message.updateMask = $root.google.protobuf.FieldMask.fromObject(object.updateMask); + message.updateMask = $root.google.protobuf.FieldMask.fromObject(object.updateMask, long + 1); } if (object.validateOnly != null) message.validateOnly = Boolean(object.validateOnly); @@ -43638,7 +45384,7 @@ function DeleteCustomClassRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -43733,9 +45479,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DeleteCustomClassRequest.decode = function decode(reader, length, error) { + DeleteCustomClassRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.DeleteCustomClassRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -43759,7 +45509,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -43790,9 +45540,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DeleteCustomClassRequest.verify = function verify(message) { + DeleteCustomClassRequest.verify = function verify(message, long) { if (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"; @@ -43816,9 +45570,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.DeleteCustomClassRequest} DeleteCustomClassRequest */ - DeleteCustomClassRequest.fromObject = function fromObject(object) { + DeleteCustomClassRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.DeleteCustomClassRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.DeleteCustomClassRequest(); if (object.name != null) message.name = String(object.name); @@ -43912,7 +45670,7 @@ function UndeleteCustomClassRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -43997,9 +45755,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UndeleteCustomClassRequest.decode = function decode(reader, length, error) { + UndeleteCustomClassRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.UndeleteCustomClassRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -44019,7 +45781,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -44050,9 +45812,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UndeleteCustomClassRequest.verify = function verify(message) { + UndeleteCustomClassRequest.verify = function verify(message, long) { if (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"; @@ -44073,9 +45839,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.UndeleteCustomClassRequest} UndeleteCustomClassRequest */ - UndeleteCustomClassRequest.fromObject = function fromObject(object) { + UndeleteCustomClassRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.UndeleteCustomClassRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.UndeleteCustomClassRequest(); if (object.name != null) message.name = String(object.name); @@ -44165,7 +45935,7 @@ function CreatePhraseSetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -44260,9 +46030,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CreatePhraseSetRequest.decode = function decode(reader, length, error) { + CreatePhraseSetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.CreatePhraseSetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -44270,7 +46044,7 @@ break; switch (tag >>> 3) { case 1: { - message.phraseSet = $root.google.cloud.speech.v2.PhraseSet.decode(reader, reader.uint32()); + message.phraseSet = $root.google.cloud.speech.v2.PhraseSet.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -44286,7 +46060,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -44317,11 +46091,15 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CreatePhraseSetRequest.verify = function verify(message) { + CreatePhraseSetRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.phraseSet != null && message.hasOwnProperty("phraseSet")) { - var error = $root.google.cloud.speech.v2.PhraseSet.verify(message.phraseSet); + var error = $root.google.cloud.speech.v2.PhraseSet.verify(message.phraseSet, long + 1); if (error) return "phraseSet." + error; } @@ -44345,14 +46123,18 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.CreatePhraseSetRequest} CreatePhraseSetRequest */ - CreatePhraseSetRequest.fromObject = function fromObject(object) { + CreatePhraseSetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.CreatePhraseSetRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.CreatePhraseSetRequest(); if (object.phraseSet != null) { if (typeof object.phraseSet !== "object") throw TypeError(".google.cloud.speech.v2.CreatePhraseSetRequest.phraseSet: object expected"); - message.phraseSet = $root.google.cloud.speech.v2.PhraseSet.fromObject(object.phraseSet); + message.phraseSet = $root.google.cloud.speech.v2.PhraseSet.fromObject(object.phraseSet, long + 1); } if (object.validateOnly != null) message.validateOnly = Boolean(object.validateOnly); @@ -44445,7 +46227,7 @@ function ListPhraseSetsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -44540,9 +46322,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListPhraseSetsRequest.decode = function decode(reader, length, error) { + ListPhraseSetsRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.ListPhraseSetsRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -44566,7 +46352,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -44597,9 +46383,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListPhraseSetsRequest.verify = function verify(message) { + ListPhraseSetsRequest.verify = function verify(message, long) { if (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"; @@ -44623,9 +46413,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.ListPhraseSetsRequest} ListPhraseSetsRequest */ - ListPhraseSetsRequest.fromObject = function fromObject(object) { + ListPhraseSetsRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.ListPhraseSetsRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.ListPhraseSetsRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -44719,7 +46513,7 @@ this.phraseSets = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -44795,9 +46589,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListPhraseSetsResponse.decode = function decode(reader, length, error) { + ListPhraseSetsResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.ListPhraseSetsResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -44807,7 +46605,7 @@ case 1: { if (!(message.phraseSets && message.phraseSets.length)) message.phraseSets = []; - message.phraseSets.push($root.google.cloud.speech.v2.PhraseSet.decode(reader, reader.uint32())); + message.phraseSets.push($root.google.cloud.speech.v2.PhraseSet.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -44815,7 +46613,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -44846,14 +46644,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListPhraseSetsResponse.verify = function verify(message) { + ListPhraseSetsResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.phraseSets != null && message.hasOwnProperty("phraseSets")) { if (!Array.isArray(message.phraseSets)) return "phraseSets: array expected"; for (var i = 0; i < message.phraseSets.length; ++i) { - var error = $root.google.cloud.speech.v2.PhraseSet.verify(message.phraseSets[i]); + var error = $root.google.cloud.speech.v2.PhraseSet.verify(message.phraseSets[i], long + 1); if (error) return "phraseSets." + error; } @@ -44872,9 +46674,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.ListPhraseSetsResponse} ListPhraseSetsResponse */ - ListPhraseSetsResponse.fromObject = function fromObject(object) { + ListPhraseSetsResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.ListPhraseSetsResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.ListPhraseSetsResponse(); if (object.phraseSets) { if (!Array.isArray(object.phraseSets)) @@ -44883,7 +46689,7 @@ for (var i = 0; i < object.phraseSets.length; ++i) { if (typeof object.phraseSets[i] !== "object") throw TypeError(".google.cloud.speech.v2.ListPhraseSetsResponse.phraseSets: object expected"); - message.phraseSets[i] = $root.google.cloud.speech.v2.PhraseSet.fromObject(object.phraseSets[i]); + message.phraseSets[i] = $root.google.cloud.speech.v2.PhraseSet.fromObject(object.phraseSets[i], long + 1); } } if (object.nextPageToken != null) @@ -44967,7 +46773,7 @@ function GetPhraseSetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -45032,9 +46838,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetPhraseSetRequest.decode = function decode(reader, length, error) { + GetPhraseSetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.GetPhraseSetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -45046,7 +46856,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -45077,9 +46887,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetPhraseSetRequest.verify = function verify(message) { + GetPhraseSetRequest.verify = function verify(message, long) { if (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"; @@ -45094,9 +46908,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.GetPhraseSetRequest} GetPhraseSetRequest */ - GetPhraseSetRequest.fromObject = function fromObject(object) { + GetPhraseSetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.GetPhraseSetRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.GetPhraseSetRequest(); if (object.name != null) message.name = String(object.name); @@ -45174,7 +46992,7 @@ function UpdatePhraseSetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -45259,9 +47077,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UpdatePhraseSetRequest.decode = function decode(reader, length, error) { + UpdatePhraseSetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.UpdatePhraseSetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -45269,11 +47091,11 @@ break; switch (tag >>> 3) { case 1: { - message.phraseSet = $root.google.cloud.speech.v2.PhraseSet.decode(reader, reader.uint32()); + message.phraseSet = $root.google.cloud.speech.v2.PhraseSet.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; } case 4: { @@ -45281,7 +47103,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -45312,16 +47134,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UpdatePhraseSetRequest.verify = function verify(message) { + UpdatePhraseSetRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.phraseSet != null && message.hasOwnProperty("phraseSet")) { - var error = $root.google.cloud.speech.v2.PhraseSet.verify(message.phraseSet); + var error = $root.google.cloud.speech.v2.PhraseSet.verify(message.phraseSet, long + 1); if (error) return "phraseSet." + 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; } @@ -45339,19 +47165,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.UpdatePhraseSetRequest} UpdatePhraseSetRequest */ - UpdatePhraseSetRequest.fromObject = function fromObject(object) { + UpdatePhraseSetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.UpdatePhraseSetRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.UpdatePhraseSetRequest(); if (object.phraseSet != null) { if (typeof object.phraseSet !== "object") throw TypeError(".google.cloud.speech.v2.UpdatePhraseSetRequest.phraseSet: object expected"); - message.phraseSet = $root.google.cloud.speech.v2.PhraseSet.fromObject(object.phraseSet); + message.phraseSet = $root.google.cloud.speech.v2.PhraseSet.fromObject(object.phraseSet, long + 1); } if (object.updateMask != null) { if (typeof object.updateMask !== "object") throw TypeError(".google.cloud.speech.v2.UpdatePhraseSetRequest.updateMask: object expected"); - message.updateMask = $root.google.protobuf.FieldMask.fromObject(object.updateMask); + message.updateMask = $root.google.protobuf.FieldMask.fromObject(object.updateMask, long + 1); } if (object.validateOnly != null) message.validateOnly = Boolean(object.validateOnly); @@ -45437,7 +47267,7 @@ function DeletePhraseSetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -45532,9 +47362,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DeletePhraseSetRequest.decode = function decode(reader, length, error) { + DeletePhraseSetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.DeletePhraseSetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -45558,7 +47392,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -45589,9 +47423,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DeletePhraseSetRequest.verify = function verify(message) { + DeletePhraseSetRequest.verify = function verify(message, long) { if (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"; @@ -45615,9 +47453,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.DeletePhraseSetRequest} DeletePhraseSetRequest */ - DeletePhraseSetRequest.fromObject = function fromObject(object) { + DeletePhraseSetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.DeletePhraseSetRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.DeletePhraseSetRequest(); if (object.name != null) message.name = String(object.name); @@ -45711,7 +47553,7 @@ function UndeletePhraseSetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -45796,9 +47638,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UndeletePhraseSetRequest.decode = function decode(reader, length, error) { + UndeletePhraseSetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.UndeletePhraseSetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -45818,7 +47664,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -45849,9 +47695,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UndeletePhraseSetRequest.verify = function verify(message) { + UndeletePhraseSetRequest.verify = function verify(message, long) { if (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"; @@ -45872,9 +47722,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.UndeletePhraseSetRequest} UndeletePhraseSetRequest */ - UndeletePhraseSetRequest.fromObject = function fromObject(object) { + UndeletePhraseSetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.UndeletePhraseSetRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.UndeletePhraseSetRequest(); if (object.name != null) message.name = String(object.name); @@ -45962,7 +47816,7 @@ function ModelFeature(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -46037,9 +47891,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ModelFeature.decode = function decode(reader, length, error) { + ModelFeature.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.ModelFeature(); while (reader.pos < end) { var tag = reader.uint32(); @@ -46055,7 +47913,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -46086,9 +47944,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ModelFeature.verify = function verify(message) { + ModelFeature.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.feature != null && message.hasOwnProperty("feature")) if (!$util.isString(message.feature)) return "feature: string expected"; @@ -46106,9 +47968,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.ModelFeature} ModelFeature */ - ModelFeature.fromObject = function fromObject(object) { + ModelFeature.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.ModelFeature) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.ModelFeature(); if (object.feature != null) message.feature = String(object.feature); @@ -46191,7 +48057,7 @@ this.modelFeature = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -46257,9 +48123,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ModelFeatures.decode = function decode(reader, length, error) { + ModelFeatures.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.ModelFeatures(); while (reader.pos < end) { var tag = reader.uint32(); @@ -46269,11 +48139,11 @@ case 1: { if (!(message.modelFeature && message.modelFeature.length)) message.modelFeature = []; - message.modelFeature.push($root.google.cloud.speech.v2.ModelFeature.decode(reader, reader.uint32())); + message.modelFeature.push($root.google.cloud.speech.v2.ModelFeature.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -46304,14 +48174,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ModelFeatures.verify = function verify(message) { + ModelFeatures.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.modelFeature != null && message.hasOwnProperty("modelFeature")) { if (!Array.isArray(message.modelFeature)) return "modelFeature: array expected"; for (var i = 0; i < message.modelFeature.length; ++i) { - var error = $root.google.cloud.speech.v2.ModelFeature.verify(message.modelFeature[i]); + var error = $root.google.cloud.speech.v2.ModelFeature.verify(message.modelFeature[i], long + 1); if (error) return "modelFeature." + error; } @@ -46327,9 +48201,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.ModelFeatures} ModelFeatures */ - ModelFeatures.fromObject = function fromObject(object) { + ModelFeatures.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.ModelFeatures) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.ModelFeatures(); if (object.modelFeature) { if (!Array.isArray(object.modelFeature)) @@ -46338,7 +48216,7 @@ for (var i = 0; i < object.modelFeature.length; ++i) { if (typeof object.modelFeature[i] !== "object") throw TypeError(".google.cloud.speech.v2.ModelFeatures.modelFeature: object expected"); - message.modelFeature[i] = $root.google.cloud.speech.v2.ModelFeature.fromObject(object.modelFeature[i]); + message.modelFeature[i] = $root.google.cloud.speech.v2.ModelFeature.fromObject(object.modelFeature[i], long + 1); } } return message; @@ -46417,7 +48295,7 @@ this.modelFeatures = {}; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -46485,9 +48363,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ModelMetadata.decode = function decode(reader, length, error) { + ModelMetadata.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.ModelMetadata(), key, value; while (reader.pos < end) { var tag = reader.uint32(); @@ -46507,18 +48389,20 @@ key = reader.string(); break; case 2: - value = $root.google.cloud.speech.v2.ModelFeatures.decode(reader, reader.uint32()); + value = $root.google.cloud.speech.v2.ModelFeatures.decode(reader, reader.uint32(), undefined, long + 1); break; default: - reader.skipType(tag2 & 7); + reader.skipType(tag2 & 7, long); break; } } + if (key === "__proto__") + $util.makeProp(message.modelFeatures, key); message.modelFeatures[key] = value; break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -46549,15 +48433,19 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ModelMetadata.verify = function verify(message) { + ModelMetadata.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.modelFeatures != null && message.hasOwnProperty("modelFeatures")) { if (!$util.isObject(message.modelFeatures)) return "modelFeatures: object expected"; var key = Object.keys(message.modelFeatures); for (var i = 0; i < key.length; ++i) { - var error = $root.google.cloud.speech.v2.ModelFeatures.verify(message.modelFeatures[key[i]]); + var error = $root.google.cloud.speech.v2.ModelFeatures.verify(message.modelFeatures[key[i]], long + 1); if (error) return "modelFeatures." + error; } @@ -46573,18 +48461,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.ModelMetadata} ModelMetadata */ - ModelMetadata.fromObject = function fromObject(object) { + ModelMetadata.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.ModelMetadata) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.ModelMetadata(); if (object.modelFeatures) { if (typeof object.modelFeatures !== "object") throw TypeError(".google.cloud.speech.v2.ModelMetadata.modelFeatures: object expected"); message.modelFeatures = {}; for (var keys = Object.keys(object.modelFeatures), i = 0; i < keys.length; ++i) { + if (keys[i] === "__proto__") + $util.makeProp(message.modelFeatures, keys[i]); if (typeof object.modelFeatures[keys[i]] !== "object") throw TypeError(".google.cloud.speech.v2.ModelMetadata.modelFeatures: object expected"); - message.modelFeatures[keys[i]] = $root.google.cloud.speech.v2.ModelFeatures.fromObject(object.modelFeatures[keys[i]]); + message.modelFeatures[keys[i]] = $root.google.cloud.speech.v2.ModelFeatures.fromObject(object.modelFeatures[keys[i]], long + 1); } } return message; @@ -46608,8 +48502,11 @@ var keys2; if (message.modelFeatures && (keys2 = Object.keys(message.modelFeatures)).length) { object.modelFeatures = {}; - for (var j = 0; j < keys2.length; ++j) + for (var j = 0; j < keys2.length; ++j) { + if (keys2[j] === "__proto__") + $util.makeProp(object.modelFeatures, keys2[j]); object.modelFeatures[keys2[j]] = $root.google.cloud.speech.v2.ModelFeatures.toObject(message.modelFeatures[keys2[j]], options); + } } return object; }; @@ -46664,7 +48561,7 @@ this.models = {}; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -46732,9 +48629,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LanguageMetadata.decode = function decode(reader, length, error) { + LanguageMetadata.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.LanguageMetadata(), key, value; while (reader.pos < end) { var tag = reader.uint32(); @@ -46754,18 +48655,20 @@ key = reader.string(); break; case 2: - value = $root.google.cloud.speech.v2.ModelMetadata.decode(reader, reader.uint32()); + value = $root.google.cloud.speech.v2.ModelMetadata.decode(reader, reader.uint32(), undefined, long + 1); break; default: - reader.skipType(tag2 & 7); + reader.skipType(tag2 & 7, long); break; } } + if (key === "__proto__") + $util.makeProp(message.models, key); message.models[key] = value; break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -46796,15 +48699,19 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LanguageMetadata.verify = function verify(message) { + LanguageMetadata.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.models != null && message.hasOwnProperty("models")) { if (!$util.isObject(message.models)) return "models: object expected"; var key = Object.keys(message.models); for (var i = 0; i < key.length; ++i) { - var error = $root.google.cloud.speech.v2.ModelMetadata.verify(message.models[key[i]]); + var error = $root.google.cloud.speech.v2.ModelMetadata.verify(message.models[key[i]], long + 1); if (error) return "models." + error; } @@ -46820,18 +48727,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.LanguageMetadata} LanguageMetadata */ - LanguageMetadata.fromObject = function fromObject(object) { + LanguageMetadata.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.LanguageMetadata) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.LanguageMetadata(); if (object.models) { if (typeof object.models !== "object") throw TypeError(".google.cloud.speech.v2.LanguageMetadata.models: object expected"); message.models = {}; for (var keys = Object.keys(object.models), i = 0; i < keys.length; ++i) { + if (keys[i] === "__proto__") + $util.makeProp(message.models, keys[i]); if (typeof object.models[keys[i]] !== "object") throw TypeError(".google.cloud.speech.v2.LanguageMetadata.models: object expected"); - message.models[keys[i]] = $root.google.cloud.speech.v2.ModelMetadata.fromObject(object.models[keys[i]]); + message.models[keys[i]] = $root.google.cloud.speech.v2.ModelMetadata.fromObject(object.models[keys[i]], long + 1); } } return message; @@ -46855,8 +48768,11 @@ var keys2; if (message.models && (keys2 = Object.keys(message.models)).length) { object.models = {}; - for (var j = 0; j < keys2.length; ++j) + for (var j = 0; j < keys2.length; ++j) { + if (keys2[j] === "__proto__") + $util.makeProp(object.models, keys2[j]); object.models[keys2[j]] = $root.google.cloud.speech.v2.ModelMetadata.toObject(message.models[keys2[j]], options); + } } return object; }; @@ -46910,7 +48826,7 @@ function AccessMetadata(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -46975,9 +48891,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - AccessMetadata.decode = function decode(reader, length, error) { + AccessMetadata.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.AccessMetadata(); while (reader.pos < end) { var tag = reader.uint32(); @@ -46989,7 +48909,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -47020,9 +48940,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - AccessMetadata.verify = function verify(message) { + AccessMetadata.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.constraintType != null && message.hasOwnProperty("constraintType")) switch (message.constraintType) { default: @@ -47042,9 +48966,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.AccessMetadata} AccessMetadata */ - AccessMetadata.fromObject = function fromObject(object) { + AccessMetadata.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.AccessMetadata) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.AccessMetadata(); switch (object.constraintType) { default: @@ -47149,7 +49077,7 @@ function LocationsMetadata(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -47224,9 +49152,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LocationsMetadata.decode = function decode(reader, length, error) { + LocationsMetadata.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.speech.v2.LocationsMetadata(); while (reader.pos < end) { var tag = reader.uint32(); @@ -47234,15 +49166,15 @@ break; switch (tag >>> 3) { case 1: { - message.languages = $root.google.cloud.speech.v2.LanguageMetadata.decode(reader, reader.uint32()); + message.languages = $root.google.cloud.speech.v2.LanguageMetadata.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.accessMetadata = $root.google.cloud.speech.v2.AccessMetadata.decode(reader, reader.uint32()); + message.accessMetadata = $root.google.cloud.speech.v2.AccessMetadata.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -47273,16 +49205,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LocationsMetadata.verify = function verify(message) { + LocationsMetadata.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.languages != null && message.hasOwnProperty("languages")) { - var error = $root.google.cloud.speech.v2.LanguageMetadata.verify(message.languages); + var error = $root.google.cloud.speech.v2.LanguageMetadata.verify(message.languages, long + 1); if (error) return "languages." + error; } if (message.accessMetadata != null && message.hasOwnProperty("accessMetadata")) { - var error = $root.google.cloud.speech.v2.AccessMetadata.verify(message.accessMetadata); + var error = $root.google.cloud.speech.v2.AccessMetadata.verify(message.accessMetadata, long + 1); if (error) return "accessMetadata." + error; } @@ -47297,19 +49233,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.speech.v2.LocationsMetadata} LocationsMetadata */ - LocationsMetadata.fromObject = function fromObject(object) { + LocationsMetadata.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.speech.v2.LocationsMetadata) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.speech.v2.LocationsMetadata(); if (object.languages != null) { if (typeof object.languages !== "object") throw TypeError(".google.cloud.speech.v2.LocationsMetadata.languages: object expected"); - message.languages = $root.google.cloud.speech.v2.LanguageMetadata.fromObject(object.languages); + message.languages = $root.google.cloud.speech.v2.LanguageMetadata.fromObject(object.languages, long + 1); } if (object.accessMetadata != null) { if (typeof object.accessMetadata !== "object") throw TypeError(".google.cloud.speech.v2.LocationsMetadata.accessMetadata: object expected"); - message.accessMetadata = $root.google.cloud.speech.v2.AccessMetadata.fromObject(object.accessMetadata); + message.accessMetadata = $root.google.cloud.speech.v2.AccessMetadata.fromObject(object.accessMetadata, long + 1); } return message; }; @@ -47407,7 +49347,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]]; } @@ -47483,9 +49423,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(); @@ -47495,7 +49439,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: { @@ -47503,7 +49447,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -47534,14 +49478,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; } @@ -47560,9 +49508,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)) @@ -47571,7 +49523,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) @@ -47665,7 +49617,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]]; } @@ -47835,9 +49787,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(); @@ -47869,7 +49825,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: { @@ -47883,11 +49839,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; } } @@ -47918,9 +49874,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)) @@ -47963,7 +49923,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; } @@ -47978,7 +49938,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; } @@ -47994,9 +49954,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); @@ -48013,7 +49977,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); @@ -48026,7 +49990,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; @@ -48146,7 +50110,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]]; } @@ -48221,9 +50185,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(); @@ -48239,7 +50207,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -48270,9 +50238,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"; @@ -48290,9 +50262,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); @@ -48362,6 +50338,7 @@ * @interface ICommonLanguageSettings * @property {string|null} [referenceDocsUri] CommonLanguageSettings referenceDocsUri * @property {Array.|null} [destinations] CommonLanguageSettings destinations + * @property {google.api.ISelectiveGapicGeneration|null} [selectiveGapicGeneration] CommonLanguageSettings selectiveGapicGeneration */ /** @@ -48376,7 +50353,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]]; } @@ -48396,6 +50373,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 @@ -48428,6 +50413,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; }; @@ -48455,9 +50442,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(); @@ -48479,8 +50470,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; } } @@ -48511,9 +50506,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"; @@ -48530,6 +50529,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; }; @@ -48541,9 +50545,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); @@ -48572,6 +50580,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; }; @@ -48590,8 +50603,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) { @@ -48599,6 +50614,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; }; @@ -48661,7 +50678,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]]; } @@ -48826,9 +50843,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(); @@ -48848,39 +50869,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; } } @@ -48911,9 +50932,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"; @@ -48935,42 +50960,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; } @@ -48985,9 +51010,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); @@ -49036,42 +51065,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; }; @@ -49189,7 +51218,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]]; } @@ -49357,9 +51386,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(); @@ -49369,7 +51402,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: { @@ -49405,7 +51438,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: { @@ -49417,7 +51450,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -49448,14 +51481,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; } @@ -49500,7 +51537,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; } @@ -49522,9 +51559,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)) @@ -49533,7 +51574,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) @@ -49600,7 +51641,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) @@ -49724,7 +51765,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]]; } @@ -49810,9 +51851,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(); @@ -49839,19 +51884,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; } } @@ -49882,9 +51929,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"; @@ -49897,7 +51948,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; } @@ -49912,9 +51963,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); @@ -49922,13 +51977,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; }; @@ -49957,8 +52015,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); @@ -50014,7 +52075,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]]; } @@ -50079,9 +52140,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(); @@ -50089,11 +52154,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; } } @@ -50124,11 +52189,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; } @@ -50143,14 +52212,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; }; @@ -50224,7 +52297,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]]; } @@ -50289,9 +52362,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(); @@ -50299,11 +52376,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; } } @@ -50334,11 +52411,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; } @@ -50353,14 +52434,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; }; @@ -50421,6 +52506,7 @@ * @memberof google.api * @interface IPythonSettings * @property {google.api.ICommonLanguageSettings|null} [common] PythonSettings common + * @property {google.api.PythonSettings.IExperimentalFeatures|null} [experimentalFeatures] PythonSettings experimentalFeatures */ /** @@ -50434,7 +52520,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]]; } @@ -50446,6 +52532,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 @@ -50472,6 +52566,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; }; @@ -50499,9 +52595,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(); @@ -50509,11 +52609,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; } } @@ -50544,14 +52648,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; }; @@ -50563,14 +52676,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; }; @@ -50588,10 +52710,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; }; @@ -50621,6 +52747,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; })(); @@ -50644,7 +53034,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]]; } @@ -50709,9 +53099,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(); @@ -50719,11 +53113,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; } } @@ -50754,11 +53148,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; } @@ -50773,14 +53171,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; }; @@ -50864,7 +53266,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]]; } @@ -50984,9 +53386,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(); @@ -50994,7 +53400,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: { @@ -51013,10 +53419,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; } @@ -51036,10 +53444,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; } @@ -51062,7 +53472,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -51093,11 +53503,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; } @@ -51149,28 +53563,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)) @@ -51225,13 +53649,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 = []; @@ -51300,7 +53730,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]]; } @@ -51365,9 +53795,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(); @@ -51375,11 +53809,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; } } @@ -51410,11 +53844,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; } @@ -51429,14 +53867,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; }; @@ -51497,6 +53939,7 @@ * @memberof google.api * @interface IGoSettings * @property {google.api.ICommonLanguageSettings|null} [common] GoSettings common + * @property {Object.|null} [renamedServices] GoSettings renamedServices */ /** @@ -51508,9 +53951,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]]; } @@ -51522,6 +53966,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 @@ -51548,6 +54000,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; }; @@ -51575,21 +54030,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; } } @@ -51620,14 +54104,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; }; @@ -51639,14 +54135,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; }; @@ -51664,10 +54174,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; }; @@ -51723,7 +54244,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]]; } @@ -51809,9 +54330,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(); @@ -51823,7 +54348,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: { @@ -51833,7 +54358,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -51864,14 +54389,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; } @@ -51893,16 +54422,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)) @@ -51994,7 +54527,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]]; } @@ -52089,9 +54622,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(); @@ -52099,7 +54636,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: { @@ -52107,15 +54644,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; } } @@ -52146,11 +54683,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; } @@ -52158,12 +54699,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; } @@ -52178,26 +54719,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; }; @@ -52306,6 +54851,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 @@ -52388,7 +55190,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]]; } @@ -52518,9 +55320,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(); @@ -52565,7 +55371,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -52596,9 +55402,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"; @@ -52650,9 +55460,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); @@ -52840,7 +55654,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]]; } @@ -52915,9 +55729,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(); @@ -52933,7 +55751,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -52964,9 +55782,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"; @@ -52984,9 +55806,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); @@ -53055,6 +55881,7 @@ * @memberof google.api * @interface IFieldInfo * @property {google.api.FieldInfo.Format|null} [format] FieldInfo format + * @property {Array.|null} [referencedTypes] FieldInfo referencedTypes */ /** @@ -53066,9 +55893,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]]; } @@ -53080,6 +55908,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 @@ -53106,6 +55942,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; }; @@ -53133,9 +55972,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(); @@ -53146,8 +55989,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; } } @@ -53178,9 +56027,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: @@ -53192,6 +56045,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; }; @@ -53203,9 +56065,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: @@ -53235,6 +56101,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; }; @@ -53251,10 +56127,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; }; @@ -53307,6 +56190,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; })(); @@ -53340,7 +56440,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]]; } @@ -53406,9 +56506,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(); @@ -53418,11 +56522,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; } } @@ -53453,14 +56557,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; } @@ -53476,9 +56584,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)) @@ -53487,7 +56599,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; @@ -53550,6 +56662,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 @@ -53564,6 +56677,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; @@ -53588,6 +56702,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 @@ -53610,13 +56725,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]]; } @@ -53660,6 +56776,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 @@ -53781,6 +56905,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; }; @@ -53808,9 +56935,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(); @@ -53853,36 +56984,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: { @@ -53894,7 +57031,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -53925,9 +57062,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"; @@ -53955,11 +57096,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; } @@ -53968,7 +57116,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; } @@ -53977,7 +57125,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; } @@ -53986,18 +57134,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; } @@ -54009,6 +57157,7 @@ default: return "edition: enum value expected"; case 0: + case 900: case 998: case 999: case 1000: @@ -54032,9 +57181,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); @@ -54061,6 +57214,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"); @@ -54068,7 +57228,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) { @@ -54078,7 +57238,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) { @@ -54088,7 +57248,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) { @@ -54098,18 +57258,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); @@ -54124,6 +57284,10 @@ case 0: message.edition = 0; break; + case "EDITION_LEGACY": + case 900: + message.edition = 900; + break; case "EDITION_PROTO2": case 998: message.edition = 998; @@ -54189,6 +57353,7 @@ object.extension = []; object.publicDependency = []; object.weakDependency = []; + object.optionDependency = []; } if (options.defaults) { object.name = ""; @@ -54245,6 +57410,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; }; @@ -54293,6 +57463,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 */ /** @@ -54314,7 +57485,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]]; } @@ -54398,6 +57569,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 @@ -54450,6 +57629,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; }; @@ -54477,9 +57658,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(); @@ -54493,47 +57678,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: { @@ -54542,8 +57727,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; } } @@ -54574,9 +57763,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"; @@ -54584,7 +57777,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; } @@ -54593,7 +57786,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; } @@ -54602,7 +57795,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; } @@ -54611,7 +57804,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; } @@ -54620,7 +57813,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; } @@ -54629,13 +57822,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; } @@ -54643,7 +57836,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; } @@ -54655,6 +57848,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; }; @@ -54666,9 +57868,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); @@ -54679,7 +57885,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) { @@ -54689,7 +57895,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) { @@ -54699,7 +57905,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) { @@ -54709,7 +57915,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) { @@ -54719,7 +57925,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) { @@ -54729,13 +57935,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)) @@ -54744,7 +57950,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) { @@ -54754,6 +57960,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; }; @@ -54783,6 +58009,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; @@ -54828,6 +58055,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; }; @@ -54879,7 +58108,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]]; } @@ -54964,9 +58193,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(); @@ -54982,11 +58215,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; } } @@ -55017,9 +58250,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"; @@ -55027,7 +58264,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; } @@ -55042,9 +58279,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; @@ -55053,7 +58294,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; }; @@ -55135,7 +58376,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]]; } @@ -55210,9 +58451,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(); @@ -55228,7 +58473,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -55259,9 +58504,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"; @@ -55279,9 +58528,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; @@ -55371,7 +58624,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]]; } @@ -55468,9 +58721,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(); @@ -55480,17 +58737,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: { @@ -55498,7 +58755,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -55529,14 +58786,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; } @@ -55545,13 +58806,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; } @@ -55574,9 +58835,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)) @@ -55585,7 +58850,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) { @@ -55595,13 +58860,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": @@ -55710,7 +58975,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]]; } @@ -55815,9 +59080,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(); @@ -55845,7 +59114,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -55876,9 +59145,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"; @@ -55905,9 +59178,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; @@ -56031,7 +59308,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]]; } @@ -56196,9 +59473,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(); @@ -56242,7 +59523,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: { @@ -56250,7 +59531,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -56281,9 +59562,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"; @@ -56339,7 +59624,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; } @@ -56357,9 +59642,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); @@ -56478,7 +59767,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); @@ -56648,7 +59937,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]]; } @@ -56723,9 +60012,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(); @@ -56737,11 +60030,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; } } @@ -56772,14 +60065,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; } @@ -56794,16 +60091,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; }; @@ -56872,6 +60173,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 */ /** @@ -56888,7 +60190,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]]; } @@ -56932,6 +60234,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 @@ -56969,6 +60279,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; }; @@ -56996,9 +60308,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(); @@ -57012,17 +60328,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: { @@ -57031,8 +60347,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; } } @@ -57063,9 +60383,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"; @@ -57073,13 +60397,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; } @@ -57087,7 +60411,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; } @@ -57099,6 +60423,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; }; @@ -57110,9 +60443,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); @@ -57123,13 +60460,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)) @@ -57138,7 +60475,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) { @@ -57148,6 +60485,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; }; @@ -57172,6 +60529,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; @@ -57192,6 +60550,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; }; @@ -57242,7 +60602,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]]; } @@ -57317,9 +60677,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(); @@ -57335,7 +60699,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -57366,9 +60730,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"; @@ -57386,9 +60754,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; @@ -57475,7 +60847,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]]; } @@ -57560,9 +60932,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(); @@ -57578,11 +60954,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; } } @@ -57613,9 +60989,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"; @@ -57623,7 +61003,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; } @@ -57638,9 +61018,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); @@ -57649,7 +61033,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; }; @@ -57733,7 +61117,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]]; } @@ -57819,9 +61203,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(); @@ -57835,15 +61223,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; } } @@ -57874,9 +61262,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"; @@ -57884,13 +61276,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; } @@ -57905,9 +61297,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); @@ -57918,13 +61314,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; }; @@ -58014,7 +61410,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]]; } @@ -58129,9 +61525,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(); @@ -58151,7 +61551,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: { @@ -58163,7 +61563,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -58194,9 +61594,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"; @@ -58207,7 +61611,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; } @@ -58228,9 +61632,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); @@ -58241,7 +61649,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); @@ -58358,7 +61766,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]]; } @@ -58635,9 +62043,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(); @@ -58721,23 +62133,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; } } @@ -58768,9 +62180,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"; @@ -58835,7 +62251,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; } @@ -58843,7 +62259,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; } @@ -58852,7 +62268,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; } @@ -58868,9 +62284,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); @@ -58931,7 +62351,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)) @@ -58940,7 +62360,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"]) { @@ -58950,7 +62370,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; @@ -59121,7 +62541,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]]; } @@ -59257,9 +62677,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(); @@ -59287,21 +62711,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; } } @@ -59332,9 +62756,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"; @@ -59351,7 +62779,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; } @@ -59359,13 +62787,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; } @@ -59380,9 +62808,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); @@ -59397,7 +62829,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)) @@ -59406,13 +62838,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; }; @@ -59510,6 +62942,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 @@ -59531,7 +62964,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]]; } @@ -59631,6 +63064,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 @@ -59713,6 +63154,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(); @@ -59750,9 +63193,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(); @@ -59809,17 +63256,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: { @@ -59834,15 +63285,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; } } @@ -59873,9 +63324,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: @@ -59945,21 +63400,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; } @@ -59984,12 +63444,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; } @@ -60004,9 +63464,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: @@ -60140,13 +63604,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)) @@ -60155,7 +63624,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"]) { @@ -60210,12 +63679,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; }; @@ -60250,6 +63719,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; } @@ -60283,6 +63753,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) @@ -60425,7 +63897,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]]; } @@ -60500,9 +63972,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(); @@ -60518,7 +63994,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -60549,14 +64025,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: @@ -60583,9 +64064,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: @@ -60598,6 +64083,10 @@ case 0: message.edition = 0; break; + case "EDITION_LEGACY": + case 900: + message.edition = 900; + break; case "EDITION_PROTO2": case 998: message.edition = 998; @@ -60697,6 +64186,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; })(); @@ -60722,7 +64705,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]]; } @@ -60798,9 +64781,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(); @@ -60808,17 +64795,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; } } @@ -60849,11 +64836,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; } @@ -60861,7 +64852,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; } @@ -60877,14 +64868,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)) @@ -60893,7 +64888,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; @@ -60980,7 +64975,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]]; } @@ -61086,9 +65081,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(); @@ -61108,17 +65107,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; } } @@ -61149,9 +65148,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"; @@ -61162,7 +65165,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; } @@ -61170,7 +65173,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; } @@ -61186,9 +65189,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); @@ -61199,7 +65206,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)) @@ -61208,7 +65215,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; @@ -61289,6 +65296,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 */ @@ -61304,7 +65312,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]]; } @@ -61332,6 +65340,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 @@ -61370,6 +65386,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(); @@ -61400,9 +65418,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(); @@ -61414,21 +65436,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; } } @@ -61459,25 +65485,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; } @@ -61493,19 +65528,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"); @@ -61513,7 +65557,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; @@ -61538,6 +65582,7 @@ object.deprecated = false; object.features = null; object.debugRedact = false; + object.featureSupport = null; } if (message.deprecated != null && message.hasOwnProperty("deprecated")) object.deprecated = message.deprecated; @@ -61545,6 +65590,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) @@ -61608,7 +65655,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]]; } @@ -61724,9 +65771,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(); @@ -61734,7 +65785,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: { @@ -61744,7 +65795,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: { @@ -61760,7 +65811,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -61791,11 +65842,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; } @@ -61806,7 +65861,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; } @@ -61831,14 +65886,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); @@ -61849,7 +65908,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) @@ -61958,7 +66017,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]]; } @@ -62085,9 +66144,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(); @@ -62103,17 +66166,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: { @@ -62123,11 +66186,11 @@ break; } case 1049: { - message[".google.longrunning.operationInfo"] = $root.google.longrunning.OperationInfo.decode(reader, reader.uint32()); + message[".google.longrunning.operationInfo"] = $root.google.longrunning.OperationInfo.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -62158,9 +66221,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"; @@ -62174,7 +66241,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; } @@ -62182,13 +66249,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; } @@ -62200,7 +66267,7 @@ return ".google.api.methodSignature: string[] expected"; } if (message[".google.longrunning.operationInfo"] != null && message.hasOwnProperty(".google.longrunning.operationInfo")) { - var error = $root.google.longrunning.OperationInfo.verify(message[".google.longrunning.operationInfo"]); + var error = $root.google.longrunning.OperationInfo.verify(message[".google.longrunning.operationInfo"], long + 1); if (error) return ".google.longrunning.operationInfo." + error; } @@ -62215,9 +66282,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); @@ -62244,7 +66315,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)) @@ -62253,13 +66324,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"])) @@ -62271,7 +66342,7 @@ if (object[".google.longrunning.operationInfo"] != null) { if (typeof object[".google.longrunning.operationInfo"] !== "object") throw TypeError(".google.protobuf.MethodOptions..google.longrunning.operationInfo: object expected"); - message[".google.longrunning.operationInfo"] = $root.google.longrunning.OperationInfo.fromObject(object[".google.longrunning.operationInfo"]); + message[".google.longrunning.operationInfo"] = $root.google.longrunning.OperationInfo.fromObject(object[".google.longrunning.operationInfo"], long + 1); } return message; }; @@ -62395,7 +66466,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]]; } @@ -62521,9 +66592,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(); @@ -62533,7 +66608,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: { @@ -62561,7 +66636,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -62592,14 +66667,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; } @@ -62633,9 +66712,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)) @@ -62644,7 +66727,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) @@ -62789,7 +66872,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]]; } @@ -62862,9 +66945,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(); @@ -62880,7 +66967,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -62915,9 +67002,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") @@ -62933,9 +67024,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); @@ -63012,6 +67107,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 */ /** @@ -63025,7 +67122,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]]; } @@ -63077,6 +67174,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 @@ -63113,6 +67226,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; }; @@ -63140,9 +67257,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(); @@ -63173,8 +67294,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; } } @@ -63205,9 +67334,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: @@ -63263,6 +67396,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; }; @@ -63274,9 +67427,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: @@ -63402,6 +67559,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; }; @@ -63425,6 +67630,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; @@ -63438,6 +67645,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; }; @@ -63565,6 +67776,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; })(); @@ -63591,7 +68027,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]]; } @@ -63677,9 +68113,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(); @@ -63689,7 +68129,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: { @@ -63701,7 +68141,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -63732,14 +68172,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; } @@ -63749,6 +68193,7 @@ default: return "minimumEdition: enum value expected"; case 0: + case 900: case 998: case 999: case 1000: @@ -63766,6 +68211,7 @@ default: return "maximumEdition: enum value expected"; case 0: + case 900: case 998: case 999: case 1000: @@ -63789,9 +68235,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)) @@ -63800,7 +68250,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) { @@ -63814,6 +68264,10 @@ case 0: message.minimumEdition = 0; break; + case "EDITION_LEGACY": + case 900: + message.minimumEdition = 900; + break; case "EDITION_PROTO2": case 998: message.minimumEdition = 998; @@ -63866,6 +68320,10 @@ case 0: message.maximumEdition = 0; break; + case "EDITION_LEGACY": + case 900: + message.maximumEdition = 900; + break; case "EDITION_PROTO2": case 998: message.maximumEdition = 998; @@ -63974,7 +68432,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 */ /** @@ -63988,7 +68447,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]]; } @@ -64001,12 +68460,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. @@ -64032,10 +68499,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; }; @@ -64063,9 +68532,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(); @@ -64076,12 +68549,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; } } @@ -64112,14 +68589,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: @@ -64132,10 +68614,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; }; @@ -64148,9 +68635,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: @@ -64163,6 +68654,10 @@ case 0: message.edition = 0; break; + case "EDITION_LEGACY": + case 900: + message.edition = 900; + break; case "EDITION_PROTO2": case 998: message.edition = 998; @@ -64204,10 +68699,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; }; @@ -64226,13 +68726,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; }; @@ -64289,7 +68792,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]]; } @@ -64355,9 +68858,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(); @@ -64367,11 +68874,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; } } @@ -64402,14 +68909,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; } @@ -64425,9 +68936,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)) @@ -64436,7 +68951,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; @@ -64518,7 +69033,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]]; } @@ -64632,9 +69147,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(); @@ -64678,7 +69197,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -64709,9 +69228,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"; @@ -64750,9 +69273,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)) @@ -64879,7 +69406,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]]; } @@ -64945,9 +69472,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(); @@ -64957,11 +69488,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; } } @@ -64992,14 +69523,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; } @@ -65015,9 +69550,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)) @@ -65026,7 +69565,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; @@ -65106,7 +69645,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]]; } @@ -65215,9 +69754,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(); @@ -65252,7 +69795,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -65283,9 +69826,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"; @@ -65322,9 +69869,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)) @@ -65447,6 +69998,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() { /** @@ -65468,7 +70035,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]]; } @@ -65543,9 +70110,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(); @@ -65561,7 +70132,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -65592,9 +70163,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"; @@ -65612,9 +70187,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) @@ -65711,7 +70290,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]]; } @@ -65786,9 +70365,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(); @@ -65804,7 +70387,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -65835,9 +70418,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"; @@ -65855,9 +70442,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); @@ -65947,7 +70538,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]]; } @@ -66002,9 +70593,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(); @@ -66012,7 +70607,7 @@ break; switch (tag >>> 3) { default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -66043,9 +70638,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; }; @@ -66057,9 +70656,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(); }; @@ -66126,7 +70729,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]]; } @@ -66201,9 +70804,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(); @@ -66219,7 +70826,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -66250,9 +70857,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"; @@ -66270,9 +70881,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) @@ -66368,7 +70983,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]]; } @@ -66433,9 +71048,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(); @@ -66447,7 +71066,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -66478,9 +71097,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"; @@ -66495,9 +71118,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); @@ -66573,7 +71200,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]]; } @@ -66638,9 +71265,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(); @@ -66652,7 +71283,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -66683,9 +71314,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"; @@ -66700,9 +71335,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); @@ -66778,7 +71417,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]]; } @@ -66843,9 +71482,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(); @@ -66857,7 +71500,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -66888,9 +71531,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"; @@ -66905,9 +71552,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) @@ -66997,7 +71648,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]]; } @@ -67062,9 +71713,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(); @@ -67076,7 +71731,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -67107,9 +71762,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"; @@ -67124,9 +71783,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) @@ -67216,7 +71879,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]]; } @@ -67281,9 +71944,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(); @@ -67295,7 +71962,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -67326,9 +71993,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"; @@ -67343,9 +72014,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; @@ -67421,7 +72096,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]]; } @@ -67486,9 +72161,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(); @@ -67500,7 +72179,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -67531,9 +72210,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"; @@ -67548,9 +72231,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; @@ -67626,7 +72313,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]]; } @@ -67691,9 +72378,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(); @@ -67705,7 +72396,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -67736,9 +72427,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"; @@ -67753,9 +72448,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); @@ -67831,7 +72530,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]]; } @@ -67896,9 +72595,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(); @@ -67910,7 +72613,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -67941,9 +72644,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"; @@ -67958,9 +72665,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); @@ -68036,7 +72747,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]]; } @@ -68101,9 +72812,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(); @@ -68115,7 +72830,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -68146,9 +72861,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"; @@ -68163,9 +72882,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") @@ -68251,7 +72974,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]]; } @@ -68317,9 +73040,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(); @@ -68333,7 +73060,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -68364,9 +73091,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"; @@ -68385,9 +73116,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)) @@ -68687,7 +73422,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]]; } @@ -68806,9 +73541,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.longrunning.Operation(); while (reader.pos < end) { var tag = reader.uint32(); @@ -68820,7 +73559,7 @@ break; } case 2: { - message.metadata = $root.google.protobuf.Any.decode(reader, reader.uint32()); + message.metadata = $root.google.protobuf.Any.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -68828,15 +73567,15 @@ break; } case 4: { - message.error = $root.google.rpc.Status.decode(reader, reader.uint32()); + message.error = $root.google.rpc.Status.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.response = $root.google.protobuf.Any.decode(reader, reader.uint32()); + message.response = $root.google.protobuf.Any.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -68867,15 +73606,19 @@ * @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"; var properties = {}; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.google.protobuf.Any.verify(message.metadata); + var error = $root.google.protobuf.Any.verify(message.metadata, long + 1); if (error) return "metadata." + error; } @@ -68885,7 +73628,7 @@ if (message.error != null && message.hasOwnProperty("error")) { properties.result = 1; { - var error = $root.google.rpc.Status.verify(message.error); + var error = $root.google.rpc.Status.verify(message.error, long + 1); if (error) return "error." + error; } @@ -68895,7 +73638,7 @@ return "result: multiple values"; properties.result = 1; { - var error = $root.google.protobuf.Any.verify(message.response); + var error = $root.google.protobuf.Any.verify(message.response, long + 1); if (error) return "response." + error; } @@ -68911,28 +73654,32 @@ * @param {Object.} object Plain object * @returns {google.longrunning.Operation} Operation */ - Operation.fromObject = function fromObject(object) { + Operation.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.Operation) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.Operation(); if (object.name != null) message.name = String(object.name); if (object.metadata != null) { if (typeof object.metadata !== "object") throw TypeError(".google.longrunning.Operation.metadata: object expected"); - message.metadata = $root.google.protobuf.Any.fromObject(object.metadata); + message.metadata = $root.google.protobuf.Any.fromObject(object.metadata, long + 1); } if (object.done != null) message.done = Boolean(object.done); if (object.error != null) { if (typeof object.error !== "object") throw TypeError(".google.longrunning.Operation.error: object expected"); - message.error = $root.google.rpc.Status.fromObject(object.error); + message.error = $root.google.rpc.Status.fromObject(object.error, long + 1); } if (object.response != null) { if (typeof object.response !== "object") throw TypeError(".google.longrunning.Operation.response: object expected"); - message.response = $root.google.protobuf.Any.fromObject(object.response); + message.response = $root.google.protobuf.Any.fromObject(object.response, long + 1); } return message; }; @@ -69023,7 +73770,7 @@ function GetOperationRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -69088,9 +73835,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetOperationRequest.decode = function decode(reader, length, error) { + GetOperationRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.GetOperationRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -69102,7 +73853,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -69133,9 +73884,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetOperationRequest.verify = function verify(message) { + GetOperationRequest.verify = function verify(message, long) { if (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"; @@ -69150,9 +73905,13 @@ * @param {Object.} object Plain object * @returns {google.longrunning.GetOperationRequest} GetOperationRequest */ - GetOperationRequest.fromObject = function fromObject(object) { + GetOperationRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.GetOperationRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.GetOperationRequest(); if (object.name != null) message.name = String(object.name); @@ -69231,7 +73990,7 @@ function ListOperationsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -69326,9 +74085,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListOperationsRequest.decode = function decode(reader, length, error) { + ListOperationsRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.ListOperationsRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -69352,7 +74115,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -69383,9 +74146,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListOperationsRequest.verify = function verify(message) { + ListOperationsRequest.verify = function verify(message, long) { if (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"; @@ -69409,9 +74176,13 @@ * @param {Object.} object Plain object * @returns {google.longrunning.ListOperationsRequest} ListOperationsRequest */ - ListOperationsRequest.fromObject = function fromObject(object) { + ListOperationsRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.ListOperationsRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.ListOperationsRequest(); if (object.name != null) message.name = String(object.name); @@ -69505,7 +74276,7 @@ this.operations = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -69581,9 +74352,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListOperationsResponse.decode = function decode(reader, length, error) { + ListOperationsResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.ListOperationsResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -69593,7 +74368,7 @@ case 1: { if (!(message.operations && message.operations.length)) message.operations = []; - message.operations.push($root.google.longrunning.Operation.decode(reader, reader.uint32())); + message.operations.push($root.google.longrunning.Operation.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -69601,7 +74376,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -69632,14 +74407,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListOperationsResponse.verify = function verify(message) { + ListOperationsResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.operations != null && message.hasOwnProperty("operations")) { if (!Array.isArray(message.operations)) return "operations: array expected"; for (var i = 0; i < message.operations.length; ++i) { - var error = $root.google.longrunning.Operation.verify(message.operations[i]); + var error = $root.google.longrunning.Operation.verify(message.operations[i], long + 1); if (error) return "operations." + error; } @@ -69658,9 +74437,13 @@ * @param {Object.} object Plain object * @returns {google.longrunning.ListOperationsResponse} ListOperationsResponse */ - ListOperationsResponse.fromObject = function fromObject(object) { + ListOperationsResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.ListOperationsResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.ListOperationsResponse(); if (object.operations) { if (!Array.isArray(object.operations)) @@ -69669,7 +74452,7 @@ for (var i = 0; i < object.operations.length; ++i) { if (typeof object.operations[i] !== "object") throw TypeError(".google.longrunning.ListOperationsResponse.operations: object expected"); - message.operations[i] = $root.google.longrunning.Operation.fromObject(object.operations[i]); + message.operations[i] = $root.google.longrunning.Operation.fromObject(object.operations[i], long + 1); } } if (object.nextPageToken != null) @@ -69753,7 +74536,7 @@ function CancelOperationRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -69818,9 +74601,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CancelOperationRequest.decode = function decode(reader, length, error) { + CancelOperationRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.CancelOperationRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -69832,7 +74619,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -69863,9 +74650,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CancelOperationRequest.verify = function verify(message) { + CancelOperationRequest.verify = function verify(message, long) { if (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"; @@ -69880,9 +74671,13 @@ * @param {Object.} object Plain object * @returns {google.longrunning.CancelOperationRequest} CancelOperationRequest */ - CancelOperationRequest.fromObject = function fromObject(object) { + CancelOperationRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.CancelOperationRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.CancelOperationRequest(); if (object.name != null) message.name = String(object.name); @@ -69958,7 +74753,7 @@ function DeleteOperationRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -70023,9 +74818,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DeleteOperationRequest.decode = function decode(reader, length, error) { + DeleteOperationRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.DeleteOperationRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -70037,7 +74836,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -70068,9 +74867,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DeleteOperationRequest.verify = function verify(message) { + DeleteOperationRequest.verify = function verify(message, long) { if (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"; @@ -70085,9 +74888,13 @@ * @param {Object.} object Plain object * @returns {google.longrunning.DeleteOperationRequest} DeleteOperationRequest */ - DeleteOperationRequest.fromObject = function fromObject(object) { + DeleteOperationRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.DeleteOperationRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.DeleteOperationRequest(); if (object.name != null) message.name = String(object.name); @@ -70164,7 +74971,7 @@ function WaitOperationRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -70239,9 +75046,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - WaitOperationRequest.decode = function decode(reader, length, error) { + WaitOperationRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.WaitOperationRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -70253,11 +75064,11 @@ break; } case 2: { - message.timeout = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.timeout = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -70288,14 +75099,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - WaitOperationRequest.verify = function verify(message) { + WaitOperationRequest.verify = function verify(message, long) { if (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.timeout != null && message.hasOwnProperty("timeout")) { - var error = $root.google.protobuf.Duration.verify(message.timeout); + var error = $root.google.protobuf.Duration.verify(message.timeout, long + 1); if (error) return "timeout." + error; } @@ -70310,16 +75125,20 @@ * @param {Object.} object Plain object * @returns {google.longrunning.WaitOperationRequest} WaitOperationRequest */ - WaitOperationRequest.fromObject = function fromObject(object) { + WaitOperationRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.WaitOperationRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.WaitOperationRequest(); if (object.name != null) message.name = String(object.name); if (object.timeout != null) { if (typeof object.timeout !== "object") throw TypeError(".google.longrunning.WaitOperationRequest.timeout: object expected"); - message.timeout = $root.google.protobuf.Duration.fromObject(object.timeout); + message.timeout = $root.google.protobuf.Duration.fromObject(object.timeout, long + 1); } return message; }; @@ -70398,7 +75217,7 @@ function OperationInfo(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -70473,9 +75292,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OperationInfo.decode = function decode(reader, length, error) { + OperationInfo.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.OperationInfo(); while (reader.pos < end) { var tag = reader.uint32(); @@ -70491,7 +75314,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -70522,9 +75345,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - OperationInfo.verify = function verify(message) { + OperationInfo.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.responseType != null && message.hasOwnProperty("responseType")) if (!$util.isString(message.responseType)) return "responseType: string expected"; @@ -70542,9 +75369,13 @@ * @param {Object.} object Plain object * @returns {google.longrunning.OperationInfo} OperationInfo */ - OperationInfo.fromObject = function fromObject(object) { + OperationInfo.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.OperationInfo) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.OperationInfo(); if (object.responseType != null) message.responseType = String(object.responseType); @@ -70641,7 +75472,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]]; } @@ -70727,9 +75558,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(); @@ -70747,11 +75582,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; } } @@ -70782,9 +75617,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"; @@ -70795,7 +75634,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; } @@ -70811,9 +75650,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; @@ -70826,7 +75669,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; diff --git a/packages/google-cloud-speech/protos/protos.json b/packages/google-cloud-speech/protos/protos.json index f89db87a0cf6..0bc470aa2173 100644 --- a/packages/google-cloud-speech/protos/protos.json +++ b/packages/google-cloud-speech/protos/protos.json @@ -5038,8 +5038,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": { @@ -5163,6 +5162,10 @@ "rule": "repeated", "type": "ClientLibraryDestination", "id": 2 + }, + "selectiveGapicGeneration": { + "type": "SelectiveGapicGeneration", + "id": 3 } } }, @@ -5303,6 +5306,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 + } + } } } }, @@ -5360,6 +5385,11 @@ "common": { "type": "CommonLanguageSettings", "id": 1 + }, + "renamedServices": { + "keyType": "string", + "type": "string", + "id": 2 } } }, @@ -5421,6 +5451,19 @@ "PACKAGE_MANAGER": 20 } }, + "SelectiveGapicGeneration": { + "fields": { + "methods": { + "rule": "repeated", + "type": "string", + "id": 1 + }, + "generateOmittedAsInternal": { + "type": "bool", + "id": 2 + } + } + }, "LaunchStage": { "values": { "LAUNCH_STAGE_UNSPECIFIED": 0, @@ -5542,6 +5585,11 @@ "format": { "type": "Format", "id": 1 + }, + "referencedTypes": { + "rule": "repeated", + "type": "TypeReference", + "id": 2 } }, "nested": { @@ -5555,6 +5603,14 @@ } } } + }, + "TypeReference": { + "fields": { + "typeName": { + "type": "string", + "id": 1 + } + } } } }, @@ -5577,12 +5633,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, @@ -5621,6 +5684,11 @@ "type": "int32", "id": 11 }, + "optionDependency": { + "rule": "repeated", + "type": "string", + "id": 15 + }, "messageType": { "rule": "repeated", "type": "DescriptorProto", @@ -5709,6 +5777,10 @@ "rule": "repeated", "type": "string", "id": 10 + }, + "visibility": { + "type": "SymbolVisibility", + "id": 11 } }, "nested": { @@ -5934,6 +6006,10 @@ "rule": "repeated", "type": "string", "id": 5 + }, + "visibility": { + "type": "SymbolVisibility", + "id": 6 } }, "nested": { @@ -5984,7 +6060,14 @@ "type": "ServiceOptions", "id": 3 } - } + }, + "reserved": [ + [ + 4, + 4 + ], + "stream" + ] }, "MethodDescriptorProto": { "edition": "proto2", @@ -6148,6 +6231,7 @@ 42, 42 ], + "php_generic_services", [ 38, 38 @@ -6283,7 +6367,8 @@ "type": "bool", "id": 10, "options": { - "default": false + "default": false, + "deprecated": true } }, "debugRedact": { @@ -6311,6 +6396,10 @@ "type": "FeatureSet", "id": 21 }, + "featureSupport": { + "type": "FeatureSupport", + "id": 22 + }, "uninterpretedOption": { "rule": "repeated", "type": "UninterpretedOption", @@ -6380,6 +6469,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 + } + } } } }, @@ -6468,6 +6577,10 @@ "default": false } }, + "featureSupport": { + "type": "FieldOptions.FeatureSupport", + "id": 4 + }, "uninterpretedOption": { "rule": "repeated", "type": "UninterpretedOption", @@ -6610,6 +6723,7 @@ "options": { "retention": "RETENTION_RUNTIME", "targets": "TARGET_TYPE_FILE", + "feature_support.edition_introduced": "EDITION_2023", "edition_defaults.edition": "EDITION_2023", "edition_defaults.value": "EXPLICIT" } @@ -6620,6 +6734,7 @@ "options": { "retention": "RETENTION_RUNTIME", "targets": "TARGET_TYPE_FILE", + "feature_support.edition_introduced": "EDITION_2023", "edition_defaults.edition": "EDITION_PROTO3", "edition_defaults.value": "OPEN" } @@ -6630,6 +6745,7 @@ "options": { "retention": "RETENTION_RUNTIME", "targets": "TARGET_TYPE_FILE", + "feature_support.edition_introduced": "EDITION_2023", "edition_defaults.edition": "EDITION_PROTO3", "edition_defaults.value": "PACKED" } @@ -6640,6 +6756,7 @@ "options": { "retention": "RETENTION_RUNTIME", "targets": "TARGET_TYPE_FILE", + "feature_support.edition_introduced": "EDITION_2023", "edition_defaults.edition": "EDITION_PROTO3", "edition_defaults.value": "VERIFY" } @@ -6650,7 +6767,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" } }, @@ -6660,27 +6778,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, @@ -6725,7 +6854,13 @@ "UTF8_VALIDATION_UNKNOWN": 0, "VERIFY": 2, "NONE": 3 - } + }, + "reserved": [ + [ + 1, + 1 + ] + ] }, "MessageEncoding": { "values": { @@ -6740,6 +6875,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 + } + } + } } } }, @@ -6767,11 +6929,26 @@ "type": "Edition", "id": 3 }, - "features": { + "overridableFeatures": { "type": "FeatureSet", - "id": 2 + "id": 4 + }, + "fixedFeatures": { + "type": "FeatureSet", + "id": 5 } - } + }, + "reserved": [ + [ + 1, + 1 + ], + [ + 2, + 2 + ], + "features" + ] } } }, @@ -6784,6 +6961,12 @@ "id": 1 } }, + "extensions": [ + [ + 536000000, + 536000000 + ] + ], "nested": { "Location": { "fields": { @@ -6869,6 +7052,14 @@ } } }, + "SymbolVisibility": { + "edition": "proto2", + "values": { + "VISIBILITY_UNSET": 0, + "VISIBILITY_LOCAL": 1, + "VISIBILITY_EXPORT": 2 + } + }, "Duration": { "fields": { "seconds": { @@ -6999,6 +7190,7 @@ "java_multiple_files": true, "java_outer_classname": "OperationsProto", "java_package": "com.google.longrunning", + "objc_class_prefix": "GLRUN", "php_namespace": "Google\\LongRunning" }, "nested": { diff --git a/packages/google-cloud-speech/src/v1/adaptation_client.ts b/packages/google-cloud-speech/src/v1/adaptation_client.ts index 53edbf66f8fe..2f0a03ab728d 100644 --- a/packages/google-cloud-speech/src/v1/adaptation_client.ts +++ b/packages/google-cloud-speech/src/v1/adaptation_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, PaginationCallback, GaxCall} from 'google-gax'; -import {Transform} from 'stream'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + PaginationCallback, + GaxCall, +} 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 @@ -44,7 +51,7 @@ export class AdaptationClient { 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('speech'); @@ -57,9 +64,9 @@ export class AdaptationClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; - pathTemplates: {[name: string]: gax.PathTemplate}; - adaptationStub?: Promise<{[name: string]: Function}>; + innerApiCalls: { [name: string]: Function }; + pathTemplates: { [name: string]: gax.PathTemplate }; + adaptationStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of AdaptationClient. @@ -100,21 +107,42 @@ export class AdaptationClient { * const client = new AdaptationClient({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 AdaptationClient; - 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 = 'speech.' + 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 AdaptationClient { 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,10 +181,7 @@ export class AdaptationClient { } // 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 { @@ -178,16 +203,16 @@ export class AdaptationClient { // Create useful helper objects for these. this.pathTemplates = { customClassPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/customClasses/{custom_class}' + 'projects/{project}/locations/{location}/customClasses/{custom_class}', ), locationPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}' + 'projects/{project}/locations/{location}', ), phraseSetPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/phraseSets/{phrase_set}' + 'projects/{project}/locations/{location}/phraseSets/{phrase_set}', ), projectPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}' + 'projects/{project}', ), }; @@ -195,16 +220,25 @@ export class AdaptationClient { // (e.g. 50 results at a time, with tokens to get subsequent // pages). Denote the keys used for pagination and results. this.descriptors.page = { - listPhraseSet: - new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'phraseSets'), - listCustomClasses: - new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'customClasses') + listPhraseSet: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'phraseSets', + ), + listCustomClasses: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'customClasses', + ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.speech.v1.Adaptation', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.speech.v1.Adaptation', + 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 @@ -235,37 +269,51 @@ export class AdaptationClient { // Put together the "service stub" for // google.cloud.speech.v1.Adaptation. this.adaptationStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.speech.v1.Adaptation') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.speech.v1.Adaptation', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.speech.v1.Adaptation, - 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 adaptationStubMethods = - ['createPhraseSet', 'getPhraseSet', 'listPhraseSet', 'updatePhraseSet', 'deletePhraseSet', 'createCustomClass', 'getCustomClass', 'listCustomClasses', 'updateCustomClass', 'deleteCustomClass']; + const adaptationStubMethods = [ + 'createPhraseSet', + 'getPhraseSet', + 'listPhraseSet', + 'updatePhraseSet', + 'deletePhraseSet', + 'createCustomClass', + 'getCustomClass', + 'listCustomClasses', + 'updateCustomClass', + 'deleteCustomClass', + ]; for (const methodName of adaptationStubMethods) { const callPromise = this.adaptationStub.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; @@ -280,8 +328,14 @@ export class AdaptationClient { * @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 'speech.googleapis.com'; } @@ -292,8 +346,14 @@ export class AdaptationClient { * @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 'speech.googleapis.com'; } @@ -324,9 +384,7 @@ export class AdaptationClient { * @returns {string[]} List of default scopes. */ static get scopes() { - return [ - 'https://www.googleapis.com/auth/cloud-platform' - ]; + return ['https://www.googleapis.com/auth/cloud-platform']; } getProjectId(): Promise; @@ -335,8 +393,9 @@ export class AdaptationClient { * 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; @@ -347,937 +406,1242 @@ export class AdaptationClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Create a set of phrase hints. Each item in the set can be a single word or - * a multi-word phrase. The items in the PhraseSet are favored by the - * recognition model when you send a call that includes the PhraseSet. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent resource where this phrase set will be created. - * Format: - * - * `projects/{project}/locations/{location}` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {string} request.phraseSetId - * Required. The ID to use for the phrase set, which will become the final - * component of the phrase set's resource name. - * - * This value should restrict to letters, numbers, and hyphens, with the first - * character a letter, the last a letter or a number, and be 4-63 characters. - * @param {google.cloud.speech.v1.PhraseSet} request.phraseSet - * Required. The phrase set 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.speech.v1.PhraseSet|PhraseSet}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/adaptation.create_phrase_set.js - * region_tag:speech_v1_generated_Adaptation_CreatePhraseSet_async - */ + /** + * Create a set of phrase hints. Each item in the set can be a single word or + * a multi-word phrase. The items in the PhraseSet are favored by the + * recognition model when you send a call that includes the PhraseSet. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The parent resource where this phrase set will be created. + * Format: + * + * `projects/{project}/locations/{location}` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {string} request.phraseSetId + * Required. The ID to use for the phrase set, which will become the final + * component of the phrase set's resource name. + * + * This value should restrict to letters, numbers, and hyphens, with the first + * character a letter, the last a letter or a number, and be 4-63 characters. + * @param {google.cloud.speech.v1.PhraseSet} request.phraseSet + * Required. The phrase set 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.speech.v1.PhraseSet|PhraseSet}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/adaptation.create_phrase_set.js + * region_tag:speech_v1_generated_Adaptation_CreatePhraseSet_async + */ createPhraseSet( - request?: protos.google.cloud.speech.v1.ICreatePhraseSetRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.ICreatePhraseSetRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v1.ICreatePhraseSetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v1.IPhraseSet, + protos.google.cloud.speech.v1.ICreatePhraseSetRequest | undefined, + {} | undefined, + ] + >; createPhraseSet( - request: protos.google.cloud.speech.v1.ICreatePhraseSetRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.ICreatePhraseSetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1.ICreatePhraseSetRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.speech.v1.IPhraseSet, + protos.google.cloud.speech.v1.ICreatePhraseSetRequest | null | undefined, + {} | null | undefined + >, + ): void; createPhraseSet( - request: protos.google.cloud.speech.v1.ICreatePhraseSetRequest, - callback: Callback< - protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.ICreatePhraseSetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1.ICreatePhraseSetRequest, + callback: Callback< + protos.google.cloud.speech.v1.IPhraseSet, + protos.google.cloud.speech.v1.ICreatePhraseSetRequest | null | undefined, + {} | null | undefined + >, + ): void; createPhraseSet( - request?: protos.google.cloud.speech.v1.ICreatePhraseSetRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.ICreatePhraseSetRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.speech.v1.ICreatePhraseSetRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.ICreatePhraseSetRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.ICreatePhraseSetRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.speech.v1.ICreatePhraseSetRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.speech.v1.IPhraseSet, + protos.google.cloud.speech.v1.ICreatePhraseSetRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.speech.v1.IPhraseSet, + protos.google.cloud.speech.v1.ICreatePhraseSetRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('createPhraseSet request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.ICreatePhraseSetRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.speech.v1.IPhraseSet, + | protos.google.cloud.speech.v1.ICreatePhraseSetRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('createPhraseSet response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.createPhraseSet(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.ICreatePhraseSetRequest|undefined, - {}|undefined - ]) => { - this._log.info('createPhraseSet response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .createPhraseSet(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.speech.v1.IPhraseSet, + protos.google.cloud.speech.v1.ICreatePhraseSetRequest | undefined, + {} | undefined, + ]) => { + this._log.info('createPhraseSet response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails 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 a phrase set. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the phrase set to retrieve. Format: - * - * `projects/{project}/locations/{location}/phraseSets/{phrase_set}` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.speech.v1.PhraseSet|PhraseSet}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/adaptation.get_phrase_set.js - * region_tag:speech_v1_generated_Adaptation_GetPhraseSet_async - */ + /** + * Get a phrase set. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the phrase set to retrieve. Format: + * + * `projects/{project}/locations/{location}/phraseSets/{phrase_set}` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.speech.v1.PhraseSet|PhraseSet}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/adaptation.get_phrase_set.js + * region_tag:speech_v1_generated_Adaptation_GetPhraseSet_async + */ getPhraseSet( - request?: protos.google.cloud.speech.v1.IGetPhraseSetRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.IGetPhraseSetRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v1.IGetPhraseSetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v1.IPhraseSet, + protos.google.cloud.speech.v1.IGetPhraseSetRequest | undefined, + {} | undefined, + ] + >; getPhraseSet( - request: protos.google.cloud.speech.v1.IGetPhraseSetRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.IGetPhraseSetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1.IGetPhraseSetRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.speech.v1.IPhraseSet, + protos.google.cloud.speech.v1.IGetPhraseSetRequest | null | undefined, + {} | null | undefined + >, + ): void; getPhraseSet( - request: protos.google.cloud.speech.v1.IGetPhraseSetRequest, - callback: Callback< - protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.IGetPhraseSetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1.IGetPhraseSetRequest, + callback: Callback< + protos.google.cloud.speech.v1.IPhraseSet, + protos.google.cloud.speech.v1.IGetPhraseSetRequest | null | undefined, + {} | null | undefined + >, + ): void; getPhraseSet( - request?: protos.google.cloud.speech.v1.IGetPhraseSetRequest, - optionsOrCallback?: CallOptions|Callback< + request?: protos.google.cloud.speech.v1.IGetPhraseSetRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.IGetPhraseSetRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< - protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.IGetPhraseSetRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.IGetPhraseSetRequest|undefined, {}|undefined - ]>|void { + protos.google.cloud.speech.v1.IGetPhraseSetRequest | null | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.speech.v1.IPhraseSet, + protos.google.cloud.speech.v1.IGetPhraseSetRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.speech.v1.IPhraseSet, + protos.google.cloud.speech.v1.IGetPhraseSetRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('getPhraseSet request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.IGetPhraseSetRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.speech.v1.IPhraseSet, + protos.google.cloud.speech.v1.IGetPhraseSetRequest | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('getPhraseSet response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.getPhraseSet(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.IGetPhraseSetRequest|undefined, - {}|undefined - ]) => { - this._log.info('getPhraseSet response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .getPhraseSet(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.speech.v1.IPhraseSet, + protos.google.cloud.speech.v1.IGetPhraseSetRequest | undefined, + {} | undefined, + ]) => { + this._log.info('getPhraseSet response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Update a phrase set. - * - * @param {Object} request - * The request object that will be sent. - * @param {google.cloud.speech.v1.PhraseSet} request.phraseSet - * Required. The phrase set to update. - * - * The phrase set's `name` field is used to identify the set to be - * updated. Format: - * - * `projects/{project}/locations/{location}/phraseSets/{phrase_set}` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {google.protobuf.FieldMask} request.updateMask - * The list of fields to be updated. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.speech.v1.PhraseSet|PhraseSet}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/adaptation.update_phrase_set.js - * region_tag:speech_v1_generated_Adaptation_UpdatePhraseSet_async - */ + /** + * Update a phrase set. + * + * @param {Object} request + * The request object that will be sent. + * @param {google.cloud.speech.v1.PhraseSet} request.phraseSet + * Required. The phrase set to update. + * + * The phrase set's `name` field is used to identify the set to be + * updated. Format: + * + * `projects/{project}/locations/{location}/phraseSets/{phrase_set}` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {google.protobuf.FieldMask} request.updateMask + * The list of fields to be updated. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.speech.v1.PhraseSet|PhraseSet}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/adaptation.update_phrase_set.js + * region_tag:speech_v1_generated_Adaptation_UpdatePhraseSet_async + */ updatePhraseSet( - request?: protos.google.cloud.speech.v1.IUpdatePhraseSetRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.IUpdatePhraseSetRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v1.IUpdatePhraseSetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v1.IPhraseSet, + protos.google.cloud.speech.v1.IUpdatePhraseSetRequest | undefined, + {} | undefined, + ] + >; updatePhraseSet( - request: protos.google.cloud.speech.v1.IUpdatePhraseSetRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.IUpdatePhraseSetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1.IUpdatePhraseSetRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.speech.v1.IPhraseSet, + protos.google.cloud.speech.v1.IUpdatePhraseSetRequest | null | undefined, + {} | null | undefined + >, + ): void; updatePhraseSet( - request: protos.google.cloud.speech.v1.IUpdatePhraseSetRequest, - callback: Callback< - protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.IUpdatePhraseSetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1.IUpdatePhraseSetRequest, + callback: Callback< + protos.google.cloud.speech.v1.IPhraseSet, + protos.google.cloud.speech.v1.IUpdatePhraseSetRequest | null | undefined, + {} | null | undefined + >, + ): void; updatePhraseSet( - request?: protos.google.cloud.speech.v1.IUpdatePhraseSetRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.IUpdatePhraseSetRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.speech.v1.IUpdatePhraseSetRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.IUpdatePhraseSetRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.IUpdatePhraseSetRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.speech.v1.IUpdatePhraseSetRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.speech.v1.IPhraseSet, + protos.google.cloud.speech.v1.IUpdatePhraseSetRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.speech.v1.IPhraseSet, + protos.google.cloud.speech.v1.IUpdatePhraseSetRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'phrase_set.name': request.phraseSet!.name ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + 'phrase_set.name': request.phraseSet!.name ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('updatePhraseSet request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.IUpdatePhraseSetRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.speech.v1.IPhraseSet, + | protos.google.cloud.speech.v1.IUpdatePhraseSetRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('updatePhraseSet response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.updatePhraseSet(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.speech.v1.IPhraseSet, - protos.google.cloud.speech.v1.IUpdatePhraseSetRequest|undefined, - {}|undefined - ]) => { - this._log.info('updatePhraseSet response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .updatePhraseSet(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.speech.v1.IPhraseSet, + protos.google.cloud.speech.v1.IUpdatePhraseSetRequest | undefined, + {} | undefined, + ]) => { + this._log.info('updatePhraseSet response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Delete a phrase set. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the phrase set to delete. Format: - * - * `projects/{project}/locations/{location}/phraseSets/{phrase_set}` - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for 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/adaptation.delete_phrase_set.js - * region_tag:speech_v1_generated_Adaptation_DeletePhraseSet_async - */ + /** + * Delete a phrase set. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the phrase set to delete. Format: + * + * `projects/{project}/locations/{location}/phraseSets/{phrase_set}` + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for 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/adaptation.delete_phrase_set.js + * region_tag:speech_v1_generated_Adaptation_DeletePhraseSet_async + */ deletePhraseSet( - request?: protos.google.cloud.speech.v1.IDeletePhraseSetRequest, - options?: CallOptions): - Promise<[ - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1.IDeletePhraseSetRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v1.IDeletePhraseSetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.protobuf.IEmpty, + protos.google.cloud.speech.v1.IDeletePhraseSetRequest | undefined, + {} | undefined, + ] + >; deletePhraseSet( - request: protos.google.cloud.speech.v1.IDeletePhraseSetRequest, - options: CallOptions, - callback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1.IDeletePhraseSetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1.IDeletePhraseSetRequest, + options: CallOptions, + callback: Callback< + protos.google.protobuf.IEmpty, + protos.google.cloud.speech.v1.IDeletePhraseSetRequest | null | undefined, + {} | null | undefined + >, + ): void; deletePhraseSet( - request: protos.google.cloud.speech.v1.IDeletePhraseSetRequest, - callback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1.IDeletePhraseSetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1.IDeletePhraseSetRequest, + callback: Callback< + protos.google.protobuf.IEmpty, + protos.google.cloud.speech.v1.IDeletePhraseSetRequest | null | undefined, + {} | null | undefined + >, + ): void; deletePhraseSet( - request?: protos.google.cloud.speech.v1.IDeletePhraseSetRequest, - optionsOrCallback?: CallOptions|Callback< + request?: protos.google.cloud.speech.v1.IDeletePhraseSetRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1.IDeletePhraseSetRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1.IDeletePhraseSetRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1.IDeletePhraseSetRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.speech.v1.IDeletePhraseSetRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.protobuf.IEmpty, + protos.google.cloud.speech.v1.IDeletePhraseSetRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.protobuf.IEmpty, + protos.google.cloud.speech.v1.IDeletePhraseSetRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('deletePhraseSet request %j', request); - const wrappedCallback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1.IDeletePhraseSetRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.speech.v1.IDeletePhraseSetRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('deletePhraseSet response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.deletePhraseSet(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1.IDeletePhraseSetRequest|undefined, - {}|undefined - ]) => { - this._log.info('deletePhraseSet response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .deletePhraseSet(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.protobuf.IEmpty, + protos.google.cloud.speech.v1.IDeletePhraseSetRequest | undefined, + {} | undefined, + ]) => { + this._log.info('deletePhraseSet response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Create a custom class. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent resource where this custom class will be created. - * Format: - * - * `projects/{project}/locations/{location}/customClasses` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {string} request.customClassId - * Required. The ID to use for the custom class, which will become the final - * component of the custom class' resource name. - * - * This value should restrict to letters, numbers, and hyphens, with the first - * character a letter, the last a letter or a number, and be 4-63 characters. - * @param {google.cloud.speech.v1.CustomClass} request.customClass - * Required. The custom class 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.speech.v1.CustomClass|CustomClass}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/adaptation.create_custom_class.js - * region_tag:speech_v1_generated_Adaptation_CreateCustomClass_async - */ + /** + * Create a custom class. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The parent resource where this custom class will be created. + * Format: + * + * `projects/{project}/locations/{location}/customClasses` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {string} request.customClassId + * Required. The ID to use for the custom class, which will become the final + * component of the custom class' resource name. + * + * This value should restrict to letters, numbers, and hyphens, with the first + * character a letter, the last a letter or a number, and be 4-63 characters. + * @param {google.cloud.speech.v1.CustomClass} request.customClass + * Required. The custom class 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.speech.v1.CustomClass|CustomClass}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/adaptation.create_custom_class.js + * region_tag:speech_v1_generated_Adaptation_CreateCustomClass_async + */ createCustomClass( - request?: protos.google.cloud.speech.v1.ICreateCustomClassRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.ICreateCustomClassRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v1.ICreateCustomClassRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v1.ICustomClass, + protos.google.cloud.speech.v1.ICreateCustomClassRequest | undefined, + {} | undefined, + ] + >; createCustomClass( - request: protos.google.cloud.speech.v1.ICreateCustomClassRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.ICreateCustomClassRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1.ICreateCustomClassRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.speech.v1.ICustomClass, + | protos.google.cloud.speech.v1.ICreateCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + ): void; createCustomClass( - request: protos.google.cloud.speech.v1.ICreateCustomClassRequest, - callback: Callback< - protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.ICreateCustomClassRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1.ICreateCustomClassRequest, + callback: Callback< + protos.google.cloud.speech.v1.ICustomClass, + | protos.google.cloud.speech.v1.ICreateCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + ): void; createCustomClass( - request?: protos.google.cloud.speech.v1.ICreateCustomClassRequest, - optionsOrCallback?: CallOptions|Callback< + request?: protos.google.cloud.speech.v1.ICreateCustomClassRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.ICreateCustomClassRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< - protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.ICreateCustomClassRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.ICreateCustomClassRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.speech.v1.ICreateCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.speech.v1.ICustomClass, + | protos.google.cloud.speech.v1.ICreateCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.speech.v1.ICustomClass, + protos.google.cloud.speech.v1.ICreateCustomClassRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('createCustomClass request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.ICreateCustomClassRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.speech.v1.ICustomClass, + | protos.google.cloud.speech.v1.ICreateCustomClassRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('createCustomClass response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.createCustomClass(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.ICreateCustomClassRequest|undefined, - {}|undefined - ]) => { - this._log.info('createCustomClass response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .createCustomClass(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.speech.v1.ICustomClass, + protos.google.cloud.speech.v1.ICreateCustomClassRequest | undefined, + {} | undefined, + ]) => { + this._log.info('createCustomClass response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails 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 a custom class. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the custom class to retrieve. Format: - * - * `projects/{project}/locations/{location}/customClasses/{custom_class}` - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.speech.v1.CustomClass|CustomClass}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/adaptation.get_custom_class.js - * region_tag:speech_v1_generated_Adaptation_GetCustomClass_async - */ + /** + * Get a custom class. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the custom class to retrieve. Format: + * + * `projects/{project}/locations/{location}/customClasses/{custom_class}` + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.speech.v1.CustomClass|CustomClass}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/adaptation.get_custom_class.js + * region_tag:speech_v1_generated_Adaptation_GetCustomClass_async + */ getCustomClass( - request?: protos.google.cloud.speech.v1.IGetCustomClassRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.IGetCustomClassRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v1.IGetCustomClassRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v1.ICustomClass, + protos.google.cloud.speech.v1.IGetCustomClassRequest | undefined, + {} | undefined, + ] + >; getCustomClass( - request: protos.google.cloud.speech.v1.IGetCustomClassRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.IGetCustomClassRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1.IGetCustomClassRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.speech.v1.ICustomClass, + protos.google.cloud.speech.v1.IGetCustomClassRequest | null | undefined, + {} | null | undefined + >, + ): void; getCustomClass( - request: protos.google.cloud.speech.v1.IGetCustomClassRequest, - callback: Callback< - protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.IGetCustomClassRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1.IGetCustomClassRequest, + callback: Callback< + protos.google.cloud.speech.v1.ICustomClass, + protos.google.cloud.speech.v1.IGetCustomClassRequest | null | undefined, + {} | null | undefined + >, + ): void; getCustomClass( - request?: protos.google.cloud.speech.v1.IGetCustomClassRequest, - optionsOrCallback?: CallOptions|Callback< + request?: protos.google.cloud.speech.v1.IGetCustomClassRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.IGetCustomClassRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< - protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.IGetCustomClassRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.IGetCustomClassRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.speech.v1.IGetCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.speech.v1.ICustomClass, + protos.google.cloud.speech.v1.IGetCustomClassRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.speech.v1.ICustomClass, + protos.google.cloud.speech.v1.IGetCustomClassRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('getCustomClass request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.IGetCustomClassRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.speech.v1.ICustomClass, + | protos.google.cloud.speech.v1.IGetCustomClassRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('getCustomClass response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.getCustomClass(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.IGetCustomClassRequest|undefined, - {}|undefined - ]) => { - this._log.info('getCustomClass response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .getCustomClass(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.speech.v1.ICustomClass, + protos.google.cloud.speech.v1.IGetCustomClassRequest | undefined, + {} | undefined, + ]) => { + this._log.info('getCustomClass response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Update a custom class. - * - * @param {Object} request - * The request object that will be sent. - * @param {google.cloud.speech.v1.CustomClass} request.customClass - * Required. The custom class to update. - * - * The custom class's `name` field is used to identify the custom class to be - * updated. Format: - * - * `projects/{project}/locations/{location}/customClasses/{custom_class}` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {google.protobuf.FieldMask} request.updateMask - * The list of fields to be updated. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.speech.v1.CustomClass|CustomClass}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/adaptation.update_custom_class.js - * region_tag:speech_v1_generated_Adaptation_UpdateCustomClass_async - */ + /** + * Update a custom class. + * + * @param {Object} request + * The request object that will be sent. + * @param {google.cloud.speech.v1.CustomClass} request.customClass + * Required. The custom class to update. + * + * The custom class's `name` field is used to identify the custom class to be + * updated. Format: + * + * `projects/{project}/locations/{location}/customClasses/{custom_class}` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {google.protobuf.FieldMask} request.updateMask + * The list of fields to be updated. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.speech.v1.CustomClass|CustomClass}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/adaptation.update_custom_class.js + * region_tag:speech_v1_generated_Adaptation_UpdateCustomClass_async + */ updateCustomClass( - request?: protos.google.cloud.speech.v1.IUpdateCustomClassRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.IUpdateCustomClassRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v1.IUpdateCustomClassRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v1.ICustomClass, + protos.google.cloud.speech.v1.IUpdateCustomClassRequest | undefined, + {} | undefined, + ] + >; updateCustomClass( - request: protos.google.cloud.speech.v1.IUpdateCustomClassRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.IUpdateCustomClassRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1.IUpdateCustomClassRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.speech.v1.ICustomClass, + | protos.google.cloud.speech.v1.IUpdateCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + ): void; updateCustomClass( - request: protos.google.cloud.speech.v1.IUpdateCustomClassRequest, - callback: Callback< - protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.IUpdateCustomClassRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1.IUpdateCustomClassRequest, + callback: Callback< + protos.google.cloud.speech.v1.ICustomClass, + | protos.google.cloud.speech.v1.IUpdateCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + ): void; updateCustomClass( - request?: protos.google.cloud.speech.v1.IUpdateCustomClassRequest, - optionsOrCallback?: CallOptions|Callback< + request?: protos.google.cloud.speech.v1.IUpdateCustomClassRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.IUpdateCustomClassRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< - protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.IUpdateCustomClassRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.IUpdateCustomClassRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.speech.v1.IUpdateCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.speech.v1.ICustomClass, + | protos.google.cloud.speech.v1.IUpdateCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.speech.v1.ICustomClass, + protos.google.cloud.speech.v1.IUpdateCustomClassRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'custom_class.name': request.customClass!.name ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + 'custom_class.name': request.customClass!.name ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('updateCustomClass request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.IUpdateCustomClassRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.speech.v1.ICustomClass, + | protos.google.cloud.speech.v1.IUpdateCustomClassRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('updateCustomClass response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.updateCustomClass(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.speech.v1.ICustomClass, - protos.google.cloud.speech.v1.IUpdateCustomClassRequest|undefined, - {}|undefined - ]) => { - this._log.info('updateCustomClass response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .updateCustomClass(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.speech.v1.ICustomClass, + protos.google.cloud.speech.v1.IUpdateCustomClassRequest | undefined, + {} | undefined, + ]) => { + this._log.info('updateCustomClass response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Delete a custom class. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the custom class to delete. Format: - * - * `projects/{project}/locations/{location}/customClasses/{custom_class}` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for 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/adaptation.delete_custom_class.js - * region_tag:speech_v1_generated_Adaptation_DeleteCustomClass_async - */ + /** + * Delete a custom class. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the custom class to delete. Format: + * + * `projects/{project}/locations/{location}/customClasses/{custom_class}` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for 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/adaptation.delete_custom_class.js + * region_tag:speech_v1_generated_Adaptation_DeleteCustomClass_async + */ deleteCustomClass( - request?: protos.google.cloud.speech.v1.IDeleteCustomClassRequest, - options?: CallOptions): - Promise<[ - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1.IDeleteCustomClassRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v1.IDeleteCustomClassRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.protobuf.IEmpty, + protos.google.cloud.speech.v1.IDeleteCustomClassRequest | undefined, + {} | undefined, + ] + >; deleteCustomClass( - request: protos.google.cloud.speech.v1.IDeleteCustomClassRequest, - options: CallOptions, - callback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1.IDeleteCustomClassRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1.IDeleteCustomClassRequest, + options: CallOptions, + callback: Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.speech.v1.IDeleteCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + ): void; deleteCustomClass( - request: protos.google.cloud.speech.v1.IDeleteCustomClassRequest, - callback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1.IDeleteCustomClassRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1.IDeleteCustomClassRequest, + callback: Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.speech.v1.IDeleteCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + ): void; deleteCustomClass( - request?: protos.google.cloud.speech.v1.IDeleteCustomClassRequest, - optionsOrCallback?: CallOptions|Callback< + request?: protos.google.cloud.speech.v1.IDeleteCustomClassRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1.IDeleteCustomClassRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1.IDeleteCustomClassRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1.IDeleteCustomClassRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.speech.v1.IDeleteCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.speech.v1.IDeleteCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.protobuf.IEmpty, + protos.google.cloud.speech.v1.IDeleteCustomClassRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('deleteCustomClass request %j', request); - const wrappedCallback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1.IDeleteCustomClassRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.speech.v1.IDeleteCustomClassRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('deleteCustomClass response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.deleteCustomClass(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1.IDeleteCustomClassRequest|undefined, - {}|undefined - ]) => { - this._log.info('deleteCustomClass response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .deleteCustomClass(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.protobuf.IEmpty, + protos.google.cloud.speech.v1.IDeleteCustomClassRequest | undefined, + {} | undefined, + ]) => { + this._log.info('deleteCustomClass response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } - /** - * List phrase sets. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent, which owns this collection of phrase set. Format: - * - * `projects/{project}/locations/{location}` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {number} request.pageSize - * The maximum number of phrase sets to return. The service may return - * fewer than this value. If unspecified, at most 50 phrase sets will be - * returned. The maximum value is 1000; values above 1000 will be coerced to - * 1000. - * @param {string} request.pageToken - * A page token, received from a previous `ListPhraseSet` call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to `ListPhraseSet` must - * match the call that provided the page token. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.speech.v1.PhraseSet|PhraseSet}. - * 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 `listPhraseSetAsync()` - * 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. - */ + /** + * List phrase sets. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The parent, which owns this collection of phrase set. Format: + * + * `projects/{project}/locations/{location}` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {number} request.pageSize + * The maximum number of phrase sets to return. The service may return + * fewer than this value. If unspecified, at most 50 phrase sets will be + * returned. The maximum value is 1000; values above 1000 will be coerced to + * 1000. + * @param {string} request.pageToken + * A page token, received from a previous `ListPhraseSet` call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to `ListPhraseSet` must + * match the call that provided the page token. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.speech.v1.PhraseSet|PhraseSet}. + * 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 `listPhraseSetAsync()` + * 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. + */ listPhraseSet( - request?: protos.google.cloud.speech.v1.IListPhraseSetRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v1.IPhraseSet[], - protos.google.cloud.speech.v1.IListPhraseSetRequest|null, - protos.google.cloud.speech.v1.IListPhraseSetResponse - ]>; + request?: protos.google.cloud.speech.v1.IListPhraseSetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v1.IPhraseSet[], + protos.google.cloud.speech.v1.IListPhraseSetRequest | null, + protos.google.cloud.speech.v1.IListPhraseSetResponse, + ] + >; listPhraseSet( - request: protos.google.cloud.speech.v1.IListPhraseSetRequest, - options: CallOptions, - callback: PaginationCallback< - protos.google.cloud.speech.v1.IListPhraseSetRequest, - protos.google.cloud.speech.v1.IListPhraseSetResponse|null|undefined, - protos.google.cloud.speech.v1.IPhraseSet>): void; + request: protos.google.cloud.speech.v1.IListPhraseSetRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.speech.v1.IListPhraseSetRequest, + protos.google.cloud.speech.v1.IListPhraseSetResponse | null | undefined, + protos.google.cloud.speech.v1.IPhraseSet + >, + ): void; listPhraseSet( - request: protos.google.cloud.speech.v1.IListPhraseSetRequest, - callback: PaginationCallback< - protos.google.cloud.speech.v1.IListPhraseSetRequest, - protos.google.cloud.speech.v1.IListPhraseSetResponse|null|undefined, - protos.google.cloud.speech.v1.IPhraseSet>): void; + request: protos.google.cloud.speech.v1.IListPhraseSetRequest, + callback: PaginationCallback< + protos.google.cloud.speech.v1.IListPhraseSetRequest, + protos.google.cloud.speech.v1.IListPhraseSetResponse | null | undefined, + protos.google.cloud.speech.v1.IPhraseSet + >, + ): void; listPhraseSet( - request?: protos.google.cloud.speech.v1.IListPhraseSetRequest, - optionsOrCallback?: CallOptions|PaginationCallback< + request?: protos.google.cloud.speech.v1.IListPhraseSetRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< protos.google.cloud.speech.v1.IListPhraseSetRequest, - protos.google.cloud.speech.v1.IListPhraseSetResponse|null|undefined, - protos.google.cloud.speech.v1.IPhraseSet>, - callback?: PaginationCallback< - protos.google.cloud.speech.v1.IListPhraseSetRequest, - protos.google.cloud.speech.v1.IListPhraseSetResponse|null|undefined, - protos.google.cloud.speech.v1.IPhraseSet>): - Promise<[ - protos.google.cloud.speech.v1.IPhraseSet[], - protos.google.cloud.speech.v1.IListPhraseSetRequest|null, - protos.google.cloud.speech.v1.IListPhraseSetResponse - ]>|void { + | protos.google.cloud.speech.v1.IListPhraseSetResponse + | null + | undefined, + protos.google.cloud.speech.v1.IPhraseSet + >, + callback?: PaginationCallback< + protos.google.cloud.speech.v1.IListPhraseSetRequest, + protos.google.cloud.speech.v1.IListPhraseSetResponse | null | undefined, + protos.google.cloud.speech.v1.IPhraseSet + >, + ): Promise< + [ + protos.google.cloud.speech.v1.IPhraseSet[], + protos.google.cloud.speech.v1.IListPhraseSetRequest | null, + protos.google.cloud.speech.v1.IListPhraseSetResponse, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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.speech.v1.IListPhraseSetRequest, - protos.google.cloud.speech.v1.IListPhraseSetResponse|null|undefined, - protos.google.cloud.speech.v1.IPhraseSet>|undefined = callback + const wrappedCallback: + | PaginationCallback< + protos.google.cloud.speech.v1.IListPhraseSetRequest, + | protos.google.cloud.speech.v1.IListPhraseSetResponse + | null + | undefined, + protos.google.cloud.speech.v1.IPhraseSet + > + | undefined = callback ? (error, values, nextPageRequest, rawResponse) => { this._log.info('listPhraseSet values %j', values); callback!(error, values, nextPageRequest, rawResponse); // We verified callback above. @@ -1286,234 +1650,263 @@ export class AdaptationClient { this._log.info('listPhraseSet request %j', request); return this.innerApiCalls .listPhraseSet(request, options, wrappedCallback) - ?.then(([response, input, output]: [ - protos.google.cloud.speech.v1.IPhraseSet[], - protos.google.cloud.speech.v1.IListPhraseSetRequest|null, - protos.google.cloud.speech.v1.IListPhraseSetResponse - ]) => { - this._log.info('listPhraseSet values %j', response); - return [response, input, output]; - }); + ?.then( + ([response, input, output]: [ + protos.google.cloud.speech.v1.IPhraseSet[], + protos.google.cloud.speech.v1.IListPhraseSetRequest | null, + protos.google.cloud.speech.v1.IListPhraseSetResponse, + ]) => { + this._log.info('listPhraseSet values %j', response); + return [response, input, output]; + }, + ); } -/** - * Equivalent to `listPhraseSet`, but returns a NodeJS Stream object. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent, which owns this collection of phrase set. Format: - * - * `projects/{project}/locations/{location}` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {number} request.pageSize - * The maximum number of phrase sets to return. The service may return - * fewer than this value. If unspecified, at most 50 phrase sets will be - * returned. The maximum value is 1000; values above 1000 will be coerced to - * 1000. - * @param {string} request.pageToken - * A page token, received from a previous `ListPhraseSet` call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to `ListPhraseSet` must - * match the call that provided the page token. - * @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.speech.v1.PhraseSet|PhraseSet} 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 `listPhraseSetAsync()` - * 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 `listPhraseSet`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The parent, which owns this collection of phrase set. Format: + * + * `projects/{project}/locations/{location}` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {number} request.pageSize + * The maximum number of phrase sets to return. The service may return + * fewer than this value. If unspecified, at most 50 phrase sets will be + * returned. The maximum value is 1000; values above 1000 will be coerced to + * 1000. + * @param {string} request.pageToken + * A page token, received from a previous `ListPhraseSet` call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to `ListPhraseSet` must + * match the call that provided the page token. + * @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.speech.v1.PhraseSet|PhraseSet} 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 `listPhraseSetAsync()` + * 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. + */ listPhraseSetStream( - request?: protos.google.cloud.speech.v1.IListPhraseSetRequest, - options?: CallOptions): - Transform{ + request?: protos.google.cloud.speech.v1.IListPhraseSetRequest, + 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['listPhraseSet']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listPhraseSet stream %j', request); return this.descriptors.page.listPhraseSet.createStream( this.innerApiCalls.listPhraseSet as GaxCall, request, - callSettings + callSettings, ); } -/** - * Equivalent to `listPhraseSet`, 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, which owns this collection of phrase set. Format: - * - * `projects/{project}/locations/{location}` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {number} request.pageSize - * The maximum number of phrase sets to return. The service may return - * fewer than this value. If unspecified, at most 50 phrase sets will be - * returned. The maximum value is 1000; values above 1000 will be coerced to - * 1000. - * @param {string} request.pageToken - * A page token, received from a previous `ListPhraseSet` call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to `ListPhraseSet` must - * match the call that provided the page token. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Object} - * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. - * When you iterate the returned iterable, each element will be an object representing - * {@link protos.google.cloud.speech.v1.PhraseSet|PhraseSet}. 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/adaptation.list_phrase_set.js - * region_tag:speech_v1_generated_Adaptation_ListPhraseSet_async - */ + /** + * Equivalent to `listPhraseSet`, 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, which owns this collection of phrase set. Format: + * + * `projects/{project}/locations/{location}` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {number} request.pageSize + * The maximum number of phrase sets to return. The service may return + * fewer than this value. If unspecified, at most 50 phrase sets will be + * returned. The maximum value is 1000; values above 1000 will be coerced to + * 1000. + * @param {string} request.pageToken + * A page token, received from a previous `ListPhraseSet` call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to `ListPhraseSet` must + * match the call that provided the page token. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Object} + * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. + * When you iterate the returned iterable, each element will be an object representing + * {@link protos.google.cloud.speech.v1.PhraseSet|PhraseSet}. 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/adaptation.list_phrase_set.js + * region_tag:speech_v1_generated_Adaptation_ListPhraseSet_async + */ listPhraseSetAsync( - request?: protos.google.cloud.speech.v1.IListPhraseSetRequest, - options?: CallOptions): - AsyncIterable{ + request?: protos.google.cloud.speech.v1.IListPhraseSetRequest, + 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['listPhraseSet']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listPhraseSet iterate %j', request); return this.descriptors.page.listPhraseSet.asyncIterate( this.innerApiCalls['listPhraseSet'] as GaxCall, request as {}, - callSettings + callSettings, ) as AsyncIterable; } - /** - * List custom classes. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent, which owns this collection of custom classes. Format: - * - * `projects/{project}/locations/{location}/customClasses` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {number} request.pageSize - * The maximum number of custom classes to return. The service may return - * fewer than this value. If unspecified, at most 50 custom classes will be - * returned. The maximum value is 1000; values above 1000 will be coerced to - * 1000. - * @param {string} request.pageToken - * A page token, received from a previous `ListCustomClass` call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to `ListCustomClass` must - * match the call that provided the page token. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.speech.v1.CustomClass|CustomClass}. - * 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 `listCustomClassesAsync()` - * 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. - */ + /** + * List custom classes. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The parent, which owns this collection of custom classes. Format: + * + * `projects/{project}/locations/{location}/customClasses` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {number} request.pageSize + * The maximum number of custom classes to return. The service may return + * fewer than this value. If unspecified, at most 50 custom classes will be + * returned. The maximum value is 1000; values above 1000 will be coerced to + * 1000. + * @param {string} request.pageToken + * A page token, received from a previous `ListCustomClass` call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to `ListCustomClass` must + * match the call that provided the page token. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.speech.v1.CustomClass|CustomClass}. + * 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 `listCustomClassesAsync()` + * 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. + */ listCustomClasses( - request?: protos.google.cloud.speech.v1.IListCustomClassesRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v1.ICustomClass[], - protos.google.cloud.speech.v1.IListCustomClassesRequest|null, - protos.google.cloud.speech.v1.IListCustomClassesResponse - ]>; + request?: protos.google.cloud.speech.v1.IListCustomClassesRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v1.ICustomClass[], + protos.google.cloud.speech.v1.IListCustomClassesRequest | null, + protos.google.cloud.speech.v1.IListCustomClassesResponse, + ] + >; listCustomClasses( - request: protos.google.cloud.speech.v1.IListCustomClassesRequest, - options: CallOptions, - callback: PaginationCallback< - protos.google.cloud.speech.v1.IListCustomClassesRequest, - protos.google.cloud.speech.v1.IListCustomClassesResponse|null|undefined, - protos.google.cloud.speech.v1.ICustomClass>): void; + request: protos.google.cloud.speech.v1.IListCustomClassesRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.speech.v1.IListCustomClassesRequest, + | protos.google.cloud.speech.v1.IListCustomClassesResponse + | null + | undefined, + protos.google.cloud.speech.v1.ICustomClass + >, + ): void; listCustomClasses( - request: protos.google.cloud.speech.v1.IListCustomClassesRequest, - callback: PaginationCallback< - protos.google.cloud.speech.v1.IListCustomClassesRequest, - protos.google.cloud.speech.v1.IListCustomClassesResponse|null|undefined, - protos.google.cloud.speech.v1.ICustomClass>): void; + request: protos.google.cloud.speech.v1.IListCustomClassesRequest, + callback: PaginationCallback< + protos.google.cloud.speech.v1.IListCustomClassesRequest, + | protos.google.cloud.speech.v1.IListCustomClassesResponse + | null + | undefined, + protos.google.cloud.speech.v1.ICustomClass + >, + ): void; listCustomClasses( - request?: protos.google.cloud.speech.v1.IListCustomClassesRequest, - optionsOrCallback?: CallOptions|PaginationCallback< - protos.google.cloud.speech.v1.IListCustomClassesRequest, - protos.google.cloud.speech.v1.IListCustomClassesResponse|null|undefined, - protos.google.cloud.speech.v1.ICustomClass>, - callback?: PaginationCallback< + request?: protos.google.cloud.speech.v1.IListCustomClassesRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< protos.google.cloud.speech.v1.IListCustomClassesRequest, - protos.google.cloud.speech.v1.IListCustomClassesResponse|null|undefined, - protos.google.cloud.speech.v1.ICustomClass>): - Promise<[ - protos.google.cloud.speech.v1.ICustomClass[], - protos.google.cloud.speech.v1.IListCustomClassesRequest|null, - protos.google.cloud.speech.v1.IListCustomClassesResponse - ]>|void { + | protos.google.cloud.speech.v1.IListCustomClassesResponse + | null + | undefined, + protos.google.cloud.speech.v1.ICustomClass + >, + callback?: PaginationCallback< + protos.google.cloud.speech.v1.IListCustomClassesRequest, + | protos.google.cloud.speech.v1.IListCustomClassesResponse + | null + | undefined, + protos.google.cloud.speech.v1.ICustomClass + >, + ): Promise< + [ + protos.google.cloud.speech.v1.ICustomClass[], + protos.google.cloud.speech.v1.IListCustomClassesRequest | null, + protos.google.cloud.speech.v1.IListCustomClassesResponse, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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.speech.v1.IListCustomClassesRequest, - protos.google.cloud.speech.v1.IListCustomClassesResponse|null|undefined, - protos.google.cloud.speech.v1.ICustomClass>|undefined = callback + const wrappedCallback: + | PaginationCallback< + protos.google.cloud.speech.v1.IListCustomClassesRequest, + | protos.google.cloud.speech.v1.IListCustomClassesResponse + | null + | undefined, + protos.google.cloud.speech.v1.ICustomClass + > + | undefined = callback ? (error, values, nextPageRequest, rawResponse) => { this._log.info('listCustomClasses values %j', values); callback!(error, values, nextPageRequest, rawResponse); // We verified callback above. @@ -1522,136 +1915,140 @@ export class AdaptationClient { this._log.info('listCustomClasses request %j', request); return this.innerApiCalls .listCustomClasses(request, options, wrappedCallback) - ?.then(([response, input, output]: [ - protos.google.cloud.speech.v1.ICustomClass[], - protos.google.cloud.speech.v1.IListCustomClassesRequest|null, - protos.google.cloud.speech.v1.IListCustomClassesResponse - ]) => { - this._log.info('listCustomClasses values %j', response); - return [response, input, output]; - }); + ?.then( + ([response, input, output]: [ + protos.google.cloud.speech.v1.ICustomClass[], + protos.google.cloud.speech.v1.IListCustomClassesRequest | null, + protos.google.cloud.speech.v1.IListCustomClassesResponse, + ]) => { + this._log.info('listCustomClasses values %j', response); + return [response, input, output]; + }, + ); } -/** - * Equivalent to `listCustomClasses`, but returns a NodeJS Stream object. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent, which owns this collection of custom classes. Format: - * - * `projects/{project}/locations/{location}/customClasses` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {number} request.pageSize - * The maximum number of custom classes to return. The service may return - * fewer than this value. If unspecified, at most 50 custom classes will be - * returned. The maximum value is 1000; values above 1000 will be coerced to - * 1000. - * @param {string} request.pageToken - * A page token, received from a previous `ListCustomClass` call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to `ListCustomClass` must - * match the call that provided the page token. - * @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.speech.v1.CustomClass|CustomClass} 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 `listCustomClassesAsync()` - * 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 `listCustomClasses`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The parent, which owns this collection of custom classes. Format: + * + * `projects/{project}/locations/{location}/customClasses` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {number} request.pageSize + * The maximum number of custom classes to return. The service may return + * fewer than this value. If unspecified, at most 50 custom classes will be + * returned. The maximum value is 1000; values above 1000 will be coerced to + * 1000. + * @param {string} request.pageToken + * A page token, received from a previous `ListCustomClass` call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to `ListCustomClass` must + * match the call that provided the page token. + * @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.speech.v1.CustomClass|CustomClass} 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 `listCustomClassesAsync()` + * 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. + */ listCustomClassesStream( - request?: protos.google.cloud.speech.v1.IListCustomClassesRequest, - options?: CallOptions): - Transform{ + request?: protos.google.cloud.speech.v1.IListCustomClassesRequest, + 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['listCustomClasses']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listCustomClasses stream %j', request); return this.descriptors.page.listCustomClasses.createStream( this.innerApiCalls.listCustomClasses as GaxCall, request, - callSettings + callSettings, ); } -/** - * Equivalent to `listCustomClasses`, 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, which owns this collection of custom classes. Format: - * - * `projects/{project}/locations/{location}/customClasses` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {number} request.pageSize - * The maximum number of custom classes to return. The service may return - * fewer than this value. If unspecified, at most 50 custom classes will be - * returned. The maximum value is 1000; values above 1000 will be coerced to - * 1000. - * @param {string} request.pageToken - * A page token, received from a previous `ListCustomClass` call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to `ListCustomClass` must - * match the call that provided the page token. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Object} - * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. - * When you iterate the returned iterable, each element will be an object representing - * {@link protos.google.cloud.speech.v1.CustomClass|CustomClass}. 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/adaptation.list_custom_classes.js - * region_tag:speech_v1_generated_Adaptation_ListCustomClasses_async - */ + /** + * Equivalent to `listCustomClasses`, 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, which owns this collection of custom classes. Format: + * + * `projects/{project}/locations/{location}/customClasses` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {number} request.pageSize + * The maximum number of custom classes to return. The service may return + * fewer than this value. If unspecified, at most 50 custom classes will be + * returned. The maximum value is 1000; values above 1000 will be coerced to + * 1000. + * @param {string} request.pageToken + * A page token, received from a previous `ListCustomClass` call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to `ListCustomClass` must + * match the call that provided the page token. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Object} + * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. + * When you iterate the returned iterable, each element will be an object representing + * {@link protos.google.cloud.speech.v1.CustomClass|CustomClass}. 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/adaptation.list_custom_classes.js + * region_tag:speech_v1_generated_Adaptation_ListCustomClasses_async + */ listCustomClassesAsync( - request?: protos.google.cloud.speech.v1.IListCustomClassesRequest, - options?: CallOptions): - AsyncIterable{ + request?: protos.google.cloud.speech.v1.IListCustomClassesRequest, + 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['listCustomClasses']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listCustomClasses iterate %j', request); return this.descriptors.page.listCustomClasses.asyncIterate( this.innerApiCalls['listCustomClasses'] as GaxCall, request as {}, - callSettings + callSettings, ) as AsyncIterable; } // -------------------- @@ -1666,7 +2063,7 @@ export class AdaptationClient { * @param {string} custom_class * @returns {string} Resource name string. */ - customClassPath(project:string,location:string,customClass:string) { + customClassPath(project: string, location: string, customClass: string) { return this.pathTemplates.customClassPathTemplate.render({ project: project, location: location, @@ -1682,7 +2079,8 @@ export class AdaptationClient { * @returns {string} A string representing the project. */ matchProjectFromCustomClassName(customClassName: string) { - return this.pathTemplates.customClassPathTemplate.match(customClassName).project; + return this.pathTemplates.customClassPathTemplate.match(customClassName) + .project; } /** @@ -1693,7 +2091,8 @@ export class AdaptationClient { * @returns {string} A string representing the location. */ matchLocationFromCustomClassName(customClassName: string) { - return this.pathTemplates.customClassPathTemplate.match(customClassName).location; + return this.pathTemplates.customClassPathTemplate.match(customClassName) + .location; } /** @@ -1704,7 +2103,8 @@ export class AdaptationClient { * @returns {string} A string representing the custom_class. */ matchCustomClassFromCustomClassName(customClassName: string) { - return this.pathTemplates.customClassPathTemplate.match(customClassName).custom_class; + return this.pathTemplates.customClassPathTemplate.match(customClassName) + .custom_class; } /** @@ -1714,7 +2114,7 @@ export class AdaptationClient { * @param {string} location * @returns {string} Resource name string. */ - locationPath(project:string,location:string) { + locationPath(project: string, location: string) { return this.pathTemplates.locationPathTemplate.render({ project: project, location: location, @@ -1751,7 +2151,7 @@ export class AdaptationClient { * @param {string} phrase_set * @returns {string} Resource name string. */ - phraseSetPath(project:string,location:string,phraseSet:string) { + phraseSetPath(project: string, location: string, phraseSet: string) { return this.pathTemplates.phraseSetPathTemplate.render({ project: project, location: location, @@ -1767,7 +2167,8 @@ export class AdaptationClient { * @returns {string} A string representing the project. */ matchProjectFromPhraseSetName(phraseSetName: string) { - return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName).project; + return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName) + .project; } /** @@ -1778,7 +2179,8 @@ export class AdaptationClient { * @returns {string} A string representing the location. */ matchLocationFromPhraseSetName(phraseSetName: string) { - return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName).location; + return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName) + .location; } /** @@ -1789,7 +2191,8 @@ export class AdaptationClient { * @returns {string} A string representing the phrase_set. */ matchPhraseSetFromPhraseSetName(phraseSetName: string) { - return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName).phrase_set; + return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName) + .phrase_set; } /** @@ -1798,7 +2201,7 @@ export class AdaptationClient { * @param {string} project * @returns {string} Resource name string. */ - projectPath(project:string) { + projectPath(project: string) { return this.pathTemplates.projectPathTemplate.render({ project: project, }); @@ -1823,7 +2226,7 @@ export class AdaptationClient { */ close(): Promise { if (this.adaptationStub && !this._terminated) { - return this.adaptationStub.then(stub => { + return this.adaptationStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); @@ -1831,4 +2234,4 @@ export class AdaptationClient { } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-speech/src/v1/index.ts b/packages/google-cloud-speech/src/v1/index.ts index f638f480e0a0..6ccf0c8b2f19 100644 --- a/packages/google-cloud-speech/src/v1/index.ts +++ b/packages/google-cloud-speech/src/v1/index.ts @@ -16,5 +16,5 @@ // ** https://github.com/googleapis/gapic-generator-typescript ** // ** All changes to this file may be overwritten. ** -export {AdaptationClient} from './adaptation_client'; -export {SpeechClient} from './speech_client'; +export { AdaptationClient } from './adaptation_client'; +export { SpeechClient } from './speech_client'; diff --git a/packages/google-cloud-speech/src/v1/speech_client.ts b/packages/google-cloud-speech/src/v1/speech_client.ts index fb89ae46e984..f17f6e9e6253 100644 --- a/packages/google-cloud-speech/src/v1/speech_client.ts +++ b/packages/google-cloud-speech/src/v1/speech_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, GrpcClientOptions, LROperation} from 'google-gax'; -import {PassThrough} from 'stream'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + GrpcClientOptions, + LROperation, +} from 'google-gax'; +import { PassThrough } from 'stream'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -44,7 +51,7 @@ export class SpeechClient { 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('speech'); @@ -57,10 +64,10 @@ export class SpeechClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; - pathTemplates: {[name: string]: gax.PathTemplate}; + innerApiCalls: { [name: string]: Function }; + pathTemplates: { [name: string]: gax.PathTemplate }; operationsClient: gax.OperationsClient; - speechStub?: Promise<{[name: string]: Function}>; + speechStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SpeechClient. @@ -101,21 +108,42 @@ export class SpeechClient { * const client = new SpeechClient({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 SpeechClient; - 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 = 'speech.' + 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 SpeechClient { 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,10 +182,7 @@ export class SpeechClient { } // 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 { @@ -179,17 +204,21 @@ export class SpeechClient { // Create useful helper objects for these. this.pathTemplates = { customClassPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/customClasses/{custom_class}' + 'projects/{project}/locations/{location}/customClasses/{custom_class}', ), phraseSetPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/phraseSets/{phrase_set}' + 'projects/{project}/locations/{location}/phraseSets/{phrase_set}', ), }; // Some of the methods on this service provide streaming responses. // Provide descriptors for these. this.descriptors.stream = { - streamingRecognize: new this._gaxModule.StreamDescriptor(this._gaxModule.StreamType.BIDI_STREAMING, !!opts.fallback, !!opts.gaxServerStreamingRetries) + streamingRecognize: new this._gaxModule.StreamDescriptor( + this._gaxModule.StreamType.BIDI_STREAMING, + !!opts.fallback, + !!opts.gaxServerStreamingRetries, + ), }; const protoFilesRoot = this._gaxModule.protobufFromJSON(jsonProtos); @@ -198,29 +227,46 @@ export class SpeechClient { // rather than holding a request open. const lroOptions: GrpcClientOptions = { auth: this.auth, - grpc: 'grpc' in this._gaxGrpc ? this._gaxGrpc.grpc : undefined + grpc: 'grpc' in this._gaxGrpc ? this._gaxGrpc.grpc : undefined, }; if (opts.fallback) { lroOptions.protoJson = protoFilesRoot; - lroOptions.httpRules = [{selector: 'google.longrunning.Operations.GetOperation',get: '/v1/operations/{name=**}',},{selector: 'google.longrunning.Operations.ListOperations',get: '/v1/operations',}]; + lroOptions.httpRules = [ + { + selector: 'google.longrunning.Operations.GetOperation', + get: '/v1/operations/{name=**}', + }, + { + selector: 'google.longrunning.Operations.ListOperations', + get: '/v1/operations', + }, + ]; } - this.operationsClient = this._gaxModule.lro(lroOptions).operationsClient(opts); + this.operationsClient = this._gaxModule + .lro(lroOptions) + .operationsClient(opts); const longRunningRecognizeResponse = protoFilesRoot.lookup( - '.google.cloud.speech.v1.LongRunningRecognizeResponse') as gax.protobuf.Type; + '.google.cloud.speech.v1.LongRunningRecognizeResponse', + ) as gax.protobuf.Type; const longRunningRecognizeMetadata = protoFilesRoot.lookup( - '.google.cloud.speech.v1.LongRunningRecognizeMetadata') as gax.protobuf.Type; + '.google.cloud.speech.v1.LongRunningRecognizeMetadata', + ) as gax.protobuf.Type; this.descriptors.longrunning = { longRunningRecognize: new this._gaxModule.LongrunningDescriptor( this.operationsClient, longRunningRecognizeResponse.decode.bind(longRunningRecognizeResponse), - longRunningRecognizeMetadata.decode.bind(longRunningRecognizeMetadata)) + longRunningRecognizeMetadata.decode.bind(longRunningRecognizeMetadata), + ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.speech.v1.Speech', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.speech.v1.Speech', + 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 @@ -251,35 +297,49 @@ export class SpeechClient { // Put together the "service stub" for // google.cloud.speech.v1.Speech. this.speechStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.speech.v1.Speech') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.speech.v1.Speech', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.speech.v1.Speech, - 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 speechStubMethods = - ['recognize', 'longRunningRecognize', 'streamingRecognize']; + const speechStubMethods = [ + 'recognize', + 'longRunningRecognize', + 'streamingRecognize', + ]; for (const methodName of speechStubMethods) { const callPromise = this.speechStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - if (methodName in this.descriptors.stream) { - const stream = new PassThrough({objectMode: true}); - setImmediate(() => { - stream.emit('error', new this._gaxModule.GoogleError('The client has already been closed.')); - }); - return stream; + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + if (methodName in this.descriptors.stream) { + const stream = new PassThrough({ objectMode: true }); + setImmediate(() => { + stream.emit( + 'error', + new this._gaxModule.GoogleError( + 'The client has already been closed.', + ), + ); + }); + return stream; + } + return Promise.reject('The client has already been closed.'); } - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); const descriptor = this.descriptors.stream[methodName] || @@ -289,7 +349,7 @@ export class SpeechClient { callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -304,8 +364,14 @@ export class SpeechClient { * @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 'speech.googleapis.com'; } @@ -316,8 +382,14 @@ export class SpeechClient { * @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 'speech.googleapis.com'; } @@ -348,9 +420,7 @@ export class SpeechClient { * @returns {string[]} List of default scopes. */ static get scopes() { - return [ - 'https://www.googleapis.com/auth/cloud-platform' - ]; + return ['https://www.googleapis.com/auth/cloud-platform']; } getProjectId(): Promise; @@ -359,8 +429,9 @@ export class SpeechClient { * 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; @@ -371,236 +442,330 @@ export class SpeechClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Performs synchronous speech recognition: receive results after all audio - * has been sent and processed. - * - * @param {Object} request - * The request object that will be sent. - * @param {google.cloud.speech.v1.RecognitionConfig} request.config - * Required. Provides information to the recognizer that specifies how to - * process the request. - * @param {google.cloud.speech.v1.RecognitionAudio} request.audio - * Required. The audio data to be recognized. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.speech.v1.RecognizeResponse|RecognizeResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/speech.recognize.js - * region_tag:speech_v1_generated_Speech_Recognize_async - */ + /** + * Performs synchronous speech recognition: receive results after all audio + * has been sent and processed. + * + * @param {Object} request + * The request object that will be sent. + * @param {google.cloud.speech.v1.RecognitionConfig} request.config + * Required. Provides information to the recognizer that specifies how to + * process the request. + * @param {google.cloud.speech.v1.RecognitionAudio} request.audio + * Required. The audio data to be recognized. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.speech.v1.RecognizeResponse|RecognizeResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/speech.recognize.js + * region_tag:speech_v1_generated_Speech_Recognize_async + */ recognize( - request?: protos.google.cloud.speech.v1.IRecognizeRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v1.IRecognizeResponse, - protos.google.cloud.speech.v1.IRecognizeRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v1.IRecognizeRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v1.IRecognizeResponse, + protos.google.cloud.speech.v1.IRecognizeRequest | undefined, + {} | undefined, + ] + >; recognize( - request: protos.google.cloud.speech.v1.IRecognizeRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.speech.v1.IRecognizeResponse, - protos.google.cloud.speech.v1.IRecognizeRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1.IRecognizeRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.speech.v1.IRecognizeResponse, + protos.google.cloud.speech.v1.IRecognizeRequest | null | undefined, + {} | null | undefined + >, + ): void; recognize( - request: protos.google.cloud.speech.v1.IRecognizeRequest, - callback: Callback< - protos.google.cloud.speech.v1.IRecognizeResponse, - protos.google.cloud.speech.v1.IRecognizeRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1.IRecognizeRequest, + callback: Callback< + protos.google.cloud.speech.v1.IRecognizeResponse, + protos.google.cloud.speech.v1.IRecognizeRequest | null | undefined, + {} | null | undefined + >, + ): void; recognize( - request?: protos.google.cloud.speech.v1.IRecognizeRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.speech.v1.IRecognizeResponse, - protos.google.cloud.speech.v1.IRecognizeRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.speech.v1.IRecognizeRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.speech.v1.IRecognizeResponse, - protos.google.cloud.speech.v1.IRecognizeRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.speech.v1.IRecognizeResponse, - protos.google.cloud.speech.v1.IRecognizeRequest|undefined, {}|undefined - ]>|void { + protos.google.cloud.speech.v1.IRecognizeRequest | null | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.speech.v1.IRecognizeResponse, + protos.google.cloud.speech.v1.IRecognizeRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.speech.v1.IRecognizeResponse, + protos.google.cloud.speech.v1.IRecognizeRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === '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('recognize request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.speech.v1.IRecognizeResponse, - protos.google.cloud.speech.v1.IRecognizeRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.speech.v1.IRecognizeResponse, + protos.google.cloud.speech.v1.IRecognizeRequest | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('recognize response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.recognize(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.speech.v1.IRecognizeResponse, - protos.google.cloud.speech.v1.IRecognizeRequest|undefined, - {}|undefined - ]) => { - this._log.info('recognize response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .recognize(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.speech.v1.IRecognizeResponse, + protos.google.cloud.speech.v1.IRecognizeRequest | undefined, + {} | undefined, + ]) => { + this._log.info('recognize response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Performs bidirectional streaming speech recognition: receive results while - * sending audio. This method is only available via the gRPC API (not REST). - * - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Stream} - * An object stream which is both readable and writable. It accepts objects - * representing {@link protos.google.cloud.speech.v1.StreamingRecognizeRequest|StreamingRecognizeRequest} for write() method, and - * will emit objects representing {@link protos.google.cloud.speech.v1.StreamingRecognizeResponse|StreamingRecognizeResponse} on 'data' event asynchronously. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#bi-directional-streaming | documentation } - * for more details and examples. - * @example include:samples/generated/v1/speech.streaming_recognize.js - * region_tag:speech_v1_generated_Speech_StreamingRecognize_async - */ - _streamingRecognize( - options?: CallOptions): - gax.CancellableStream { - this.initialize().catch(err => {throw err}); + /** + * Performs bidirectional streaming speech recognition: receive results while + * sending audio. This method is only available via the gRPC API (not REST). + * + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Stream} + * An object stream which is both readable and writable. It accepts objects + * representing {@link protos.google.cloud.speech.v1.StreamingRecognizeRequest|StreamingRecognizeRequest} for write() method, and + * will emit objects representing {@link protos.google.cloud.speech.v1.StreamingRecognizeResponse|StreamingRecognizeResponse} on 'data' event asynchronously. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#bi-directional-streaming | documentation } + * for more details and examples. + * @example include:samples/generated/v1/speech.streaming_recognize.js + * region_tag:speech_v1_generated_Speech_StreamingRecognize_async + */ + _streamingRecognize(options?: CallOptions): gax.CancellableStream { + this.initialize().catch((err) => { + throw err; + }); this._log.info('streamingRecognize stream %j', options); return this.innerApiCalls.streamingRecognize(null, options); } -/** - * Performs asynchronous speech recognition: receive results via the - * google.longrunning.Operations interface. Returns either an - * `Operation.error` or an `Operation.response` which contains - * a `LongRunningRecognizeResponse` message. - * For more information on asynchronous speech recognition, see the - * [how-to](https://cloud.google.com/speech-to-text/docs/async-recognize). - * - * @param {Object} request - * The request object that will be sent. - * @param {google.cloud.speech.v1.RecognitionConfig} request.config - * Required. Provides information to the recognizer that specifies how to - * process the request. - * @param {google.cloud.speech.v1.RecognitionAudio} request.audio - * Required. The audio data to be recognized. - * @param {google.cloud.speech.v1.TranscriptOutputConfig} [request.outputConfig] - * Optional. Specifies an optional destination for the recognition results. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v1/speech.long_running_recognize.js - * region_tag:speech_v1_generated_Speech_LongRunningRecognize_async - */ + /** + * Performs asynchronous speech recognition: receive results via the + * google.longrunning.Operations interface. Returns either an + * `Operation.error` or an `Operation.response` which contains + * a `LongRunningRecognizeResponse` message. + * For more information on asynchronous speech recognition, see the + * [how-to](https://cloud.google.com/speech-to-text/docs/async-recognize). + * + * @param {Object} request + * The request object that will be sent. + * @param {google.cloud.speech.v1.RecognitionConfig} request.config + * Required. Provides information to the recognizer that specifies how to + * process the request. + * @param {google.cloud.speech.v1.RecognitionAudio} request.audio + * Required. The audio data to be recognized. + * @param {google.cloud.speech.v1.TranscriptOutputConfig} [request.outputConfig] + * Optional. Specifies an optional destination for the recognition results. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1/speech.long_running_recognize.js + * region_tag:speech_v1_generated_Speech_LongRunningRecognize_async + */ longRunningRecognize( - request?: protos.google.cloud.speech.v1.ILongRunningRecognizeRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v1.ILongRunningRecognizeRequest, + options?: CallOptions, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v1.ILongRunningRecognizeResponse, + protos.google.cloud.speech.v1.ILongRunningRecognizeMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; longRunningRecognize( - request: protos.google.cloud.speech.v1.ILongRunningRecognizeRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1.ILongRunningRecognizeRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.speech.v1.ILongRunningRecognizeResponse, + protos.google.cloud.speech.v1.ILongRunningRecognizeMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; longRunningRecognize( - request: protos.google.cloud.speech.v1.ILongRunningRecognizeRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1.ILongRunningRecognizeRequest, + callback: Callback< + LROperation< + protos.google.cloud.speech.v1.ILongRunningRecognizeResponse, + protos.google.cloud.speech.v1.ILongRunningRecognizeMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; longRunningRecognize( - request?: protos.google.cloud.speech.v1.ILongRunningRecognizeRequest, - optionsOrCallback?: CallOptions|Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>, - callback?: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>|void { + request?: protos.google.cloud.speech.v1.ILongRunningRecognizeRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.speech.v1.ILongRunningRecognizeResponse, + protos.google.cloud.speech.v1.ILongRunningRecognizeMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.speech.v1.ILongRunningRecognizeResponse, + protos.google.cloud.speech.v1.ILongRunningRecognizeMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v1.ILongRunningRecognizeResponse, + protos.google.cloud.speech.v1.ILongRunningRecognizeMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === '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}); - const wrappedCallback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>|undefined = callback + this.initialize().catch((err) => { + throw err; + }); + const wrappedCallback: + | Callback< + LROperation< + protos.google.cloud.speech.v1.ILongRunningRecognizeResponse, + protos.google.cloud.speech.v1.ILongRunningRecognizeMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, rawResponse, _) => { this._log.info('longRunningRecognize response %j', rawResponse); callback!(error, response, rawResponse, _); // We verified callback above. } : undefined; this._log.info('longRunningRecognize request %j', request); - return this.innerApiCalls.longRunningRecognize(request, options, wrappedCallback) - ?.then(([response, rawResponse, _]: [ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]) => { - this._log.info('longRunningRecognize response %j', rawResponse); - return [response, rawResponse, _]; - }); + return this.innerApiCalls + .longRunningRecognize(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.cloud.speech.v1.ILongRunningRecognizeResponse, + protos.google.cloud.speech.v1.ILongRunningRecognizeMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('longRunningRecognize response %j', rawResponse); + return [response, rawResponse, _]; + }, + ); } -/** - * Check the status of the long running operation returned by `longRunningRecognize()`. - * @param {String} name - * The operation name that will be passed. - * @returns {Promise} - The promise which resolves to an object. - * The decoded operation object has result and metadata field to get information from. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v1/speech.long_running_recognize.js - * region_tag:speech_v1_generated_Speech_LongRunningRecognize_async - */ - async checkLongRunningRecognizeProgress(name: string): Promise>{ + /** + * Check the status of the long running operation returned by `longRunningRecognize()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1/speech.long_running_recognize.js + * region_tag:speech_v1_generated_Speech_LongRunningRecognize_async + */ + async checkLongRunningRecognizeProgress( + name: string, + ): Promise< + LROperation< + protos.google.cloud.speech.v1.LongRunningRecognizeResponse, + protos.google.cloud.speech.v1.LongRunningRecognizeMetadata + > + > { this._log.info('longRunningRecognize long-running'); - const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest({name}); + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + { name }, + ); const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.longRunningRecognize, this._gaxModule.createDefaultBackoffSettings()); - return decodeOperation as LROperation; + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.longRunningRecognize, + this._gaxModule.createDefaultBackoffSettings(), + ); + return decodeOperation as LROperation< + protos.google.cloud.speech.v1.LongRunningRecognizeResponse, + protos.google.cloud.speech.v1.LongRunningRecognizeMetadata + >; } -/** + /** * Gets the latest state of a long-running operation. Clients can use this * method to poll the operation result at intervals as recommended by the API * service. @@ -643,22 +808,22 @@ export class SpeechClient { protos.google.longrunning.Operation, protos.google.longrunning.GetOperationRequest, {} | null | undefined - > + >, ): Promise<[protos.google.longrunning.Operation]> { - let options: gax.CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as gax.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 ?? '', - }); + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.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 ?? '', + }); return this.operationsClient.getOperation(request, options, callback); } /** @@ -693,15 +858,15 @@ export class SpeechClient { */ listOperationsAsync( request: protos.google.longrunning.ListOperationsRequest, - options?: gax.CallOptions + options?: gax.CallOptions, ): AsyncIterable { - 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 = 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 ?? '', + }); return this.operationsClient.listOperationsAsync(request, options); } /** @@ -735,7 +900,7 @@ export class SpeechClient { * await client.cancelOperation({name: ''}); * ``` */ - cancelOperation( + cancelOperation( request: protos.google.longrunning.CancelOperationRequest, optionsOrCallback?: | gax.CallOptions @@ -748,25 +913,24 @@ export class SpeechClient { protos.google.longrunning.CancelOperationRequest, protos.google.protobuf.Empty, {} | undefined | null - > + >, ): Promise { - let options: gax.CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as gax.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 ?? '', - }); + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.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 ?? '', + }); return this.operationsClient.cancelOperation(request, options, callback); } - /** * Deletes a long-running operation. This method indicates that the client is * no longer interested in the operation result. It does not cancel the @@ -805,22 +969,22 @@ export class SpeechClient { protos.google.protobuf.Empty, protos.google.longrunning.DeleteOperationRequest, {} | null | undefined - > + >, ): Promise { - let options: gax.CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as gax.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 ?? '', - }); + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.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 ?? '', + }); return this.operationsClient.deleteOperation(request, options, callback); } @@ -836,7 +1000,7 @@ export class SpeechClient { * @param {string} custom_class * @returns {string} Resource name string. */ - customClassPath(project:string,location:string,customClass:string) { + customClassPath(project: string, location: string, customClass: string) { return this.pathTemplates.customClassPathTemplate.render({ project: project, location: location, @@ -852,7 +1016,8 @@ export class SpeechClient { * @returns {string} A string representing the project. */ matchProjectFromCustomClassName(customClassName: string) { - return this.pathTemplates.customClassPathTemplate.match(customClassName).project; + return this.pathTemplates.customClassPathTemplate.match(customClassName) + .project; } /** @@ -863,7 +1028,8 @@ export class SpeechClient { * @returns {string} A string representing the location. */ matchLocationFromCustomClassName(customClassName: string) { - return this.pathTemplates.customClassPathTemplate.match(customClassName).location; + return this.pathTemplates.customClassPathTemplate.match(customClassName) + .location; } /** @@ -874,7 +1040,8 @@ export class SpeechClient { * @returns {string} A string representing the custom_class. */ matchCustomClassFromCustomClassName(customClassName: string) { - return this.pathTemplates.customClassPathTemplate.match(customClassName).custom_class; + return this.pathTemplates.customClassPathTemplate.match(customClassName) + .custom_class; } /** @@ -885,7 +1052,7 @@ export class SpeechClient { * @param {string} phrase_set * @returns {string} Resource name string. */ - phraseSetPath(project:string,location:string,phraseSet:string) { + phraseSetPath(project: string, location: string, phraseSet: string) { return this.pathTemplates.phraseSetPathTemplate.render({ project: project, location: location, @@ -901,7 +1068,8 @@ export class SpeechClient { * @returns {string} A string representing the project. */ matchProjectFromPhraseSetName(phraseSetName: string) { - return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName).project; + return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName) + .project; } /** @@ -912,7 +1080,8 @@ export class SpeechClient { * @returns {string} A string representing the location. */ matchLocationFromPhraseSetName(phraseSetName: string) { - return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName).location; + return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName) + .location; } /** @@ -923,7 +1092,8 @@ export class SpeechClient { * @returns {string} A string representing the phrase_set. */ matchPhraseSetFromPhraseSetName(phraseSetName: string) { - return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName).phrase_set; + return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName) + .phrase_set; } /** @@ -934,7 +1104,7 @@ export class SpeechClient { */ close(): Promise { if (this.speechStub && !this._terminated) { - return this.speechStub.then(stub => { + return this.speechStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); @@ -944,6 +1114,7 @@ export class SpeechClient { return Promise.resolve(); } } + import {ImprovedStreamingClient} from '../helpers'; // eslint-disable-next-line @typescript-eslint/no-empty-interface export interface SpeechClient extends ImprovedStreamingClient {} diff --git a/packages/google-cloud-speech/src/v1p1beta1/adaptation_client.ts b/packages/google-cloud-speech/src/v1p1beta1/adaptation_client.ts index 40e8cb15ef8a..fbc7b12304a4 100644 --- a/packages/google-cloud-speech/src/v1p1beta1/adaptation_client.ts +++ b/packages/google-cloud-speech/src/v1p1beta1/adaptation_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, PaginationCallback, GaxCall} from 'google-gax'; -import {Transform} from 'stream'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + PaginationCallback, + GaxCall, +} 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 @@ -44,7 +51,7 @@ export class AdaptationClient { 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('speech'); @@ -57,9 +64,9 @@ export class AdaptationClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; - pathTemplates: {[name: string]: gax.PathTemplate}; - adaptationStub?: Promise<{[name: string]: Function}>; + innerApiCalls: { [name: string]: Function }; + pathTemplates: { [name: string]: gax.PathTemplate }; + adaptationStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of AdaptationClient. @@ -100,21 +107,42 @@ export class AdaptationClient { * const client = new AdaptationClient({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 AdaptationClient; - 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 = 'speech.' + 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 AdaptationClient { 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,10 +181,7 @@ export class AdaptationClient { } // 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 { @@ -178,16 +203,16 @@ export class AdaptationClient { // Create useful helper objects for these. this.pathTemplates = { customClassPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/customClasses/{custom_class}' + 'projects/{project}/locations/{location}/customClasses/{custom_class}', ), locationPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}' + 'projects/{project}/locations/{location}', ), phraseSetPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/phraseSets/{phrase_set}' + 'projects/{project}/locations/{location}/phraseSets/{phrase_set}', ), projectPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}' + 'projects/{project}', ), }; @@ -195,16 +220,25 @@ export class AdaptationClient { // (e.g. 50 results at a time, with tokens to get subsequent // pages). Denote the keys used for pagination and results. this.descriptors.page = { - listPhraseSet: - new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'phraseSets'), - listCustomClasses: - new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'customClasses') + listPhraseSet: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'phraseSets', + ), + listCustomClasses: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'customClasses', + ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.speech.v1p1beta1.Adaptation', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.speech.v1p1beta1.Adaptation', + 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 @@ -235,37 +269,51 @@ export class AdaptationClient { // Put together the "service stub" for // google.cloud.speech.v1p1beta1.Adaptation. this.adaptationStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.speech.v1p1beta1.Adaptation') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.speech.v1p1beta1.Adaptation', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.speech.v1p1beta1.Adaptation, - 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 adaptationStubMethods = - ['createPhraseSet', 'getPhraseSet', 'listPhraseSet', 'updatePhraseSet', 'deletePhraseSet', 'createCustomClass', 'getCustomClass', 'listCustomClasses', 'updateCustomClass', 'deleteCustomClass']; + const adaptationStubMethods = [ + 'createPhraseSet', + 'getPhraseSet', + 'listPhraseSet', + 'updatePhraseSet', + 'deletePhraseSet', + 'createCustomClass', + 'getCustomClass', + 'listCustomClasses', + 'updateCustomClass', + 'deleteCustomClass', + ]; for (const methodName of adaptationStubMethods) { const callPromise = this.adaptationStub.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; @@ -280,8 +328,14 @@ export class AdaptationClient { * @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 'speech.googleapis.com'; } @@ -292,8 +346,14 @@ export class AdaptationClient { * @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 'speech.googleapis.com'; } @@ -324,9 +384,7 @@ export class AdaptationClient { * @returns {string[]} List of default scopes. */ static get scopes() { - return [ - 'https://www.googleapis.com/auth/cloud-platform' - ]; + return ['https://www.googleapis.com/auth/cloud-platform']; } getProjectId(): Promise; @@ -335,8 +393,9 @@ export class AdaptationClient { * 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; @@ -347,937 +406,1321 @@ export class AdaptationClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Create a set of phrase hints. Each item in the set can be a single word or - * a multi-word phrase. The items in the PhraseSet are favored by the - * recognition model when you send a call that includes the PhraseSet. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent resource where this phrase set will be created. - * Format: - * - * `projects/{project}/locations/{location}` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {string} request.phraseSetId - * Required. The ID to use for the phrase set, which will become the final - * component of the phrase set's resource name. - * - * This value should restrict to letters, numbers, and hyphens, with the first - * character a letter, the last a letter or a number, and be 4-63 characters. - * @param {google.cloud.speech.v1p1beta1.PhraseSet} request.phraseSet - * Required. The phrase set 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.speech.v1p1beta1.PhraseSet|PhraseSet}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1p1beta1/adaptation.create_phrase_set.js - * region_tag:speech_v1p1beta1_generated_Adaptation_CreatePhraseSet_async - */ + /** + * Create a set of phrase hints. Each item in the set can be a single word or + * a multi-word phrase. The items in the PhraseSet are favored by the + * recognition model when you send a call that includes the PhraseSet. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The parent resource where this phrase set will be created. + * Format: + * + * `projects/{project}/locations/{location}` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {string} request.phraseSetId + * Required. The ID to use for the phrase set, which will become the final + * component of the phrase set's resource name. + * + * This value should restrict to letters, numbers, and hyphens, with the first + * character a letter, the last a letter or a number, and be 4-63 characters. + * @param {google.cloud.speech.v1p1beta1.PhraseSet} request.phraseSet + * Required. The phrase set 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.speech.v1p1beta1.PhraseSet|PhraseSet}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1p1beta1/adaptation.create_phrase_set.js + * region_tag:speech_v1p1beta1_generated_Adaptation_CreatePhraseSet_async + */ createPhraseSet( - request?: protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v1p1beta1.IPhraseSet, + protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest | undefined, + {} | undefined, + ] + >; createPhraseSet( - request: protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.speech.v1p1beta1.IPhraseSet, + | protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest + | null + | undefined, + {} | null | undefined + >, + ): void; createPhraseSet( - request: protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest, - callback: Callback< - protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest, + callback: Callback< + protos.google.cloud.speech.v1p1beta1.IPhraseSet, + | protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest + | null + | undefined, + {} | null | undefined + >, + ): void; createPhraseSet( - request?: protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.speech.v1p1beta1.IPhraseSet, + | protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.speech.v1p1beta1.IPhraseSet, + protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('createPhraseSet request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.speech.v1p1beta1.IPhraseSet, + | protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('createPhraseSet response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.createPhraseSet(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest|undefined, - {}|undefined - ]) => { - this._log.info('createPhraseSet response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .createPhraseSet(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.speech.v1p1beta1.IPhraseSet, + ( + | protos.google.cloud.speech.v1p1beta1.ICreatePhraseSetRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('createPhraseSet response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails 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 a phrase set. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the phrase set to retrieve. Format: - * - * `projects/{project}/locations/{location}/phraseSets/{phrase_set}` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.speech.v1p1beta1.PhraseSet|PhraseSet}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1p1beta1/adaptation.get_phrase_set.js - * region_tag:speech_v1p1beta1_generated_Adaptation_GetPhraseSet_async - */ + /** + * Get a phrase set. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the phrase set to retrieve. Format: + * + * `projects/{project}/locations/{location}/phraseSets/{phrase_set}` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.speech.v1p1beta1.PhraseSet|PhraseSet}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1p1beta1/adaptation.get_phrase_set.js + * region_tag:speech_v1p1beta1_generated_Adaptation_GetPhraseSet_async + */ getPhraseSet( - request?: protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v1p1beta1.IPhraseSet, + protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest | undefined, + {} | undefined, + ] + >; getPhraseSet( - request: protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.speech.v1p1beta1.IPhraseSet, + | protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getPhraseSet( - request: protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest, - callback: Callback< - protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest, + callback: Callback< + protos.google.cloud.speech.v1p1beta1.IPhraseSet, + | protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getPhraseSet( - request?: protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.speech.v1p1beta1.IPhraseSet, + | protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.speech.v1p1beta1.IPhraseSet, + protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('getPhraseSet request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.speech.v1p1beta1.IPhraseSet, + | protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('getPhraseSet response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.getPhraseSet(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest|undefined, - {}|undefined - ]) => { - this._log.info('getPhraseSet response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .getPhraseSet(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.speech.v1p1beta1.IPhraseSet, + protos.google.cloud.speech.v1p1beta1.IGetPhraseSetRequest | undefined, + {} | undefined, + ]) => { + this._log.info('getPhraseSet response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Update a phrase set. - * - * @param {Object} request - * The request object that will be sent. - * @param {google.cloud.speech.v1p1beta1.PhraseSet} request.phraseSet - * Required. The phrase set to update. - * - * The phrase set's `name` field is used to identify the set to be - * updated. Format: - * - * `projects/{project}/locations/{location}/phraseSets/{phrase_set}` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {google.protobuf.FieldMask} request.updateMask - * The list of fields to be updated. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.speech.v1p1beta1.PhraseSet|PhraseSet}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1p1beta1/adaptation.update_phrase_set.js - * region_tag:speech_v1p1beta1_generated_Adaptation_UpdatePhraseSet_async - */ + /** + * Update a phrase set. + * + * @param {Object} request + * The request object that will be sent. + * @param {google.cloud.speech.v1p1beta1.PhraseSet} request.phraseSet + * Required. The phrase set to update. + * + * The phrase set's `name` field is used to identify the set to be + * updated. Format: + * + * `projects/{project}/locations/{location}/phraseSets/{phrase_set}` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {google.protobuf.FieldMask} request.updateMask + * The list of fields to be updated. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.speech.v1p1beta1.PhraseSet|PhraseSet}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1p1beta1/adaptation.update_phrase_set.js + * region_tag:speech_v1p1beta1_generated_Adaptation_UpdatePhraseSet_async + */ updatePhraseSet( - request?: protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v1p1beta1.IPhraseSet, + protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest | undefined, + {} | undefined, + ] + >; updatePhraseSet( - request: protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.speech.v1p1beta1.IPhraseSet, + | protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest + | null + | undefined, + {} | null | undefined + >, + ): void; updatePhraseSet( - request: protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest, - callback: Callback< - protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest, + callback: Callback< + protos.google.cloud.speech.v1p1beta1.IPhraseSet, + | protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest + | null + | undefined, + {} | null | undefined + >, + ): void; updatePhraseSet( - request?: protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest, - optionsOrCallback?: CallOptions|Callback< + request?: protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< - protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.speech.v1p1beta1.IPhraseSet, + | protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.speech.v1p1beta1.IPhraseSet, + protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'phrase_set.name': request.phraseSet!.name ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + 'phrase_set.name': request.phraseSet!.name ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('updatePhraseSet request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.speech.v1p1beta1.IPhraseSet, + | protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('updatePhraseSet response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.updatePhraseSet(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.speech.v1p1beta1.IPhraseSet, - protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest|undefined, - {}|undefined - ]) => { - this._log.info('updatePhraseSet response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .updatePhraseSet(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.speech.v1p1beta1.IPhraseSet, + ( + | protos.google.cloud.speech.v1p1beta1.IUpdatePhraseSetRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('updatePhraseSet response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Delete a phrase set. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the phrase set to delete. Format: - * - * `projects/{project}/locations/{location}/phraseSets/{phrase_set}` - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for 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/v1p1beta1/adaptation.delete_phrase_set.js - * region_tag:speech_v1p1beta1_generated_Adaptation_DeletePhraseSet_async - */ + /** + * Delete a phrase set. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the phrase set to delete. Format: + * + * `projects/{project}/locations/{location}/phraseSets/{phrase_set}` + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for 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/v1p1beta1/adaptation.delete_phrase_set.js + * region_tag:speech_v1p1beta1_generated_Adaptation_DeletePhraseSet_async + */ deletePhraseSet( - request?: protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest, - options?: CallOptions): - Promise<[ - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.protobuf.IEmpty, + protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest | undefined, + {} | undefined, + ] + >; deletePhraseSet( - request: protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest, - options: CallOptions, - callback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest, + options: CallOptions, + callback: Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest + | null + | undefined, + {} | null | undefined + >, + ): void; deletePhraseSet( - request: protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest, - callback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest, + callback: Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest + | null + | undefined, + {} | null | undefined + >, + ): void; deletePhraseSet( - request?: protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest, - optionsOrCallback?: CallOptions|Callback< + request?: protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.protobuf.IEmpty, + protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('deletePhraseSet request %j', request); - const wrappedCallback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('deletePhraseSet response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.deletePhraseSet(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest|undefined, - {}|undefined - ]) => { - this._log.info('deletePhraseSet response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .deletePhraseSet(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.protobuf.IEmpty, + ( + | protos.google.cloud.speech.v1p1beta1.IDeletePhraseSetRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('deletePhraseSet response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Create a custom class. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent resource where this custom class will be created. - * Format: - * - * `projects/{project}/locations/{location}/customClasses` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {string} request.customClassId - * Required. The ID to use for the custom class, which will become the final - * component of the custom class' resource name. - * - * This value should restrict to letters, numbers, and hyphens, with the first - * character a letter, the last a letter or a number, and be 4-63 characters. - * @param {google.cloud.speech.v1p1beta1.CustomClass} request.customClass - * Required. The custom class 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.speech.v1p1beta1.CustomClass|CustomClass}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1p1beta1/adaptation.create_custom_class.js - * region_tag:speech_v1p1beta1_generated_Adaptation_CreateCustomClass_async - */ + /** + * Create a custom class. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The parent resource where this custom class will be created. + * Format: + * + * `projects/{project}/locations/{location}/customClasses` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {string} request.customClassId + * Required. The ID to use for the custom class, which will become the final + * component of the custom class' resource name. + * + * This value should restrict to letters, numbers, and hyphens, with the first + * character a letter, the last a letter or a number, and be 4-63 characters. + * @param {google.cloud.speech.v1p1beta1.CustomClass} request.customClass + * Required. The custom class 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.speech.v1p1beta1.CustomClass|CustomClass}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1p1beta1/adaptation.create_custom_class.js + * region_tag:speech_v1p1beta1_generated_Adaptation_CreateCustomClass_async + */ createCustomClass( - request?: protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v1p1beta1.ICustomClass, + ( + | protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest + | undefined + ), + {} | undefined, + ] + >; createCustomClass( - request: protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.speech.v1p1beta1.ICustomClass, + | protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + ): void; createCustomClass( - request: protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest, - callback: Callback< - protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest, + callback: Callback< + protos.google.cloud.speech.v1p1beta1.ICustomClass, + | protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + ): void; createCustomClass( - request?: protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.speech.v1p1beta1.ICustomClass, + | protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.speech.v1p1beta1.ICustomClass, + ( + | protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('createCustomClass request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.speech.v1p1beta1.ICustomClass, + | protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('createCustomClass response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.createCustomClass(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest|undefined, - {}|undefined - ]) => { - this._log.info('createCustomClass response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .createCustomClass(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.speech.v1p1beta1.ICustomClass, + ( + | protos.google.cloud.speech.v1p1beta1.ICreateCustomClassRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('createCustomClass response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails 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 a custom class. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the custom class to retrieve. Format: - * - * `projects/{project}/locations/{location}/customClasses/{custom_class}` - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.speech.v1p1beta1.CustomClass|CustomClass}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1p1beta1/adaptation.get_custom_class.js - * region_tag:speech_v1p1beta1_generated_Adaptation_GetCustomClass_async - */ + /** + * Get a custom class. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the custom class to retrieve. Format: + * + * `projects/{project}/locations/{location}/customClasses/{custom_class}` + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.speech.v1p1beta1.CustomClass|CustomClass}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1p1beta1/adaptation.get_custom_class.js + * region_tag:speech_v1p1beta1_generated_Adaptation_GetCustomClass_async + */ getCustomClass( - request?: protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v1p1beta1.ICustomClass, + protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest | undefined, + {} | undefined, + ] + >; getCustomClass( - request: protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.speech.v1p1beta1.ICustomClass, + | protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getCustomClass( - request: protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest, - callback: Callback< - protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest, + callback: Callback< + protos.google.cloud.speech.v1p1beta1.ICustomClass, + | protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getCustomClass( - request?: protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.speech.v1p1beta1.ICustomClass, + | protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.speech.v1p1beta1.ICustomClass, + protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('getCustomClass request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.speech.v1p1beta1.ICustomClass, + | protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('getCustomClass response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.getCustomClass(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest|undefined, - {}|undefined - ]) => { - this._log.info('getCustomClass response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .getCustomClass(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.speech.v1p1beta1.ICustomClass, + ( + | protos.google.cloud.speech.v1p1beta1.IGetCustomClassRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('getCustomClass response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Update a custom class. - * - * @param {Object} request - * The request object that will be sent. - * @param {google.cloud.speech.v1p1beta1.CustomClass} request.customClass - * Required. The custom class to update. - * - * The custom class's `name` field is used to identify the custom class to be - * updated. Format: - * - * `projects/{project}/locations/{location}/customClasses/{custom_class}` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {google.protobuf.FieldMask} request.updateMask - * The list of fields to be updated. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.speech.v1p1beta1.CustomClass|CustomClass}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1p1beta1/adaptation.update_custom_class.js - * region_tag:speech_v1p1beta1_generated_Adaptation_UpdateCustomClass_async - */ + /** + * Update a custom class. + * + * @param {Object} request + * The request object that will be sent. + * @param {google.cloud.speech.v1p1beta1.CustomClass} request.customClass + * Required. The custom class to update. + * + * The custom class's `name` field is used to identify the custom class to be + * updated. Format: + * + * `projects/{project}/locations/{location}/customClasses/{custom_class}` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {google.protobuf.FieldMask} request.updateMask + * The list of fields to be updated. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.speech.v1p1beta1.CustomClass|CustomClass}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1p1beta1/adaptation.update_custom_class.js + * region_tag:speech_v1p1beta1_generated_Adaptation_UpdateCustomClass_async + */ updateCustomClass( - request?: protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v1p1beta1.ICustomClass, + ( + | protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest + | undefined + ), + {} | undefined, + ] + >; updateCustomClass( - request: protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.speech.v1p1beta1.ICustomClass, + | protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + ): void; updateCustomClass( - request: protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest, - callback: Callback< - protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest, + callback: Callback< + protos.google.cloud.speech.v1p1beta1.ICustomClass, + | protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + ): void; updateCustomClass( - request?: protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest, - optionsOrCallback?: CallOptions|Callback< + request?: protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< - protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.speech.v1p1beta1.ICustomClass, + | protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.speech.v1p1beta1.ICustomClass, + ( + | protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'custom_class.name': request.customClass!.name ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + 'custom_class.name': request.customClass!.name ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('updateCustomClass request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.speech.v1p1beta1.ICustomClass, + | protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('updateCustomClass response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.updateCustomClass(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.speech.v1p1beta1.ICustomClass, - protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest|undefined, - {}|undefined - ]) => { - this._log.info('updateCustomClass response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .updateCustomClass(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.speech.v1p1beta1.ICustomClass, + ( + | protos.google.cloud.speech.v1p1beta1.IUpdateCustomClassRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('updateCustomClass response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Delete a custom class. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the custom class to delete. Format: - * - * `projects/{project}/locations/{location}/customClasses/{custom_class}` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for 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/v1p1beta1/adaptation.delete_custom_class.js - * region_tag:speech_v1p1beta1_generated_Adaptation_DeleteCustomClass_async - */ + /** + * Delete a custom class. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the custom class to delete. Format: + * + * `projects/{project}/locations/{location}/customClasses/{custom_class}` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for 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/v1p1beta1/adaptation.delete_custom_class.js + * region_tag:speech_v1p1beta1_generated_Adaptation_DeleteCustomClass_async + */ deleteCustomClass( - request?: protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest, - options?: CallOptions): - Promise<[ - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.protobuf.IEmpty, + ( + | protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest + | undefined + ), + {} | undefined, + ] + >; deleteCustomClass( - request: protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest, - options: CallOptions, - callback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest, + options: CallOptions, + callback: Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + ): void; deleteCustomClass( - request: protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest, - callback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest, + callback: Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + ): void; deleteCustomClass( - request?: protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.protobuf.IEmpty, + ( + | protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('deleteCustomClass request %j', request); - const wrappedCallback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('deleteCustomClass response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.deleteCustomClass(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.protobuf.IEmpty, - protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest|undefined, - {}|undefined - ]) => { - this._log.info('deleteCustomClass response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .deleteCustomClass(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.protobuf.IEmpty, + ( + | protos.google.cloud.speech.v1p1beta1.IDeleteCustomClassRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('deleteCustomClass response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } - /** - * List phrase sets. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent, which owns this collection of phrase set. Format: - * - * `projects/{project}/locations/{location}` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {number} request.pageSize - * The maximum number of phrase sets to return. The service may return - * fewer than this value. If unspecified, at most 50 phrase sets will be - * returned. The maximum value is 1000; values above 1000 will be coerced to - * 1000. - * @param {string} request.pageToken - * A page token, received from a previous `ListPhraseSet` call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to `ListPhraseSet` must - * match the call that provided the page token. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.speech.v1p1beta1.PhraseSet|PhraseSet}. - * 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 `listPhraseSetAsync()` - * 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. - */ + /** + * List phrase sets. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The parent, which owns this collection of phrase set. Format: + * + * `projects/{project}/locations/{location}` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {number} request.pageSize + * The maximum number of phrase sets to return. The service may return + * fewer than this value. If unspecified, at most 50 phrase sets will be + * returned. The maximum value is 1000; values above 1000 will be coerced to + * 1000. + * @param {string} request.pageToken + * A page token, received from a previous `ListPhraseSet` call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to `ListPhraseSet` must + * match the call that provided the page token. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.speech.v1p1beta1.PhraseSet|PhraseSet}. + * 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 `listPhraseSetAsync()` + * 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. + */ listPhraseSet( - request?: protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v1p1beta1.IPhraseSet[], - protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest|null, - protos.google.cloud.speech.v1p1beta1.IListPhraseSetResponse - ]>; + request?: protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v1p1beta1.IPhraseSet[], + protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest | null, + protos.google.cloud.speech.v1p1beta1.IListPhraseSetResponse, + ] + >; listPhraseSet( - request: protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest, - options: CallOptions, - callback: PaginationCallback< - protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest, - protos.google.cloud.speech.v1p1beta1.IListPhraseSetResponse|null|undefined, - protos.google.cloud.speech.v1p1beta1.IPhraseSet>): void; + request: protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest, + | protos.google.cloud.speech.v1p1beta1.IListPhraseSetResponse + | null + | undefined, + protos.google.cloud.speech.v1p1beta1.IPhraseSet + >, + ): void; listPhraseSet( - request: protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest, - callback: PaginationCallback< - protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest, - protos.google.cloud.speech.v1p1beta1.IListPhraseSetResponse|null|undefined, - protos.google.cloud.speech.v1p1beta1.IPhraseSet>): void; + request: protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest, + callback: PaginationCallback< + protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest, + | protos.google.cloud.speech.v1p1beta1.IListPhraseSetResponse + | null + | undefined, + protos.google.cloud.speech.v1p1beta1.IPhraseSet + >, + ): void; listPhraseSet( - request?: protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest, - optionsOrCallback?: CallOptions|PaginationCallback< + request?: protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest, - protos.google.cloud.speech.v1p1beta1.IListPhraseSetResponse|null|undefined, - protos.google.cloud.speech.v1p1beta1.IPhraseSet>, - callback?: PaginationCallback< - protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest, - protos.google.cloud.speech.v1p1beta1.IListPhraseSetResponse|null|undefined, - protos.google.cloud.speech.v1p1beta1.IPhraseSet>): - Promise<[ - protos.google.cloud.speech.v1p1beta1.IPhraseSet[], - protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest|null, - protos.google.cloud.speech.v1p1beta1.IListPhraseSetResponse - ]>|void { + | protos.google.cloud.speech.v1p1beta1.IListPhraseSetResponse + | null + | undefined, + protos.google.cloud.speech.v1p1beta1.IPhraseSet + >, + callback?: PaginationCallback< + protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest, + | protos.google.cloud.speech.v1p1beta1.IListPhraseSetResponse + | null + | undefined, + protos.google.cloud.speech.v1p1beta1.IPhraseSet + >, + ): Promise< + [ + protos.google.cloud.speech.v1p1beta1.IPhraseSet[], + protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest | null, + protos.google.cloud.speech.v1p1beta1.IListPhraseSetResponse, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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.speech.v1p1beta1.IListPhraseSetRequest, - protos.google.cloud.speech.v1p1beta1.IListPhraseSetResponse|null|undefined, - protos.google.cloud.speech.v1p1beta1.IPhraseSet>|undefined = callback + const wrappedCallback: + | PaginationCallback< + protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest, + | protos.google.cloud.speech.v1p1beta1.IListPhraseSetResponse + | null + | undefined, + protos.google.cloud.speech.v1p1beta1.IPhraseSet + > + | undefined = callback ? (error, values, nextPageRequest, rawResponse) => { this._log.info('listPhraseSet values %j', values); callback!(error, values, nextPageRequest, rawResponse); // We verified callback above. @@ -1286,234 +1729,263 @@ export class AdaptationClient { this._log.info('listPhraseSet request %j', request); return this.innerApiCalls .listPhraseSet(request, options, wrappedCallback) - ?.then(([response, input, output]: [ - protos.google.cloud.speech.v1p1beta1.IPhraseSet[], - protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest|null, - protos.google.cloud.speech.v1p1beta1.IListPhraseSetResponse - ]) => { - this._log.info('listPhraseSet values %j', response); - return [response, input, output]; - }); + ?.then( + ([response, input, output]: [ + protos.google.cloud.speech.v1p1beta1.IPhraseSet[], + protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest | null, + protos.google.cloud.speech.v1p1beta1.IListPhraseSetResponse, + ]) => { + this._log.info('listPhraseSet values %j', response); + return [response, input, output]; + }, + ); } -/** - * Equivalent to `listPhraseSet`, but returns a NodeJS Stream object. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent, which owns this collection of phrase set. Format: - * - * `projects/{project}/locations/{location}` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {number} request.pageSize - * The maximum number of phrase sets to return. The service may return - * fewer than this value. If unspecified, at most 50 phrase sets will be - * returned. The maximum value is 1000; values above 1000 will be coerced to - * 1000. - * @param {string} request.pageToken - * A page token, received from a previous `ListPhraseSet` call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to `ListPhraseSet` must - * match the call that provided the page token. - * @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.speech.v1p1beta1.PhraseSet|PhraseSet} 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 `listPhraseSetAsync()` - * 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 `listPhraseSet`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The parent, which owns this collection of phrase set. Format: + * + * `projects/{project}/locations/{location}` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {number} request.pageSize + * The maximum number of phrase sets to return. The service may return + * fewer than this value. If unspecified, at most 50 phrase sets will be + * returned. The maximum value is 1000; values above 1000 will be coerced to + * 1000. + * @param {string} request.pageToken + * A page token, received from a previous `ListPhraseSet` call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to `ListPhraseSet` must + * match the call that provided the page token. + * @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.speech.v1p1beta1.PhraseSet|PhraseSet} 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 `listPhraseSetAsync()` + * 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. + */ listPhraseSetStream( - request?: protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest, - options?: CallOptions): - Transform{ + request?: protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest, + 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['listPhraseSet']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listPhraseSet stream %j', request); return this.descriptors.page.listPhraseSet.createStream( this.innerApiCalls.listPhraseSet as GaxCall, request, - callSettings + callSettings, ); } -/** - * Equivalent to `listPhraseSet`, 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, which owns this collection of phrase set. Format: - * - * `projects/{project}/locations/{location}` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {number} request.pageSize - * The maximum number of phrase sets to return. The service may return - * fewer than this value. If unspecified, at most 50 phrase sets will be - * returned. The maximum value is 1000; values above 1000 will be coerced to - * 1000. - * @param {string} request.pageToken - * A page token, received from a previous `ListPhraseSet` call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to `ListPhraseSet` must - * match the call that provided the page token. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Object} - * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. - * When you iterate the returned iterable, each element will be an object representing - * {@link protos.google.cloud.speech.v1p1beta1.PhraseSet|PhraseSet}. 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/v1p1beta1/adaptation.list_phrase_set.js - * region_tag:speech_v1p1beta1_generated_Adaptation_ListPhraseSet_async - */ + /** + * Equivalent to `listPhraseSet`, 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, which owns this collection of phrase set. Format: + * + * `projects/{project}/locations/{location}` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {number} request.pageSize + * The maximum number of phrase sets to return. The service may return + * fewer than this value. If unspecified, at most 50 phrase sets will be + * returned. The maximum value is 1000; values above 1000 will be coerced to + * 1000. + * @param {string} request.pageToken + * A page token, received from a previous `ListPhraseSet` call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to `ListPhraseSet` must + * match the call that provided the page token. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Object} + * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. + * When you iterate the returned iterable, each element will be an object representing + * {@link protos.google.cloud.speech.v1p1beta1.PhraseSet|PhraseSet}. 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/v1p1beta1/adaptation.list_phrase_set.js + * region_tag:speech_v1p1beta1_generated_Adaptation_ListPhraseSet_async + */ listPhraseSetAsync( - request?: protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest, - options?: CallOptions): - AsyncIterable{ + request?: protos.google.cloud.speech.v1p1beta1.IListPhraseSetRequest, + 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['listPhraseSet']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listPhraseSet iterate %j', request); return this.descriptors.page.listPhraseSet.asyncIterate( this.innerApiCalls['listPhraseSet'] as GaxCall, request as {}, - callSettings + callSettings, ) as AsyncIterable; } - /** - * List custom classes. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent, which owns this collection of custom classes. Format: - * - * `projects/{project}/locations/{location}/customClasses` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {number} request.pageSize - * The maximum number of custom classes to return. The service may return - * fewer than this value. If unspecified, at most 50 custom classes will be - * returned. The maximum value is 1000; values above 1000 will be coerced to - * 1000. - * @param {string} request.pageToken - * A page token, received from a previous `ListCustomClass` call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to `ListCustomClass` must - * match the call that provided the page token. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.speech.v1p1beta1.CustomClass|CustomClass}. - * 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 `listCustomClassesAsync()` - * 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. - */ + /** + * List custom classes. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The parent, which owns this collection of custom classes. Format: + * + * `projects/{project}/locations/{location}/customClasses` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {number} request.pageSize + * The maximum number of custom classes to return. The service may return + * fewer than this value. If unspecified, at most 50 custom classes will be + * returned. The maximum value is 1000; values above 1000 will be coerced to + * 1000. + * @param {string} request.pageToken + * A page token, received from a previous `ListCustomClass` call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to `ListCustomClass` must + * match the call that provided the page token. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.speech.v1p1beta1.CustomClass|CustomClass}. + * 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 `listCustomClassesAsync()` + * 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. + */ listCustomClasses( - request?: protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v1p1beta1.ICustomClass[], - protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest|null, - protos.google.cloud.speech.v1p1beta1.IListCustomClassesResponse - ]>; + request?: protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v1p1beta1.ICustomClass[], + protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest | null, + protos.google.cloud.speech.v1p1beta1.IListCustomClassesResponse, + ] + >; listCustomClasses( - request: protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest, - options: CallOptions, - callback: PaginationCallback< - protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest, - protos.google.cloud.speech.v1p1beta1.IListCustomClassesResponse|null|undefined, - protos.google.cloud.speech.v1p1beta1.ICustomClass>): void; + request: protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest, + | protos.google.cloud.speech.v1p1beta1.IListCustomClassesResponse + | null + | undefined, + protos.google.cloud.speech.v1p1beta1.ICustomClass + >, + ): void; listCustomClasses( - request: protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest, - callback: PaginationCallback< - protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest, - protos.google.cloud.speech.v1p1beta1.IListCustomClassesResponse|null|undefined, - protos.google.cloud.speech.v1p1beta1.ICustomClass>): void; + request: protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest, + callback: PaginationCallback< + protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest, + | protos.google.cloud.speech.v1p1beta1.IListCustomClassesResponse + | null + | undefined, + protos.google.cloud.speech.v1p1beta1.ICustomClass + >, + ): void; listCustomClasses( - request?: protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest, - optionsOrCallback?: CallOptions|PaginationCallback< + request?: protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest, - protos.google.cloud.speech.v1p1beta1.IListCustomClassesResponse|null|undefined, - protos.google.cloud.speech.v1p1beta1.ICustomClass>, - callback?: PaginationCallback< - protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest, - protos.google.cloud.speech.v1p1beta1.IListCustomClassesResponse|null|undefined, - protos.google.cloud.speech.v1p1beta1.ICustomClass>): - Promise<[ - protos.google.cloud.speech.v1p1beta1.ICustomClass[], - protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest|null, - protos.google.cloud.speech.v1p1beta1.IListCustomClassesResponse - ]>|void { + | protos.google.cloud.speech.v1p1beta1.IListCustomClassesResponse + | null + | undefined, + protos.google.cloud.speech.v1p1beta1.ICustomClass + >, + callback?: PaginationCallback< + protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest, + | protos.google.cloud.speech.v1p1beta1.IListCustomClassesResponse + | null + | undefined, + protos.google.cloud.speech.v1p1beta1.ICustomClass + >, + ): Promise< + [ + protos.google.cloud.speech.v1p1beta1.ICustomClass[], + protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest | null, + protos.google.cloud.speech.v1p1beta1.IListCustomClassesResponse, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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.speech.v1p1beta1.IListCustomClassesRequest, - protos.google.cloud.speech.v1p1beta1.IListCustomClassesResponse|null|undefined, - protos.google.cloud.speech.v1p1beta1.ICustomClass>|undefined = callback + const wrappedCallback: + | PaginationCallback< + protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest, + | protos.google.cloud.speech.v1p1beta1.IListCustomClassesResponse + | null + | undefined, + protos.google.cloud.speech.v1p1beta1.ICustomClass + > + | undefined = callback ? (error, values, nextPageRequest, rawResponse) => { this._log.info('listCustomClasses values %j', values); callback!(error, values, nextPageRequest, rawResponse); // We verified callback above. @@ -1522,136 +1994,140 @@ export class AdaptationClient { this._log.info('listCustomClasses request %j', request); return this.innerApiCalls .listCustomClasses(request, options, wrappedCallback) - ?.then(([response, input, output]: [ - protos.google.cloud.speech.v1p1beta1.ICustomClass[], - protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest|null, - protos.google.cloud.speech.v1p1beta1.IListCustomClassesResponse - ]) => { - this._log.info('listCustomClasses values %j', response); - return [response, input, output]; - }); + ?.then( + ([response, input, output]: [ + protos.google.cloud.speech.v1p1beta1.ICustomClass[], + protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest | null, + protos.google.cloud.speech.v1p1beta1.IListCustomClassesResponse, + ]) => { + this._log.info('listCustomClasses values %j', response); + return [response, input, output]; + }, + ); } -/** - * Equivalent to `listCustomClasses`, but returns a NodeJS Stream object. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The parent, which owns this collection of custom classes. Format: - * - * `projects/{project}/locations/{location}/customClasses` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {number} request.pageSize - * The maximum number of custom classes to return. The service may return - * fewer than this value. If unspecified, at most 50 custom classes will be - * returned. The maximum value is 1000; values above 1000 will be coerced to - * 1000. - * @param {string} request.pageToken - * A page token, received from a previous `ListCustomClass` call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to `ListCustomClass` must - * match the call that provided the page token. - * @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.speech.v1p1beta1.CustomClass|CustomClass} 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 `listCustomClassesAsync()` - * 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 `listCustomClasses`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The parent, which owns this collection of custom classes. Format: + * + * `projects/{project}/locations/{location}/customClasses` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {number} request.pageSize + * The maximum number of custom classes to return. The service may return + * fewer than this value. If unspecified, at most 50 custom classes will be + * returned. The maximum value is 1000; values above 1000 will be coerced to + * 1000. + * @param {string} request.pageToken + * A page token, received from a previous `ListCustomClass` call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to `ListCustomClass` must + * match the call that provided the page token. + * @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.speech.v1p1beta1.CustomClass|CustomClass} 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 `listCustomClassesAsync()` + * 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. + */ listCustomClassesStream( - request?: protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest, - options?: CallOptions): - Transform{ + request?: protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest, + 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['listCustomClasses']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listCustomClasses stream %j', request); return this.descriptors.page.listCustomClasses.createStream( this.innerApiCalls.listCustomClasses as GaxCall, request, - callSettings + callSettings, ); } -/** - * Equivalent to `listCustomClasses`, 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, which owns this collection of custom classes. Format: - * - * `projects/{project}/locations/{location}/customClasses` - * - * Speech-to-Text supports three locations: `global`, `us` (US North America), - * and `eu` (Europe). If you are calling the `speech.googleapis.com` - * endpoint, use the `global` location. To specify a region, use a - * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) - * with matching `us` or `eu` location value. - * @param {number} request.pageSize - * The maximum number of custom classes to return. The service may return - * fewer than this value. If unspecified, at most 50 custom classes will be - * returned. The maximum value is 1000; values above 1000 will be coerced to - * 1000. - * @param {string} request.pageToken - * A page token, received from a previous `ListCustomClass` call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to `ListCustomClass` must - * match the call that provided the page token. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Object} - * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. - * When you iterate the returned iterable, each element will be an object representing - * {@link protos.google.cloud.speech.v1p1beta1.CustomClass|CustomClass}. 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/v1p1beta1/adaptation.list_custom_classes.js - * region_tag:speech_v1p1beta1_generated_Adaptation_ListCustomClasses_async - */ + /** + * Equivalent to `listCustomClasses`, 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, which owns this collection of custom classes. Format: + * + * `projects/{project}/locations/{location}/customClasses` + * + * Speech-to-Text supports three locations: `global`, `us` (US North America), + * and `eu` (Europe). If you are calling the `speech.googleapis.com` + * endpoint, use the `global` location. To specify a region, use a + * [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) + * with matching `us` or `eu` location value. + * @param {number} request.pageSize + * The maximum number of custom classes to return. The service may return + * fewer than this value. If unspecified, at most 50 custom classes will be + * returned. The maximum value is 1000; values above 1000 will be coerced to + * 1000. + * @param {string} request.pageToken + * A page token, received from a previous `ListCustomClass` call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to `ListCustomClass` must + * match the call that provided the page token. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Object} + * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. + * When you iterate the returned iterable, each element will be an object representing + * {@link protos.google.cloud.speech.v1p1beta1.CustomClass|CustomClass}. 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/v1p1beta1/adaptation.list_custom_classes.js + * region_tag:speech_v1p1beta1_generated_Adaptation_ListCustomClasses_async + */ listCustomClassesAsync( - request?: protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest, - options?: CallOptions): - AsyncIterable{ + request?: protos.google.cloud.speech.v1p1beta1.IListCustomClassesRequest, + 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['listCustomClasses']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listCustomClasses iterate %j', request); return this.descriptors.page.listCustomClasses.asyncIterate( this.innerApiCalls['listCustomClasses'] as GaxCall, request as {}, - callSettings + callSettings, ) as AsyncIterable; } // -------------------- @@ -1666,7 +2142,7 @@ export class AdaptationClient { * @param {string} custom_class * @returns {string} Resource name string. */ - customClassPath(project:string,location:string,customClass:string) { + customClassPath(project: string, location: string, customClass: string) { return this.pathTemplates.customClassPathTemplate.render({ project: project, location: location, @@ -1682,7 +2158,8 @@ export class AdaptationClient { * @returns {string} A string representing the project. */ matchProjectFromCustomClassName(customClassName: string) { - return this.pathTemplates.customClassPathTemplate.match(customClassName).project; + return this.pathTemplates.customClassPathTemplate.match(customClassName) + .project; } /** @@ -1693,7 +2170,8 @@ export class AdaptationClient { * @returns {string} A string representing the location. */ matchLocationFromCustomClassName(customClassName: string) { - return this.pathTemplates.customClassPathTemplate.match(customClassName).location; + return this.pathTemplates.customClassPathTemplate.match(customClassName) + .location; } /** @@ -1704,7 +2182,8 @@ export class AdaptationClient { * @returns {string} A string representing the custom_class. */ matchCustomClassFromCustomClassName(customClassName: string) { - return this.pathTemplates.customClassPathTemplate.match(customClassName).custom_class; + return this.pathTemplates.customClassPathTemplate.match(customClassName) + .custom_class; } /** @@ -1714,7 +2193,7 @@ export class AdaptationClient { * @param {string} location * @returns {string} Resource name string. */ - locationPath(project:string,location:string) { + locationPath(project: string, location: string) { return this.pathTemplates.locationPathTemplate.render({ project: project, location: location, @@ -1751,7 +2230,7 @@ export class AdaptationClient { * @param {string} phrase_set * @returns {string} Resource name string. */ - phraseSetPath(project:string,location:string,phraseSet:string) { + phraseSetPath(project: string, location: string, phraseSet: string) { return this.pathTemplates.phraseSetPathTemplate.render({ project: project, location: location, @@ -1767,7 +2246,8 @@ export class AdaptationClient { * @returns {string} A string representing the project. */ matchProjectFromPhraseSetName(phraseSetName: string) { - return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName).project; + return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName) + .project; } /** @@ -1778,7 +2258,8 @@ export class AdaptationClient { * @returns {string} A string representing the location. */ matchLocationFromPhraseSetName(phraseSetName: string) { - return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName).location; + return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName) + .location; } /** @@ -1789,7 +2270,8 @@ export class AdaptationClient { * @returns {string} A string representing the phrase_set. */ matchPhraseSetFromPhraseSetName(phraseSetName: string) { - return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName).phrase_set; + return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName) + .phrase_set; } /** @@ -1798,7 +2280,7 @@ export class AdaptationClient { * @param {string} project * @returns {string} Resource name string. */ - projectPath(project:string) { + projectPath(project: string) { return this.pathTemplates.projectPathTemplate.render({ project: project, }); @@ -1823,7 +2305,7 @@ export class AdaptationClient { */ close(): Promise { if (this.adaptationStub && !this._terminated) { - return this.adaptationStub.then(stub => { + return this.adaptationStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); @@ -1831,4 +2313,4 @@ export class AdaptationClient { } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-speech/src/v1p1beta1/index.ts b/packages/google-cloud-speech/src/v1p1beta1/index.ts index f638f480e0a0..6ccf0c8b2f19 100644 --- a/packages/google-cloud-speech/src/v1p1beta1/index.ts +++ b/packages/google-cloud-speech/src/v1p1beta1/index.ts @@ -16,5 +16,5 @@ // ** https://github.com/googleapis/gapic-generator-typescript ** // ** All changes to this file may be overwritten. ** -export {AdaptationClient} from './adaptation_client'; -export {SpeechClient} from './speech_client'; +export { AdaptationClient } from './adaptation_client'; +export { SpeechClient } from './speech_client'; diff --git a/packages/google-cloud-speech/src/v1p1beta1/speech_client.ts b/packages/google-cloud-speech/src/v1p1beta1/speech_client.ts index c4d7d58495d4..7573726dc0b0 100644 --- a/packages/google-cloud-speech/src/v1p1beta1/speech_client.ts +++ b/packages/google-cloud-speech/src/v1p1beta1/speech_client.ts @@ -18,11 +18,18 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, GrpcClientOptions, LROperation} from 'google-gax'; -import {PassThrough} from 'stream'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + GrpcClientOptions, + LROperation, +} from 'google-gax'; +import { PassThrough } from 'stream'; import * as protos from '../../protos/protos'; import jsonProtos = require('../../protos/protos.json'); -import {loggingUtils as logging, decodeAnyProtosInArray} from 'google-gax'; +import { loggingUtils as logging, decodeAnyProtosInArray } from 'google-gax'; /** * Client JSON configuration object, loaded from @@ -44,7 +51,7 @@ export class SpeechClient { 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('speech'); @@ -57,10 +64,10 @@ export class SpeechClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; - pathTemplates: {[name: string]: gax.PathTemplate}; + innerApiCalls: { [name: string]: Function }; + pathTemplates: { [name: string]: gax.PathTemplate }; operationsClient: gax.OperationsClient; - speechStub?: Promise<{[name: string]: Function}>; + speechStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SpeechClient. @@ -101,21 +108,42 @@ export class SpeechClient { * const client = new SpeechClient({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 SpeechClient; - 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 = 'speech.' + 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 SpeechClient { 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,10 +182,7 @@ export class SpeechClient { } // 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 { @@ -179,17 +204,21 @@ export class SpeechClient { // Create useful helper objects for these. this.pathTemplates = { customClassPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/customClasses/{custom_class}' + 'projects/{project}/locations/{location}/customClasses/{custom_class}', ), phraseSetPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/phraseSets/{phrase_set}' + 'projects/{project}/locations/{location}/phraseSets/{phrase_set}', ), }; // Some of the methods on this service provide streaming responses. // Provide descriptors for these. this.descriptors.stream = { - streamingRecognize: new this._gaxModule.StreamDescriptor(this._gaxModule.StreamType.BIDI_STREAMING, !!opts.fallback, !!opts.gaxServerStreamingRetries) + streamingRecognize: new this._gaxModule.StreamDescriptor( + this._gaxModule.StreamType.BIDI_STREAMING, + !!opts.fallback, + !!opts.gaxServerStreamingRetries, + ), }; const protoFilesRoot = this._gaxModule.protobufFromJSON(jsonProtos); @@ -198,29 +227,46 @@ export class SpeechClient { // rather than holding a request open. const lroOptions: GrpcClientOptions = { auth: this.auth, - grpc: 'grpc' in this._gaxGrpc ? this._gaxGrpc.grpc : undefined + grpc: 'grpc' in this._gaxGrpc ? this._gaxGrpc.grpc : undefined, }; if (opts.fallback) { lroOptions.protoJson = protoFilesRoot; - lroOptions.httpRules = [{selector: 'google.longrunning.Operations.GetOperation',get: '/v1p1beta1/operations/{name=**}',},{selector: 'google.longrunning.Operations.ListOperations',get: '/v1p1beta1/operations',}]; + lroOptions.httpRules = [ + { + selector: 'google.longrunning.Operations.GetOperation', + get: '/v1p1beta1/operations/{name=**}', + }, + { + selector: 'google.longrunning.Operations.ListOperations', + get: '/v1p1beta1/operations', + }, + ]; } - this.operationsClient = this._gaxModule.lro(lroOptions).operationsClient(opts); + this.operationsClient = this._gaxModule + .lro(lroOptions) + .operationsClient(opts); const longRunningRecognizeResponse = protoFilesRoot.lookup( - '.google.cloud.speech.v1p1beta1.LongRunningRecognizeResponse') as gax.protobuf.Type; + '.google.cloud.speech.v1p1beta1.LongRunningRecognizeResponse', + ) as gax.protobuf.Type; const longRunningRecognizeMetadata = protoFilesRoot.lookup( - '.google.cloud.speech.v1p1beta1.LongRunningRecognizeMetadata') as gax.protobuf.Type; + '.google.cloud.speech.v1p1beta1.LongRunningRecognizeMetadata', + ) as gax.protobuf.Type; this.descriptors.longrunning = { longRunningRecognize: new this._gaxModule.LongrunningDescriptor( this.operationsClient, longRunningRecognizeResponse.decode.bind(longRunningRecognizeResponse), - longRunningRecognizeMetadata.decode.bind(longRunningRecognizeMetadata)) + longRunningRecognizeMetadata.decode.bind(longRunningRecognizeMetadata), + ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.speech.v1p1beta1.Speech', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.speech.v1p1beta1.Speech', + 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 @@ -251,35 +297,49 @@ export class SpeechClient { // Put together the "service stub" for // google.cloud.speech.v1p1beta1.Speech. this.speechStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.speech.v1p1beta1.Speech') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.speech.v1p1beta1.Speech', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.speech.v1p1beta1.Speech, - 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 speechStubMethods = - ['recognize', 'longRunningRecognize', 'streamingRecognize']; + const speechStubMethods = [ + 'recognize', + 'longRunningRecognize', + 'streamingRecognize', + ]; for (const methodName of speechStubMethods) { const callPromise = this.speechStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - if (methodName in this.descriptors.stream) { - const stream = new PassThrough({objectMode: true}); - setImmediate(() => { - stream.emit('error', new this._gaxModule.GoogleError('The client has already been closed.')); - }); - return stream; + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + if (methodName in this.descriptors.stream) { + const stream = new PassThrough({ objectMode: true }); + setImmediate(() => { + stream.emit( + 'error', + new this._gaxModule.GoogleError( + 'The client has already been closed.', + ), + ); + }); + return stream; + } + return Promise.reject('The client has already been closed.'); } - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); const descriptor = this.descriptors.stream[methodName] || @@ -289,7 +349,7 @@ export class SpeechClient { callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -304,8 +364,14 @@ export class SpeechClient { * @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 'speech.googleapis.com'; } @@ -316,8 +382,14 @@ export class SpeechClient { * @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 'speech.googleapis.com'; } @@ -348,9 +420,7 @@ export class SpeechClient { * @returns {string[]} List of default scopes. */ static get scopes() { - return [ - 'https://www.googleapis.com/auth/cloud-platform' - ]; + return ['https://www.googleapis.com/auth/cloud-platform']; } getProjectId(): Promise; @@ -359,8 +429,9 @@ export class SpeechClient { * 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; @@ -371,236 +442,334 @@ export class SpeechClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Performs synchronous speech recognition: receive results after all audio - * has been sent and processed. - * - * @param {Object} request - * The request object that will be sent. - * @param {google.cloud.speech.v1p1beta1.RecognitionConfig} request.config - * Required. Provides information to the recognizer that specifies how to - * process the request. - * @param {google.cloud.speech.v1p1beta1.RecognitionAudio} request.audio - * Required. The audio data to be recognized. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.speech.v1p1beta1.RecognizeResponse|RecognizeResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1p1beta1/speech.recognize.js - * region_tag:speech_v1p1beta1_generated_Speech_Recognize_async - */ + /** + * Performs synchronous speech recognition: receive results after all audio + * has been sent and processed. + * + * @param {Object} request + * The request object that will be sent. + * @param {google.cloud.speech.v1p1beta1.RecognitionConfig} request.config + * Required. Provides information to the recognizer that specifies how to + * process the request. + * @param {google.cloud.speech.v1p1beta1.RecognitionAudio} request.audio + * Required. The audio data to be recognized. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.speech.v1p1beta1.RecognizeResponse|RecognizeResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1p1beta1/speech.recognize.js + * region_tag:speech_v1p1beta1_generated_Speech_Recognize_async + */ recognize( - request?: protos.google.cloud.speech.v1p1beta1.IRecognizeRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v1p1beta1.IRecognizeResponse, - protos.google.cloud.speech.v1p1beta1.IRecognizeRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v1p1beta1.IRecognizeRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v1p1beta1.IRecognizeResponse, + protos.google.cloud.speech.v1p1beta1.IRecognizeRequest | undefined, + {} | undefined, + ] + >; recognize( - request: protos.google.cloud.speech.v1p1beta1.IRecognizeRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.speech.v1p1beta1.IRecognizeResponse, - protos.google.cloud.speech.v1p1beta1.IRecognizeRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1p1beta1.IRecognizeRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.speech.v1p1beta1.IRecognizeResponse, + protos.google.cloud.speech.v1p1beta1.IRecognizeRequest | null | undefined, + {} | null | undefined + >, + ): void; recognize( - request: protos.google.cloud.speech.v1p1beta1.IRecognizeRequest, - callback: Callback< - protos.google.cloud.speech.v1p1beta1.IRecognizeResponse, - protos.google.cloud.speech.v1p1beta1.IRecognizeRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1p1beta1.IRecognizeRequest, + callback: Callback< + protos.google.cloud.speech.v1p1beta1.IRecognizeResponse, + protos.google.cloud.speech.v1p1beta1.IRecognizeRequest | null | undefined, + {} | null | undefined + >, + ): void; recognize( - request?: protos.google.cloud.speech.v1p1beta1.IRecognizeRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.speech.v1p1beta1.IRecognizeResponse, - protos.google.cloud.speech.v1p1beta1.IRecognizeRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.speech.v1p1beta1.IRecognizeRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.speech.v1p1beta1.IRecognizeResponse, - protos.google.cloud.speech.v1p1beta1.IRecognizeRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.speech.v1p1beta1.IRecognizeResponse, - protos.google.cloud.speech.v1p1beta1.IRecognizeRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.speech.v1p1beta1.IRecognizeRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.speech.v1p1beta1.IRecognizeResponse, + protos.google.cloud.speech.v1p1beta1.IRecognizeRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.speech.v1p1beta1.IRecognizeResponse, + protos.google.cloud.speech.v1p1beta1.IRecognizeRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === '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('recognize request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.speech.v1p1beta1.IRecognizeResponse, - protos.google.cloud.speech.v1p1beta1.IRecognizeRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.speech.v1p1beta1.IRecognizeResponse, + | protos.google.cloud.speech.v1p1beta1.IRecognizeRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('recognize response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.recognize(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.speech.v1p1beta1.IRecognizeResponse, - protos.google.cloud.speech.v1p1beta1.IRecognizeRequest|undefined, - {}|undefined - ]) => { - this._log.info('recognize response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .recognize(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.speech.v1p1beta1.IRecognizeResponse, + protos.google.cloud.speech.v1p1beta1.IRecognizeRequest | undefined, + {} | undefined, + ]) => { + this._log.info('recognize response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Performs bidirectional streaming speech recognition: receive results while - * sending audio. This method is only available via the gRPC API (not REST). - * - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Stream} - * An object stream which is both readable and writable. It accepts objects - * representing {@link protos.google.cloud.speech.v1p1beta1.StreamingRecognizeRequest|StreamingRecognizeRequest} for write() method, and - * will emit objects representing {@link protos.google.cloud.speech.v1p1beta1.StreamingRecognizeResponse|StreamingRecognizeResponse} on 'data' event asynchronously. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#bi-directional-streaming | documentation } - * for more details and examples. - * @example include:samples/generated/v1p1beta1/speech.streaming_recognize.js - * region_tag:speech_v1p1beta1_generated_Speech_StreamingRecognize_async - */ - _streamingRecognize( - options?: CallOptions): - gax.CancellableStream { - this.initialize().catch(err => {throw err}); + /** + * Performs bidirectional streaming speech recognition: receive results while + * sending audio. This method is only available via the gRPC API (not REST). + * + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Stream} + * An object stream which is both readable and writable. It accepts objects + * representing {@link protos.google.cloud.speech.v1p1beta1.StreamingRecognizeRequest|StreamingRecognizeRequest} for write() method, and + * will emit objects representing {@link protos.google.cloud.speech.v1p1beta1.StreamingRecognizeResponse|StreamingRecognizeResponse} on 'data' event asynchronously. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#bi-directional-streaming | documentation } + * for more details and examples. + * @example include:samples/generated/v1p1beta1/speech.streaming_recognize.js + * region_tag:speech_v1p1beta1_generated_Speech_StreamingRecognize_async + */ + _streamingRecognize(options?: CallOptions): gax.CancellableStream { + this.initialize().catch((err) => { + throw err; + }); this._log.info('streamingRecognize stream %j', options); return this.innerApiCalls.streamingRecognize(null, options); } -/** - * Performs asynchronous speech recognition: receive results via the - * google.longrunning.Operations interface. Returns either an - * `Operation.error` or an `Operation.response` which contains - * a `LongRunningRecognizeResponse` message. - * For more information on asynchronous speech recognition, see the - * [how-to](https://cloud.google.com/speech-to-text/docs/async-recognize). - * - * @param {Object} request - * The request object that will be sent. - * @param {google.cloud.speech.v1p1beta1.RecognitionConfig} request.config - * Required. Provides information to the recognizer that specifies how to - * process the request. - * @param {google.cloud.speech.v1p1beta1.RecognitionAudio} request.audio - * Required. The audio data to be recognized. - * @param {google.cloud.speech.v1p1beta1.TranscriptOutputConfig} [request.outputConfig] - * Optional. Specifies an optional destination for the recognition results. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v1p1beta1/speech.long_running_recognize.js - * region_tag:speech_v1p1beta1_generated_Speech_LongRunningRecognize_async - */ + /** + * Performs asynchronous speech recognition: receive results via the + * google.longrunning.Operations interface. Returns either an + * `Operation.error` or an `Operation.response` which contains + * a `LongRunningRecognizeResponse` message. + * For more information on asynchronous speech recognition, see the + * [how-to](https://cloud.google.com/speech-to-text/docs/async-recognize). + * + * @param {Object} request + * The request object that will be sent. + * @param {google.cloud.speech.v1p1beta1.RecognitionConfig} request.config + * Required. Provides information to the recognizer that specifies how to + * process the request. + * @param {google.cloud.speech.v1p1beta1.RecognitionAudio} request.audio + * Required. The audio data to be recognized. + * @param {google.cloud.speech.v1p1beta1.TranscriptOutputConfig} [request.outputConfig] + * Optional. Specifies an optional destination for the recognition results. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1p1beta1/speech.long_running_recognize.js + * region_tag:speech_v1p1beta1_generated_Speech_LongRunningRecognize_async + */ longRunningRecognize( - request?: protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeRequest, + options?: CallOptions, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeResponse, + protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; longRunningRecognize( - request: protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeResponse, + protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; longRunningRecognize( - request: protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeRequest, + callback: Callback< + LROperation< + protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeResponse, + protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; longRunningRecognize( - request?: protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeRequest, - optionsOrCallback?: CallOptions|Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>, - callback?: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>|void { + request?: protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeResponse, + protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeResponse, + protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeResponse, + protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === '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}); - const wrappedCallback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>|undefined = callback + this.initialize().catch((err) => { + throw err; + }); + const wrappedCallback: + | Callback< + LROperation< + protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeResponse, + protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, rawResponse, _) => { this._log.info('longRunningRecognize response %j', rawResponse); callback!(error, response, rawResponse, _); // We verified callback above. } : undefined; this._log.info('longRunningRecognize request %j', request); - return this.innerApiCalls.longRunningRecognize(request, options, wrappedCallback) - ?.then(([response, rawResponse, _]: [ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]) => { - this._log.info('longRunningRecognize response %j', rawResponse); - return [response, rawResponse, _]; - }); + return this.innerApiCalls + .longRunningRecognize(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeResponse, + protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('longRunningRecognize response %j', rawResponse); + return [response, rawResponse, _]; + }, + ); } -/** - * Check the status of the long running operation returned by `longRunningRecognize()`. - * @param {String} name - * The operation name that will be passed. - * @returns {Promise} - The promise which resolves to an object. - * The decoded operation object has result and metadata field to get information from. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v1p1beta1/speech.long_running_recognize.js - * region_tag:speech_v1p1beta1_generated_Speech_LongRunningRecognize_async - */ - async checkLongRunningRecognizeProgress(name: string): Promise>{ + /** + * Check the status of the long running operation returned by `longRunningRecognize()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1p1beta1/speech.long_running_recognize.js + * region_tag:speech_v1p1beta1_generated_Speech_LongRunningRecognize_async + */ + async checkLongRunningRecognizeProgress( + name: string, + ): Promise< + LROperation< + protos.google.cloud.speech.v1p1beta1.LongRunningRecognizeResponse, + protos.google.cloud.speech.v1p1beta1.LongRunningRecognizeMetadata + > + > { this._log.info('longRunningRecognize long-running'); - const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest({name}); + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + { name }, + ); const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.longRunningRecognize, this._gaxModule.createDefaultBackoffSettings()); - return decodeOperation as LROperation; + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.longRunningRecognize, + this._gaxModule.createDefaultBackoffSettings(), + ); + return decodeOperation as LROperation< + protos.google.cloud.speech.v1p1beta1.LongRunningRecognizeResponse, + protos.google.cloud.speech.v1p1beta1.LongRunningRecognizeMetadata + >; } -/** + /** * Gets the latest state of a long-running operation. Clients can use this * method to poll the operation result at intervals as recommended by the API * service. @@ -643,22 +812,22 @@ export class SpeechClient { protos.google.longrunning.Operation, protos.google.longrunning.GetOperationRequest, {} | null | undefined - > + >, ): Promise<[protos.google.longrunning.Operation]> { - let options: gax.CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as gax.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 ?? '', - }); + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.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 ?? '', + }); return this.operationsClient.getOperation(request, options, callback); } /** @@ -693,15 +862,15 @@ export class SpeechClient { */ listOperationsAsync( request: protos.google.longrunning.ListOperationsRequest, - options?: gax.CallOptions + options?: gax.CallOptions, ): AsyncIterable { - 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 = 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 ?? '', + }); return this.operationsClient.listOperationsAsync(request, options); } /** @@ -735,7 +904,7 @@ export class SpeechClient { * await client.cancelOperation({name: ''}); * ``` */ - cancelOperation( + cancelOperation( request: protos.google.longrunning.CancelOperationRequest, optionsOrCallback?: | gax.CallOptions @@ -748,25 +917,24 @@ export class SpeechClient { protos.google.longrunning.CancelOperationRequest, protos.google.protobuf.Empty, {} | undefined | null - > + >, ): Promise { - let options: gax.CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as gax.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 ?? '', - }); + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.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 ?? '', + }); return this.operationsClient.cancelOperation(request, options, callback); } - /** * Deletes a long-running operation. This method indicates that the client is * no longer interested in the operation result. It does not cancel the @@ -805,22 +973,22 @@ export class SpeechClient { protos.google.protobuf.Empty, protos.google.longrunning.DeleteOperationRequest, {} | null | undefined - > + >, ): Promise { - let options: gax.CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as gax.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 ?? '', - }); + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.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 ?? '', + }); return this.operationsClient.deleteOperation(request, options, callback); } @@ -836,7 +1004,7 @@ export class SpeechClient { * @param {string} custom_class * @returns {string} Resource name string. */ - customClassPath(project:string,location:string,customClass:string) { + customClassPath(project: string, location: string, customClass: string) { return this.pathTemplates.customClassPathTemplate.render({ project: project, location: location, @@ -852,7 +1020,8 @@ export class SpeechClient { * @returns {string} A string representing the project. */ matchProjectFromCustomClassName(customClassName: string) { - return this.pathTemplates.customClassPathTemplate.match(customClassName).project; + return this.pathTemplates.customClassPathTemplate.match(customClassName) + .project; } /** @@ -863,7 +1032,8 @@ export class SpeechClient { * @returns {string} A string representing the location. */ matchLocationFromCustomClassName(customClassName: string) { - return this.pathTemplates.customClassPathTemplate.match(customClassName).location; + return this.pathTemplates.customClassPathTemplate.match(customClassName) + .location; } /** @@ -874,7 +1044,8 @@ export class SpeechClient { * @returns {string} A string representing the custom_class. */ matchCustomClassFromCustomClassName(customClassName: string) { - return this.pathTemplates.customClassPathTemplate.match(customClassName).custom_class; + return this.pathTemplates.customClassPathTemplate.match(customClassName) + .custom_class; } /** @@ -885,7 +1056,7 @@ export class SpeechClient { * @param {string} phrase_set * @returns {string} Resource name string. */ - phraseSetPath(project:string,location:string,phraseSet:string) { + phraseSetPath(project: string, location: string, phraseSet: string) { return this.pathTemplates.phraseSetPathTemplate.render({ project: project, location: location, @@ -901,7 +1072,8 @@ export class SpeechClient { * @returns {string} A string representing the project. */ matchProjectFromPhraseSetName(phraseSetName: string) { - return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName).project; + return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName) + .project; } /** @@ -912,7 +1084,8 @@ export class SpeechClient { * @returns {string} A string representing the location. */ matchLocationFromPhraseSetName(phraseSetName: string) { - return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName).location; + return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName) + .location; } /** @@ -923,7 +1096,8 @@ export class SpeechClient { * @returns {string} A string representing the phrase_set. */ matchPhraseSetFromPhraseSetName(phraseSetName: string) { - return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName).phrase_set; + return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName) + .phrase_set; } /** @@ -934,7 +1108,7 @@ export class SpeechClient { */ close(): Promise { if (this.speechStub && !this._terminated) { - return this.speechStub.then(stub => { + return this.speechStub.then((stub) => { this._log.info('ending gRPC channel'); this._terminated = true; stub.close(); @@ -944,6 +1118,7 @@ export class SpeechClient { return Promise.resolve(); } } + import {ImprovedStreamingClient} from '../helpers'; // eslint-disable-next-line @typescript-eslint/no-empty-interface export interface SpeechClient extends ImprovedStreamingClient {} diff --git a/packages/google-cloud-speech/src/v2/index.ts b/packages/google-cloud-speech/src/v2/index.ts index f6214bd82c8a..cfa376a32102 100644 --- a/packages/google-cloud-speech/src/v2/index.ts +++ b/packages/google-cloud-speech/src/v2/index.ts @@ -16,4 +16,4 @@ // ** https://github.com/googleapis/gapic-generator-typescript ** // ** All changes to this file may be overwritten. ** -export {SpeechClient} from './speech_client'; +export { SpeechClient } from './speech_client'; diff --git a/packages/google-cloud-speech/src/v2/speech_client.ts b/packages/google-cloud-speech/src/v2/speech_client.ts index e34f3f36ce07..ef2b559f69b8 100644 --- a/packages/google-cloud-speech/src/v2/speech_client.ts +++ b/packages/google-cloud-speech/src/v2/speech_client.ts @@ -18,11 +18,22 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, GrpcClientOptions, LROperation, PaginationCallback, GaxCall, LocationsClient, LocationProtos} from 'google-gax'; -import {Transform, PassThrough} from 'stream'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + GrpcClientOptions, + LROperation, + PaginationCallback, + GaxCall, + LocationsClient, + LocationProtos, +} from 'google-gax'; +import { Transform, PassThrough } 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 @@ -44,7 +55,7 @@ export class SpeechClient { 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('speech'); @@ -57,11 +68,11 @@ export class SpeechClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; + pathTemplates: { [name: string]: gax.PathTemplate }; operationsClient: gax.OperationsClient; - speechStub?: Promise<{[name: string]: Function}>; + speechStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of SpeechClient. @@ -102,21 +113,42 @@ export class SpeechClient { * const client = new SpeechClient({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 SpeechClient; - 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 = 'speech.' + 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; @@ -141,7 +173,7 @@ export class SpeechClient { 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; @@ -155,15 +187,11 @@ export class SpeechClient { } 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 { @@ -185,28 +213,28 @@ export class SpeechClient { // Create useful helper objects for these. this.pathTemplates = { configPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/config' + 'projects/{project}/locations/{location}/config', ), cryptoKeyPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}' + 'projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}', ), cryptoKeyVersionPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}' + 'projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}', ), customClassPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/customClasses/{custom_class}' + 'projects/{project}/locations/{location}/customClasses/{custom_class}', ), locationPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}' + 'projects/{project}/locations/{location}', ), phraseSetPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/phraseSets/{phrase_set}' + 'projects/{project}/locations/{location}/phraseSets/{phrase_set}', ), projectPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}' + 'projects/{project}', ), recognizerPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/recognizers/{recognizer}' + 'projects/{project}/locations/{location}/recognizers/{recognizer}', ), }; @@ -214,18 +242,31 @@ export class SpeechClient { // (e.g. 50 results at a time, with tokens to get subsequent // pages). Denote the keys used for pagination and results. this.descriptors.page = { - listRecognizers: - new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'recognizers'), - listCustomClasses: - new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'customClasses'), - listPhraseSets: - new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'phraseSets') + listRecognizers: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'recognizers', + ), + listCustomClasses: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'customClasses', + ), + listPhraseSets: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'phraseSets', + ), }; // Some of the methods on this service provide streaming responses. // Provide descriptors for these. this.descriptors.stream = { - streamingRecognize: new this._gaxModule.StreamDescriptor(this._gaxModule.StreamType.BIDI_STREAMING, !!opts.fallback, !!opts.gaxServerStreamingRetries) + streamingRecognize: new this._gaxModule.StreamDescriptor( + this._gaxModule.StreamType.BIDI_STREAMING, + !!opts.fallback, + !!opts.gaxServerStreamingRetries, + ), }; const protoFilesRoot = this._gaxModule.protobufFromJSON(jsonProtos); @@ -234,125 +275,195 @@ export class SpeechClient { // rather than holding a request open. const lroOptions: GrpcClientOptions = { auth: this.auth, - grpc: 'grpc' in this._gaxGrpc ? this._gaxGrpc.grpc : undefined + grpc: 'grpc' in this._gaxGrpc ? this._gaxGrpc.grpc : undefined, }; if (opts.fallback) { lroOptions.protoJson = protoFilesRoot; - lroOptions.httpRules = [{selector: 'google.cloud.location.Locations.GetLocation',get: '/v2/{name=projects/*/locations/*}',},{selector: 'google.cloud.location.Locations.ListLocations',get: '/v2/{name=projects/*}/locations',},{selector: 'google.longrunning.Operations.CancelOperation',post: '/v2/{name=projects/*/locations/*/operations/*}:cancel',body: '*',},{selector: 'google.longrunning.Operations.DeleteOperation',delete: '/v2/{name=projects/*/locations/*/operations/*}',},{selector: 'google.longrunning.Operations.GetOperation',get: '/v2/{name=projects/*/locations/*/operations/*}',},{selector: 'google.longrunning.Operations.ListOperations',get: '/v2/{name=projects/*/locations/*}/operations',}]; + lroOptions.httpRules = [ + { + selector: 'google.cloud.location.Locations.GetLocation', + get: '/v2/{name=projects/*/locations/*}', + }, + { + selector: 'google.cloud.location.Locations.ListLocations', + get: '/v2/{name=projects/*}/locations', + }, + { + selector: 'google.longrunning.Operations.CancelOperation', + post: '/v2/{name=projects/*/locations/*/operations/*}:cancel', + body: '*', + }, + { + selector: 'google.longrunning.Operations.DeleteOperation', + delete: '/v2/{name=projects/*/locations/*/operations/*}', + }, + { + selector: 'google.longrunning.Operations.GetOperation', + get: '/v2/{name=projects/*/locations/*/operations/*}', + }, + { + selector: 'google.longrunning.Operations.ListOperations', + get: '/v2/{name=projects/*/locations/*}/operations', + }, + ]; } - this.operationsClient = this._gaxModule.lro(lroOptions).operationsClient(opts); + this.operationsClient = this._gaxModule + .lro(lroOptions) + .operationsClient(opts); const createRecognizerResponse = protoFilesRoot.lookup( - '.google.cloud.speech.v2.Recognizer') as gax.protobuf.Type; + '.google.cloud.speech.v2.Recognizer', + ) as gax.protobuf.Type; const createRecognizerMetadata = protoFilesRoot.lookup( - '.google.cloud.speech.v2.OperationMetadata') as gax.protobuf.Type; + '.google.cloud.speech.v2.OperationMetadata', + ) as gax.protobuf.Type; const updateRecognizerResponse = protoFilesRoot.lookup( - '.google.cloud.speech.v2.Recognizer') as gax.protobuf.Type; + '.google.cloud.speech.v2.Recognizer', + ) as gax.protobuf.Type; const updateRecognizerMetadata = protoFilesRoot.lookup( - '.google.cloud.speech.v2.OperationMetadata') as gax.protobuf.Type; + '.google.cloud.speech.v2.OperationMetadata', + ) as gax.protobuf.Type; const deleteRecognizerResponse = protoFilesRoot.lookup( - '.google.cloud.speech.v2.Recognizer') as gax.protobuf.Type; + '.google.cloud.speech.v2.Recognizer', + ) as gax.protobuf.Type; const deleteRecognizerMetadata = protoFilesRoot.lookup( - '.google.cloud.speech.v2.OperationMetadata') as gax.protobuf.Type; + '.google.cloud.speech.v2.OperationMetadata', + ) as gax.protobuf.Type; const undeleteRecognizerResponse = protoFilesRoot.lookup( - '.google.cloud.speech.v2.Recognizer') as gax.protobuf.Type; + '.google.cloud.speech.v2.Recognizer', + ) as gax.protobuf.Type; const undeleteRecognizerMetadata = protoFilesRoot.lookup( - '.google.cloud.speech.v2.OperationMetadata') as gax.protobuf.Type; + '.google.cloud.speech.v2.OperationMetadata', + ) as gax.protobuf.Type; const batchRecognizeResponse = protoFilesRoot.lookup( - '.google.cloud.speech.v2.BatchRecognizeResponse') as gax.protobuf.Type; + '.google.cloud.speech.v2.BatchRecognizeResponse', + ) as gax.protobuf.Type; const batchRecognizeMetadata = protoFilesRoot.lookup( - '.google.cloud.speech.v2.OperationMetadata') as gax.protobuf.Type; + '.google.cloud.speech.v2.OperationMetadata', + ) as gax.protobuf.Type; const createCustomClassResponse = protoFilesRoot.lookup( - '.google.cloud.speech.v2.CustomClass') as gax.protobuf.Type; + '.google.cloud.speech.v2.CustomClass', + ) as gax.protobuf.Type; const createCustomClassMetadata = protoFilesRoot.lookup( - '.google.cloud.speech.v2.OperationMetadata') as gax.protobuf.Type; + '.google.cloud.speech.v2.OperationMetadata', + ) as gax.protobuf.Type; const updateCustomClassResponse = protoFilesRoot.lookup( - '.google.cloud.speech.v2.CustomClass') as gax.protobuf.Type; + '.google.cloud.speech.v2.CustomClass', + ) as gax.protobuf.Type; const updateCustomClassMetadata = protoFilesRoot.lookup( - '.google.cloud.speech.v2.OperationMetadata') as gax.protobuf.Type; + '.google.cloud.speech.v2.OperationMetadata', + ) as gax.protobuf.Type; const deleteCustomClassResponse = protoFilesRoot.lookup( - '.google.cloud.speech.v2.CustomClass') as gax.protobuf.Type; + '.google.cloud.speech.v2.CustomClass', + ) as gax.protobuf.Type; const deleteCustomClassMetadata = protoFilesRoot.lookup( - '.google.cloud.speech.v2.OperationMetadata') as gax.protobuf.Type; + '.google.cloud.speech.v2.OperationMetadata', + ) as gax.protobuf.Type; const undeleteCustomClassResponse = protoFilesRoot.lookup( - '.google.cloud.speech.v2.CustomClass') as gax.protobuf.Type; + '.google.cloud.speech.v2.CustomClass', + ) as gax.protobuf.Type; const undeleteCustomClassMetadata = protoFilesRoot.lookup( - '.google.cloud.speech.v2.OperationMetadata') as gax.protobuf.Type; + '.google.cloud.speech.v2.OperationMetadata', + ) as gax.protobuf.Type; const createPhraseSetResponse = protoFilesRoot.lookup( - '.google.cloud.speech.v2.PhraseSet') as gax.protobuf.Type; + '.google.cloud.speech.v2.PhraseSet', + ) as gax.protobuf.Type; const createPhraseSetMetadata = protoFilesRoot.lookup( - '.google.cloud.speech.v2.OperationMetadata') as gax.protobuf.Type; + '.google.cloud.speech.v2.OperationMetadata', + ) as gax.protobuf.Type; const updatePhraseSetResponse = protoFilesRoot.lookup( - '.google.cloud.speech.v2.PhraseSet') as gax.protobuf.Type; + '.google.cloud.speech.v2.PhraseSet', + ) as gax.protobuf.Type; const updatePhraseSetMetadata = protoFilesRoot.lookup( - '.google.cloud.speech.v2.OperationMetadata') as gax.protobuf.Type; + '.google.cloud.speech.v2.OperationMetadata', + ) as gax.protobuf.Type; const deletePhraseSetResponse = protoFilesRoot.lookup( - '.google.cloud.speech.v2.PhraseSet') as gax.protobuf.Type; + '.google.cloud.speech.v2.PhraseSet', + ) as gax.protobuf.Type; const deletePhraseSetMetadata = protoFilesRoot.lookup( - '.google.cloud.speech.v2.OperationMetadata') as gax.protobuf.Type; + '.google.cloud.speech.v2.OperationMetadata', + ) as gax.protobuf.Type; const undeletePhraseSetResponse = protoFilesRoot.lookup( - '.google.cloud.speech.v2.PhraseSet') as gax.protobuf.Type; + '.google.cloud.speech.v2.PhraseSet', + ) as gax.protobuf.Type; const undeletePhraseSetMetadata = protoFilesRoot.lookup( - '.google.cloud.speech.v2.OperationMetadata') as gax.protobuf.Type; + '.google.cloud.speech.v2.OperationMetadata', + ) as gax.protobuf.Type; this.descriptors.longrunning = { createRecognizer: new this._gaxModule.LongrunningDescriptor( this.operationsClient, createRecognizerResponse.decode.bind(createRecognizerResponse), - createRecognizerMetadata.decode.bind(createRecognizerMetadata)), + createRecognizerMetadata.decode.bind(createRecognizerMetadata), + ), updateRecognizer: new this._gaxModule.LongrunningDescriptor( this.operationsClient, updateRecognizerResponse.decode.bind(updateRecognizerResponse), - updateRecognizerMetadata.decode.bind(updateRecognizerMetadata)), + updateRecognizerMetadata.decode.bind(updateRecognizerMetadata), + ), deleteRecognizer: new this._gaxModule.LongrunningDescriptor( this.operationsClient, deleteRecognizerResponse.decode.bind(deleteRecognizerResponse), - deleteRecognizerMetadata.decode.bind(deleteRecognizerMetadata)), + deleteRecognizerMetadata.decode.bind(deleteRecognizerMetadata), + ), undeleteRecognizer: new this._gaxModule.LongrunningDescriptor( this.operationsClient, undeleteRecognizerResponse.decode.bind(undeleteRecognizerResponse), - undeleteRecognizerMetadata.decode.bind(undeleteRecognizerMetadata)), + undeleteRecognizerMetadata.decode.bind(undeleteRecognizerMetadata), + ), batchRecognize: new this._gaxModule.LongrunningDescriptor( this.operationsClient, batchRecognizeResponse.decode.bind(batchRecognizeResponse), - batchRecognizeMetadata.decode.bind(batchRecognizeMetadata)), + batchRecognizeMetadata.decode.bind(batchRecognizeMetadata), + ), createCustomClass: new this._gaxModule.LongrunningDescriptor( this.operationsClient, createCustomClassResponse.decode.bind(createCustomClassResponse), - createCustomClassMetadata.decode.bind(createCustomClassMetadata)), + createCustomClassMetadata.decode.bind(createCustomClassMetadata), + ), updateCustomClass: new this._gaxModule.LongrunningDescriptor( this.operationsClient, updateCustomClassResponse.decode.bind(updateCustomClassResponse), - updateCustomClassMetadata.decode.bind(updateCustomClassMetadata)), + updateCustomClassMetadata.decode.bind(updateCustomClassMetadata), + ), deleteCustomClass: new this._gaxModule.LongrunningDescriptor( this.operationsClient, deleteCustomClassResponse.decode.bind(deleteCustomClassResponse), - deleteCustomClassMetadata.decode.bind(deleteCustomClassMetadata)), + deleteCustomClassMetadata.decode.bind(deleteCustomClassMetadata), + ), undeleteCustomClass: new this._gaxModule.LongrunningDescriptor( this.operationsClient, undeleteCustomClassResponse.decode.bind(undeleteCustomClassResponse), - undeleteCustomClassMetadata.decode.bind(undeleteCustomClassMetadata)), + undeleteCustomClassMetadata.decode.bind(undeleteCustomClassMetadata), + ), createPhraseSet: new this._gaxModule.LongrunningDescriptor( this.operationsClient, createPhraseSetResponse.decode.bind(createPhraseSetResponse), - createPhraseSetMetadata.decode.bind(createPhraseSetMetadata)), + createPhraseSetMetadata.decode.bind(createPhraseSetMetadata), + ), updatePhraseSet: new this._gaxModule.LongrunningDescriptor( this.operationsClient, updatePhraseSetResponse.decode.bind(updatePhraseSetResponse), - updatePhraseSetMetadata.decode.bind(updatePhraseSetMetadata)), + updatePhraseSetMetadata.decode.bind(updatePhraseSetMetadata), + ), deletePhraseSet: new this._gaxModule.LongrunningDescriptor( this.operationsClient, deletePhraseSetResponse.decode.bind(deletePhraseSetResponse), - deletePhraseSetMetadata.decode.bind(deletePhraseSetMetadata)), + deletePhraseSetMetadata.decode.bind(deletePhraseSetMetadata), + ), undeletePhraseSet: new this._gaxModule.LongrunningDescriptor( this.operationsClient, undeletePhraseSetResponse.decode.bind(undeletePhraseSetResponse), - undeletePhraseSetMetadata.decode.bind(undeletePhraseSetMetadata)) + undeletePhraseSetMetadata.decode.bind(undeletePhraseSetMetadata), + ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.speech.v2.Speech', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.speech.v2.Speech', + 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 @@ -383,35 +494,69 @@ export class SpeechClient { // Put together the "service stub" for // google.cloud.speech.v2.Speech. this.speechStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.speech.v2.Speech') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.speech.v2.Speech', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.speech.v2.Speech, - 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 speechStubMethods = - ['createRecognizer', 'listRecognizers', 'getRecognizer', 'updateRecognizer', 'deleteRecognizer', 'undeleteRecognizer', 'recognize', 'streamingRecognize', 'batchRecognize', 'getConfig', 'updateConfig', 'createCustomClass', 'listCustomClasses', 'getCustomClass', 'updateCustomClass', 'deleteCustomClass', 'undeleteCustomClass', 'createPhraseSet', 'listPhraseSets', 'getPhraseSet', 'updatePhraseSet', 'deletePhraseSet', 'undeletePhraseSet']; + const speechStubMethods = [ + 'createRecognizer', + 'listRecognizers', + 'getRecognizer', + 'updateRecognizer', + 'deleteRecognizer', + 'undeleteRecognizer', + 'recognize', + 'streamingRecognize', + 'batchRecognize', + 'getConfig', + 'updateConfig', + 'createCustomClass', + 'listCustomClasses', + 'getCustomClass', + 'updateCustomClass', + 'deleteCustomClass', + 'undeleteCustomClass', + 'createPhraseSet', + 'listPhraseSets', + 'getPhraseSet', + 'updatePhraseSet', + 'deletePhraseSet', + 'undeletePhraseSet', + ]; for (const methodName of speechStubMethods) { const callPromise = this.speechStub.then( - stub => (...args: Array<{}>) => { - if (this._terminated) { - if (methodName in this.descriptors.stream) { - const stream = new PassThrough({objectMode: true}); - setImmediate(() => { - stream.emit('error', new this._gaxModule.GoogleError('The client has already been closed.')); - }); - return stream; + (stub) => + (...args: Array<{}>) => { + if (this._terminated) { + if (methodName in this.descriptors.stream) { + const stream = new PassThrough({ objectMode: true }); + setImmediate(() => { + stream.emit( + 'error', + new this._gaxModule.GoogleError( + 'The client has already been closed.', + ), + ); + }); + return stream; + } + return Promise.reject('The client has already been closed.'); } - return Promise.reject('The client has already been closed.'); - } - const func = stub[methodName]; - return func.apply(stub, args); - }, - (err: Error|null|undefined) => () => { + const func = stub[methodName]; + return func.apply(stub, args); + }, + (err: Error | null | undefined) => () => { throw err; - }); + }, + ); const descriptor = this.descriptors.page[methodName] || @@ -422,7 +567,7 @@ export class SpeechClient { callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -437,8 +582,14 @@ export class SpeechClient { * @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 'speech.googleapis.com'; } @@ -449,8 +600,14 @@ export class SpeechClient { * @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 'speech.googleapis.com'; } @@ -481,9 +638,7 @@ export class SpeechClient { * @returns {string[]} List of default scopes. */ static get scopes() { - return [ - 'https://www.googleapis.com/auth/cloud-platform' - ]; + return ['https://www.googleapis.com/auth/cloud-platform']; } getProjectId(): Promise; @@ -492,8 +647,9 @@ export class SpeechClient { * 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; @@ -504,2287 +660,3300 @@ export class SpeechClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Returns the requested - * {@link protos.google.cloud.speech.v2.Recognizer|Recognizer}. Fails with - * {@link protos.google.rpc.Code.NOT_FOUND|NOT_FOUND} if the requested Recognizer doesn't - * exist. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the Recognizer to retrieve. The expected format is - * `projects/{project}/locations/{location}/recognizers/{recognizer}`. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.speech.v2.Recognizer|Recognizer}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.get_recognizer.js - * region_tag:speech_v2_generated_Speech_GetRecognizer_async - */ + /** + * Returns the requested + * {@link protos.google.cloud.speech.v2.Recognizer|Recognizer}. Fails with + * {@link protos.google.rpc.Code.NOT_FOUND|NOT_FOUND} if the requested Recognizer doesn't + * exist. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the Recognizer to retrieve. The expected format is + * `projects/{project}/locations/{location}/recognizers/{recognizer}`. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.speech.v2.Recognizer|Recognizer}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.get_recognizer.js + * region_tag:speech_v2_generated_Speech_GetRecognizer_async + */ getRecognizer( - request?: protos.google.cloud.speech.v2.IGetRecognizerRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v2.IRecognizer, - protos.google.cloud.speech.v2.IGetRecognizerRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v2.IGetRecognizerRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IGetRecognizerRequest | undefined, + {} | undefined, + ] + >; getRecognizer( - request: protos.google.cloud.speech.v2.IGetRecognizerRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.speech.v2.IRecognizer, - protos.google.cloud.speech.v2.IGetRecognizerRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IGetRecognizerRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IGetRecognizerRequest | null | undefined, + {} | null | undefined + >, + ): void; getRecognizer( - request: protos.google.cloud.speech.v2.IGetRecognizerRequest, - callback: Callback< - protos.google.cloud.speech.v2.IRecognizer, - protos.google.cloud.speech.v2.IGetRecognizerRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IGetRecognizerRequest, + callback: Callback< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IGetRecognizerRequest | null | undefined, + {} | null | undefined + >, + ): void; getRecognizer( - request?: protos.google.cloud.speech.v2.IGetRecognizerRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.speech.v2.IRecognizer, - protos.google.cloud.speech.v2.IGetRecognizerRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.speech.v2.IGetRecognizerRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.speech.v2.IRecognizer, - protos.google.cloud.speech.v2.IGetRecognizerRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.speech.v2.IRecognizer, - protos.google.cloud.speech.v2.IGetRecognizerRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.speech.v2.IGetRecognizerRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IGetRecognizerRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IGetRecognizerRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('getRecognizer request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.speech.v2.IRecognizer, - protos.google.cloud.speech.v2.IGetRecognizerRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.speech.v2.IRecognizer, + | protos.google.cloud.speech.v2.IGetRecognizerRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('getRecognizer response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.getRecognizer(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.speech.v2.IRecognizer, - protos.google.cloud.speech.v2.IGetRecognizerRequest|undefined, - {}|undefined - ]) => { - this._log.info('getRecognizer response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .getRecognizer(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IGetRecognizerRequest | undefined, + {} | undefined, + ]) => { + this._log.info('getRecognizer response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Performs synchronous Speech recognition: receive results after all audio - * has been sent and processed. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.recognizer - * Required. The name of the Recognizer to use during recognition. The - * expected format is - * `projects/{project}/locations/{location}/recognizers/{recognizer}`. The - * {recognizer} segment may be set to `_` to use an empty implicit Recognizer. - * @param {google.cloud.speech.v2.RecognitionConfig} request.config - * Features and audio metadata to use for the Automatic Speech Recognition. - * This field in combination with the - * {@link protos.google.cloud.speech.v2.RecognizeRequest.config_mask|config_mask} field - * can be used to override parts of the - * {@link protos.google.cloud.speech.v2.Recognizer.default_recognition_config|default_recognition_config} - * of the Recognizer resource. - * @param {google.protobuf.FieldMask} request.configMask - * The list of fields in - * {@link protos.google.cloud.speech.v2.RecognizeRequest.config|config} that override the - * values in the - * {@link protos.google.cloud.speech.v2.Recognizer.default_recognition_config|default_recognition_config} - * of the recognizer during this recognition request. If no mask is provided, - * all non-default valued fields in - * {@link protos.google.cloud.speech.v2.RecognizeRequest.config|config} override the - * values in the recognizer for this recognition request. If a mask is - * provided, only the fields listed in the mask override the config in the - * recognizer for this recognition request. If a wildcard (`*`) is provided, - * {@link protos.google.cloud.speech.v2.RecognizeRequest.config|config} completely - * overrides and replaces the config in the recognizer for this recognition - * request. - * @param {Buffer} request.content - * The audio data bytes encoded as specified in - * {@link protos.google.cloud.speech.v2.RecognitionConfig|RecognitionConfig}. As - * with all bytes fields, proto buffers use a pure binary representation, - * whereas JSON representations use base64. - * @param {string} request.uri - * URI that points to a file that contains audio data bytes as specified in - * {@link protos.google.cloud.speech.v2.RecognitionConfig|RecognitionConfig}. The file - * must not be compressed (for example, gzip). Currently, only Google Cloud - * Storage URIs are supported, which must be specified in the following - * format: `gs://bucket_name/object_name` (other URI formats return - * {@link protos.google.rpc.Code.INVALID_ARGUMENT|INVALID_ARGUMENT}). For more - * information, see [Request - * URIs](https://cloud.google.com/storage/docs/reference-uris). - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.speech.v2.RecognizeResponse|RecognizeResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.recognize.js - * region_tag:speech_v2_generated_Speech_Recognize_async - */ + /** + * Performs synchronous Speech recognition: receive results after all audio + * has been sent and processed. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.recognizer + * Required. The name of the Recognizer to use during recognition. The + * expected format is + * `projects/{project}/locations/{location}/recognizers/{recognizer}`. The + * {recognizer} segment may be set to `_` to use an empty implicit Recognizer. + * @param {google.cloud.speech.v2.RecognitionConfig} request.config + * Features and audio metadata to use for the Automatic Speech Recognition. + * This field in combination with the + * {@link protos.google.cloud.speech.v2.RecognizeRequest.config_mask|config_mask} field + * can be used to override parts of the + * {@link protos.google.cloud.speech.v2.Recognizer.default_recognition_config|default_recognition_config} + * of the Recognizer resource. + * @param {google.protobuf.FieldMask} request.configMask + * The list of fields in + * {@link protos.google.cloud.speech.v2.RecognizeRequest.config|config} that override the + * values in the + * {@link protos.google.cloud.speech.v2.Recognizer.default_recognition_config|default_recognition_config} + * of the recognizer during this recognition request. If no mask is provided, + * all non-default valued fields in + * {@link protos.google.cloud.speech.v2.RecognizeRequest.config|config} override the + * values in the recognizer for this recognition request. If a mask is + * provided, only the fields listed in the mask override the config in the + * recognizer for this recognition request. If a wildcard (`*`) is provided, + * {@link protos.google.cloud.speech.v2.RecognizeRequest.config|config} completely + * overrides and replaces the config in the recognizer for this recognition + * request. + * @param {Buffer} request.content + * The audio data bytes encoded as specified in + * {@link protos.google.cloud.speech.v2.RecognitionConfig|RecognitionConfig}. As + * with all bytes fields, proto buffers use a pure binary representation, + * whereas JSON representations use base64. + * @param {string} request.uri + * URI that points to a file that contains audio data bytes as specified in + * {@link protos.google.cloud.speech.v2.RecognitionConfig|RecognitionConfig}. The file + * must not be compressed (for example, gzip). Currently, only Google Cloud + * Storage URIs are supported, which must be specified in the following + * format: `gs://bucket_name/object_name` (other URI formats return + * {@link protos.google.rpc.Code.INVALID_ARGUMENT|INVALID_ARGUMENT}). For more + * information, see [Request + * URIs](https://cloud.google.com/storage/docs/reference-uris). + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.speech.v2.RecognizeResponse|RecognizeResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.recognize.js + * region_tag:speech_v2_generated_Speech_Recognize_async + */ recognize( - request?: protos.google.cloud.speech.v2.IRecognizeRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v2.IRecognizeResponse, - protos.google.cloud.speech.v2.IRecognizeRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v2.IRecognizeRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v2.IRecognizeResponse, + protos.google.cloud.speech.v2.IRecognizeRequest | undefined, + {} | undefined, + ] + >; recognize( - request: protos.google.cloud.speech.v2.IRecognizeRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.speech.v2.IRecognizeResponse, - protos.google.cloud.speech.v2.IRecognizeRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IRecognizeRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.speech.v2.IRecognizeResponse, + protos.google.cloud.speech.v2.IRecognizeRequest | null | undefined, + {} | null | undefined + >, + ): void; recognize( - request: protos.google.cloud.speech.v2.IRecognizeRequest, - callback: Callback< - protos.google.cloud.speech.v2.IRecognizeResponse, - protos.google.cloud.speech.v2.IRecognizeRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IRecognizeRequest, + callback: Callback< + protos.google.cloud.speech.v2.IRecognizeResponse, + protos.google.cloud.speech.v2.IRecognizeRequest | null | undefined, + {} | null | undefined + >, + ): void; recognize( - request?: protos.google.cloud.speech.v2.IRecognizeRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.speech.v2.IRecognizeResponse, - protos.google.cloud.speech.v2.IRecognizeRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.speech.v2.IRecognizeRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.speech.v2.IRecognizeResponse, - protos.google.cloud.speech.v2.IRecognizeRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.speech.v2.IRecognizeResponse, - protos.google.cloud.speech.v2.IRecognizeRequest|undefined, {}|undefined - ]>|void { + protos.google.cloud.speech.v2.IRecognizeRequest | null | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.speech.v2.IRecognizeResponse, + protos.google.cloud.speech.v2.IRecognizeRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.speech.v2.IRecognizeResponse, + protos.google.cloud.speech.v2.IRecognizeRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'recognizer': request.recognizer ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + recognizer: request.recognizer ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('recognize request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.speech.v2.IRecognizeResponse, - protos.google.cloud.speech.v2.IRecognizeRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.speech.v2.IRecognizeResponse, + protos.google.cloud.speech.v2.IRecognizeRequest | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('recognize response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.recognize(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.speech.v2.IRecognizeResponse, - protos.google.cloud.speech.v2.IRecognizeRequest|undefined, - {}|undefined - ]) => { - this._log.info('recognize response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .recognize(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.speech.v2.IRecognizeResponse, + protos.google.cloud.speech.v2.IRecognizeRequest | undefined, + {} | undefined, + ]) => { + this._log.info('recognize response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Returns the requested {@link protos.google.cloud.speech.v2.Config|Config}. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the config to retrieve. There is exactly one config - * resource per project per location. The expected format is - * `projects/{project}/locations/{location}/config`. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.speech.v2.Config|Config}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.get_config.js - * region_tag:speech_v2_generated_Speech_GetConfig_async - */ + /** + * Returns the requested {@link protos.google.cloud.speech.v2.Config|Config}. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the config to retrieve. There is exactly one config + * resource per project per location. The expected format is + * `projects/{project}/locations/{location}/config`. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.speech.v2.Config|Config}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.get_config.js + * region_tag:speech_v2_generated_Speech_GetConfig_async + */ getConfig( - request?: protos.google.cloud.speech.v2.IGetConfigRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v2.IConfig, - protos.google.cloud.speech.v2.IGetConfigRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v2.IGetConfigRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v2.IConfig, + protos.google.cloud.speech.v2.IGetConfigRequest | undefined, + {} | undefined, + ] + >; getConfig( - request: protos.google.cloud.speech.v2.IGetConfigRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.speech.v2.IConfig, - protos.google.cloud.speech.v2.IGetConfigRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IGetConfigRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.speech.v2.IConfig, + protos.google.cloud.speech.v2.IGetConfigRequest | null | undefined, + {} | null | undefined + >, + ): void; getConfig( - request: protos.google.cloud.speech.v2.IGetConfigRequest, - callback: Callback< - protos.google.cloud.speech.v2.IConfig, - protos.google.cloud.speech.v2.IGetConfigRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IGetConfigRequest, + callback: Callback< + protos.google.cloud.speech.v2.IConfig, + protos.google.cloud.speech.v2.IGetConfigRequest | null | undefined, + {} | null | undefined + >, + ): void; getConfig( - request?: protos.google.cloud.speech.v2.IGetConfigRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.speech.v2.IConfig, - protos.google.cloud.speech.v2.IGetConfigRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.speech.v2.IGetConfigRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.speech.v2.IConfig, - protos.google.cloud.speech.v2.IGetConfigRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.speech.v2.IConfig, - protos.google.cloud.speech.v2.IGetConfigRequest|undefined, {}|undefined - ]>|void { + protos.google.cloud.speech.v2.IGetConfigRequest | null | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.speech.v2.IConfig, + protos.google.cloud.speech.v2.IGetConfigRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.speech.v2.IConfig, + protos.google.cloud.speech.v2.IGetConfigRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('getConfig request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.speech.v2.IConfig, - protos.google.cloud.speech.v2.IGetConfigRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.speech.v2.IConfig, + protos.google.cloud.speech.v2.IGetConfigRequest | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('getConfig response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.getConfig(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.speech.v2.IConfig, - protos.google.cloud.speech.v2.IGetConfigRequest|undefined, - {}|undefined - ]) => { - this._log.info('getConfig response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .getConfig(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.speech.v2.IConfig, + protos.google.cloud.speech.v2.IGetConfigRequest | undefined, + {} | undefined, + ]) => { + this._log.info('getConfig response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails 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 {@link protos.google.cloud.speech.v2.Config|Config}. - * - * @param {Object} request - * The request object that will be sent. - * @param {google.cloud.speech.v2.Config} request.config - * Required. The config to update. - * - * The config's `name` field is used to identify the config to be updated. - * The expected format is `projects/{project}/locations/{location}/config`. - * @param {google.protobuf.FieldMask} request.updateMask - * The list of fields to be updated. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.speech.v2.Config|Config}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.update_config.js - * region_tag:speech_v2_generated_Speech_UpdateConfig_async - */ + /** + * Updates the {@link protos.google.cloud.speech.v2.Config|Config}. + * + * @param {Object} request + * The request object that will be sent. + * @param {google.cloud.speech.v2.Config} request.config + * Required. The config to update. + * + * The config's `name` field is used to identify the config to be updated. + * The expected format is `projects/{project}/locations/{location}/config`. + * @param {google.protobuf.FieldMask} request.updateMask + * The list of fields to be updated. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.speech.v2.Config|Config}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.update_config.js + * region_tag:speech_v2_generated_Speech_UpdateConfig_async + */ updateConfig( - request?: protos.google.cloud.speech.v2.IUpdateConfigRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v2.IConfig, - protos.google.cloud.speech.v2.IUpdateConfigRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v2.IUpdateConfigRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v2.IConfig, + protos.google.cloud.speech.v2.IUpdateConfigRequest | undefined, + {} | undefined, + ] + >; updateConfig( - request: protos.google.cloud.speech.v2.IUpdateConfigRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.speech.v2.IConfig, - protos.google.cloud.speech.v2.IUpdateConfigRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IUpdateConfigRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.speech.v2.IConfig, + protos.google.cloud.speech.v2.IUpdateConfigRequest | null | undefined, + {} | null | undefined + >, + ): void; updateConfig( - request: protos.google.cloud.speech.v2.IUpdateConfigRequest, - callback: Callback< - protos.google.cloud.speech.v2.IConfig, - protos.google.cloud.speech.v2.IUpdateConfigRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IUpdateConfigRequest, + callback: Callback< + protos.google.cloud.speech.v2.IConfig, + protos.google.cloud.speech.v2.IUpdateConfigRequest | null | undefined, + {} | null | undefined + >, + ): void; updateConfig( - request?: protos.google.cloud.speech.v2.IUpdateConfigRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.speech.v2.IConfig, - protos.google.cloud.speech.v2.IUpdateConfigRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.speech.v2.IUpdateConfigRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.speech.v2.IConfig, - protos.google.cloud.speech.v2.IUpdateConfigRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.speech.v2.IConfig, - protos.google.cloud.speech.v2.IUpdateConfigRequest|undefined, {}|undefined - ]>|void { + protos.google.cloud.speech.v2.IUpdateConfigRequest | null | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.speech.v2.IConfig, + protos.google.cloud.speech.v2.IUpdateConfigRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.speech.v2.IConfig, + protos.google.cloud.speech.v2.IUpdateConfigRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'config.name': request.config!.name ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + 'config.name': request.config!.name ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('updateConfig request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.speech.v2.IConfig, - protos.google.cloud.speech.v2.IUpdateConfigRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.speech.v2.IConfig, + protos.google.cloud.speech.v2.IUpdateConfigRequest | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('updateConfig response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.updateConfig(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.speech.v2.IConfig, - protos.google.cloud.speech.v2.IUpdateConfigRequest|undefined, - {}|undefined - ]) => { - this._log.info('updateConfig response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .updateConfig(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.speech.v2.IConfig, + protos.google.cloud.speech.v2.IUpdateConfigRequest | undefined, + {} | undefined, + ]) => { + this._log.info('updateConfig response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Returns the requested - * {@link protos.google.cloud.speech.v2.CustomClass|CustomClass}. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the CustomClass to retrieve. The expected format is - * `projects/{project}/locations/{location}/customClasses/{custom_class}`. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.speech.v2.CustomClass|CustomClass}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.get_custom_class.js - * region_tag:speech_v2_generated_Speech_GetCustomClass_async - */ + /** + * Returns the requested + * {@link protos.google.cloud.speech.v2.CustomClass|CustomClass}. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the CustomClass to retrieve. The expected format is + * `projects/{project}/locations/{location}/customClasses/{custom_class}`. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.speech.v2.CustomClass|CustomClass}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.get_custom_class.js + * region_tag:speech_v2_generated_Speech_GetCustomClass_async + */ getCustomClass( - request?: protos.google.cloud.speech.v2.IGetCustomClassRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v2.ICustomClass, - protos.google.cloud.speech.v2.IGetCustomClassRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v2.IGetCustomClassRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IGetCustomClassRequest | undefined, + {} | undefined, + ] + >; getCustomClass( - request: protos.google.cloud.speech.v2.IGetCustomClassRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.speech.v2.ICustomClass, - protos.google.cloud.speech.v2.IGetCustomClassRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IGetCustomClassRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IGetCustomClassRequest | null | undefined, + {} | null | undefined + >, + ): void; getCustomClass( - request: protos.google.cloud.speech.v2.IGetCustomClassRequest, - callback: Callback< - protos.google.cloud.speech.v2.ICustomClass, - protos.google.cloud.speech.v2.IGetCustomClassRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IGetCustomClassRequest, + callback: Callback< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IGetCustomClassRequest | null | undefined, + {} | null | undefined + >, + ): void; getCustomClass( - request?: protos.google.cloud.speech.v2.IGetCustomClassRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.speech.v2.ICustomClass, - protos.google.cloud.speech.v2.IGetCustomClassRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.speech.v2.IGetCustomClassRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.speech.v2.ICustomClass, - protos.google.cloud.speech.v2.IGetCustomClassRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.speech.v2.ICustomClass, - protos.google.cloud.speech.v2.IGetCustomClassRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.speech.v2.IGetCustomClassRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IGetCustomClassRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IGetCustomClassRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('getCustomClass request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.speech.v2.ICustomClass, - protos.google.cloud.speech.v2.IGetCustomClassRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.speech.v2.ICustomClass, + | protos.google.cloud.speech.v2.IGetCustomClassRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('getCustomClass response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.getCustomClass(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.speech.v2.ICustomClass, - protos.google.cloud.speech.v2.IGetCustomClassRequest|undefined, - {}|undefined - ]) => { - this._log.info('getCustomClass response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .getCustomClass(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IGetCustomClassRequest | undefined, + {} | undefined, + ]) => { + this._log.info('getCustomClass response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); } throw error; }); } -/** - * Returns the requested - * {@link protos.google.cloud.speech.v2.PhraseSet|PhraseSet}. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the PhraseSet to retrieve. The expected format is - * `projects/{project}/locations/{location}/phraseSets/{phrase_set}`. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.speech.v2.PhraseSet|PhraseSet}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.get_phrase_set.js - * region_tag:speech_v2_generated_Speech_GetPhraseSet_async - */ + /** + * Returns the requested + * {@link protos.google.cloud.speech.v2.PhraseSet|PhraseSet}. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the PhraseSet to retrieve. The expected format is + * `projects/{project}/locations/{location}/phraseSets/{phrase_set}`. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.speech.v2.PhraseSet|PhraseSet}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.get_phrase_set.js + * region_tag:speech_v2_generated_Speech_GetPhraseSet_async + */ getPhraseSet( - request?: protos.google.cloud.speech.v2.IGetPhraseSetRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v2.IPhraseSet, - protos.google.cloud.speech.v2.IGetPhraseSetRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v2.IGetPhraseSetRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IGetPhraseSetRequest | undefined, + {} | undefined, + ] + >; getPhraseSet( - request: protos.google.cloud.speech.v2.IGetPhraseSetRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.speech.v2.IPhraseSet, - protos.google.cloud.speech.v2.IGetPhraseSetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IGetPhraseSetRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IGetPhraseSetRequest | null | undefined, + {} | null | undefined + >, + ): void; getPhraseSet( - request: protos.google.cloud.speech.v2.IGetPhraseSetRequest, - callback: Callback< - protos.google.cloud.speech.v2.IPhraseSet, - protos.google.cloud.speech.v2.IGetPhraseSetRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IGetPhraseSetRequest, + callback: Callback< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IGetPhraseSetRequest | null | undefined, + {} | null | undefined + >, + ): void; getPhraseSet( - request?: protos.google.cloud.speech.v2.IGetPhraseSetRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.speech.v2.IPhraseSet, - protos.google.cloud.speech.v2.IGetPhraseSetRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.speech.v2.IGetPhraseSetRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.speech.v2.IPhraseSet, - protos.google.cloud.speech.v2.IGetPhraseSetRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.speech.v2.IPhraseSet, - protos.google.cloud.speech.v2.IGetPhraseSetRequest|undefined, {}|undefined - ]>|void { + protos.google.cloud.speech.v2.IGetPhraseSetRequest | null | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IGetPhraseSetRequest | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IGetPhraseSetRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('getPhraseSet request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.speech.v2.IPhraseSet, - protos.google.cloud.speech.v2.IGetPhraseSetRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IGetPhraseSetRequest | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('getPhraseSet response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.getPhraseSet(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.speech.v2.IPhraseSet, - protos.google.cloud.speech.v2.IGetPhraseSetRequest|undefined, - {}|undefined - ]) => { - this._log.info('getPhraseSet response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); - } - throw error; + return this.innerApiCalls + .getPhraseSet(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IGetPhraseSetRequest | undefined, + {} | undefined, + ]) => { + this._log.info('getPhraseSet response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails instanceof Array + ) { + const protos = this._gaxModule.protobuf.Root.fromJSON( + jsonProtos, + ) as unknown as gax.protobuf.Type; + error.statusDetails = decodeAnyProtosInArray( + error.statusDetails, + protos, + ); + } + throw error; }); } -/** - * Performs bidirectional streaming speech recognition: receive results while - * sending audio. This method is only available via the gRPC API (not REST). - * - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Stream} - * An object stream which is both readable and writable. It accepts objects - * representing {@link protos.google.cloud.speech.v2.StreamingRecognizeRequest|StreamingRecognizeRequest} for write() method, and - * will emit objects representing {@link protos.google.cloud.speech.v2.StreamingRecognizeResponse|StreamingRecognizeResponse} on 'data' event asynchronously. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#bi-directional-streaming | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.streaming_recognize.js - * region_tag:speech_v2_generated_Speech_StreamingRecognize_async - */ - _streamingRecognize( - options?: CallOptions): - gax.CancellableStream { - this.initialize().catch(err => {throw err}); + /** + * Performs bidirectional streaming speech recognition: receive results while + * sending audio. This method is only available via the gRPC API (not REST). + * + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Stream} + * An object stream which is both readable and writable. It accepts objects + * representing {@link protos.google.cloud.speech.v2.StreamingRecognizeRequest|StreamingRecognizeRequest} for write() method, and + * will emit objects representing {@link protos.google.cloud.speech.v2.StreamingRecognizeResponse|StreamingRecognizeResponse} on 'data' event asynchronously. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#bi-directional-streaming | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.streaming_recognize.js + * region_tag:speech_v2_generated_Speech_StreamingRecognize_async + */ + _streamingRecognize(options?: CallOptions): gax.CancellableStream { + this.initialize().catch((err) => { + throw err; + }); this._log.info('streamingRecognize stream %j', options); return this.innerApiCalls.streamingRecognize(null, options); } -/** - * Creates a {@link protos.google.cloud.speech.v2.Recognizer|Recognizer}. - * - * @param {Object} request - * The request object that will be sent. - * @param {google.cloud.speech.v2.Recognizer} request.recognizer - * Required. The Recognizer to create. - * @param {boolean} request.validateOnly - * If set, validate the request and preview the Recognizer, but do not - * actually create it. - * @param {string} request.recognizerId - * The ID to use for the Recognizer, which will become the final component of - * the Recognizer's resource name. - * - * This value should be 4-63 characters, and valid characters - * are /{@link protos.0-9|a-z}-/. - * @param {string} request.parent - * Required. The project and location where this Recognizer will be created. - * The expected format is `projects/{project}/locations/{location}`. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.create_recognizer.js - * region_tag:speech_v2_generated_Speech_CreateRecognizer_async - */ + /** + * Creates a {@link protos.google.cloud.speech.v2.Recognizer|Recognizer}. + * + * @param {Object} request + * The request object that will be sent. + * @param {google.cloud.speech.v2.Recognizer} request.recognizer + * Required. The Recognizer to create. + * @param {boolean} request.validateOnly + * If set, validate the request and preview the Recognizer, but do not + * actually create it. + * @param {string} request.recognizerId + * The ID to use for the Recognizer, which will become the final component of + * the Recognizer's resource name. + * + * This value should be 4-63 characters, and valid characters + * are /{@link protos.0-9|a-z}-/. + * @param {string} request.parent + * Required. The project and location where this Recognizer will be created. + * The expected format is `projects/{project}/locations/{location}`. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.create_recognizer.js + * region_tag:speech_v2_generated_Speech_CreateRecognizer_async + */ createRecognizer( - request?: protos.google.cloud.speech.v2.ICreateRecognizerRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v2.ICreateRecognizerRequest, + options?: CallOptions, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; createRecognizer( - request: protos.google.cloud.speech.v2.ICreateRecognizerRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.ICreateRecognizerRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; createRecognizer( - request: protos.google.cloud.speech.v2.ICreateRecognizerRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.ICreateRecognizerRequest, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; createRecognizer( - request?: protos.google.cloud.speech.v2.ICreateRecognizerRequest, - optionsOrCallback?: CallOptions|Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>, - callback?: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>|void { + request?: protos.google.cloud.speech.v2.ICreateRecognizerRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, rawResponse, _) => { this._log.info('createRecognizer response %j', rawResponse); callback!(error, response, rawResponse, _); // We verified callback above. } : undefined; this._log.info('createRecognizer request %j', request); - return this.innerApiCalls.createRecognizer(request, options, wrappedCallback) - ?.then(([response, rawResponse, _]: [ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]) => { - this._log.info('createRecognizer response %j', rawResponse); - return [response, rawResponse, _]; - }); + return this.innerApiCalls + .createRecognizer(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('createRecognizer response %j', rawResponse); + return [response, rawResponse, _]; + }, + ); } -/** - * Check the status of the long running operation returned by `createRecognizer()`. - * @param {String} name - * The operation name that will be passed. - * @returns {Promise} - The promise which resolves to an object. - * The decoded operation object has result and metadata field to get information from. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.create_recognizer.js - * region_tag:speech_v2_generated_Speech_CreateRecognizer_async - */ - async checkCreateRecognizerProgress(name: string): Promise>{ + /** + * Check the status of the long running operation returned by `createRecognizer()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.create_recognizer.js + * region_tag:speech_v2_generated_Speech_CreateRecognizer_async + */ + async checkCreateRecognizerProgress( + name: string, + ): Promise< + LROperation< + protos.google.cloud.speech.v2.Recognizer, + protos.google.cloud.speech.v2.OperationMetadata + > + > { this._log.info('createRecognizer long-running'); - const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest({name}); + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + { name }, + ); const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.createRecognizer, this._gaxModule.createDefaultBackoffSettings()); - return decodeOperation as LROperation; + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.createRecognizer, + this._gaxModule.createDefaultBackoffSettings(), + ); + return decodeOperation as LROperation< + protos.google.cloud.speech.v2.Recognizer, + protos.google.cloud.speech.v2.OperationMetadata + >; } -/** - * Updates the {@link protos.google.cloud.speech.v2.Recognizer|Recognizer}. - * - * @param {Object} request - * The request object that will be sent. - * @param {google.cloud.speech.v2.Recognizer} request.recognizer - * Required. The Recognizer to update. - * - * The Recognizer's `name` field is used to identify the Recognizer to update. - * Format: `projects/{project}/locations/{location}/recognizers/{recognizer}`. - * @param {google.protobuf.FieldMask} request.updateMask - * The list of fields to update. If empty, all non-default valued fields are - * considered for update. Use `*` to update the entire Recognizer resource. - * @param {boolean} request.validateOnly - * If set, validate the request and preview the updated Recognizer, but do not - * actually update it. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.update_recognizer.js - * region_tag:speech_v2_generated_Speech_UpdateRecognizer_async - */ + /** + * Updates the {@link protos.google.cloud.speech.v2.Recognizer|Recognizer}. + * + * @param {Object} request + * The request object that will be sent. + * @param {google.cloud.speech.v2.Recognizer} request.recognizer + * Required. The Recognizer to update. + * + * The Recognizer's `name` field is used to identify the Recognizer to update. + * Format: `projects/{project}/locations/{location}/recognizers/{recognizer}`. + * @param {google.protobuf.FieldMask} request.updateMask + * The list of fields to update. If empty, all non-default valued fields are + * considered for update. Use `*` to update the entire Recognizer resource. + * @param {boolean} request.validateOnly + * If set, validate the request and preview the updated Recognizer, but do not + * actually update it. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.update_recognizer.js + * region_tag:speech_v2_generated_Speech_UpdateRecognizer_async + */ updateRecognizer( - request?: protos.google.cloud.speech.v2.IUpdateRecognizerRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v2.IUpdateRecognizerRequest, + options?: CallOptions, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; updateRecognizer( - request: protos.google.cloud.speech.v2.IUpdateRecognizerRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IUpdateRecognizerRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; updateRecognizer( - request: protos.google.cloud.speech.v2.IUpdateRecognizerRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IUpdateRecognizerRequest, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; updateRecognizer( - request?: protos.google.cloud.speech.v2.IUpdateRecognizerRequest, - optionsOrCallback?: CallOptions|Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>, - callback?: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>|void { + request?: protos.google.cloud.speech.v2.IUpdateRecognizerRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'recognizer.name': request.recognizer!.name ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + 'recognizer.name': request.recognizer!.name ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); - const wrappedCallback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, rawResponse, _) => { this._log.info('updateRecognizer response %j', rawResponse); callback!(error, response, rawResponse, _); // We verified callback above. } : undefined; this._log.info('updateRecognizer request %j', request); - return this.innerApiCalls.updateRecognizer(request, options, wrappedCallback) - ?.then(([response, rawResponse, _]: [ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]) => { - this._log.info('updateRecognizer response %j', rawResponse); - return [response, rawResponse, _]; - }); + return this.innerApiCalls + .updateRecognizer(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('updateRecognizer response %j', rawResponse); + return [response, rawResponse, _]; + }, + ); } -/** - * Check the status of the long running operation returned by `updateRecognizer()`. - * @param {String} name - * The operation name that will be passed. - * @returns {Promise} - The promise which resolves to an object. - * The decoded operation object has result and metadata field to get information from. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.update_recognizer.js - * region_tag:speech_v2_generated_Speech_UpdateRecognizer_async - */ - async checkUpdateRecognizerProgress(name: string): Promise>{ + /** + * Check the status of the long running operation returned by `updateRecognizer()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.update_recognizer.js + * region_tag:speech_v2_generated_Speech_UpdateRecognizer_async + */ + async checkUpdateRecognizerProgress( + name: string, + ): Promise< + LROperation< + protos.google.cloud.speech.v2.Recognizer, + protos.google.cloud.speech.v2.OperationMetadata + > + > { this._log.info('updateRecognizer long-running'); - const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest({name}); + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + { name }, + ); const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.updateRecognizer, this._gaxModule.createDefaultBackoffSettings()); - return decodeOperation as LROperation; + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.updateRecognizer, + this._gaxModule.createDefaultBackoffSettings(), + ); + return decodeOperation as LROperation< + protos.google.cloud.speech.v2.Recognizer, + protos.google.cloud.speech.v2.OperationMetadata + >; } -/** - * Deletes the {@link protos.google.cloud.speech.v2.Recognizer|Recognizer}. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the Recognizer to delete. - * Format: `projects/{project}/locations/{location}/recognizers/{recognizer}` - * @param {boolean} request.validateOnly - * If set, validate the request and preview the deleted Recognizer, but do not - * actually delete it. - * @param {boolean} request.allowMissing - * If set to true, and the Recognizer is not found, the request will succeed - * and be a no-op (no Operation is recorded in this case). - * @param {string} request.etag - * This checksum is computed by the server based on the value of other - * fields. This may be sent on update, undelete, and delete requests to ensure - * the client has an up-to-date value before proceeding. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.delete_recognizer.js - * region_tag:speech_v2_generated_Speech_DeleteRecognizer_async - */ + /** + * Deletes the {@link protos.google.cloud.speech.v2.Recognizer|Recognizer}. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the Recognizer to delete. + * Format: `projects/{project}/locations/{location}/recognizers/{recognizer}` + * @param {boolean} request.validateOnly + * If set, validate the request and preview the deleted Recognizer, but do not + * actually delete it. + * @param {boolean} request.allowMissing + * If set to true, and the Recognizer is not found, the request will succeed + * and be a no-op (no Operation is recorded in this case). + * @param {string} request.etag + * This checksum is computed by the server based on the value of other + * fields. This may be sent on update, undelete, and delete requests to ensure + * the client has an up-to-date value before proceeding. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.delete_recognizer.js + * region_tag:speech_v2_generated_Speech_DeleteRecognizer_async + */ deleteRecognizer( - request?: protos.google.cloud.speech.v2.IDeleteRecognizerRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v2.IDeleteRecognizerRequest, + options?: CallOptions, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; deleteRecognizer( - request: protos.google.cloud.speech.v2.IDeleteRecognizerRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IDeleteRecognizerRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; deleteRecognizer( - request: protos.google.cloud.speech.v2.IDeleteRecognizerRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IDeleteRecognizerRequest, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; deleteRecognizer( - request?: protos.google.cloud.speech.v2.IDeleteRecognizerRequest, - optionsOrCallback?: CallOptions|Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>, - callback?: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>|void { + request?: protos.google.cloud.speech.v2.IDeleteRecognizerRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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}); - const wrappedCallback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, rawResponse, _) => { this._log.info('deleteRecognizer response %j', rawResponse); callback!(error, response, rawResponse, _); // We verified callback above. } : undefined; this._log.info('deleteRecognizer request %j', request); - return this.innerApiCalls.deleteRecognizer(request, options, wrappedCallback) - ?.then(([response, rawResponse, _]: [ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]) => { - this._log.info('deleteRecognizer response %j', rawResponse); - return [response, rawResponse, _]; - }); + return this.innerApiCalls + .deleteRecognizer(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('deleteRecognizer response %j', rawResponse); + return [response, rawResponse, _]; + }, + ); } -/** - * Check the status of the long running operation returned by `deleteRecognizer()`. - * @param {String} name - * The operation name that will be passed. - * @returns {Promise} - The promise which resolves to an object. - * The decoded operation object has result and metadata field to get information from. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.delete_recognizer.js - * region_tag:speech_v2_generated_Speech_DeleteRecognizer_async - */ - async checkDeleteRecognizerProgress(name: string): Promise>{ + /** + * Check the status of the long running operation returned by `deleteRecognizer()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.delete_recognizer.js + * region_tag:speech_v2_generated_Speech_DeleteRecognizer_async + */ + async checkDeleteRecognizerProgress( + name: string, + ): Promise< + LROperation< + protos.google.cloud.speech.v2.Recognizer, + protos.google.cloud.speech.v2.OperationMetadata + > + > { this._log.info('deleteRecognizer long-running'); - const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest({name}); + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + { name }, + ); const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.deleteRecognizer, this._gaxModule.createDefaultBackoffSettings()); - return decodeOperation as LROperation; + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.deleteRecognizer, + this._gaxModule.createDefaultBackoffSettings(), + ); + return decodeOperation as LROperation< + protos.google.cloud.speech.v2.Recognizer, + protos.google.cloud.speech.v2.OperationMetadata + >; } -/** - * Undeletes the {@link protos.google.cloud.speech.v2.Recognizer|Recognizer}. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the Recognizer to undelete. - * Format: `projects/{project}/locations/{location}/recognizers/{recognizer}` - * @param {boolean} request.validateOnly - * If set, validate the request and preview the undeleted Recognizer, but do - * not actually undelete it. - * @param {string} request.etag - * This checksum is computed by the server based on the value of other - * fields. This may be sent on update, undelete, and delete requests to ensure - * the client has an up-to-date value before proceeding. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.undelete_recognizer.js - * region_tag:speech_v2_generated_Speech_UndeleteRecognizer_async - */ + /** + * Undeletes the {@link protos.google.cloud.speech.v2.Recognizer|Recognizer}. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the Recognizer to undelete. + * Format: `projects/{project}/locations/{location}/recognizers/{recognizer}` + * @param {boolean} request.validateOnly + * If set, validate the request and preview the undeleted Recognizer, but do + * not actually undelete it. + * @param {string} request.etag + * This checksum is computed by the server based on the value of other + * fields. This may be sent on update, undelete, and delete requests to ensure + * the client has an up-to-date value before proceeding. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.undelete_recognizer.js + * region_tag:speech_v2_generated_Speech_UndeleteRecognizer_async + */ undeleteRecognizer( - request?: protos.google.cloud.speech.v2.IUndeleteRecognizerRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v2.IUndeleteRecognizerRequest, + options?: CallOptions, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; undeleteRecognizer( - request: protos.google.cloud.speech.v2.IUndeleteRecognizerRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IUndeleteRecognizerRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; undeleteRecognizer( - request: protos.google.cloud.speech.v2.IUndeleteRecognizerRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IUndeleteRecognizerRequest, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; undeleteRecognizer( - request?: protos.google.cloud.speech.v2.IUndeleteRecognizerRequest, - optionsOrCallback?: CallOptions|Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>, - callback?: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>|void { + request?: protos.google.cloud.speech.v2.IUndeleteRecognizerRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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}); - const wrappedCallback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, rawResponse, _) => { this._log.info('undeleteRecognizer response %j', rawResponse); callback!(error, response, rawResponse, _); // We verified callback above. } : undefined; this._log.info('undeleteRecognizer request %j', request); - return this.innerApiCalls.undeleteRecognizer(request, options, wrappedCallback) - ?.then(([response, rawResponse, _]: [ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]) => { - this._log.info('undeleteRecognizer response %j', rawResponse); - return [response, rawResponse, _]; - }); + return this.innerApiCalls + .undeleteRecognizer(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('undeleteRecognizer response %j', rawResponse); + return [response, rawResponse, _]; + }, + ); } -/** - * Check the status of the long running operation returned by `undeleteRecognizer()`. - * @param {String} name - * The operation name that will be passed. - * @returns {Promise} - The promise which resolves to an object. - * The decoded operation object has result and metadata field to get information from. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.undelete_recognizer.js - * region_tag:speech_v2_generated_Speech_UndeleteRecognizer_async - */ - async checkUndeleteRecognizerProgress(name: string): Promise>{ + /** + * Check the status of the long running operation returned by `undeleteRecognizer()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.undelete_recognizer.js + * region_tag:speech_v2_generated_Speech_UndeleteRecognizer_async + */ + async checkUndeleteRecognizerProgress( + name: string, + ): Promise< + LROperation< + protos.google.cloud.speech.v2.Recognizer, + protos.google.cloud.speech.v2.OperationMetadata + > + > { this._log.info('undeleteRecognizer long-running'); - const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest({name}); + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + { name }, + ); const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.undeleteRecognizer, this._gaxModule.createDefaultBackoffSettings()); - return decodeOperation as LROperation; + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.undeleteRecognizer, + this._gaxModule.createDefaultBackoffSettings(), + ); + return decodeOperation as LROperation< + protos.google.cloud.speech.v2.Recognizer, + protos.google.cloud.speech.v2.OperationMetadata + >; } -/** - * Performs batch asynchronous speech recognition: send a request with N - * audio files and receive a long running operation that can be polled to see - * when the transcriptions are finished. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.recognizer - * Required. The name of the Recognizer to use during recognition. The - * expected format is - * `projects/{project}/locations/{location}/recognizers/{recognizer}`. The - * {recognizer} segment may be set to `_` to use an empty implicit Recognizer. - * @param {google.cloud.speech.v2.RecognitionConfig} request.config - * Features and audio metadata to use for the Automatic Speech Recognition. - * This field in combination with the - * {@link protos.google.cloud.speech.v2.BatchRecognizeRequest.config_mask|config_mask} - * field can be used to override parts of the - * {@link protos.google.cloud.speech.v2.Recognizer.default_recognition_config|default_recognition_config} - * of the Recognizer resource. - * @param {google.protobuf.FieldMask} request.configMask - * The list of fields in - * {@link protos.google.cloud.speech.v2.BatchRecognizeRequest.config|config} that override - * the values in the - * {@link protos.google.cloud.speech.v2.Recognizer.default_recognition_config|default_recognition_config} - * of the recognizer during this recognition request. If no mask is provided, - * all given fields in - * {@link protos.google.cloud.speech.v2.BatchRecognizeRequest.config|config} override the - * values in the recognizer for this recognition request. If a mask is - * provided, only the fields listed in the mask override the config in the - * recognizer for this recognition request. If a wildcard (`*`) is provided, - * {@link protos.google.cloud.speech.v2.BatchRecognizeRequest.config|config} completely - * overrides and replaces the config in the recognizer for this recognition - * request. - * @param {number[]} request.files - * Audio files with file metadata for ASR. - * The maximum number of files allowed to be specified is 15. - * @param {google.cloud.speech.v2.RecognitionOutputConfig} request.recognitionOutputConfig - * Configuration options for where to output the transcripts of each file. - * @param {google.cloud.speech.v2.BatchRecognizeRequest.ProcessingStrategy} request.processingStrategy - * Processing strategy to use for this 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 - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.batch_recognize.js - * region_tag:speech_v2_generated_Speech_BatchRecognize_async - */ + /** + * Performs batch asynchronous speech recognition: send a request with N + * audio files and receive a long running operation that can be polled to see + * when the transcriptions are finished. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.recognizer + * Required. The name of the Recognizer to use during recognition. The + * expected format is + * `projects/{project}/locations/{location}/recognizers/{recognizer}`. The + * {recognizer} segment may be set to `_` to use an empty implicit Recognizer. + * @param {google.cloud.speech.v2.RecognitionConfig} request.config + * Features and audio metadata to use for the Automatic Speech Recognition. + * This field in combination with the + * {@link protos.google.cloud.speech.v2.BatchRecognizeRequest.config_mask|config_mask} + * field can be used to override parts of the + * {@link protos.google.cloud.speech.v2.Recognizer.default_recognition_config|default_recognition_config} + * of the Recognizer resource. + * @param {google.protobuf.FieldMask} request.configMask + * The list of fields in + * {@link protos.google.cloud.speech.v2.BatchRecognizeRequest.config|config} that override + * the values in the + * {@link protos.google.cloud.speech.v2.Recognizer.default_recognition_config|default_recognition_config} + * of the recognizer during this recognition request. If no mask is provided, + * all given fields in + * {@link protos.google.cloud.speech.v2.BatchRecognizeRequest.config|config} override the + * values in the recognizer for this recognition request. If a mask is + * provided, only the fields listed in the mask override the config in the + * recognizer for this recognition request. If a wildcard (`*`) is provided, + * {@link protos.google.cloud.speech.v2.BatchRecognizeRequest.config|config} completely + * overrides and replaces the config in the recognizer for this recognition + * request. + * @param {number[]} request.files + * Audio files with file metadata for ASR. + * The maximum number of files allowed to be specified is 15. + * @param {google.cloud.speech.v2.RecognitionOutputConfig} request.recognitionOutputConfig + * Configuration options for where to output the transcripts of each file. + * @param {google.cloud.speech.v2.BatchRecognizeRequest.ProcessingStrategy} request.processingStrategy + * Processing strategy to use for this 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 + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.batch_recognize.js + * region_tag:speech_v2_generated_Speech_BatchRecognize_async + */ batchRecognize( - request?: protos.google.cloud.speech.v2.IBatchRecognizeRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v2.IBatchRecognizeRequest, + options?: CallOptions, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.IBatchRecognizeResponse, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; batchRecognize( - request: protos.google.cloud.speech.v2.IBatchRecognizeRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IBatchRecognizeRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.IBatchRecognizeResponse, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; batchRecognize( - request: protos.google.cloud.speech.v2.IBatchRecognizeRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IBatchRecognizeRequest, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.IBatchRecognizeResponse, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; batchRecognize( - request?: protos.google.cloud.speech.v2.IBatchRecognizeRequest, - optionsOrCallback?: CallOptions|Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>, - callback?: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>|void { + request?: protos.google.cloud.speech.v2.IBatchRecognizeRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.speech.v2.IBatchRecognizeResponse, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.speech.v2.IBatchRecognizeResponse, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.IBatchRecognizeResponse, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'recognizer': request.recognizer ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + recognizer: request.recognizer ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); - const wrappedCallback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + LROperation< + protos.google.cloud.speech.v2.IBatchRecognizeResponse, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, rawResponse, _) => { this._log.info('batchRecognize response %j', rawResponse); callback!(error, response, rawResponse, _); // We verified callback above. } : undefined; this._log.info('batchRecognize request %j', request); - return this.innerApiCalls.batchRecognize(request, options, wrappedCallback) - ?.then(([response, rawResponse, _]: [ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]) => { - this._log.info('batchRecognize response %j', rawResponse); - return [response, rawResponse, _]; - }); + return this.innerApiCalls + .batchRecognize(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.cloud.speech.v2.IBatchRecognizeResponse, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('batchRecognize response %j', rawResponse); + return [response, rawResponse, _]; + }, + ); } -/** - * Check the status of the long running operation returned by `batchRecognize()`. - * @param {String} name - * The operation name that will be passed. - * @returns {Promise} - The promise which resolves to an object. - * The decoded operation object has result and metadata field to get information from. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.batch_recognize.js - * region_tag:speech_v2_generated_Speech_BatchRecognize_async - */ - async checkBatchRecognizeProgress(name: string): Promise>{ + /** + * Check the status of the long running operation returned by `batchRecognize()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.batch_recognize.js + * region_tag:speech_v2_generated_Speech_BatchRecognize_async + */ + async checkBatchRecognizeProgress( + name: string, + ): Promise< + LROperation< + protos.google.cloud.speech.v2.BatchRecognizeResponse, + protos.google.cloud.speech.v2.OperationMetadata + > + > { this._log.info('batchRecognize long-running'); - const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest({name}); + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + { name }, + ); const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.batchRecognize, this._gaxModule.createDefaultBackoffSettings()); - return decodeOperation as LROperation; + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.batchRecognize, + this._gaxModule.createDefaultBackoffSettings(), + ); + return decodeOperation as LROperation< + protos.google.cloud.speech.v2.BatchRecognizeResponse, + protos.google.cloud.speech.v2.OperationMetadata + >; } -/** - * Creates a {@link protos.google.cloud.speech.v2.CustomClass|CustomClass}. - * - * @param {Object} request - * The request object that will be sent. - * @param {google.cloud.speech.v2.CustomClass} request.customClass - * Required. The CustomClass to create. - * @param {boolean} request.validateOnly - * If set, validate the request and preview the CustomClass, but do not - * actually create it. - * @param {string} request.customClassId - * The ID to use for the CustomClass, which will become the final component of - * the CustomClass's resource name. - * - * This value should be 4-63 characters, and valid characters - * are /{@link protos.0-9|a-z}-/. - * @param {string} request.parent - * Required. The project and location where this CustomClass will be created. - * The expected format is `projects/{project}/locations/{location}`. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.create_custom_class.js - * region_tag:speech_v2_generated_Speech_CreateCustomClass_async - */ + /** + * Creates a {@link protos.google.cloud.speech.v2.CustomClass|CustomClass}. + * + * @param {Object} request + * The request object that will be sent. + * @param {google.cloud.speech.v2.CustomClass} request.customClass + * Required. The CustomClass to create. + * @param {boolean} request.validateOnly + * If set, validate the request and preview the CustomClass, but do not + * actually create it. + * @param {string} request.customClassId + * The ID to use for the CustomClass, which will become the final component of + * the CustomClass's resource name. + * + * This value should be 4-63 characters, and valid characters + * are /{@link protos.0-9|a-z}-/. + * @param {string} request.parent + * Required. The project and location where this CustomClass will be created. + * The expected format is `projects/{project}/locations/{location}`. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.create_custom_class.js + * region_tag:speech_v2_generated_Speech_CreateCustomClass_async + */ createCustomClass( - request?: protos.google.cloud.speech.v2.ICreateCustomClassRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v2.ICreateCustomClassRequest, + options?: CallOptions, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; createCustomClass( - request: protos.google.cloud.speech.v2.ICreateCustomClassRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.ICreateCustomClassRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; createCustomClass( - request: protos.google.cloud.speech.v2.ICreateCustomClassRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.ICreateCustomClassRequest, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; createCustomClass( - request?: protos.google.cloud.speech.v2.ICreateCustomClassRequest, - optionsOrCallback?: CallOptions|Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>, - callback?: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>|void { + request?: protos.google.cloud.speech.v2.ICreateCustomClassRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, rawResponse, _) => { this._log.info('createCustomClass response %j', rawResponse); callback!(error, response, rawResponse, _); // We verified callback above. } : undefined; this._log.info('createCustomClass request %j', request); - return this.innerApiCalls.createCustomClass(request, options, wrappedCallback) - ?.then(([response, rawResponse, _]: [ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]) => { - this._log.info('createCustomClass response %j', rawResponse); - return [response, rawResponse, _]; - }); + return this.innerApiCalls + .createCustomClass(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('createCustomClass response %j', rawResponse); + return [response, rawResponse, _]; + }, + ); } -/** - * Check the status of the long running operation returned by `createCustomClass()`. - * @param {String} name - * The operation name that will be passed. - * @returns {Promise} - The promise which resolves to an object. - * The decoded operation object has result and metadata field to get information from. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.create_custom_class.js - * region_tag:speech_v2_generated_Speech_CreateCustomClass_async - */ - async checkCreateCustomClassProgress(name: string): Promise>{ + /** + * Check the status of the long running operation returned by `createCustomClass()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.create_custom_class.js + * region_tag:speech_v2_generated_Speech_CreateCustomClass_async + */ + async checkCreateCustomClassProgress( + name: string, + ): Promise< + LROperation< + protos.google.cloud.speech.v2.CustomClass, + protos.google.cloud.speech.v2.OperationMetadata + > + > { this._log.info('createCustomClass long-running'); - const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest({name}); + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + { name }, + ); const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.createCustomClass, this._gaxModule.createDefaultBackoffSettings()); - return decodeOperation as LROperation; + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.createCustomClass, + this._gaxModule.createDefaultBackoffSettings(), + ); + return decodeOperation as LROperation< + protos.google.cloud.speech.v2.CustomClass, + protos.google.cloud.speech.v2.OperationMetadata + >; } -/** - * Updates the {@link protos.google.cloud.speech.v2.CustomClass|CustomClass}. - * - * @param {Object} request - * The request object that will be sent. - * @param {google.cloud.speech.v2.CustomClass} request.customClass - * Required. The CustomClass to update. - * - * The CustomClass's `name` field is used to identify the CustomClass to - * update. Format: - * `projects/{project}/locations/{location}/customClasses/{custom_class}`. - * @param {google.protobuf.FieldMask} request.updateMask - * The list of fields to be updated. If empty, all fields are considered for - * update. - * @param {boolean} request.validateOnly - * If set, validate the request and preview the updated CustomClass, but do - * not actually update it. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.update_custom_class.js - * region_tag:speech_v2_generated_Speech_UpdateCustomClass_async - */ + /** + * Updates the {@link protos.google.cloud.speech.v2.CustomClass|CustomClass}. + * + * @param {Object} request + * The request object that will be sent. + * @param {google.cloud.speech.v2.CustomClass} request.customClass + * Required. The CustomClass to update. + * + * The CustomClass's `name` field is used to identify the CustomClass to + * update. Format: + * `projects/{project}/locations/{location}/customClasses/{custom_class}`. + * @param {google.protobuf.FieldMask} request.updateMask + * The list of fields to be updated. If empty, all fields are considered for + * update. + * @param {boolean} request.validateOnly + * If set, validate the request and preview the updated CustomClass, but do + * not actually update it. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.update_custom_class.js + * region_tag:speech_v2_generated_Speech_UpdateCustomClass_async + */ updateCustomClass( - request?: protos.google.cloud.speech.v2.IUpdateCustomClassRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v2.IUpdateCustomClassRequest, + options?: CallOptions, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; updateCustomClass( - request: protos.google.cloud.speech.v2.IUpdateCustomClassRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IUpdateCustomClassRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; updateCustomClass( - request: protos.google.cloud.speech.v2.IUpdateCustomClassRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IUpdateCustomClassRequest, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; updateCustomClass( - request?: protos.google.cloud.speech.v2.IUpdateCustomClassRequest, - optionsOrCallback?: CallOptions|Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>, - callback?: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>|void { + request?: protos.google.cloud.speech.v2.IUpdateCustomClassRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'custom_class.name': request.customClass!.name ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + 'custom_class.name': request.customClass!.name ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); - const wrappedCallback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, rawResponse, _) => { this._log.info('updateCustomClass response %j', rawResponse); callback!(error, response, rawResponse, _); // We verified callback above. } : undefined; this._log.info('updateCustomClass request %j', request); - return this.innerApiCalls.updateCustomClass(request, options, wrappedCallback) - ?.then(([response, rawResponse, _]: [ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]) => { - this._log.info('updateCustomClass response %j', rawResponse); - return [response, rawResponse, _]; - }); + return this.innerApiCalls + .updateCustomClass(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('updateCustomClass response %j', rawResponse); + return [response, rawResponse, _]; + }, + ); } -/** - * Check the status of the long running operation returned by `updateCustomClass()`. - * @param {String} name - * The operation name that will be passed. - * @returns {Promise} - The promise which resolves to an object. - * The decoded operation object has result and metadata field to get information from. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.update_custom_class.js - * region_tag:speech_v2_generated_Speech_UpdateCustomClass_async - */ - async checkUpdateCustomClassProgress(name: string): Promise>{ + /** + * Check the status of the long running operation returned by `updateCustomClass()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.update_custom_class.js + * region_tag:speech_v2_generated_Speech_UpdateCustomClass_async + */ + async checkUpdateCustomClassProgress( + name: string, + ): Promise< + LROperation< + protos.google.cloud.speech.v2.CustomClass, + protos.google.cloud.speech.v2.OperationMetadata + > + > { this._log.info('updateCustomClass long-running'); - const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest({name}); + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + { name }, + ); const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.updateCustomClass, this._gaxModule.createDefaultBackoffSettings()); - return decodeOperation as LROperation; + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.updateCustomClass, + this._gaxModule.createDefaultBackoffSettings(), + ); + return decodeOperation as LROperation< + protos.google.cloud.speech.v2.CustomClass, + protos.google.cloud.speech.v2.OperationMetadata + >; } -/** - * Deletes the {@link protos.google.cloud.speech.v2.CustomClass|CustomClass}. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the CustomClass to delete. - * Format: - * `projects/{project}/locations/{location}/customClasses/{custom_class}` - * @param {boolean} request.validateOnly - * If set, validate the request and preview the deleted CustomClass, but do - * not actually delete it. - * @param {boolean} request.allowMissing - * If set to true, and the CustomClass is not found, the request will succeed - * and be a no-op (no Operation is recorded in this case). - * @param {string} request.etag - * This checksum is computed by the server based on the value of other - * fields. This may be sent on update, undelete, and delete requests to ensure - * the client has an up-to-date value before proceeding. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.delete_custom_class.js - * region_tag:speech_v2_generated_Speech_DeleteCustomClass_async - */ + /** + * Deletes the {@link protos.google.cloud.speech.v2.CustomClass|CustomClass}. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the CustomClass to delete. + * Format: + * `projects/{project}/locations/{location}/customClasses/{custom_class}` + * @param {boolean} request.validateOnly + * If set, validate the request and preview the deleted CustomClass, but do + * not actually delete it. + * @param {boolean} request.allowMissing + * If set to true, and the CustomClass is not found, the request will succeed + * and be a no-op (no Operation is recorded in this case). + * @param {string} request.etag + * This checksum is computed by the server based on the value of other + * fields. This may be sent on update, undelete, and delete requests to ensure + * the client has an up-to-date value before proceeding. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.delete_custom_class.js + * region_tag:speech_v2_generated_Speech_DeleteCustomClass_async + */ deleteCustomClass( - request?: protos.google.cloud.speech.v2.IDeleteCustomClassRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v2.IDeleteCustomClassRequest, + options?: CallOptions, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; deleteCustomClass( - request: protos.google.cloud.speech.v2.IDeleteCustomClassRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IDeleteCustomClassRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; deleteCustomClass( - request: protos.google.cloud.speech.v2.IDeleteCustomClassRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IDeleteCustomClassRequest, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; deleteCustomClass( - request?: protos.google.cloud.speech.v2.IDeleteCustomClassRequest, - optionsOrCallback?: CallOptions|Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>, - callback?: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>|void { + request?: protos.google.cloud.speech.v2.IDeleteCustomClassRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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}); - const wrappedCallback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, rawResponse, _) => { this._log.info('deleteCustomClass response %j', rawResponse); callback!(error, response, rawResponse, _); // We verified callback above. } : undefined; this._log.info('deleteCustomClass request %j', request); - return this.innerApiCalls.deleteCustomClass(request, options, wrappedCallback) - ?.then(([response, rawResponse, _]: [ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]) => { - this._log.info('deleteCustomClass response %j', rawResponse); - return [response, rawResponse, _]; - }); + return this.innerApiCalls + .deleteCustomClass(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('deleteCustomClass response %j', rawResponse); + return [response, rawResponse, _]; + }, + ); } -/** - * Check the status of the long running operation returned by `deleteCustomClass()`. - * @param {String} name - * The operation name that will be passed. - * @returns {Promise} - The promise which resolves to an object. - * The decoded operation object has result and metadata field to get information from. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.delete_custom_class.js - * region_tag:speech_v2_generated_Speech_DeleteCustomClass_async - */ - async checkDeleteCustomClassProgress(name: string): Promise>{ + /** + * Check the status of the long running operation returned by `deleteCustomClass()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.delete_custom_class.js + * region_tag:speech_v2_generated_Speech_DeleteCustomClass_async + */ + async checkDeleteCustomClassProgress( + name: string, + ): Promise< + LROperation< + protos.google.cloud.speech.v2.CustomClass, + protos.google.cloud.speech.v2.OperationMetadata + > + > { this._log.info('deleteCustomClass long-running'); - const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest({name}); + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + { name }, + ); const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.deleteCustomClass, this._gaxModule.createDefaultBackoffSettings()); - return decodeOperation as LROperation; + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.deleteCustomClass, + this._gaxModule.createDefaultBackoffSettings(), + ); + return decodeOperation as LROperation< + protos.google.cloud.speech.v2.CustomClass, + protos.google.cloud.speech.v2.OperationMetadata + >; } -/** - * Undeletes the {@link protos.google.cloud.speech.v2.CustomClass|CustomClass}. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the CustomClass to undelete. - * Format: - * `projects/{project}/locations/{location}/customClasses/{custom_class}` - * @param {boolean} request.validateOnly - * If set, validate the request and preview the undeleted CustomClass, but do - * not actually undelete it. - * @param {string} request.etag - * This checksum is computed by the server based on the value of other - * fields. This may be sent on update, undelete, and delete requests to ensure - * the client has an up-to-date value before proceeding. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.undelete_custom_class.js - * region_tag:speech_v2_generated_Speech_UndeleteCustomClass_async - */ + /** + * Undeletes the {@link protos.google.cloud.speech.v2.CustomClass|CustomClass}. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the CustomClass to undelete. + * Format: + * `projects/{project}/locations/{location}/customClasses/{custom_class}` + * @param {boolean} request.validateOnly + * If set, validate the request and preview the undeleted CustomClass, but do + * not actually undelete it. + * @param {string} request.etag + * This checksum is computed by the server based on the value of other + * fields. This may be sent on update, undelete, and delete requests to ensure + * the client has an up-to-date value before proceeding. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.undelete_custom_class.js + * region_tag:speech_v2_generated_Speech_UndeleteCustomClass_async + */ undeleteCustomClass( - request?: protos.google.cloud.speech.v2.IUndeleteCustomClassRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v2.IUndeleteCustomClassRequest, + options?: CallOptions, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; undeleteCustomClass( - request: protos.google.cloud.speech.v2.IUndeleteCustomClassRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IUndeleteCustomClassRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; undeleteCustomClass( - request: protos.google.cloud.speech.v2.IUndeleteCustomClassRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IUndeleteCustomClassRequest, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; undeleteCustomClass( - request?: protos.google.cloud.speech.v2.IUndeleteCustomClassRequest, - optionsOrCallback?: CallOptions|Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>, - callback?: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>|void { + request?: protos.google.cloud.speech.v2.IUndeleteCustomClassRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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}); - const wrappedCallback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, rawResponse, _) => { this._log.info('undeleteCustomClass response %j', rawResponse); callback!(error, response, rawResponse, _); // We verified callback above. } : undefined; this._log.info('undeleteCustomClass request %j', request); - return this.innerApiCalls.undeleteCustomClass(request, options, wrappedCallback) - ?.then(([response, rawResponse, _]: [ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]) => { - this._log.info('undeleteCustomClass response %j', rawResponse); - return [response, rawResponse, _]; - }); + return this.innerApiCalls + .undeleteCustomClass(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('undeleteCustomClass response %j', rawResponse); + return [response, rawResponse, _]; + }, + ); } -/** - * Check the status of the long running operation returned by `undeleteCustomClass()`. - * @param {String} name - * The operation name that will be passed. - * @returns {Promise} - The promise which resolves to an object. - * The decoded operation object has result and metadata field to get information from. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.undelete_custom_class.js - * region_tag:speech_v2_generated_Speech_UndeleteCustomClass_async - */ - async checkUndeleteCustomClassProgress(name: string): Promise>{ + /** + * Check the status of the long running operation returned by `undeleteCustomClass()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.undelete_custom_class.js + * region_tag:speech_v2_generated_Speech_UndeleteCustomClass_async + */ + async checkUndeleteCustomClassProgress( + name: string, + ): Promise< + LROperation< + protos.google.cloud.speech.v2.CustomClass, + protos.google.cloud.speech.v2.OperationMetadata + > + > { this._log.info('undeleteCustomClass long-running'); - const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest({name}); + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + { name }, + ); const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.undeleteCustomClass, this._gaxModule.createDefaultBackoffSettings()); - return decodeOperation as LROperation; + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.undeleteCustomClass, + this._gaxModule.createDefaultBackoffSettings(), + ); + return decodeOperation as LROperation< + protos.google.cloud.speech.v2.CustomClass, + protos.google.cloud.speech.v2.OperationMetadata + >; } -/** - * Creates a {@link protos.google.cloud.speech.v2.PhraseSet|PhraseSet}. - * - * @param {Object} request - * The request object that will be sent. - * @param {google.cloud.speech.v2.PhraseSet} request.phraseSet - * Required. The PhraseSet to create. - * @param {boolean} request.validateOnly - * If set, validate the request and preview the PhraseSet, but do not - * actually create it. - * @param {string} request.phraseSetId - * The ID to use for the PhraseSet, which will become the final component of - * the PhraseSet's resource name. - * - * This value should be 4-63 characters, and valid characters - * are /{@link protos.0-9|a-z}-/. - * @param {string} request.parent - * Required. The project and location where this PhraseSet will be created. - * The expected format is `projects/{project}/locations/{location}`. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.create_phrase_set.js - * region_tag:speech_v2_generated_Speech_CreatePhraseSet_async - */ + /** + * Creates a {@link protos.google.cloud.speech.v2.PhraseSet|PhraseSet}. + * + * @param {Object} request + * The request object that will be sent. + * @param {google.cloud.speech.v2.PhraseSet} request.phraseSet + * Required. The PhraseSet to create. + * @param {boolean} request.validateOnly + * If set, validate the request and preview the PhraseSet, but do not + * actually create it. + * @param {string} request.phraseSetId + * The ID to use for the PhraseSet, which will become the final component of + * the PhraseSet's resource name. + * + * This value should be 4-63 characters, and valid characters + * are /{@link protos.0-9|a-z}-/. + * @param {string} request.parent + * Required. The project and location where this PhraseSet will be created. + * The expected format is `projects/{project}/locations/{location}`. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.create_phrase_set.js + * region_tag:speech_v2_generated_Speech_CreatePhraseSet_async + */ createPhraseSet( - request?: protos.google.cloud.speech.v2.ICreatePhraseSetRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v2.ICreatePhraseSetRequest, + options?: CallOptions, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; createPhraseSet( - request: protos.google.cloud.speech.v2.ICreatePhraseSetRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.ICreatePhraseSetRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; createPhraseSet( - request: protos.google.cloud.speech.v2.ICreatePhraseSetRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.ICreatePhraseSetRequest, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; createPhraseSet( - request?: protos.google.cloud.speech.v2.ICreatePhraseSetRequest, - optionsOrCallback?: CallOptions|Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>, - callback?: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>|void { + request?: protos.google.cloud.speech.v2.ICreatePhraseSetRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, rawResponse, _) => { this._log.info('createPhraseSet response %j', rawResponse); callback!(error, response, rawResponse, _); // We verified callback above. } : undefined; this._log.info('createPhraseSet request %j', request); - return this.innerApiCalls.createPhraseSet(request, options, wrappedCallback) - ?.then(([response, rawResponse, _]: [ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]) => { - this._log.info('createPhraseSet response %j', rawResponse); - return [response, rawResponse, _]; - }); + return this.innerApiCalls + .createPhraseSet(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('createPhraseSet response %j', rawResponse); + return [response, rawResponse, _]; + }, + ); } -/** - * Check the status of the long running operation returned by `createPhraseSet()`. - * @param {String} name - * The operation name that will be passed. - * @returns {Promise} - The promise which resolves to an object. - * The decoded operation object has result and metadata field to get information from. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.create_phrase_set.js - * region_tag:speech_v2_generated_Speech_CreatePhraseSet_async - */ - async checkCreatePhraseSetProgress(name: string): Promise>{ + /** + * Check the status of the long running operation returned by `createPhraseSet()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.create_phrase_set.js + * region_tag:speech_v2_generated_Speech_CreatePhraseSet_async + */ + async checkCreatePhraseSetProgress( + name: string, + ): Promise< + LROperation< + protos.google.cloud.speech.v2.PhraseSet, + protos.google.cloud.speech.v2.OperationMetadata + > + > { this._log.info('createPhraseSet long-running'); - const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest({name}); + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + { name }, + ); const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.createPhraseSet, this._gaxModule.createDefaultBackoffSettings()); - return decodeOperation as LROperation; + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.createPhraseSet, + this._gaxModule.createDefaultBackoffSettings(), + ); + return decodeOperation as LROperation< + protos.google.cloud.speech.v2.PhraseSet, + protos.google.cloud.speech.v2.OperationMetadata + >; } -/** - * Updates the {@link protos.google.cloud.speech.v2.PhraseSet|PhraseSet}. - * - * @param {Object} request - * The request object that will be sent. - * @param {google.cloud.speech.v2.PhraseSet} request.phraseSet - * Required. The PhraseSet to update. - * - * The PhraseSet's `name` field is used to identify the PhraseSet to update. - * Format: `projects/{project}/locations/{location}/phraseSets/{phrase_set}`. - * @param {google.protobuf.FieldMask} request.updateMask - * The list of fields to update. If empty, all non-default valued fields are - * considered for update. Use `*` to update the entire PhraseSet resource. - * @param {boolean} request.validateOnly - * If set, validate the request and preview the updated PhraseSet, but do not - * actually update it. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.update_phrase_set.js - * region_tag:speech_v2_generated_Speech_UpdatePhraseSet_async - */ + /** + * Updates the {@link protos.google.cloud.speech.v2.PhraseSet|PhraseSet}. + * + * @param {Object} request + * The request object that will be sent. + * @param {google.cloud.speech.v2.PhraseSet} request.phraseSet + * Required. The PhraseSet to update. + * + * The PhraseSet's `name` field is used to identify the PhraseSet to update. + * Format: `projects/{project}/locations/{location}/phraseSets/{phrase_set}`. + * @param {google.protobuf.FieldMask} request.updateMask + * The list of fields to update. If empty, all non-default valued fields are + * considered for update. Use `*` to update the entire PhraseSet resource. + * @param {boolean} request.validateOnly + * If set, validate the request and preview the updated PhraseSet, but do not + * actually update it. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.update_phrase_set.js + * region_tag:speech_v2_generated_Speech_UpdatePhraseSet_async + */ updatePhraseSet( - request?: protos.google.cloud.speech.v2.IUpdatePhraseSetRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v2.IUpdatePhraseSetRequest, + options?: CallOptions, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; updatePhraseSet( - request: protos.google.cloud.speech.v2.IUpdatePhraseSetRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IUpdatePhraseSetRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; updatePhraseSet( - request: protos.google.cloud.speech.v2.IUpdatePhraseSetRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IUpdatePhraseSetRequest, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; updatePhraseSet( - request?: protos.google.cloud.speech.v2.IUpdatePhraseSetRequest, - optionsOrCallback?: CallOptions|Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>, - callback?: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>|void { + request?: protos.google.cloud.speech.v2.IUpdatePhraseSetRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'phrase_set.name': request.phraseSet!.name ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + 'phrase_set.name': request.phraseSet!.name ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); - const wrappedCallback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, rawResponse, _) => { this._log.info('updatePhraseSet response %j', rawResponse); callback!(error, response, rawResponse, _); // We verified callback above. } : undefined; this._log.info('updatePhraseSet request %j', request); - return this.innerApiCalls.updatePhraseSet(request, options, wrappedCallback) - ?.then(([response, rawResponse, _]: [ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]) => { - this._log.info('updatePhraseSet response %j', rawResponse); - return [response, rawResponse, _]; - }); + return this.innerApiCalls + .updatePhraseSet(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('updatePhraseSet response %j', rawResponse); + return [response, rawResponse, _]; + }, + ); } -/** - * Check the status of the long running operation returned by `updatePhraseSet()`. - * @param {String} name - * The operation name that will be passed. - * @returns {Promise} - The promise which resolves to an object. - * The decoded operation object has result and metadata field to get information from. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.update_phrase_set.js - * region_tag:speech_v2_generated_Speech_UpdatePhraseSet_async - */ - async checkUpdatePhraseSetProgress(name: string): Promise>{ + /** + * Check the status of the long running operation returned by `updatePhraseSet()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.update_phrase_set.js + * region_tag:speech_v2_generated_Speech_UpdatePhraseSet_async + */ + async checkUpdatePhraseSetProgress( + name: string, + ): Promise< + LROperation< + protos.google.cloud.speech.v2.PhraseSet, + protos.google.cloud.speech.v2.OperationMetadata + > + > { this._log.info('updatePhraseSet long-running'); - const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest({name}); + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + { name }, + ); const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.updatePhraseSet, this._gaxModule.createDefaultBackoffSettings()); - return decodeOperation as LROperation; + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.updatePhraseSet, + this._gaxModule.createDefaultBackoffSettings(), + ); + return decodeOperation as LROperation< + protos.google.cloud.speech.v2.PhraseSet, + protos.google.cloud.speech.v2.OperationMetadata + >; } -/** - * Deletes the {@link protos.google.cloud.speech.v2.PhraseSet|PhraseSet}. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the PhraseSet to delete. - * Format: `projects/{project}/locations/{location}/phraseSets/{phrase_set}` - * @param {boolean} request.validateOnly - * If set, validate the request and preview the deleted PhraseSet, but do not - * actually delete it. - * @param {boolean} request.allowMissing - * If set to true, and the PhraseSet is not found, the request will succeed - * and be a no-op (no Operation is recorded in this case). - * @param {string} request.etag - * This checksum is computed by the server based on the value of other - * fields. This may be sent on update, undelete, and delete requests to ensure - * the client has an up-to-date value before proceeding. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.delete_phrase_set.js - * region_tag:speech_v2_generated_Speech_DeletePhraseSet_async - */ + /** + * Deletes the {@link protos.google.cloud.speech.v2.PhraseSet|PhraseSet}. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the PhraseSet to delete. + * Format: `projects/{project}/locations/{location}/phraseSets/{phrase_set}` + * @param {boolean} request.validateOnly + * If set, validate the request and preview the deleted PhraseSet, but do not + * actually delete it. + * @param {boolean} request.allowMissing + * If set to true, and the PhraseSet is not found, the request will succeed + * and be a no-op (no Operation is recorded in this case). + * @param {string} request.etag + * This checksum is computed by the server based on the value of other + * fields. This may be sent on update, undelete, and delete requests to ensure + * the client has an up-to-date value before proceeding. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.delete_phrase_set.js + * region_tag:speech_v2_generated_Speech_DeletePhraseSet_async + */ deletePhraseSet( - request?: protos.google.cloud.speech.v2.IDeletePhraseSetRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v2.IDeletePhraseSetRequest, + options?: CallOptions, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; deletePhraseSet( - request: protos.google.cloud.speech.v2.IDeletePhraseSetRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IDeletePhraseSetRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; deletePhraseSet( - request: protos.google.cloud.speech.v2.IDeletePhraseSetRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IDeletePhraseSetRequest, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; deletePhraseSet( - request?: protos.google.cloud.speech.v2.IDeletePhraseSetRequest, - optionsOrCallback?: CallOptions|Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>, - callback?: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>|void { + request?: protos.google.cloud.speech.v2.IDeletePhraseSetRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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}); - const wrappedCallback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, rawResponse, _) => { this._log.info('deletePhraseSet response %j', rawResponse); callback!(error, response, rawResponse, _); // We verified callback above. } : undefined; this._log.info('deletePhraseSet request %j', request); - return this.innerApiCalls.deletePhraseSet(request, options, wrappedCallback) - ?.then(([response, rawResponse, _]: [ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]) => { - this._log.info('deletePhraseSet response %j', rawResponse); - return [response, rawResponse, _]; - }); + return this.innerApiCalls + .deletePhraseSet(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('deletePhraseSet response %j', rawResponse); + return [response, rawResponse, _]; + }, + ); } -/** - * Check the status of the long running operation returned by `deletePhraseSet()`. - * @param {String} name - * The operation name that will be passed. - * @returns {Promise} - The promise which resolves to an object. - * The decoded operation object has result and metadata field to get information from. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.delete_phrase_set.js - * region_tag:speech_v2_generated_Speech_DeletePhraseSet_async - */ - async checkDeletePhraseSetProgress(name: string): Promise>{ + /** + * Check the status of the long running operation returned by `deletePhraseSet()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.delete_phrase_set.js + * region_tag:speech_v2_generated_Speech_DeletePhraseSet_async + */ + async checkDeletePhraseSetProgress( + name: string, + ): Promise< + LROperation< + protos.google.cloud.speech.v2.PhraseSet, + protos.google.cloud.speech.v2.OperationMetadata + > + > { this._log.info('deletePhraseSet long-running'); - const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest({name}); + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + { name }, + ); const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.deletePhraseSet, this._gaxModule.createDefaultBackoffSettings()); - return decodeOperation as LROperation; + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.deletePhraseSet, + this._gaxModule.createDefaultBackoffSettings(), + ); + return decodeOperation as LROperation< + protos.google.cloud.speech.v2.PhraseSet, + protos.google.cloud.speech.v2.OperationMetadata + >; } -/** - * Undeletes the {@link protos.google.cloud.speech.v2.PhraseSet|PhraseSet}. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the PhraseSet to undelete. - * Format: `projects/{project}/locations/{location}/phraseSets/{phrase_set}` - * @param {boolean} request.validateOnly - * If set, validate the request and preview the undeleted PhraseSet, but do - * not actually undelete it. - * @param {string} request.etag - * This checksum is computed by the server based on the value of other - * fields. This may be sent on update, undelete, and delete requests to ensure - * the client has an up-to-date value before proceeding. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.undelete_phrase_set.js - * region_tag:speech_v2_generated_Speech_UndeletePhraseSet_async - */ + /** + * Undeletes the {@link protos.google.cloud.speech.v2.PhraseSet|PhraseSet}. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the PhraseSet to undelete. + * Format: `projects/{project}/locations/{location}/phraseSets/{phrase_set}` + * @param {boolean} request.validateOnly + * If set, validate the request and preview the undeleted PhraseSet, but do + * not actually undelete it. + * @param {string} request.etag + * This checksum is computed by the server based on the value of other + * fields. This may be sent on update, undelete, and delete requests to ensure + * the client has an up-to-date value before proceeding. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.undelete_phrase_set.js + * region_tag:speech_v2_generated_Speech_UndeletePhraseSet_async + */ undeletePhraseSet( - request?: protos.google.cloud.speech.v2.IUndeletePhraseSetRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; + request?: protos.google.cloud.speech.v2.IUndeletePhraseSetRequest, + options?: CallOptions, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; undeletePhraseSet( - request: protos.google.cloud.speech.v2.IUndeletePhraseSetRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IUndeletePhraseSetRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; undeletePhraseSet( - request: protos.google.cloud.speech.v2.IUndeletePhraseSetRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.speech.v2.IUndeletePhraseSetRequest, + callback: Callback< + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; undeletePhraseSet( - request?: protos.google.cloud.speech.v2.IUndeletePhraseSetRequest, - optionsOrCallback?: CallOptions|Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>, - callback?: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>|void { + request?: protos.google.cloud.speech.v2.IUndeletePhraseSetRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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}); - const wrappedCallback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, rawResponse, _) => { this._log.info('undeletePhraseSet response %j', rawResponse); callback!(error, response, rawResponse, _); // We verified callback above. } : undefined; this._log.info('undeletePhraseSet request %j', request); - return this.innerApiCalls.undeletePhraseSet(request, options, wrappedCallback) - ?.then(([response, rawResponse, _]: [ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]) => { - this._log.info('undeletePhraseSet response %j', rawResponse); - return [response, rawResponse, _]; - }); + return this.innerApiCalls + .undeletePhraseSet(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('undeletePhraseSet response %j', rawResponse); + return [response, rawResponse, _]; + }, + ); } -/** - * Check the status of the long running operation returned by `undeletePhraseSet()`. - * @param {String} name - * The operation name that will be passed. - * @returns {Promise} - The promise which resolves to an object. - * The decoded operation object has result and metadata field to get information from. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v2/speech.undelete_phrase_set.js - * region_tag:speech_v2_generated_Speech_UndeletePhraseSet_async - */ - async checkUndeletePhraseSetProgress(name: string): Promise>{ + /** + * Check the status of the long running operation returned by `undeletePhraseSet()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v2/speech.undelete_phrase_set.js + * region_tag:speech_v2_generated_Speech_UndeletePhraseSet_async + */ + async checkUndeletePhraseSetProgress( + name: string, + ): Promise< + LROperation< + protos.google.cloud.speech.v2.PhraseSet, + protos.google.cloud.speech.v2.OperationMetadata + > + > { this._log.info('undeletePhraseSet long-running'); - const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest({name}); + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + { name }, + ); const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.undeletePhraseSet, this._gaxModule.createDefaultBackoffSettings()); - return decodeOperation as LROperation; - } - /** - * Lists Recognizers. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The project and location of Recognizers to list. The expected - * format is `projects/{project}/locations/{location}`. - * @param {number} request.pageSize - * The maximum number of Recognizers to return. The service may return fewer - * than this value. If unspecified, at most 5 Recognizers will be returned. - * The maximum value is 100; values above 100 will be coerced to 100. - * @param {string} request.pageToken - * A page token, received from a previous - * {@link protos.google.cloud.speech.v2.Speech.ListRecognizers|ListRecognizers} call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to - * {@link protos.google.cloud.speech.v2.Speech.ListRecognizers|ListRecognizers} must match - * the call that provided the page token. - * @param {boolean} request.showDeleted - * Whether, or not, to show resources that have been deleted. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.speech.v2.Recognizer|Recognizer}. - * 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 `listRecognizersAsync()` - * 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. - */ + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.undeletePhraseSet, + this._gaxModule.createDefaultBackoffSettings(), + ); + return decodeOperation as LROperation< + protos.google.cloud.speech.v2.PhraseSet, + protos.google.cloud.speech.v2.OperationMetadata + >; + } + /** + * Lists Recognizers. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The project and location of Recognizers to list. The expected + * format is `projects/{project}/locations/{location}`. + * @param {number} request.pageSize + * The maximum number of Recognizers to return. The service may return fewer + * than this value. If unspecified, at most 5 Recognizers will be returned. + * The maximum value is 100; values above 100 will be coerced to 100. + * @param {string} request.pageToken + * A page token, received from a previous + * {@link protos.google.cloud.speech.v2.Speech.ListRecognizers|ListRecognizers} call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to + * {@link protos.google.cloud.speech.v2.Speech.ListRecognizers|ListRecognizers} must match + * the call that provided the page token. + * @param {boolean} request.showDeleted + * Whether, or not, to show resources that have been deleted. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.speech.v2.Recognizer|Recognizer}. + * 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 `listRecognizersAsync()` + * 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. + */ listRecognizers( - request?: protos.google.cloud.speech.v2.IListRecognizersRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v2.IRecognizer[], - protos.google.cloud.speech.v2.IListRecognizersRequest|null, - protos.google.cloud.speech.v2.IListRecognizersResponse - ]>; + request?: protos.google.cloud.speech.v2.IListRecognizersRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v2.IRecognizer[], + protos.google.cloud.speech.v2.IListRecognizersRequest | null, + protos.google.cloud.speech.v2.IListRecognizersResponse, + ] + >; listRecognizers( - request: protos.google.cloud.speech.v2.IListRecognizersRequest, - options: CallOptions, - callback: PaginationCallback< - protos.google.cloud.speech.v2.IListRecognizersRequest, - protos.google.cloud.speech.v2.IListRecognizersResponse|null|undefined, - protos.google.cloud.speech.v2.IRecognizer>): void; + request: protos.google.cloud.speech.v2.IListRecognizersRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.speech.v2.IListRecognizersRequest, + protos.google.cloud.speech.v2.IListRecognizersResponse | null | undefined, + protos.google.cloud.speech.v2.IRecognizer + >, + ): void; listRecognizers( - request: protos.google.cloud.speech.v2.IListRecognizersRequest, - callback: PaginationCallback< - protos.google.cloud.speech.v2.IListRecognizersRequest, - protos.google.cloud.speech.v2.IListRecognizersResponse|null|undefined, - protos.google.cloud.speech.v2.IRecognizer>): void; + request: protos.google.cloud.speech.v2.IListRecognizersRequest, + callback: PaginationCallback< + protos.google.cloud.speech.v2.IListRecognizersRequest, + protos.google.cloud.speech.v2.IListRecognizersResponse | null | undefined, + protos.google.cloud.speech.v2.IRecognizer + >, + ): void; listRecognizers( - request?: protos.google.cloud.speech.v2.IListRecognizersRequest, - optionsOrCallback?: CallOptions|PaginationCallback< - protos.google.cloud.speech.v2.IListRecognizersRequest, - protos.google.cloud.speech.v2.IListRecognizersResponse|null|undefined, - protos.google.cloud.speech.v2.IRecognizer>, - callback?: PaginationCallback< + request?: protos.google.cloud.speech.v2.IListRecognizersRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< protos.google.cloud.speech.v2.IListRecognizersRequest, - protos.google.cloud.speech.v2.IListRecognizersResponse|null|undefined, - protos.google.cloud.speech.v2.IRecognizer>): - Promise<[ - protos.google.cloud.speech.v2.IRecognizer[], - protos.google.cloud.speech.v2.IListRecognizersRequest|null, - protos.google.cloud.speech.v2.IListRecognizersResponse - ]>|void { + | protos.google.cloud.speech.v2.IListRecognizersResponse + | null + | undefined, + protos.google.cloud.speech.v2.IRecognizer + >, + callback?: PaginationCallback< + protos.google.cloud.speech.v2.IListRecognizersRequest, + protos.google.cloud.speech.v2.IListRecognizersResponse | null | undefined, + protos.google.cloud.speech.v2.IRecognizer + >, + ): Promise< + [ + protos.google.cloud.speech.v2.IRecognizer[], + protos.google.cloud.speech.v2.IListRecognizersRequest | null, + protos.google.cloud.speech.v2.IListRecognizersResponse, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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.speech.v2.IListRecognizersRequest, - protos.google.cloud.speech.v2.IListRecognizersResponse|null|undefined, - protos.google.cloud.speech.v2.IRecognizer>|undefined = callback + const wrappedCallback: + | PaginationCallback< + protos.google.cloud.speech.v2.IListRecognizersRequest, + | protos.google.cloud.speech.v2.IListRecognizersResponse + | null + | undefined, + protos.google.cloud.speech.v2.IRecognizer + > + | undefined = callback ? (error, values, nextPageRequest, rawResponse) => { this._log.info('listRecognizers values %j', values); callback!(error, values, nextPageRequest, rawResponse); // We verified callback above. @@ -2793,223 +3962,252 @@ export class SpeechClient { this._log.info('listRecognizers request %j', request); return this.innerApiCalls .listRecognizers(request, options, wrappedCallback) - ?.then(([response, input, output]: [ - protos.google.cloud.speech.v2.IRecognizer[], - protos.google.cloud.speech.v2.IListRecognizersRequest|null, - protos.google.cloud.speech.v2.IListRecognizersResponse - ]) => { - this._log.info('listRecognizers values %j', response); - return [response, input, output]; - }); + ?.then( + ([response, input, output]: [ + protos.google.cloud.speech.v2.IRecognizer[], + protos.google.cloud.speech.v2.IListRecognizersRequest | null, + protos.google.cloud.speech.v2.IListRecognizersResponse, + ]) => { + this._log.info('listRecognizers values %j', response); + return [response, input, output]; + }, + ); } -/** - * Equivalent to `listRecognizers`, but returns a NodeJS Stream object. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The project and location of Recognizers to list. The expected - * format is `projects/{project}/locations/{location}`. - * @param {number} request.pageSize - * The maximum number of Recognizers to return. The service may return fewer - * than this value. If unspecified, at most 5 Recognizers will be returned. - * The maximum value is 100; values above 100 will be coerced to 100. - * @param {string} request.pageToken - * A page token, received from a previous - * {@link protos.google.cloud.speech.v2.Speech.ListRecognizers|ListRecognizers} call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to - * {@link protos.google.cloud.speech.v2.Speech.ListRecognizers|ListRecognizers} must match - * the call that provided the page token. - * @param {boolean} request.showDeleted - * Whether, or not, to show resources that have been deleted. - * @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.speech.v2.Recognizer|Recognizer} 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 `listRecognizersAsync()` - * 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 `listRecognizers`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The project and location of Recognizers to list. The expected + * format is `projects/{project}/locations/{location}`. + * @param {number} request.pageSize + * The maximum number of Recognizers to return. The service may return fewer + * than this value. If unspecified, at most 5 Recognizers will be returned. + * The maximum value is 100; values above 100 will be coerced to 100. + * @param {string} request.pageToken + * A page token, received from a previous + * {@link protos.google.cloud.speech.v2.Speech.ListRecognizers|ListRecognizers} call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to + * {@link protos.google.cloud.speech.v2.Speech.ListRecognizers|ListRecognizers} must match + * the call that provided the page token. + * @param {boolean} request.showDeleted + * Whether, or not, to show resources that have been deleted. + * @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.speech.v2.Recognizer|Recognizer} 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 `listRecognizersAsync()` + * 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. + */ listRecognizersStream( - request?: protos.google.cloud.speech.v2.IListRecognizersRequest, - options?: CallOptions): - Transform{ + request?: protos.google.cloud.speech.v2.IListRecognizersRequest, + 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['listRecognizers']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listRecognizers stream %j', request); return this.descriptors.page.listRecognizers.createStream( this.innerApiCalls.listRecognizers as GaxCall, request, - callSettings + callSettings, ); } -/** - * Equivalent to `listRecognizers`, 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 project and location of Recognizers to list. The expected - * format is `projects/{project}/locations/{location}`. - * @param {number} request.pageSize - * The maximum number of Recognizers to return. The service may return fewer - * than this value. If unspecified, at most 5 Recognizers will be returned. - * The maximum value is 100; values above 100 will be coerced to 100. - * @param {string} request.pageToken - * A page token, received from a previous - * {@link protos.google.cloud.speech.v2.Speech.ListRecognizers|ListRecognizers} call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to - * {@link protos.google.cloud.speech.v2.Speech.ListRecognizers|ListRecognizers} must match - * the call that provided the page token. - * @param {boolean} request.showDeleted - * Whether, or not, to show resources that have been deleted. - * @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.speech.v2.Recognizer|Recognizer}. 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/v2/speech.list_recognizers.js - * region_tag:speech_v2_generated_Speech_ListRecognizers_async - */ + /** + * Equivalent to `listRecognizers`, 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 project and location of Recognizers to list. The expected + * format is `projects/{project}/locations/{location}`. + * @param {number} request.pageSize + * The maximum number of Recognizers to return. The service may return fewer + * than this value. If unspecified, at most 5 Recognizers will be returned. + * The maximum value is 100; values above 100 will be coerced to 100. + * @param {string} request.pageToken + * A page token, received from a previous + * {@link protos.google.cloud.speech.v2.Speech.ListRecognizers|ListRecognizers} call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to + * {@link protos.google.cloud.speech.v2.Speech.ListRecognizers|ListRecognizers} must match + * the call that provided the page token. + * @param {boolean} request.showDeleted + * Whether, or not, to show resources that have been deleted. + * @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.speech.v2.Recognizer|Recognizer}. 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/v2/speech.list_recognizers.js + * region_tag:speech_v2_generated_Speech_ListRecognizers_async + */ listRecognizersAsync( - request?: protos.google.cloud.speech.v2.IListRecognizersRequest, - options?: CallOptions): - AsyncIterable{ + request?: protos.google.cloud.speech.v2.IListRecognizersRequest, + 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['listRecognizers']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listRecognizers iterate %j', request); return this.descriptors.page.listRecognizers.asyncIterate( this.innerApiCalls['listRecognizers'] as GaxCall, request as {}, - callSettings + callSettings, ) as AsyncIterable; } - /** - * Lists CustomClasses. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The project and location of CustomClass resources to list. The - * expected format is `projects/{project}/locations/{location}`. - * @param {number} request.pageSize - * Number of results per requests. A valid page_size ranges from 0 to 100 - * inclusive. If the page_size is zero or unspecified, a page size of 5 will - * be chosen. If the page size exceeds 100, it will be coerced down to 100. - * Note that a call might return fewer results than the requested page size. - * @param {string} request.pageToken - * A page token, received from a previous - * {@link protos.google.cloud.speech.v2.Speech.ListCustomClasses|ListCustomClasses} call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to - * {@link protos.google.cloud.speech.v2.Speech.ListCustomClasses|ListCustomClasses} must - * match the call that provided the page token. - * @param {boolean} request.showDeleted - * Whether, or not, to show resources that have been deleted. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.speech.v2.CustomClass|CustomClass}. - * 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 `listCustomClassesAsync()` - * 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 CustomClasses. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The project and location of CustomClass resources to list. The + * expected format is `projects/{project}/locations/{location}`. + * @param {number} request.pageSize + * Number of results per requests. A valid page_size ranges from 0 to 100 + * inclusive. If the page_size is zero or unspecified, a page size of 5 will + * be chosen. If the page size exceeds 100, it will be coerced down to 100. + * Note that a call might return fewer results than the requested page size. + * @param {string} request.pageToken + * A page token, received from a previous + * {@link protos.google.cloud.speech.v2.Speech.ListCustomClasses|ListCustomClasses} call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to + * {@link protos.google.cloud.speech.v2.Speech.ListCustomClasses|ListCustomClasses} must + * match the call that provided the page token. + * @param {boolean} request.showDeleted + * Whether, or not, to show resources that have been deleted. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.speech.v2.CustomClass|CustomClass}. + * 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 `listCustomClassesAsync()` + * 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. + */ listCustomClasses( - request?: protos.google.cloud.speech.v2.IListCustomClassesRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v2.ICustomClass[], - protos.google.cloud.speech.v2.IListCustomClassesRequest|null, - protos.google.cloud.speech.v2.IListCustomClassesResponse - ]>; + request?: protos.google.cloud.speech.v2.IListCustomClassesRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v2.ICustomClass[], + protos.google.cloud.speech.v2.IListCustomClassesRequest | null, + protos.google.cloud.speech.v2.IListCustomClassesResponse, + ] + >; listCustomClasses( - request: protos.google.cloud.speech.v2.IListCustomClassesRequest, - options: CallOptions, - callback: PaginationCallback< - protos.google.cloud.speech.v2.IListCustomClassesRequest, - protos.google.cloud.speech.v2.IListCustomClassesResponse|null|undefined, - protos.google.cloud.speech.v2.ICustomClass>): void; + request: protos.google.cloud.speech.v2.IListCustomClassesRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.speech.v2.IListCustomClassesRequest, + | protos.google.cloud.speech.v2.IListCustomClassesResponse + | null + | undefined, + protos.google.cloud.speech.v2.ICustomClass + >, + ): void; listCustomClasses( - request: protos.google.cloud.speech.v2.IListCustomClassesRequest, - callback: PaginationCallback< - protos.google.cloud.speech.v2.IListCustomClassesRequest, - protos.google.cloud.speech.v2.IListCustomClassesResponse|null|undefined, - protos.google.cloud.speech.v2.ICustomClass>): void; + request: protos.google.cloud.speech.v2.IListCustomClassesRequest, + callback: PaginationCallback< + protos.google.cloud.speech.v2.IListCustomClassesRequest, + | protos.google.cloud.speech.v2.IListCustomClassesResponse + | null + | undefined, + protos.google.cloud.speech.v2.ICustomClass + >, + ): void; listCustomClasses( - request?: protos.google.cloud.speech.v2.IListCustomClassesRequest, - optionsOrCallback?: CallOptions|PaginationCallback< - protos.google.cloud.speech.v2.IListCustomClassesRequest, - protos.google.cloud.speech.v2.IListCustomClassesResponse|null|undefined, - protos.google.cloud.speech.v2.ICustomClass>, - callback?: PaginationCallback< + request?: protos.google.cloud.speech.v2.IListCustomClassesRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< protos.google.cloud.speech.v2.IListCustomClassesRequest, - protos.google.cloud.speech.v2.IListCustomClassesResponse|null|undefined, - protos.google.cloud.speech.v2.ICustomClass>): - Promise<[ - protos.google.cloud.speech.v2.ICustomClass[], - protos.google.cloud.speech.v2.IListCustomClassesRequest|null, - protos.google.cloud.speech.v2.IListCustomClassesResponse - ]>|void { + | protos.google.cloud.speech.v2.IListCustomClassesResponse + | null + | undefined, + protos.google.cloud.speech.v2.ICustomClass + >, + callback?: PaginationCallback< + protos.google.cloud.speech.v2.IListCustomClassesRequest, + | protos.google.cloud.speech.v2.IListCustomClassesResponse + | null + | undefined, + protos.google.cloud.speech.v2.ICustomClass + >, + ): Promise< + [ + protos.google.cloud.speech.v2.ICustomClass[], + protos.google.cloud.speech.v2.IListCustomClassesRequest | null, + protos.google.cloud.speech.v2.IListCustomClassesResponse, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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.speech.v2.IListCustomClassesRequest, - protos.google.cloud.speech.v2.IListCustomClassesResponse|null|undefined, - protos.google.cloud.speech.v2.ICustomClass>|undefined = callback + const wrappedCallback: + | PaginationCallback< + protos.google.cloud.speech.v2.IListCustomClassesRequest, + | protos.google.cloud.speech.v2.IListCustomClassesResponse + | null + | undefined, + protos.google.cloud.speech.v2.ICustomClass + > + | undefined = callback ? (error, values, nextPageRequest, rawResponse) => { this._log.info('listCustomClasses values %j', values); callback!(error, values, nextPageRequest, rawResponse); // We verified callback above. @@ -3018,224 +4216,247 @@ export class SpeechClient { this._log.info('listCustomClasses request %j', request); return this.innerApiCalls .listCustomClasses(request, options, wrappedCallback) - ?.then(([response, input, output]: [ - protos.google.cloud.speech.v2.ICustomClass[], - protos.google.cloud.speech.v2.IListCustomClassesRequest|null, - protos.google.cloud.speech.v2.IListCustomClassesResponse - ]) => { - this._log.info('listCustomClasses values %j', response); - return [response, input, output]; - }); + ?.then( + ([response, input, output]: [ + protos.google.cloud.speech.v2.ICustomClass[], + protos.google.cloud.speech.v2.IListCustomClassesRequest | null, + protos.google.cloud.speech.v2.IListCustomClassesResponse, + ]) => { + this._log.info('listCustomClasses values %j', response); + return [response, input, output]; + }, + ); } -/** - * Equivalent to `listCustomClasses`, but returns a NodeJS Stream object. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The project and location of CustomClass resources to list. The - * expected format is `projects/{project}/locations/{location}`. - * @param {number} request.pageSize - * Number of results per requests. A valid page_size ranges from 0 to 100 - * inclusive. If the page_size is zero or unspecified, a page size of 5 will - * be chosen. If the page size exceeds 100, it will be coerced down to 100. - * Note that a call might return fewer results than the requested page size. - * @param {string} request.pageToken - * A page token, received from a previous - * {@link protos.google.cloud.speech.v2.Speech.ListCustomClasses|ListCustomClasses} call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to - * {@link protos.google.cloud.speech.v2.Speech.ListCustomClasses|ListCustomClasses} must - * match the call that provided the page token. - * @param {boolean} request.showDeleted - * Whether, or not, to show resources that have been deleted. - * @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.speech.v2.CustomClass|CustomClass} 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 `listCustomClassesAsync()` - * 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 `listCustomClasses`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The project and location of CustomClass resources to list. The + * expected format is `projects/{project}/locations/{location}`. + * @param {number} request.pageSize + * Number of results per requests. A valid page_size ranges from 0 to 100 + * inclusive. If the page_size is zero or unspecified, a page size of 5 will + * be chosen. If the page size exceeds 100, it will be coerced down to 100. + * Note that a call might return fewer results than the requested page size. + * @param {string} request.pageToken + * A page token, received from a previous + * {@link protos.google.cloud.speech.v2.Speech.ListCustomClasses|ListCustomClasses} call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to + * {@link protos.google.cloud.speech.v2.Speech.ListCustomClasses|ListCustomClasses} must + * match the call that provided the page token. + * @param {boolean} request.showDeleted + * Whether, or not, to show resources that have been deleted. + * @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.speech.v2.CustomClass|CustomClass} 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 `listCustomClassesAsync()` + * 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. + */ listCustomClassesStream( - request?: protos.google.cloud.speech.v2.IListCustomClassesRequest, - options?: CallOptions): - Transform{ + request?: protos.google.cloud.speech.v2.IListCustomClassesRequest, + 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['listCustomClasses']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listCustomClasses stream %j', request); return this.descriptors.page.listCustomClasses.createStream( this.innerApiCalls.listCustomClasses as GaxCall, request, - callSettings + callSettings, ); } -/** - * Equivalent to `listCustomClasses`, 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 project and location of CustomClass resources to list. The - * expected format is `projects/{project}/locations/{location}`. - * @param {number} request.pageSize - * Number of results per requests. A valid page_size ranges from 0 to 100 - * inclusive. If the page_size is zero or unspecified, a page size of 5 will - * be chosen. If the page size exceeds 100, it will be coerced down to 100. - * Note that a call might return fewer results than the requested page size. - * @param {string} request.pageToken - * A page token, received from a previous - * {@link protos.google.cloud.speech.v2.Speech.ListCustomClasses|ListCustomClasses} call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to - * {@link protos.google.cloud.speech.v2.Speech.ListCustomClasses|ListCustomClasses} must - * match the call that provided the page token. - * @param {boolean} request.showDeleted - * Whether, or not, to show resources that have been deleted. - * @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.speech.v2.CustomClass|CustomClass}. 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/v2/speech.list_custom_classes.js - * region_tag:speech_v2_generated_Speech_ListCustomClasses_async - */ + /** + * Equivalent to `listCustomClasses`, 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 project and location of CustomClass resources to list. The + * expected format is `projects/{project}/locations/{location}`. + * @param {number} request.pageSize + * Number of results per requests. A valid page_size ranges from 0 to 100 + * inclusive. If the page_size is zero or unspecified, a page size of 5 will + * be chosen. If the page size exceeds 100, it will be coerced down to 100. + * Note that a call might return fewer results than the requested page size. + * @param {string} request.pageToken + * A page token, received from a previous + * {@link protos.google.cloud.speech.v2.Speech.ListCustomClasses|ListCustomClasses} call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to + * {@link protos.google.cloud.speech.v2.Speech.ListCustomClasses|ListCustomClasses} must + * match the call that provided the page token. + * @param {boolean} request.showDeleted + * Whether, or not, to show resources that have been deleted. + * @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.speech.v2.CustomClass|CustomClass}. 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/v2/speech.list_custom_classes.js + * region_tag:speech_v2_generated_Speech_ListCustomClasses_async + */ listCustomClassesAsync( - request?: protos.google.cloud.speech.v2.IListCustomClassesRequest, - options?: CallOptions): - AsyncIterable{ + request?: protos.google.cloud.speech.v2.IListCustomClassesRequest, + 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['listCustomClasses']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listCustomClasses iterate %j', request); return this.descriptors.page.listCustomClasses.asyncIterate( this.innerApiCalls['listCustomClasses'] as GaxCall, request as {}, - callSettings + callSettings, ) as AsyncIterable; } - /** - * Lists PhraseSets. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The project and location of PhraseSet resources to list. The - * expected format is `projects/{project}/locations/{location}`. - * @param {number} request.pageSize - * The maximum number of PhraseSets to return. The service may return fewer - * than this value. If unspecified, at most 5 PhraseSets will be returned. - * The maximum value is 100; values above 100 will be coerced to 100. - * @param {string} request.pageToken - * A page token, received from a previous - * {@link protos.google.cloud.speech.v2.Speech.ListPhraseSets|ListPhraseSets} call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to - * {@link protos.google.cloud.speech.v2.Speech.ListPhraseSets|ListPhraseSets} must match - * the call that provided the page token. - * @param {boolean} request.showDeleted - * Whether, or not, to show resources that have been deleted. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.speech.v2.PhraseSet|PhraseSet}. - * 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 `listPhraseSetsAsync()` - * 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 PhraseSets. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The project and location of PhraseSet resources to list. The + * expected format is `projects/{project}/locations/{location}`. + * @param {number} request.pageSize + * The maximum number of PhraseSets to return. The service may return fewer + * than this value. If unspecified, at most 5 PhraseSets will be returned. + * The maximum value is 100; values above 100 will be coerced to 100. + * @param {string} request.pageToken + * A page token, received from a previous + * {@link protos.google.cloud.speech.v2.Speech.ListPhraseSets|ListPhraseSets} call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to + * {@link protos.google.cloud.speech.v2.Speech.ListPhraseSets|ListPhraseSets} must match + * the call that provided the page token. + * @param {boolean} request.showDeleted + * Whether, or not, to show resources that have been deleted. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.speech.v2.PhraseSet|PhraseSet}. + * 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 `listPhraseSetsAsync()` + * 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. + */ listPhraseSets( - request?: protos.google.cloud.speech.v2.IListPhraseSetsRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.speech.v2.IPhraseSet[], - protos.google.cloud.speech.v2.IListPhraseSetsRequest|null, - protos.google.cloud.speech.v2.IListPhraseSetsResponse - ]>; + request?: protos.google.cloud.speech.v2.IListPhraseSetsRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.speech.v2.IPhraseSet[], + protos.google.cloud.speech.v2.IListPhraseSetsRequest | null, + protos.google.cloud.speech.v2.IListPhraseSetsResponse, + ] + >; listPhraseSets( - request: protos.google.cloud.speech.v2.IListPhraseSetsRequest, - options: CallOptions, - callback: PaginationCallback< - protos.google.cloud.speech.v2.IListPhraseSetsRequest, - protos.google.cloud.speech.v2.IListPhraseSetsResponse|null|undefined, - protos.google.cloud.speech.v2.IPhraseSet>): void; + request: protos.google.cloud.speech.v2.IListPhraseSetsRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.speech.v2.IListPhraseSetsRequest, + protos.google.cloud.speech.v2.IListPhraseSetsResponse | null | undefined, + protos.google.cloud.speech.v2.IPhraseSet + >, + ): void; listPhraseSets( - request: protos.google.cloud.speech.v2.IListPhraseSetsRequest, - callback: PaginationCallback< - protos.google.cloud.speech.v2.IListPhraseSetsRequest, - protos.google.cloud.speech.v2.IListPhraseSetsResponse|null|undefined, - protos.google.cloud.speech.v2.IPhraseSet>): void; + request: protos.google.cloud.speech.v2.IListPhraseSetsRequest, + callback: PaginationCallback< + protos.google.cloud.speech.v2.IListPhraseSetsRequest, + protos.google.cloud.speech.v2.IListPhraseSetsResponse | null | undefined, + protos.google.cloud.speech.v2.IPhraseSet + >, + ): void; listPhraseSets( - request?: protos.google.cloud.speech.v2.IListPhraseSetsRequest, - optionsOrCallback?: CallOptions|PaginationCallback< - protos.google.cloud.speech.v2.IListPhraseSetsRequest, - protos.google.cloud.speech.v2.IListPhraseSetsResponse|null|undefined, - protos.google.cloud.speech.v2.IPhraseSet>, - callback?: PaginationCallback< + request?: protos.google.cloud.speech.v2.IListPhraseSetsRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< protos.google.cloud.speech.v2.IListPhraseSetsRequest, - protos.google.cloud.speech.v2.IListPhraseSetsResponse|null|undefined, - protos.google.cloud.speech.v2.IPhraseSet>): - Promise<[ - protos.google.cloud.speech.v2.IPhraseSet[], - protos.google.cloud.speech.v2.IListPhraseSetsRequest|null, - protos.google.cloud.speech.v2.IListPhraseSetsResponse - ]>|void { + | protos.google.cloud.speech.v2.IListPhraseSetsResponse + | null + | undefined, + protos.google.cloud.speech.v2.IPhraseSet + >, + callback?: PaginationCallback< + protos.google.cloud.speech.v2.IListPhraseSetsRequest, + protos.google.cloud.speech.v2.IListPhraseSetsResponse | null | undefined, + protos.google.cloud.speech.v2.IPhraseSet + >, + ): Promise< + [ + protos.google.cloud.speech.v2.IPhraseSet[], + protos.google.cloud.speech.v2.IListPhraseSetsRequest | null, + protos.google.cloud.speech.v2.IListPhraseSetsResponse, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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.speech.v2.IListPhraseSetsRequest, - protos.google.cloud.speech.v2.IListPhraseSetsResponse|null|undefined, - protos.google.cloud.speech.v2.IPhraseSet>|undefined = callback + const wrappedCallback: + | PaginationCallback< + protos.google.cloud.speech.v2.IListPhraseSetsRequest, + | protos.google.cloud.speech.v2.IListPhraseSetsResponse + | null + | undefined, + protos.google.cloud.speech.v2.IPhraseSet + > + | undefined = callback ? (error, values, nextPageRequest, rawResponse) => { this._log.info('listPhraseSets values %j', values); callback!(error, values, nextPageRequest, rawResponse); // We verified callback above. @@ -3244,131 +4465,136 @@ export class SpeechClient { this._log.info('listPhraseSets request %j', request); return this.innerApiCalls .listPhraseSets(request, options, wrappedCallback) - ?.then(([response, input, output]: [ - protos.google.cloud.speech.v2.IPhraseSet[], - protos.google.cloud.speech.v2.IListPhraseSetsRequest|null, - protos.google.cloud.speech.v2.IListPhraseSetsResponse - ]) => { - this._log.info('listPhraseSets values %j', response); - return [response, input, output]; - }); + ?.then( + ([response, input, output]: [ + protos.google.cloud.speech.v2.IPhraseSet[], + protos.google.cloud.speech.v2.IListPhraseSetsRequest | null, + protos.google.cloud.speech.v2.IListPhraseSetsResponse, + ]) => { + this._log.info('listPhraseSets values %j', response); + return [response, input, output]; + }, + ); } -/** - * Equivalent to `listPhraseSets`, but returns a NodeJS Stream object. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The project and location of PhraseSet resources to list. The - * expected format is `projects/{project}/locations/{location}`. - * @param {number} request.pageSize - * The maximum number of PhraseSets to return. The service may return fewer - * than this value. If unspecified, at most 5 PhraseSets will be returned. - * The maximum value is 100; values above 100 will be coerced to 100. - * @param {string} request.pageToken - * A page token, received from a previous - * {@link protos.google.cloud.speech.v2.Speech.ListPhraseSets|ListPhraseSets} call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to - * {@link protos.google.cloud.speech.v2.Speech.ListPhraseSets|ListPhraseSets} must match - * the call that provided the page token. - * @param {boolean} request.showDeleted - * Whether, or not, to show resources that have been deleted. - * @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.speech.v2.PhraseSet|PhraseSet} 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 `listPhraseSetsAsync()` - * 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 `listPhraseSets`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The project and location of PhraseSet resources to list. The + * expected format is `projects/{project}/locations/{location}`. + * @param {number} request.pageSize + * The maximum number of PhraseSets to return. The service may return fewer + * than this value. If unspecified, at most 5 PhraseSets will be returned. + * The maximum value is 100; values above 100 will be coerced to 100. + * @param {string} request.pageToken + * A page token, received from a previous + * {@link protos.google.cloud.speech.v2.Speech.ListPhraseSets|ListPhraseSets} call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to + * {@link protos.google.cloud.speech.v2.Speech.ListPhraseSets|ListPhraseSets} must match + * the call that provided the page token. + * @param {boolean} request.showDeleted + * Whether, or not, to show resources that have been deleted. + * @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.speech.v2.PhraseSet|PhraseSet} 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 `listPhraseSetsAsync()` + * 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. + */ listPhraseSetsStream( - request?: protos.google.cloud.speech.v2.IListPhraseSetsRequest, - options?: CallOptions): - Transform{ + request?: protos.google.cloud.speech.v2.IListPhraseSetsRequest, + 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['listPhraseSets']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listPhraseSets stream %j', request); return this.descriptors.page.listPhraseSets.createStream( this.innerApiCalls.listPhraseSets as GaxCall, request, - callSettings + callSettings, ); } -/** - * Equivalent to `listPhraseSets`, 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 project and location of PhraseSet resources to list. The - * expected format is `projects/{project}/locations/{location}`. - * @param {number} request.pageSize - * The maximum number of PhraseSets to return. The service may return fewer - * than this value. If unspecified, at most 5 PhraseSets will be returned. - * The maximum value is 100; values above 100 will be coerced to 100. - * @param {string} request.pageToken - * A page token, received from a previous - * {@link protos.google.cloud.speech.v2.Speech.ListPhraseSets|ListPhraseSets} call. - * Provide this to retrieve the subsequent page. - * - * When paginating, all other parameters provided to - * {@link protos.google.cloud.speech.v2.Speech.ListPhraseSets|ListPhraseSets} must match - * the call that provided the page token. - * @param {boolean} request.showDeleted - * Whether, or not, to show resources that have been deleted. - * @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.speech.v2.PhraseSet|PhraseSet}. 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/v2/speech.list_phrase_sets.js - * region_tag:speech_v2_generated_Speech_ListPhraseSets_async - */ + /** + * Equivalent to `listPhraseSets`, 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 project and location of PhraseSet resources to list. The + * expected format is `projects/{project}/locations/{location}`. + * @param {number} request.pageSize + * The maximum number of PhraseSets to return. The service may return fewer + * than this value. If unspecified, at most 5 PhraseSets will be returned. + * The maximum value is 100; values above 100 will be coerced to 100. + * @param {string} request.pageToken + * A page token, received from a previous + * {@link protos.google.cloud.speech.v2.Speech.ListPhraseSets|ListPhraseSets} call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to + * {@link protos.google.cloud.speech.v2.Speech.ListPhraseSets|ListPhraseSets} must match + * the call that provided the page token. + * @param {boolean} request.showDeleted + * Whether, or not, to show resources that have been deleted. + * @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.speech.v2.PhraseSet|PhraseSet}. 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/v2/speech.list_phrase_sets.js + * region_tag:speech_v2_generated_Speech_ListPhraseSets_async + */ listPhraseSetsAsync( - request?: protos.google.cloud.speech.v2.IListPhraseSetsRequest, - options?: CallOptions): - AsyncIterable{ + request?: protos.google.cloud.speech.v2.IListPhraseSetsRequest, + 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['listPhraseSets']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listPhraseSets iterate %j', request); return this.descriptors.page.listPhraseSets.asyncIterate( this.innerApiCalls['listPhraseSets'] as GaxCall, request as {}, - callSettings + callSettings, ) as AsyncIterable; } -/** + + /** * Gets information about a location. * * @param {Object} request @@ -3403,12 +4629,11 @@ export class SpeechClient { | 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. @@ -3441,12 +4666,12 @@ export class SpeechClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } -/** + /** * Gets the latest state of a long-running operation. Clients can use this * method to poll the operation result at intervals as recommended by the API * service. @@ -3489,22 +4714,22 @@ export class SpeechClient { protos.google.longrunning.Operation, protos.google.longrunning.GetOperationRequest, {} | null | undefined - > + >, ): Promise<[protos.google.longrunning.Operation]> { - let options: gax.CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as gax.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 ?? '', - }); + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.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 ?? '', + }); return this.operationsClient.getOperation(request, options, callback); } /** @@ -3539,15 +4764,15 @@ export class SpeechClient { */ listOperationsAsync( request: protos.google.longrunning.ListOperationsRequest, - options?: gax.CallOptions + options?: gax.CallOptions, ): AsyncIterable { - 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 = 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 ?? '', + }); return this.operationsClient.listOperationsAsync(request, options); } /** @@ -3581,7 +4806,7 @@ export class SpeechClient { * await client.cancelOperation({name: ''}); * ``` */ - cancelOperation( + cancelOperation( request: protos.google.longrunning.CancelOperationRequest, optionsOrCallback?: | gax.CallOptions @@ -3594,25 +4819,24 @@ export class SpeechClient { protos.google.longrunning.CancelOperationRequest, protos.google.protobuf.Empty, {} | undefined | null - > + >, ): Promise { - let options: gax.CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as gax.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 ?? '', - }); + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.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 ?? '', + }); return this.operationsClient.cancelOperation(request, options, callback); } - /** * Deletes a long-running operation. This method indicates that the client is * no longer interested in the operation result. It does not cancel the @@ -3651,22 +4875,22 @@ export class SpeechClient { protos.google.protobuf.Empty, protos.google.longrunning.DeleteOperationRequest, {} | null | undefined - > + >, ): Promise { - let options: gax.CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as gax.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 ?? '', - }); + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.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 ?? '', + }); return this.operationsClient.deleteOperation(request, options, callback); } @@ -3681,7 +4905,7 @@ export class SpeechClient { * @param {string} location * @returns {string} Resource name string. */ - configPath(project:string,location:string) { + configPath(project: string, location: string) { return this.pathTemplates.configPathTemplate.render({ project: project, location: location, @@ -3719,7 +4943,12 @@ export class SpeechClient { * @param {string} crypto_key * @returns {string} Resource name string. */ - cryptoKeyPath(project:string,location:string,keyRing:string,cryptoKey:string) { + cryptoKeyPath( + project: string, + location: string, + keyRing: string, + cryptoKey: string, + ) { return this.pathTemplates.cryptoKeyPathTemplate.render({ project: project, location: location, @@ -3736,7 +4965,8 @@ export class SpeechClient { * @returns {string} A string representing the project. */ matchProjectFromCryptoKeyName(cryptoKeyName: string) { - return this.pathTemplates.cryptoKeyPathTemplate.match(cryptoKeyName).project; + return this.pathTemplates.cryptoKeyPathTemplate.match(cryptoKeyName) + .project; } /** @@ -3747,7 +4977,8 @@ export class SpeechClient { * @returns {string} A string representing the location. */ matchLocationFromCryptoKeyName(cryptoKeyName: string) { - return this.pathTemplates.cryptoKeyPathTemplate.match(cryptoKeyName).location; + return this.pathTemplates.cryptoKeyPathTemplate.match(cryptoKeyName) + .location; } /** @@ -3758,7 +4989,8 @@ export class SpeechClient { * @returns {string} A string representing the key_ring. */ matchKeyRingFromCryptoKeyName(cryptoKeyName: string) { - return this.pathTemplates.cryptoKeyPathTemplate.match(cryptoKeyName).key_ring; + return this.pathTemplates.cryptoKeyPathTemplate.match(cryptoKeyName) + .key_ring; } /** @@ -3769,7 +5001,8 @@ export class SpeechClient { * @returns {string} A string representing the crypto_key. */ matchCryptoKeyFromCryptoKeyName(cryptoKeyName: string) { - return this.pathTemplates.cryptoKeyPathTemplate.match(cryptoKeyName).crypto_key; + return this.pathTemplates.cryptoKeyPathTemplate.match(cryptoKeyName) + .crypto_key; } /** @@ -3782,7 +5015,13 @@ export class SpeechClient { * @param {string} crypto_key_version * @returns {string} Resource name string. */ - cryptoKeyVersionPath(project:string,location:string,keyRing:string,cryptoKey:string,cryptoKeyVersion:string) { + cryptoKeyVersionPath( + project: string, + location: string, + keyRing: string, + cryptoKey: string, + cryptoKeyVersion: string, + ) { return this.pathTemplates.cryptoKeyVersionPathTemplate.render({ project: project, location: location, @@ -3800,7 +5039,9 @@ export class SpeechClient { * @returns {string} A string representing the project. */ matchProjectFromCryptoKeyVersionName(cryptoKeyVersionName: string) { - return this.pathTemplates.cryptoKeyVersionPathTemplate.match(cryptoKeyVersionName).project; + return this.pathTemplates.cryptoKeyVersionPathTemplate.match( + cryptoKeyVersionName, + ).project; } /** @@ -3811,7 +5052,9 @@ export class SpeechClient { * @returns {string} A string representing the location. */ matchLocationFromCryptoKeyVersionName(cryptoKeyVersionName: string) { - return this.pathTemplates.cryptoKeyVersionPathTemplate.match(cryptoKeyVersionName).location; + return this.pathTemplates.cryptoKeyVersionPathTemplate.match( + cryptoKeyVersionName, + ).location; } /** @@ -3822,7 +5065,9 @@ export class SpeechClient { * @returns {string} A string representing the key_ring. */ matchKeyRingFromCryptoKeyVersionName(cryptoKeyVersionName: string) { - return this.pathTemplates.cryptoKeyVersionPathTemplate.match(cryptoKeyVersionName).key_ring; + return this.pathTemplates.cryptoKeyVersionPathTemplate.match( + cryptoKeyVersionName, + ).key_ring; } /** @@ -3833,7 +5078,9 @@ export class SpeechClient { * @returns {string} A string representing the crypto_key. */ matchCryptoKeyFromCryptoKeyVersionName(cryptoKeyVersionName: string) { - return this.pathTemplates.cryptoKeyVersionPathTemplate.match(cryptoKeyVersionName).crypto_key; + return this.pathTemplates.cryptoKeyVersionPathTemplate.match( + cryptoKeyVersionName, + ).crypto_key; } /** @@ -3844,7 +5091,9 @@ export class SpeechClient { * @returns {string} A string representing the crypto_key_version. */ matchCryptoKeyVersionFromCryptoKeyVersionName(cryptoKeyVersionName: string) { - return this.pathTemplates.cryptoKeyVersionPathTemplate.match(cryptoKeyVersionName).crypto_key_version; + return this.pathTemplates.cryptoKeyVersionPathTemplate.match( + cryptoKeyVersionName, + ).crypto_key_version; } /** @@ -3855,7 +5104,7 @@ export class SpeechClient { * @param {string} custom_class * @returns {string} Resource name string. */ - customClassPath(project:string,location:string,customClass:string) { + customClassPath(project: string, location: string, customClass: string) { return this.pathTemplates.customClassPathTemplate.render({ project: project, location: location, @@ -3871,7 +5120,8 @@ export class SpeechClient { * @returns {string} A string representing the project. */ matchProjectFromCustomClassName(customClassName: string) { - return this.pathTemplates.customClassPathTemplate.match(customClassName).project; + return this.pathTemplates.customClassPathTemplate.match(customClassName) + .project; } /** @@ -3882,7 +5132,8 @@ export class SpeechClient { * @returns {string} A string representing the location. */ matchLocationFromCustomClassName(customClassName: string) { - return this.pathTemplates.customClassPathTemplate.match(customClassName).location; + return this.pathTemplates.customClassPathTemplate.match(customClassName) + .location; } /** @@ -3893,7 +5144,8 @@ export class SpeechClient { * @returns {string} A string representing the custom_class. */ matchCustomClassFromCustomClassName(customClassName: string) { - return this.pathTemplates.customClassPathTemplate.match(customClassName).custom_class; + return this.pathTemplates.customClassPathTemplate.match(customClassName) + .custom_class; } /** @@ -3903,7 +5155,7 @@ export class SpeechClient { * @param {string} location * @returns {string} Resource name string. */ - locationPath(project:string,location:string) { + locationPath(project: string, location: string) { return this.pathTemplates.locationPathTemplate.render({ project: project, location: location, @@ -3940,7 +5192,7 @@ export class SpeechClient { * @param {string} phrase_set * @returns {string} Resource name string. */ - phraseSetPath(project:string,location:string,phraseSet:string) { + phraseSetPath(project: string, location: string, phraseSet: string) { return this.pathTemplates.phraseSetPathTemplate.render({ project: project, location: location, @@ -3956,7 +5208,8 @@ export class SpeechClient { * @returns {string} A string representing the project. */ matchProjectFromPhraseSetName(phraseSetName: string) { - return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName).project; + return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName) + .project; } /** @@ -3967,7 +5220,8 @@ export class SpeechClient { * @returns {string} A string representing the location. */ matchLocationFromPhraseSetName(phraseSetName: string) { - return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName).location; + return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName) + .location; } /** @@ -3978,7 +5232,8 @@ export class SpeechClient { * @returns {string} A string representing the phrase_set. */ matchPhraseSetFromPhraseSetName(phraseSetName: string) { - return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName).phrase_set; + return this.pathTemplates.phraseSetPathTemplate.match(phraseSetName) + .phrase_set; } /** @@ -3987,7 +5242,7 @@ export class SpeechClient { * @param {string} project * @returns {string} Resource name string. */ - projectPath(project:string) { + projectPath(project: string) { return this.pathTemplates.projectPathTemplate.render({ project: project, }); @@ -4012,7 +5267,7 @@ export class SpeechClient { * @param {string} recognizer * @returns {string} Resource name string. */ - recognizerPath(project:string,location:string,recognizer:string) { + recognizerPath(project: string, location: string, recognizer: string) { return this.pathTemplates.recognizerPathTemplate.render({ project: project, location: location, @@ -4028,7 +5283,8 @@ export class SpeechClient { * @returns {string} A string representing the project. */ matchProjectFromRecognizerName(recognizerName: string) { - return this.pathTemplates.recognizerPathTemplate.match(recognizerName).project; + return this.pathTemplates.recognizerPathTemplate.match(recognizerName) + .project; } /** @@ -4039,7 +5295,8 @@ export class SpeechClient { * @returns {string} A string representing the location. */ matchLocationFromRecognizerName(recognizerName: string) { - return this.pathTemplates.recognizerPathTemplate.match(recognizerName).location; + return this.pathTemplates.recognizerPathTemplate.match(recognizerName) + .location; } /** @@ -4050,7 +5307,8 @@ export class SpeechClient { * @returns {string} A string representing the recognizer. */ matchRecognizerFromRecognizerName(recognizerName: string) { - return this.pathTemplates.recognizerPathTemplate.match(recognizerName).recognizer; + return this.pathTemplates.recognizerPathTemplate.match(recognizerName) + .recognizer; } /** @@ -4061,17 +5319,20 @@ export class SpeechClient { */ close(): Promise { if (this.speechStub && !this._terminated) { - return this.speechStub.then(stub => { + return this.speechStub.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; + }); void this.operationsClient.close(); }); } return Promise.resolve(); } } + import {ImprovedStreamingClient} from '../helpers'; // eslint-disable-next-line @typescript-eslint/no-empty-interface export interface SpeechClient extends ImprovedStreamingClient {} diff --git a/packages/google-cloud-speech/system-test/fixtures/sample/src/index.ts b/packages/google-cloud-speech/system-test/fixtures/sample/src/index.ts index 4c716fc7b0d6..785fad9f0eb1 100644 --- a/packages/google-cloud-speech/system-test/fixtures/sample/src/index.ts +++ b/packages/google-cloud-speech/system-test/fixtures/sample/src/index.ts @@ -16,7 +16,7 @@ // ** https://github.com/googleapis/gapic-generator-typescript ** // ** All changes to this file may be overwritten. ** -import {AdaptationClient, SpeechClient} from '@google-cloud/speech'; +import { AdaptationClient, SpeechClient } from '@google-cloud/speech'; // check that the client class type name can be used function doStuffWithAdaptationClient(client: AdaptationClient) { diff --git a/packages/google-cloud-speech/system-test/install.ts b/packages/google-cloud-speech/system-test/install.ts index f66069aa3940..ccf167042d2e 100644 --- a/packages/google-cloud-speech/system-test/install.ts +++ b/packages/google-cloud-speech/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-speech/test/gapic_adaptation_v1.ts b/packages/google-cloud-speech/test/gapic_adaptation_v1.ts index 266efe302b15..8aa639a39fe8 100644 --- a/packages/google-cloud-speech/test/gapic_adaptation_v1.ts +++ b/packages/google-cloud-speech/test/gapic_adaptation_v1.ts @@ -19,1768 +19,2182 @@ 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 adaptationModule from '../src'; -import {PassThrough} from 'stream'; +import { PassThrough } from 'stream'; -import {protobuf} from 'google-gax'; +import { protobuf } 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.AdaptationClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new adaptationModule.v1.AdaptationClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'speech.googleapis.com'); - }); - - it('has universeDomain', () => { - const client = new adaptationModule.v1.AdaptationClient(); - 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 = adaptationModule.v1.AdaptationClient.servicePath; - assert.strictEqual(servicePath, 'speech.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = adaptationModule.v1.AdaptationClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'speech.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new adaptationModule.v1.AdaptationClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'speech.example.com'); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = new adaptationModule.v1.AdaptationClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'speech.googleapis.com'); + }); - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new adaptationModule.v1.AdaptationClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'speech.example.com'); - }); + it('has universeDomain', () => { + const client = new adaptationModule.v1.AdaptationClient(); + 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 adaptationModule.v1.AdaptationClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'speech.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 adaptationModule.v1.AdaptationClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'speech.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 adaptationModule.v1.AdaptationClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); - }); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = adaptationModule.v1.AdaptationClient.servicePath; + assert.strictEqual(servicePath, 'speech.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = adaptationModule.v1.AdaptationClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'speech.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = new adaptationModule.v1.AdaptationClient({ + universeDomain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'speech.example.com'); + }); - it('has port', () => { - const port = adaptationModule.v1.AdaptationClient.port; - assert(port); - assert(typeof port === 'number'); - }); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = new adaptationModule.v1.AdaptationClient({ + universe_domain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'speech.example.com'); + }); - it('should create a client with no option', () => { - const client = new adaptationModule.v1.AdaptationClient(); - 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 adaptationModule.v1.AdaptationClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'speech.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 adaptationModule.v1.AdaptationClient({ - 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 adaptationModule.v1.AdaptationClient({ + universeDomain: 'configured.example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'speech.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 adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.adaptationStub, undefined); - await client.initialize(); - assert(client.adaptationStub); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new adaptationModule.v1.AdaptationClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('has close method for the initialized client', done => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.adaptationStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('has port', () => { + const port = adaptationModule.v1.AdaptationClient.port; + assert(port); + assert(typeof port === 'number'); + }); - it('has close method for the non-initialized client', done => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.adaptationStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('should create a client with no option', () => { + const client = new adaptationModule.v1.AdaptationClient(); + assert(client); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new adaptationModule.v1.AdaptationClient({ - 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 adaptationModule.v1.AdaptationClient({ + fallback: true, + }); + assert(client); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new adaptationModule.v1.AdaptationClient({ - 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 adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.adaptationStub, undefined); + await client.initialize(); + assert(client.adaptationStub); }); - describe('createPhraseSet', () => { - it('invokes createPhraseSet without error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.CreatePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.CreatePhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1.PhraseSet() - ); - client.innerApiCalls.createPhraseSet = stubSimpleCall(expectedResponse); - const [response] = await client.createPhraseSet(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createPhraseSet 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 adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.adaptationStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('invokes createPhraseSet without error using callback', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.CreatePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.CreatePhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1.PhraseSet() - ); - client.innerApiCalls.createPhraseSet = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.createPhraseSet( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v1.IPhraseSet|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createPhraseSet 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 adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.adaptationStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('invokes createPhraseSet with error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.CreatePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.CreatePhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.createPhraseSet = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.createPhraseSet(request), expectedError); - const actualRequest = (client.innerApiCalls.createPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createPhraseSet 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 adaptationModule.v1.AdaptationClient({ + 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 createPhraseSet with closed client', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.CreatePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.CreatePhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.createPhraseSet(request), expectedError); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new adaptationModule.v1.AdaptationClient({ + 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('createPhraseSet', () => { + it('invokes createPhraseSet without error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.CreatePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.CreatePhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1.PhraseSet(), + ); + client.innerApiCalls.createPhraseSet = stubSimpleCall(expectedResponse); + const [response] = await client.createPhraseSet(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('getPhraseSet', () => { - it('invokes getPhraseSet without error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.GetPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.GetPhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1.PhraseSet() - ); - client.innerApiCalls.getPhraseSet = stubSimpleCall(expectedResponse); - const [response] = await client.getPhraseSet(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getPhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createPhraseSet without error using callback', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.CreatePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.CreatePhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1.PhraseSet(), + ); + client.innerApiCalls.createPhraseSet = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.createPhraseSet( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v1.IPhraseSet | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getPhraseSet without error using callback', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.GetPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.GetPhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1.PhraseSet() - ); - client.innerApiCalls.getPhraseSet = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getPhraseSet( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v1.IPhraseSet|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getPhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createPhraseSet with error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.CreatePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.CreatePhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.createPhraseSet = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.createPhraseSet(request), expectedError); + const actualRequest = ( + client.innerApiCalls.createPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getPhraseSet with error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.GetPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.GetPhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.getPhraseSet = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getPhraseSet(request), expectedError); - const actualRequest = (client.innerApiCalls.getPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getPhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createPhraseSet with closed client', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.CreatePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.CreatePhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.createPhraseSet(request), expectedError); + }); + }); + + describe('getPhraseSet', () => { + it('invokes getPhraseSet without error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.GetPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.GetPhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1.PhraseSet(), + ); + client.innerApiCalls.getPhraseSet = stubSimpleCall(expectedResponse); + const [response] = await client.getPhraseSet(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getPhraseSet with closed client', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.GetPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.GetPhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.getPhraseSet(request), expectedError); - }); + it('invokes getPhraseSet without error using callback', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.GetPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.GetPhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1.PhraseSet(), + ); + client.innerApiCalls.getPhraseSet = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getPhraseSet( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v1.IPhraseSet | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('updatePhraseSet', () => { - it('invokes updatePhraseSet without error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.UpdatePhraseSetRequest() - ); - request.phraseSet ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.UpdatePhraseSetRequest', ['phraseSet', 'name']); - request.phraseSet.name = defaultValue1; - const expectedHeaderRequestParams = `phrase_set.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1.PhraseSet() - ); - client.innerApiCalls.updatePhraseSet = stubSimpleCall(expectedResponse); - const [response] = await client.updatePhraseSet(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updatePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updatePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getPhraseSet with error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.GetPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.GetPhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getPhraseSet = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.getPhraseSet(request), expectedError); + const actualRequest = ( + client.innerApiCalls.getPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updatePhraseSet without error using callback', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.UpdatePhraseSetRequest() - ); - request.phraseSet ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.UpdatePhraseSetRequest', ['phraseSet', 'name']); - request.phraseSet.name = defaultValue1; - const expectedHeaderRequestParams = `phrase_set.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1.PhraseSet() - ); - client.innerApiCalls.updatePhraseSet = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.updatePhraseSet( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v1.IPhraseSet|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updatePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updatePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getPhraseSet with closed client', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.GetPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.GetPhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.getPhraseSet(request), expectedError); + }); + }); + + describe('updatePhraseSet', () => { + it('invokes updatePhraseSet without error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.UpdatePhraseSetRequest(), + ); + request.phraseSet ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.UpdatePhraseSetRequest', + ['phraseSet', 'name'], + ); + request.phraseSet.name = defaultValue1; + const expectedHeaderRequestParams = `phrase_set.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1.PhraseSet(), + ); + client.innerApiCalls.updatePhraseSet = stubSimpleCall(expectedResponse); + const [response] = await client.updatePhraseSet(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updatePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updatePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updatePhraseSet with error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.UpdatePhraseSetRequest() - ); - request.phraseSet ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.UpdatePhraseSetRequest', ['phraseSet', 'name']); - request.phraseSet.name = defaultValue1; - const expectedHeaderRequestParams = `phrase_set.name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.updatePhraseSet = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.updatePhraseSet(request), expectedError); - const actualRequest = (client.innerApiCalls.updatePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updatePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes updatePhraseSet without error using callback', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.UpdatePhraseSetRequest(), + ); + request.phraseSet ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.UpdatePhraseSetRequest', + ['phraseSet', 'name'], + ); + request.phraseSet.name = defaultValue1; + const expectedHeaderRequestParams = `phrase_set.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1.PhraseSet(), + ); + client.innerApiCalls.updatePhraseSet = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.updatePhraseSet( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v1.IPhraseSet | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updatePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updatePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updatePhraseSet with closed client', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.UpdatePhraseSetRequest() - ); - request.phraseSet ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.UpdatePhraseSetRequest', ['phraseSet', 'name']); - request.phraseSet.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.updatePhraseSet(request), expectedError); - }); + it('invokes updatePhraseSet with error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.UpdatePhraseSetRequest(), + ); + request.phraseSet ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.UpdatePhraseSetRequest', + ['phraseSet', 'name'], + ); + request.phraseSet.name = defaultValue1; + const expectedHeaderRequestParams = `phrase_set.name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.updatePhraseSet = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.updatePhraseSet(request), expectedError); + const actualRequest = ( + client.innerApiCalls.updatePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updatePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('deletePhraseSet', () => { - it('invokes deletePhraseSet without error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.DeletePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.DeletePhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.innerApiCalls.deletePhraseSet = stubSimpleCall(expectedResponse); - const [response] = await client.deletePhraseSet(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.deletePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deletePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes updatePhraseSet with closed client', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.UpdatePhraseSetRequest(), + ); + request.phraseSet ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.UpdatePhraseSetRequest', + ['phraseSet', 'name'], + ); + request.phraseSet.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.updatePhraseSet(request), expectedError); + }); + }); + + describe('deletePhraseSet', () => { + it('invokes deletePhraseSet without error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.DeletePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.DeletePhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.innerApiCalls.deletePhraseSet = stubSimpleCall(expectedResponse); + const [response] = await client.deletePhraseSet(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.deletePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deletePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deletePhraseSet without error using callback', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.DeletePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.DeletePhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.innerApiCalls.deletePhraseSet = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.deletePhraseSet( - 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.deletePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deletePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes deletePhraseSet without error using callback', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.DeletePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.DeletePhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.innerApiCalls.deletePhraseSet = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.deletePhraseSet( + 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.deletePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deletePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deletePhraseSet with error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.DeletePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.DeletePhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.deletePhraseSet = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.deletePhraseSet(request), expectedError); - const actualRequest = (client.innerApiCalls.deletePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deletePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes deletePhraseSet with error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.DeletePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.DeletePhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.deletePhraseSet = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.deletePhraseSet(request), expectedError); + const actualRequest = ( + client.innerApiCalls.deletePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deletePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deletePhraseSet with closed client', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.DeletePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.DeletePhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.deletePhraseSet(request), expectedError); - }); + it('invokes deletePhraseSet with closed client', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.DeletePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.DeletePhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.deletePhraseSet(request), expectedError); + }); + }); + + describe('createCustomClass', () => { + it('invokes createCustomClass without error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.CreateCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.CreateCustomClassRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1.CustomClass(), + ); + client.innerApiCalls.createCustomClass = stubSimpleCall(expectedResponse); + const [response] = await client.createCustomClass(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('createCustomClass', () => { - it('invokes createCustomClass without error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.CreateCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.CreateCustomClassRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1.CustomClass() - ); - client.innerApiCalls.createCustomClass = stubSimpleCall(expectedResponse); - const [response] = await client.createCustomClass(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createCustomClass without error using callback', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.CreateCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.CreateCustomClassRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1.CustomClass(), + ); + client.innerApiCalls.createCustomClass = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.createCustomClass( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v1.ICustomClass | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes createCustomClass without error using callback', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.CreateCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.CreateCustomClassRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1.CustomClass() - ); - client.innerApiCalls.createCustomClass = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.createCustomClass( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v1.ICustomClass|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createCustomClass with error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.CreateCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.CreateCustomClassRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.createCustomClass = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.createCustomClass(request), expectedError); + const actualRequest = ( + client.innerApiCalls.createCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes createCustomClass with error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.CreateCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.CreateCustomClassRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.createCustomClass = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.createCustomClass(request), expectedError); - const actualRequest = (client.innerApiCalls.createCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createCustomClass with closed client', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.CreateCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.CreateCustomClassRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.createCustomClass(request), expectedError); + }); + }); + + describe('getCustomClass', () => { + it('invokes getCustomClass without error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.GetCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.GetCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1.CustomClass(), + ); + client.innerApiCalls.getCustomClass = stubSimpleCall(expectedResponse); + const [response] = await client.getCustomClass(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes createCustomClass with closed client', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.CreateCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.CreateCustomClassRequest', ['parent']); - request.parent = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.createCustomClass(request), expectedError); - }); + it('invokes getCustomClass without error using callback', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.GetCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.GetCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1.CustomClass(), + ); + client.innerApiCalls.getCustomClass = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getCustomClass( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v1.ICustomClass | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('getCustomClass', () => { - it('invokes getCustomClass without error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.GetCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.GetCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1.CustomClass() - ); - client.innerApiCalls.getCustomClass = stubSimpleCall(expectedResponse); - const [response] = await client.getCustomClass(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getCustomClass with error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.GetCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.GetCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getCustomClass = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.getCustomClass(request), expectedError); + const actualRequest = ( + client.innerApiCalls.getCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getCustomClass without error using callback', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.GetCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.GetCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1.CustomClass() - ); - client.innerApiCalls.getCustomClass = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getCustomClass( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v1.ICustomClass|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getCustomClass with closed client', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.GetCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.GetCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.getCustomClass(request), expectedError); + }); + }); + + describe('updateCustomClass', () => { + it('invokes updateCustomClass without error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.UpdateCustomClassRequest(), + ); + request.customClass ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.UpdateCustomClassRequest', + ['customClass', 'name'], + ); + request.customClass.name = defaultValue1; + const expectedHeaderRequestParams = `custom_class.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1.CustomClass(), + ); + client.innerApiCalls.updateCustomClass = stubSimpleCall(expectedResponse); + const [response] = await client.updateCustomClass(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updateCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getCustomClass with error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.GetCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.GetCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.getCustomClass = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getCustomClass(request), expectedError); - const actualRequest = (client.innerApiCalls.getCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes updateCustomClass without error using callback', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.UpdateCustomClassRequest(), + ); + request.customClass ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.UpdateCustomClassRequest', + ['customClass', 'name'], + ); + request.customClass.name = defaultValue1; + const expectedHeaderRequestParams = `custom_class.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1.CustomClass(), + ); + client.innerApiCalls.updateCustomClass = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.updateCustomClass( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v1.ICustomClass | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updateCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getCustomClass with closed client', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.GetCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.GetCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.getCustomClass(request), expectedError); - }); + it('invokes updateCustomClass with error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.UpdateCustomClassRequest(), + ); + request.customClass ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.UpdateCustomClassRequest', + ['customClass', 'name'], + ); + request.customClass.name = defaultValue1; + const expectedHeaderRequestParams = `custom_class.name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.updateCustomClass = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.updateCustomClass(request), expectedError); + const actualRequest = ( + client.innerApiCalls.updateCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('updateCustomClass', () => { - it('invokes updateCustomClass without error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.UpdateCustomClassRequest() - ); - request.customClass ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.UpdateCustomClassRequest', ['customClass', 'name']); - request.customClass.name = defaultValue1; - const expectedHeaderRequestParams = `custom_class.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1.CustomClass() - ); - client.innerApiCalls.updateCustomClass = stubSimpleCall(expectedResponse); - const [response] = await client.updateCustomClass(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updateCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes updateCustomClass with closed client', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.UpdateCustomClassRequest(), + ); + request.customClass ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.UpdateCustomClassRequest', + ['customClass', 'name'], + ); + request.customClass.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.updateCustomClass(request), expectedError); + }); + }); + + describe('deleteCustomClass', () => { + it('invokes deleteCustomClass without error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.DeleteCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.DeleteCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.innerApiCalls.deleteCustomClass = stubSimpleCall(expectedResponse); + const [response] = await client.deleteCustomClass(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.deleteCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updateCustomClass without error using callback', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.UpdateCustomClassRequest() - ); - request.customClass ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.UpdateCustomClassRequest', ['customClass', 'name']); - request.customClass.name = defaultValue1; - const expectedHeaderRequestParams = `custom_class.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1.CustomClass() - ); - client.innerApiCalls.updateCustomClass = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.updateCustomClass( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v1.ICustomClass|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updateCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes deleteCustomClass without error using callback', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.DeleteCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.DeleteCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.innerApiCalls.deleteCustomClass = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.deleteCustomClass( + 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.deleteCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updateCustomClass with error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.UpdateCustomClassRequest() - ); - request.customClass ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.UpdateCustomClassRequest', ['customClass', 'name']); - request.customClass.name = defaultValue1; - const expectedHeaderRequestParams = `custom_class.name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.updateCustomClass = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.updateCustomClass(request), expectedError); - const actualRequest = (client.innerApiCalls.updateCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes deleteCustomClass with error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.DeleteCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.DeleteCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.deleteCustomClass = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.deleteCustomClass(request), expectedError); + const actualRequest = ( + client.innerApiCalls.deleteCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updateCustomClass with closed client', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.UpdateCustomClassRequest() - ); - request.customClass ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.UpdateCustomClassRequest', ['customClass', 'name']); - request.customClass.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.updateCustomClass(request), expectedError); - }); + it('invokes deleteCustomClass with closed client', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.DeleteCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.DeleteCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.deleteCustomClass(request), expectedError); + }); + }); + + describe('listPhraseSet', () => { + it('invokes listPhraseSet without error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.ListPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.ListPhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), + generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), + generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), + ]; + client.innerApiCalls.listPhraseSet = stubSimpleCall(expectedResponse); + const [response] = await client.listPhraseSet(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('deleteCustomClass', () => { - it('invokes deleteCustomClass without error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.DeleteCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.DeleteCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.innerApiCalls.deleteCustomClass = stubSimpleCall(expectedResponse); - const [response] = await client.deleteCustomClass(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.deleteCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listPhraseSet without error using callback', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.ListPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.ListPhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), + generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), + generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), + ]; + client.innerApiCalls.listPhraseSet = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listPhraseSet( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v1.IPhraseSet[] | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deleteCustomClass without error using callback', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.DeleteCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.DeleteCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.innerApiCalls.deleteCustomClass = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.deleteCustomClass( - 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.deleteCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listPhraseSet with error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.ListPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.ListPhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listPhraseSet = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.listPhraseSet(request), expectedError); + const actualRequest = ( + client.innerApiCalls.listPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deleteCustomClass with error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.DeleteCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.DeleteCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.deleteCustomClass = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.deleteCustomClass(request), expectedError); - const actualRequest = (client.innerApiCalls.deleteCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes listPhraseSetStream without error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.ListPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.ListPhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), + generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), + generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), + ]; + client.descriptors.page.listPhraseSet.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.listPhraseSetStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.speech.v1.PhraseSet[] = []; + stream.on( + 'data', + (response: protos.google.cloud.speech.v1.PhraseSet) => { + responses.push(response); + }, + ); + stream.on('end', () => { + resolve(responses); }); - - it('invokes deleteCustomClass with closed client', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.DeleteCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.DeleteCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.deleteCustomClass(request), expectedError); + stream.on('error', (err: Error) => { + reject(err); }); + }); + const responses = await promise; + assert.deepStrictEqual(responses, expectedResponse); + assert( + (client.descriptors.page.listPhraseSet.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listPhraseSet, request), + ); + assert( + (client.descriptors.page.listPhraseSet.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); }); - describe('listPhraseSet', () => { - it('invokes listPhraseSet without error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.ListPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.ListPhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), - ]; - client.innerApiCalls.listPhraseSet = stubSimpleCall(expectedResponse); - const [response] = await client.listPhraseSet(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listPhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes listPhraseSetStream with error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.ListPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.ListPhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listPhraseSet.createStream = + stubPageStreamingCall(undefined, expectedError); + const stream = client.listPhraseSetStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.speech.v1.PhraseSet[] = []; + stream.on( + 'data', + (response: protos.google.cloud.speech.v1.PhraseSet) => { + responses.push(response); + }, + ); + stream.on('end', () => { + resolve(responses); }); - - it('invokes listPhraseSet without error using callback', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.ListPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.ListPhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), - ]; - client.innerApiCalls.listPhraseSet = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listPhraseSet( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v1.IPhraseSet[]|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listPhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listPhraseSet with error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.ListPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.ListPhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.listPhraseSet = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.listPhraseSet(request), expectedError); - const actualRequest = (client.innerApiCalls.listPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listPhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + stream.on('error', (err: Error) => { + reject(err); }); + }); + await assert.rejects(promise, expectedError); + assert( + (client.descriptors.page.listPhraseSet.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listPhraseSet, request), + ); + assert( + (client.descriptors.page.listPhraseSet.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('invokes listPhraseSetStream without error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.ListPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.ListPhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), - ]; - client.descriptors.page.listPhraseSet.createStream = stubPageStreamingCall(expectedResponse); - const stream = client.listPhraseSetStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.speech.v1.PhraseSet[] = []; - stream.on('data', (response: protos.google.cloud.speech.v1.PhraseSet) => { - 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.listPhraseSet.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listPhraseSet, request)); - assert( - (client.descriptors.page.listPhraseSet.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('uses async iteration with listPhraseSet without error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.ListPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.ListPhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), + generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), + generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), + ]; + client.descriptors.page.listPhraseSet.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.speech.v1.IPhraseSet[] = []; + const iterable = client.listPhraseSetAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.descriptors.page.listPhraseSet.asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + (client.descriptors.page.listPhraseSet.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('invokes listPhraseSetStream with error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.ListPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.ListPhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listPhraseSet.createStream = stubPageStreamingCall(undefined, expectedError); - const stream = client.listPhraseSetStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.speech.v1.PhraseSet[] = []; - stream.on('data', (response: protos.google.cloud.speech.v1.PhraseSet) => { - responses.push(response); - }); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - assert((client.descriptors.page.listPhraseSet.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listPhraseSet, request)); - assert( - (client.descriptors.page.listPhraseSet.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('uses async iteration with listPhraseSet with error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.ListPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.ListPhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listPhraseSet.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listPhraseSetAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.speech.v1.IPhraseSet[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.descriptors.page.listPhraseSet.asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + (client.descriptors.page.listPhraseSet.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); + }); + + describe('listCustomClasses', () => { + it('invokes listCustomClasses without error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.ListCustomClassesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.ListCustomClassesRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), + generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), + generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), + ]; + client.innerApiCalls.listCustomClasses = stubSimpleCall(expectedResponse); + const [response] = await client.listCustomClasses(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listCustomClasses as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listCustomClasses as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('uses async iteration with listPhraseSet without error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.ListPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.ListPhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v1.PhraseSet()), - ]; - client.descriptors.page.listPhraseSet.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: protos.google.cloud.speech.v1.IPhraseSet[] = []; - const iterable = client.listPhraseSetAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + it('invokes listCustomClasses without error using callback', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.ListCustomClassesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.ListCustomClassesRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), + generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), + generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), + ]; + client.innerApiCalls.listCustomClasses = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listCustomClasses( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v1.ICustomClass[] | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.descriptors.page.listPhraseSet.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listPhraseSet.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - - it('uses async iteration with listPhraseSet with error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.ListPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.ListPhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listPhraseSet.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listPhraseSetAsync(request); - await assert.rejects(async () => { - const responses: protos.google.cloud.speech.v1.IPhraseSet[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.descriptors.page.listPhraseSet.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listPhraseSet.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.listCustomClasses as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listCustomClasses as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('listCustomClasses', () => { - it('invokes listCustomClasses without error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.ListCustomClassesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.ListCustomClassesRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), - ]; - client.innerApiCalls.listCustomClasses = stubSimpleCall(expectedResponse); - const [response] = await client.listCustomClasses(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listCustomClasses as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listCustomClasses as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listCustomClasses without error using callback', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.ListCustomClassesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.ListCustomClassesRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), - ]; - client.innerApiCalls.listCustomClasses = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listCustomClasses( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v1.ICustomClass[]|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listCustomClasses as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listCustomClasses as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listCustomClasses with error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.ListCustomClassesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.ListCustomClassesRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listCustomClasses = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.listCustomClasses(request), expectedError); + const actualRequest = ( + client.innerApiCalls.listCustomClasses as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listCustomClasses as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes listCustomClasses with error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.ListCustomClassesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.ListCustomClassesRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.listCustomClasses = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.listCustomClasses(request), expectedError); - const actualRequest = (client.innerApiCalls.listCustomClasses as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listCustomClasses as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes listCustomClassesStream without error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.ListCustomClassesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.ListCustomClassesRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), + generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), + generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), + ]; + client.descriptors.page.listCustomClasses.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.listCustomClassesStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.speech.v1.CustomClass[] = []; + stream.on( + 'data', + (response: protos.google.cloud.speech.v1.CustomClass) => { + responses.push(response); + }, + ); + stream.on('end', () => { + resolve(responses); }); - - it('invokes listCustomClassesStream without error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.ListCustomClassesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.ListCustomClassesRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), - ]; - client.descriptors.page.listCustomClasses.createStream = stubPageStreamingCall(expectedResponse); - const stream = client.listCustomClassesStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.speech.v1.CustomClass[] = []; - stream.on('data', (response: protos.google.cloud.speech.v1.CustomClass) => { - 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.listCustomClasses.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listCustomClasses, request)); - assert( - (client.descriptors.page.listCustomClasses.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); + stream.on('error', (err: Error) => { + reject(err); }); + }); + const responses = await promise; + assert.deepStrictEqual(responses, expectedResponse); + assert( + (client.descriptors.page.listCustomClasses.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listCustomClasses, request), + ); + assert( + (client.descriptors.page.listCustomClasses.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('invokes listCustomClassesStream with error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.ListCustomClassesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.ListCustomClassesRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listCustomClasses.createStream = stubPageStreamingCall(undefined, expectedError); - const stream = client.listCustomClassesStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.speech.v1.CustomClass[] = []; - stream.on('data', (response: protos.google.cloud.speech.v1.CustomClass) => { - responses.push(response); - }); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - assert((client.descriptors.page.listCustomClasses.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listCustomClasses, request)); - assert( - (client.descriptors.page.listCustomClasses.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); + it('invokes listCustomClassesStream with error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.ListCustomClassesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.ListCustomClassesRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listCustomClasses.createStream = + stubPageStreamingCall(undefined, expectedError); + const stream = client.listCustomClassesStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.speech.v1.CustomClass[] = []; + stream.on( + 'data', + (response: protos.google.cloud.speech.v1.CustomClass) => { + responses.push(response); + }, + ); + stream.on('end', () => { + resolve(responses); }); - - it('uses async iteration with listCustomClasses without error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.ListCustomClassesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.ListCustomClassesRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), - ]; - client.descriptors.page.listCustomClasses.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: protos.google.cloud.speech.v1.ICustomClass[] = []; - const iterable = client.listCustomClassesAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.descriptors.page.listCustomClasses.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listCustomClasses.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.listCustomClasses.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listCustomClasses, request), + ); + assert( + (client.descriptors.page.listCustomClasses.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('uses async iteration with listCustomClasses with error', async () => { - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.ListCustomClassesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1.ListCustomClassesRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listCustomClasses.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listCustomClassesAsync(request); - await assert.rejects(async () => { - const responses: protos.google.cloud.speech.v1.ICustomClass[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.descriptors.page.listCustomClasses.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listCustomClasses.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('uses async iteration with listCustomClasses without error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.ListCustomClassesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.ListCustomClassesRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), + generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), + generateSampleMessage(new protos.google.cloud.speech.v1.CustomClass()), + ]; + client.descriptors.page.listCustomClasses.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.speech.v1.ICustomClass[] = []; + const iterable = client.listCustomClassesAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.descriptors.page.listCustomClasses.asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + (client.descriptors.page.listCustomClasses.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); }); - describe('Path templates', () => { - - describe('customClass', async () => { - const fakePath = "/rendered/path/customClass"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - custom_class: "customClassValue", - }; - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.customClassPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.customClassPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('customClassPath', () => { - const result = client.customClassPath("projectValue", "locationValue", "customClassValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.customClassPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromCustomClassName', () => { - const result = client.matchProjectFromCustomClassName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.customClassPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromCustomClassName', () => { - const result = client.matchLocationFromCustomClassName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.customClassPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchCustomClassFromCustomClassName', () => { - const result = client.matchCustomClassFromCustomClassName(fakePath); - assert.strictEqual(result, "customClassValue"); - assert((client.pathTemplates.customClassPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('uses async iteration with listCustomClasses with error', async () => { + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.ListCustomClassesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1.ListCustomClassesRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listCustomClasses.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listCustomClassesAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.speech.v1.ICustomClass[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.descriptors.page.listCustomClasses.asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + (client.descriptors.page.listCustomClasses.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); + }); + + describe('Path templates', () => { + describe('customClass', async () => { + const fakePath = '/rendered/path/customClass'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + custom_class: 'customClassValue', + }; + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.customClassPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.customClassPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('customClassPath', () => { + const result = client.customClassPath( + 'projectValue', + 'locationValue', + 'customClassValue', + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.customClassPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromCustomClassName', () => { + const result = client.matchProjectFromCustomClassName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.customClassPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromCustomClassName', () => { + const result = client.matchLocationFromCustomClassName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.customClassPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchCustomClassFromCustomClassName', () => { + const result = client.matchCustomClassFromCustomClassName(fakePath); + assert.strictEqual(result, 'customClassValue'); + assert( + (client.pathTemplates.customClassPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); - describe('location', async () => { - const fakePath = "/rendered/path/location"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - }; - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.locationPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.locationPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('locationPath', () => { - const result = client.locationPath("projectValue", "locationValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.locationPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromLocationName', () => { - const result = client.matchProjectFromLocationName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.locationPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromLocationName', () => { - const result = client.matchLocationFromLocationName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.locationPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + describe('location', async () => { + const fakePath = '/rendered/path/location'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + }; + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.locationPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.locationPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('locationPath', () => { + const result = client.locationPath('projectValue', 'locationValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.locationPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromLocationName', () => { + const result = client.matchProjectFromLocationName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.locationPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromLocationName', () => { + const result = client.matchLocationFromLocationName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.locationPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); - describe('phraseSet', async () => { - const fakePath = "/rendered/path/phraseSet"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - phrase_set: "phraseSetValue", - }; - const client = new adaptationModule.v1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.phraseSetPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.phraseSetPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('phraseSetPath', () => { - const result = client.phraseSetPath("projectValue", "locationValue", "phraseSetValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.phraseSetPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromPhraseSetName', () => { - const result = client.matchProjectFromPhraseSetName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.phraseSetPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromPhraseSetName', () => { - const result = client.matchLocationFromPhraseSetName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.phraseSetPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchPhraseSetFromPhraseSetName', () => { - const result = client.matchPhraseSetFromPhraseSetName(fakePath); - assert.strictEqual(result, "phraseSetValue"); - assert((client.pathTemplates.phraseSetPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + describe('phraseSet', async () => { + const fakePath = '/rendered/path/phraseSet'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + phrase_set: 'phraseSetValue', + }; + const client = new adaptationModule.v1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.phraseSetPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.phraseSetPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('phraseSetPath', () => { + const result = client.phraseSetPath( + 'projectValue', + 'locationValue', + 'phraseSetValue', + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.phraseSetPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromPhraseSetName', () => { + const result = client.matchProjectFromPhraseSetName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.phraseSetPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromPhraseSetName', () => { + const result = client.matchLocationFromPhraseSetName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.phraseSetPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchPhraseSetFromPhraseSetName', () => { + const result = client.matchPhraseSetFromPhraseSetName(fakePath); + assert.strictEqual(result, 'phraseSetValue'); + assert( + (client.pathTemplates.phraseSetPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); - describe('project', async () => { - const fakePath = "/rendered/path/project"; - const expectedParameters = { - project: "projectValue", - }; - const client = new adaptationModule.v1.AdaptationClient({ - 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 adaptationModule.v1.AdaptationClient({ + 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-speech/test/gapic_adaptation_v1p1beta1.ts b/packages/google-cloud-speech/test/gapic_adaptation_v1p1beta1.ts index 5bc91f3a67b1..a2a40e858900 100644 --- a/packages/google-cloud-speech/test/gapic_adaptation_v1p1beta1.ts +++ b/packages/google-cloud-speech/test/gapic_adaptation_v1p1beta1.ts @@ -19,1768 +19,2235 @@ 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 adaptationModule from '../src'; -import {PassThrough} from 'stream'; +import { PassThrough } from 'stream'; -import {protobuf} from 'google-gax'; +import { protobuf } 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('v1p1beta1.AdaptationClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'speech.googleapis.com'); - }); - - it('has universeDomain', () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient(); - 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 = adaptationModule.v1p1beta1.AdaptationClient.servicePath; - assert.strictEqual(servicePath, 'speech.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = adaptationModule.v1p1beta1.AdaptationClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'speech.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'speech.example.com'); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'speech.googleapis.com'); + }); - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'speech.example.com'); - }); + it('has universeDomain', () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient(); + 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 adaptationModule.v1p1beta1.AdaptationClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'speech.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 adaptationModule.v1p1beta1.AdaptationClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'speech.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 adaptationModule.v1p1beta1.AdaptationClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); - }); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + adaptationModule.v1p1beta1.AdaptationClient.servicePath; + assert.strictEqual(servicePath, 'speech.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + adaptationModule.v1p1beta1.AdaptationClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'speech.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + universeDomain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'speech.example.com'); + }); - it('has port', () => { - const port = adaptationModule.v1p1beta1.AdaptationClient.port; - assert(port); - assert(typeof port === 'number'); - }); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + universe_domain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'speech.example.com'); + }); - it('should create a client with no option', () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient(); - 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 adaptationModule.v1p1beta1.AdaptationClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'speech.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 adaptationModule.v1p1beta1.AdaptationClient({ - 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 adaptationModule.v1p1beta1.AdaptationClient({ + universeDomain: 'configured.example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'speech.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 adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.adaptationStub, undefined); - await client.initialize(); - assert(client.adaptationStub); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new adaptationModule.v1p1beta1.AdaptationClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('has close method for the initialized client', done => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.adaptationStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('has port', () => { + const port = adaptationModule.v1p1beta1.AdaptationClient.port; + assert(port); + assert(typeof port === 'number'); + }); - it('has close method for the non-initialized client', done => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.adaptationStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('should create a client with no option', () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient(); + assert(client); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - 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 adaptationModule.v1p1beta1.AdaptationClient({ + fallback: true, + }); + assert(client); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - 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 adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.adaptationStub, undefined); + await client.initialize(); + assert(client.adaptationStub); }); - describe('createPhraseSet', () => { - it('invokes createPhraseSet without error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.CreatePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.CreatePhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.PhraseSet() - ); - client.innerApiCalls.createPhraseSet = stubSimpleCall(expectedResponse); - const [response] = await client.createPhraseSet(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createPhraseSet 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 adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.adaptationStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('invokes createPhraseSet without error using callback', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.CreatePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.CreatePhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.PhraseSet() - ); - client.innerApiCalls.createPhraseSet = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.createPhraseSet( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v1p1beta1.IPhraseSet|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createPhraseSet 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 adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.adaptationStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('invokes createPhraseSet with error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.CreatePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.CreatePhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.createPhraseSet = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.createPhraseSet(request), expectedError); - const actualRequest = (client.innerApiCalls.createPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createPhraseSet 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 adaptationModule.v1p1beta1.AdaptationClient({ + 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 createPhraseSet with closed client', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.CreatePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.CreatePhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.createPhraseSet(request), expectedError); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + 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('createPhraseSet', () => { + it('invokes createPhraseSet without error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CreatePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.CreatePhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.PhraseSet(), + ); + client.innerApiCalls.createPhraseSet = stubSimpleCall(expectedResponse); + const [response] = await client.createPhraseSet(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('getPhraseSet', () => { - it('invokes getPhraseSet without error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.GetPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.GetPhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.PhraseSet() - ); - client.innerApiCalls.getPhraseSet = stubSimpleCall(expectedResponse); - const [response] = await client.getPhraseSet(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getPhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createPhraseSet without error using callback', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CreatePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.CreatePhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.PhraseSet(), + ); + client.innerApiCalls.createPhraseSet = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.createPhraseSet( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v1p1beta1.IPhraseSet | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getPhraseSet without error using callback', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.GetPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.GetPhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.PhraseSet() - ); - client.innerApiCalls.getPhraseSet = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getPhraseSet( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v1p1beta1.IPhraseSet|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getPhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createPhraseSet with error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CreatePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.CreatePhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.createPhraseSet = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.createPhraseSet(request), expectedError); + const actualRequest = ( + client.innerApiCalls.createPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getPhraseSet with error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.GetPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.GetPhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.getPhraseSet = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getPhraseSet(request), expectedError); - const actualRequest = (client.innerApiCalls.getPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getPhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createPhraseSet with closed client', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CreatePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.CreatePhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.createPhraseSet(request), expectedError); + }); + }); + + describe('getPhraseSet', () => { + it('invokes getPhraseSet without error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.GetPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.GetPhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.PhraseSet(), + ); + client.innerApiCalls.getPhraseSet = stubSimpleCall(expectedResponse); + const [response] = await client.getPhraseSet(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getPhraseSet with closed client', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.GetPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.GetPhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.getPhraseSet(request), expectedError); - }); + it('invokes getPhraseSet without error using callback', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.GetPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.GetPhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.PhraseSet(), + ); + client.innerApiCalls.getPhraseSet = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getPhraseSet( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v1p1beta1.IPhraseSet | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('updatePhraseSet', () => { - it('invokes updatePhraseSet without error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.UpdatePhraseSetRequest() - ); - request.phraseSet ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.UpdatePhraseSetRequest', ['phraseSet', 'name']); - request.phraseSet.name = defaultValue1; - const expectedHeaderRequestParams = `phrase_set.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.PhraseSet() - ); - client.innerApiCalls.updatePhraseSet = stubSimpleCall(expectedResponse); - const [response] = await client.updatePhraseSet(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updatePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updatePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getPhraseSet with error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.GetPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.GetPhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getPhraseSet = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.getPhraseSet(request), expectedError); + const actualRequest = ( + client.innerApiCalls.getPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updatePhraseSet without error using callback', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.UpdatePhraseSetRequest() - ); - request.phraseSet ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.UpdatePhraseSetRequest', ['phraseSet', 'name']); - request.phraseSet.name = defaultValue1; - const expectedHeaderRequestParams = `phrase_set.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.PhraseSet() - ); - client.innerApiCalls.updatePhraseSet = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.updatePhraseSet( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v1p1beta1.IPhraseSet|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updatePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updatePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getPhraseSet with closed client', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.GetPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.GetPhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.getPhraseSet(request), expectedError); + }); + }); + + describe('updatePhraseSet', () => { + it('invokes updatePhraseSet without error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.UpdatePhraseSetRequest(), + ); + request.phraseSet ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.UpdatePhraseSetRequest', + ['phraseSet', 'name'], + ); + request.phraseSet.name = defaultValue1; + const expectedHeaderRequestParams = `phrase_set.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.PhraseSet(), + ); + client.innerApiCalls.updatePhraseSet = stubSimpleCall(expectedResponse); + const [response] = await client.updatePhraseSet(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updatePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updatePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updatePhraseSet with error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.UpdatePhraseSetRequest() - ); - request.phraseSet ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.UpdatePhraseSetRequest', ['phraseSet', 'name']); - request.phraseSet.name = defaultValue1; - const expectedHeaderRequestParams = `phrase_set.name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.updatePhraseSet = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.updatePhraseSet(request), expectedError); - const actualRequest = (client.innerApiCalls.updatePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updatePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes updatePhraseSet without error using callback', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.UpdatePhraseSetRequest(), + ); + request.phraseSet ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.UpdatePhraseSetRequest', + ['phraseSet', 'name'], + ); + request.phraseSet.name = defaultValue1; + const expectedHeaderRequestParams = `phrase_set.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.PhraseSet(), + ); + client.innerApiCalls.updatePhraseSet = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.updatePhraseSet( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v1p1beta1.IPhraseSet | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updatePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updatePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updatePhraseSet with closed client', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.UpdatePhraseSetRequest() - ); - request.phraseSet ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.UpdatePhraseSetRequest', ['phraseSet', 'name']); - request.phraseSet.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.updatePhraseSet(request), expectedError); - }); + it('invokes updatePhraseSet with error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.UpdatePhraseSetRequest(), + ); + request.phraseSet ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.UpdatePhraseSetRequest', + ['phraseSet', 'name'], + ); + request.phraseSet.name = defaultValue1; + const expectedHeaderRequestParams = `phrase_set.name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.updatePhraseSet = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.updatePhraseSet(request), expectedError); + const actualRequest = ( + client.innerApiCalls.updatePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updatePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('deletePhraseSet', () => { - it('invokes deletePhraseSet without error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.DeletePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.DeletePhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.innerApiCalls.deletePhraseSet = stubSimpleCall(expectedResponse); - const [response] = await client.deletePhraseSet(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.deletePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deletePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes updatePhraseSet with closed client', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.UpdatePhraseSetRequest(), + ); + request.phraseSet ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.UpdatePhraseSetRequest', + ['phraseSet', 'name'], + ); + request.phraseSet.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.updatePhraseSet(request), expectedError); + }); + }); + + describe('deletePhraseSet', () => { + it('invokes deletePhraseSet without error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.DeletePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.DeletePhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.innerApiCalls.deletePhraseSet = stubSimpleCall(expectedResponse); + const [response] = await client.deletePhraseSet(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.deletePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deletePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deletePhraseSet without error using callback', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.DeletePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.DeletePhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.innerApiCalls.deletePhraseSet = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.deletePhraseSet( - 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.deletePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deletePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes deletePhraseSet without error using callback', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.DeletePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.DeletePhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.innerApiCalls.deletePhraseSet = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.deletePhraseSet( + 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.deletePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deletePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deletePhraseSet with error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.DeletePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.DeletePhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.deletePhraseSet = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.deletePhraseSet(request), expectedError); - const actualRequest = (client.innerApiCalls.deletePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deletePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes deletePhraseSet with error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.DeletePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.DeletePhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.deletePhraseSet = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.deletePhraseSet(request), expectedError); + const actualRequest = ( + client.innerApiCalls.deletePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deletePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deletePhraseSet with closed client', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.DeletePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.DeletePhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.deletePhraseSet(request), expectedError); - }); + it('invokes deletePhraseSet with closed client', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.DeletePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.DeletePhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.deletePhraseSet(request), expectedError); + }); + }); + + describe('createCustomClass', () => { + it('invokes createCustomClass without error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CreateCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.CreateCustomClassRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CustomClass(), + ); + client.innerApiCalls.createCustomClass = stubSimpleCall(expectedResponse); + const [response] = await client.createCustomClass(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('createCustomClass', () => { - it('invokes createCustomClass without error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.CreateCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.CreateCustomClassRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.CustomClass() - ); - client.innerApiCalls.createCustomClass = stubSimpleCall(expectedResponse); - const [response] = await client.createCustomClass(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createCustomClass without error using callback', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CreateCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.CreateCustomClassRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CustomClass(), + ); + client.innerApiCalls.createCustomClass = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.createCustomClass( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v1p1beta1.ICustomClass | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes createCustomClass without error using callback', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.CreateCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.CreateCustomClassRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.CustomClass() - ); - client.innerApiCalls.createCustomClass = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.createCustomClass( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v1p1beta1.ICustomClass|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createCustomClass with error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CreateCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.CreateCustomClassRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.createCustomClass = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.createCustomClass(request), expectedError); + const actualRequest = ( + client.innerApiCalls.createCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes createCustomClass with error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.CreateCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.CreateCustomClassRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.createCustomClass = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.createCustomClass(request), expectedError); - const actualRequest = (client.innerApiCalls.createCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createCustomClass with closed client', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CreateCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.CreateCustomClassRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.createCustomClass(request), expectedError); + }); + }); + + describe('getCustomClass', () => { + it('invokes getCustomClass without error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.GetCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.GetCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CustomClass(), + ); + client.innerApiCalls.getCustomClass = stubSimpleCall(expectedResponse); + const [response] = await client.getCustomClass(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes createCustomClass with closed client', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.CreateCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.CreateCustomClassRequest', ['parent']); - request.parent = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.createCustomClass(request), expectedError); - }); + it('invokes getCustomClass without error using callback', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.GetCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.GetCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CustomClass(), + ); + client.innerApiCalls.getCustomClass = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getCustomClass( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v1p1beta1.ICustomClass | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('getCustomClass', () => { - it('invokes getCustomClass without error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.GetCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.GetCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.CustomClass() - ); - client.innerApiCalls.getCustomClass = stubSimpleCall(expectedResponse); - const [response] = await client.getCustomClass(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getCustomClass with error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.GetCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.GetCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getCustomClass = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.getCustomClass(request), expectedError); + const actualRequest = ( + client.innerApiCalls.getCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getCustomClass without error using callback', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.GetCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.GetCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.CustomClass() - ); - client.innerApiCalls.getCustomClass = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getCustomClass( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v1p1beta1.ICustomClass|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getCustomClass with closed client', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.GetCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.GetCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.getCustomClass(request), expectedError); + }); + }); + + describe('updateCustomClass', () => { + it('invokes updateCustomClass without error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.UpdateCustomClassRequest(), + ); + request.customClass ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.UpdateCustomClassRequest', + ['customClass', 'name'], + ); + request.customClass.name = defaultValue1; + const expectedHeaderRequestParams = `custom_class.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CustomClass(), + ); + client.innerApiCalls.updateCustomClass = stubSimpleCall(expectedResponse); + const [response] = await client.updateCustomClass(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updateCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getCustomClass with error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.GetCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.GetCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.getCustomClass = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getCustomClass(request), expectedError); - const actualRequest = (client.innerApiCalls.getCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes updateCustomClass without error using callback', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.UpdateCustomClassRequest(), + ); + request.customClass ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.UpdateCustomClassRequest', + ['customClass', 'name'], + ); + request.customClass.name = defaultValue1; + const expectedHeaderRequestParams = `custom_class.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CustomClass(), + ); + client.innerApiCalls.updateCustomClass = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.updateCustomClass( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v1p1beta1.ICustomClass | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updateCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getCustomClass with closed client', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.GetCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.GetCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.getCustomClass(request), expectedError); - }); + it('invokes updateCustomClass with error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.UpdateCustomClassRequest(), + ); + request.customClass ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.UpdateCustomClassRequest', + ['customClass', 'name'], + ); + request.customClass.name = defaultValue1; + const expectedHeaderRequestParams = `custom_class.name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.updateCustomClass = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.updateCustomClass(request), expectedError); + const actualRequest = ( + client.innerApiCalls.updateCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('updateCustomClass', () => { - it('invokes updateCustomClass without error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.UpdateCustomClassRequest() - ); - request.customClass ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.UpdateCustomClassRequest', ['customClass', 'name']); - request.customClass.name = defaultValue1; - const expectedHeaderRequestParams = `custom_class.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.CustomClass() - ); - client.innerApiCalls.updateCustomClass = stubSimpleCall(expectedResponse); - const [response] = await client.updateCustomClass(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updateCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes updateCustomClass with closed client', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.UpdateCustomClassRequest(), + ); + request.customClass ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.UpdateCustomClassRequest', + ['customClass', 'name'], + ); + request.customClass.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.updateCustomClass(request), expectedError); + }); + }); + + describe('deleteCustomClass', () => { + it('invokes deleteCustomClass without error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.DeleteCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.DeleteCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.innerApiCalls.deleteCustomClass = stubSimpleCall(expectedResponse); + const [response] = await client.deleteCustomClass(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.deleteCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updateCustomClass without error using callback', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.UpdateCustomClassRequest() - ); - request.customClass ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.UpdateCustomClassRequest', ['customClass', 'name']); - request.customClass.name = defaultValue1; - const expectedHeaderRequestParams = `custom_class.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.CustomClass() - ); - client.innerApiCalls.updateCustomClass = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.updateCustomClass( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v1p1beta1.ICustomClass|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updateCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes deleteCustomClass without error using callback', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.DeleteCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.DeleteCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.innerApiCalls.deleteCustomClass = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.deleteCustomClass( + 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.deleteCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updateCustomClass with error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.UpdateCustomClassRequest() - ); - request.customClass ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.UpdateCustomClassRequest', ['customClass', 'name']); - request.customClass.name = defaultValue1; - const expectedHeaderRequestParams = `custom_class.name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.updateCustomClass = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.updateCustomClass(request), expectedError); - const actualRequest = (client.innerApiCalls.updateCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes deleteCustomClass with error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.DeleteCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.DeleteCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.deleteCustomClass = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.deleteCustomClass(request), expectedError); + const actualRequest = ( + client.innerApiCalls.deleteCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updateCustomClass with closed client', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.UpdateCustomClassRequest() - ); - request.customClass ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.UpdateCustomClassRequest', ['customClass', 'name']); - request.customClass.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.updateCustomClass(request), expectedError); - }); + it('invokes deleteCustomClass with closed client', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.DeleteCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.DeleteCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.deleteCustomClass(request), expectedError); + }); + }); + + describe('listPhraseSet', () => { + it('invokes listPhraseSet without error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.ListPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.ListPhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.PhraseSet(), + ), + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.PhraseSet(), + ), + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.PhraseSet(), + ), + ]; + client.innerApiCalls.listPhraseSet = stubSimpleCall(expectedResponse); + const [response] = await client.listPhraseSet(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('deleteCustomClass', () => { - it('invokes deleteCustomClass without error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.DeleteCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.DeleteCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.innerApiCalls.deleteCustomClass = stubSimpleCall(expectedResponse); - const [response] = await client.deleteCustomClass(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.deleteCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listPhraseSet without error using callback', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.ListPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.ListPhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.PhraseSet(), + ), + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.PhraseSet(), + ), + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.PhraseSet(), + ), + ]; + client.innerApiCalls.listPhraseSet = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listPhraseSet( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v1p1beta1.IPhraseSet[] | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deleteCustomClass without error using callback', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.DeleteCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.DeleteCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.innerApiCalls.deleteCustomClass = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.deleteCustomClass( - 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.deleteCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listPhraseSet with error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.ListPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.ListPhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listPhraseSet = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.listPhraseSet(request), expectedError); + const actualRequest = ( + client.innerApiCalls.listPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deleteCustomClass with error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.DeleteCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.DeleteCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.deleteCustomClass = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.deleteCustomClass(request), expectedError); - const actualRequest = (client.innerApiCalls.deleteCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes listPhraseSetStream without error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.ListPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.ListPhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.PhraseSet(), + ), + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.PhraseSet(), + ), + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.PhraseSet(), + ), + ]; + client.descriptors.page.listPhraseSet.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.listPhraseSetStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.speech.v1p1beta1.PhraseSet[] = []; + stream.on( + 'data', + (response: protos.google.cloud.speech.v1p1beta1.PhraseSet) => { + responses.push(response); + }, + ); + stream.on('end', () => { + resolve(responses); }); - - it('invokes deleteCustomClass with closed client', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.DeleteCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.DeleteCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.deleteCustomClass(request), expectedError); + stream.on('error', (err: Error) => { + reject(err); }); + }); + const responses = await promise; + assert.deepStrictEqual(responses, expectedResponse); + assert( + (client.descriptors.page.listPhraseSet.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listPhraseSet, request), + ); + assert( + (client.descriptors.page.listPhraseSet.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); }); - describe('listPhraseSet', () => { - it('invokes listPhraseSet without error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.ListPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.ListPhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.PhraseSet()), - ]; - client.innerApiCalls.listPhraseSet = stubSimpleCall(expectedResponse); - const [response] = await client.listPhraseSet(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listPhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes listPhraseSetStream with error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.ListPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.ListPhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listPhraseSet.createStream = + stubPageStreamingCall(undefined, expectedError); + const stream = client.listPhraseSetStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.speech.v1p1beta1.PhraseSet[] = []; + stream.on( + 'data', + (response: protos.google.cloud.speech.v1p1beta1.PhraseSet) => { + responses.push(response); + }, + ); + stream.on('end', () => { + resolve(responses); }); - - it('invokes listPhraseSet without error using callback', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.ListPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.ListPhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.PhraseSet()), - ]; - client.innerApiCalls.listPhraseSet = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listPhraseSet( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v1p1beta1.IPhraseSet[]|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listPhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listPhraseSet with error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.ListPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.ListPhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.listPhraseSet = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.listPhraseSet(request), expectedError); - const actualRequest = (client.innerApiCalls.listPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listPhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + stream.on('error', (err: Error) => { + reject(err); }); + }); + await assert.rejects(promise, expectedError); + assert( + (client.descriptors.page.listPhraseSet.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listPhraseSet, request), + ); + assert( + (client.descriptors.page.listPhraseSet.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('invokes listPhraseSetStream without error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.ListPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.ListPhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.PhraseSet()), - ]; - client.descriptors.page.listPhraseSet.createStream = stubPageStreamingCall(expectedResponse); - const stream = client.listPhraseSetStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.speech.v1p1beta1.PhraseSet[] = []; - stream.on('data', (response: protos.google.cloud.speech.v1p1beta1.PhraseSet) => { - 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.listPhraseSet.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listPhraseSet, request)); - assert( - (client.descriptors.page.listPhraseSet.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('uses async iteration with listPhraseSet without error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.ListPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.ListPhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.PhraseSet(), + ), + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.PhraseSet(), + ), + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.PhraseSet(), + ), + ]; + client.descriptors.page.listPhraseSet.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.speech.v1p1beta1.IPhraseSet[] = []; + const iterable = client.listPhraseSetAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.descriptors.page.listPhraseSet.asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + (client.descriptors.page.listPhraseSet.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('invokes listPhraseSetStream with error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.ListPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.ListPhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listPhraseSet.createStream = stubPageStreamingCall(undefined, expectedError); - const stream = client.listPhraseSetStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.speech.v1p1beta1.PhraseSet[] = []; - stream.on('data', (response: protos.google.cloud.speech.v1p1beta1.PhraseSet) => { - responses.push(response); - }); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - assert((client.descriptors.page.listPhraseSet.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listPhraseSet, request)); - assert( - (client.descriptors.page.listPhraseSet.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('uses async iteration with listPhraseSet with error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.ListPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.ListPhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listPhraseSet.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listPhraseSetAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.speech.v1p1beta1.IPhraseSet[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.descriptors.page.listPhraseSet.asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + (client.descriptors.page.listPhraseSet.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); + }); + + describe('listCustomClasses', () => { + it('invokes listCustomClasses without error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.ListCustomClassesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.ListCustomClassesRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CustomClass(), + ), + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CustomClass(), + ), + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CustomClass(), + ), + ]; + client.innerApiCalls.listCustomClasses = stubSimpleCall(expectedResponse); + const [response] = await client.listCustomClasses(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listCustomClasses as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listCustomClasses as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('uses async iteration with listPhraseSet without error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.ListPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.ListPhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.PhraseSet()), - ]; - client.descriptors.page.listPhraseSet.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: protos.google.cloud.speech.v1p1beta1.IPhraseSet[] = []; - const iterable = client.listPhraseSetAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + it('invokes listCustomClasses without error using callback', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.ListCustomClassesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.ListCustomClassesRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CustomClass(), + ), + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CustomClass(), + ), + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CustomClass(), + ), + ]; + client.innerApiCalls.listCustomClasses = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listCustomClasses( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v1p1beta1.ICustomClass[] | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.descriptors.page.listPhraseSet.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listPhraseSet.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - - it('uses async iteration with listPhraseSet with error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.ListPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.ListPhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listPhraseSet.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listPhraseSetAsync(request); - await assert.rejects(async () => { - const responses: protos.google.cloud.speech.v1p1beta1.IPhraseSet[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.descriptors.page.listPhraseSet.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listPhraseSet.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.listCustomClasses as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listCustomClasses as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('listCustomClasses', () => { - it('invokes listCustomClasses without error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.ListCustomClassesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.ListCustomClassesRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.CustomClass()), - ]; - client.innerApiCalls.listCustomClasses = stubSimpleCall(expectedResponse); - const [response] = await client.listCustomClasses(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listCustomClasses as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listCustomClasses as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listCustomClasses without error using callback', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.ListCustomClassesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.ListCustomClassesRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.CustomClass()), - ]; - client.innerApiCalls.listCustomClasses = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listCustomClasses( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v1p1beta1.ICustomClass[]|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listCustomClasses as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listCustomClasses as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listCustomClasses with error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.ListCustomClassesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.ListCustomClassesRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listCustomClasses = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.listCustomClasses(request), expectedError); + const actualRequest = ( + client.innerApiCalls.listCustomClasses as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listCustomClasses as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes listCustomClasses with error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.ListCustomClassesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.ListCustomClassesRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.listCustomClasses = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.listCustomClasses(request), expectedError); - const actualRequest = (client.innerApiCalls.listCustomClasses as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listCustomClasses as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + it('invokes listCustomClassesStream without error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.ListCustomClassesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.ListCustomClassesRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CustomClass(), + ), + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CustomClass(), + ), + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CustomClass(), + ), + ]; + client.descriptors.page.listCustomClasses.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.listCustomClassesStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.speech.v1p1beta1.CustomClass[] = + []; + stream.on( + 'data', + (response: protos.google.cloud.speech.v1p1beta1.CustomClass) => { + responses.push(response); + }, + ); + stream.on('end', () => { + resolve(responses); }); - - it('invokes listCustomClassesStream without error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.ListCustomClassesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.ListCustomClassesRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.CustomClass()), - ]; - client.descriptors.page.listCustomClasses.createStream = stubPageStreamingCall(expectedResponse); - const stream = client.listCustomClassesStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.speech.v1p1beta1.CustomClass[] = []; - stream.on('data', (response: protos.google.cloud.speech.v1p1beta1.CustomClass) => { - 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.listCustomClasses.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listCustomClasses, request)); - assert( - (client.descriptors.page.listCustomClasses.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); + stream.on('error', (err: Error) => { + reject(err); }); + }); + const responses = await promise; + assert.deepStrictEqual(responses, expectedResponse); + assert( + (client.descriptors.page.listCustomClasses.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listCustomClasses, request), + ); + assert( + (client.descriptors.page.listCustomClasses.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('invokes listCustomClassesStream with error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.ListCustomClassesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.ListCustomClassesRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listCustomClasses.createStream = stubPageStreamingCall(undefined, expectedError); - const stream = client.listCustomClassesStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.speech.v1p1beta1.CustomClass[] = []; - stream.on('data', (response: protos.google.cloud.speech.v1p1beta1.CustomClass) => { - responses.push(response); - }); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - assert((client.descriptors.page.listCustomClasses.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listCustomClasses, request)); - assert( - (client.descriptors.page.listCustomClasses.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); + it('invokes listCustomClassesStream with error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.ListCustomClassesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.ListCustomClassesRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listCustomClasses.createStream = + stubPageStreamingCall(undefined, expectedError); + const stream = client.listCustomClassesStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.speech.v1p1beta1.CustomClass[] = + []; + stream.on( + 'data', + (response: protos.google.cloud.speech.v1p1beta1.CustomClass) => { + responses.push(response); + }, + ); + stream.on('end', () => { + resolve(responses); }); - - it('uses async iteration with listCustomClasses without error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.ListCustomClassesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.ListCustomClassesRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v1p1beta1.CustomClass()), - ]; - client.descriptors.page.listCustomClasses.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: protos.google.cloud.speech.v1p1beta1.ICustomClass[] = []; - const iterable = client.listCustomClassesAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.descriptors.page.listCustomClasses.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listCustomClasses.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.listCustomClasses.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listCustomClasses, request), + ); + assert( + (client.descriptors.page.listCustomClasses.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('uses async iteration with listCustomClasses with error', async () => { - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.ListCustomClassesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v1p1beta1.ListCustomClassesRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listCustomClasses.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listCustomClassesAsync(request); - await assert.rejects(async () => { - const responses: protos.google.cloud.speech.v1p1beta1.ICustomClass[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.descriptors.page.listCustomClasses.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listCustomClasses.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('uses async iteration with listCustomClasses without error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.ListCustomClassesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.ListCustomClassesRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CustomClass(), + ), + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CustomClass(), + ), + generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.CustomClass(), + ), + ]; + client.descriptors.page.listCustomClasses.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.speech.v1p1beta1.ICustomClass[] = []; + const iterable = client.listCustomClassesAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.descriptors.page.listCustomClasses.asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + (client.descriptors.page.listCustomClasses.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); }); - describe('Path templates', () => { - - describe('customClass', async () => { - const fakePath = "/rendered/path/customClass"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - custom_class: "customClassValue", - }; - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.customClassPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.customClassPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('customClassPath', () => { - const result = client.customClassPath("projectValue", "locationValue", "customClassValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.customClassPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromCustomClassName', () => { - const result = client.matchProjectFromCustomClassName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.customClassPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromCustomClassName', () => { - const result = client.matchLocationFromCustomClassName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.customClassPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchCustomClassFromCustomClassName', () => { - const result = client.matchCustomClassFromCustomClassName(fakePath); - assert.strictEqual(result, "customClassValue"); - assert((client.pathTemplates.customClassPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('uses async iteration with listCustomClasses with error', async () => { + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.ListCustomClassesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v1p1beta1.ListCustomClassesRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listCustomClasses.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listCustomClassesAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.speech.v1p1beta1.ICustomClass[] = + []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.descriptors.page.listCustomClasses.asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + (client.descriptors.page.listCustomClasses.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); + }); + + describe('Path templates', () => { + describe('customClass', async () => { + const fakePath = '/rendered/path/customClass'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + custom_class: 'customClassValue', + }; + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.customClassPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.customClassPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('customClassPath', () => { + const result = client.customClassPath( + 'projectValue', + 'locationValue', + 'customClassValue', + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.customClassPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromCustomClassName', () => { + const result = client.matchProjectFromCustomClassName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.customClassPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromCustomClassName', () => { + const result = client.matchLocationFromCustomClassName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.customClassPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchCustomClassFromCustomClassName', () => { + const result = client.matchCustomClassFromCustomClassName(fakePath); + assert.strictEqual(result, 'customClassValue'); + assert( + (client.pathTemplates.customClassPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); - describe('location', async () => { - const fakePath = "/rendered/path/location"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - }; - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.locationPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.locationPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('locationPath', () => { - const result = client.locationPath("projectValue", "locationValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.locationPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromLocationName', () => { - const result = client.matchProjectFromLocationName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.locationPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromLocationName', () => { - const result = client.matchLocationFromLocationName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.locationPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + describe('location', async () => { + const fakePath = '/rendered/path/location'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + }; + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.locationPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.locationPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('locationPath', () => { + const result = client.locationPath('projectValue', 'locationValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.locationPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromLocationName', () => { + const result = client.matchProjectFromLocationName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.locationPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromLocationName', () => { + const result = client.matchLocationFromLocationName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.locationPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); - describe('phraseSet', async () => { - const fakePath = "/rendered/path/phraseSet"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - phrase_set: "phraseSetValue", - }; - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.phraseSetPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.phraseSetPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('phraseSetPath', () => { - const result = client.phraseSetPath("projectValue", "locationValue", "phraseSetValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.phraseSetPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromPhraseSetName', () => { - const result = client.matchProjectFromPhraseSetName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.phraseSetPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromPhraseSetName', () => { - const result = client.matchLocationFromPhraseSetName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.phraseSetPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchPhraseSetFromPhraseSetName', () => { - const result = client.matchPhraseSetFromPhraseSetName(fakePath); - assert.strictEqual(result, "phraseSetValue"); - assert((client.pathTemplates.phraseSetPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + describe('phraseSet', async () => { + const fakePath = '/rendered/path/phraseSet'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + phrase_set: 'phraseSetValue', + }; + const client = new adaptationModule.v1p1beta1.AdaptationClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.phraseSetPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.phraseSetPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('phraseSetPath', () => { + const result = client.phraseSetPath( + 'projectValue', + 'locationValue', + 'phraseSetValue', + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.phraseSetPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromPhraseSetName', () => { + const result = client.matchProjectFromPhraseSetName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.phraseSetPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromPhraseSetName', () => { + const result = client.matchLocationFromPhraseSetName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.phraseSetPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchPhraseSetFromPhraseSetName', () => { + const result = client.matchPhraseSetFromPhraseSetName(fakePath); + assert.strictEqual(result, 'phraseSetValue'); + assert( + (client.pathTemplates.phraseSetPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); - describe('project', async () => { - const fakePath = "/rendered/path/project"; - const expectedParameters = { - project: "projectValue", - }; - const client = new adaptationModule.v1p1beta1.AdaptationClient({ - 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 adaptationModule.v1p1beta1.AdaptationClient({ + 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-speech/test/gapic_speech_v1.ts b/packages/google-cloud-speech/test/gapic_speech_v1.ts index 0811fb43ba57..66e97b4210cb 100644 --- a/packages/google-cloud-speech/test/gapic_speech_v1.ts +++ b/packages/google-cloud-speech/test/gapic_speech_v1.ts @@ -19,846 +19,1062 @@ 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 speechModule from '../src'; -import {PassThrough} from 'stream'; +import { PassThrough } from 'stream'; -import {protobuf, LROperation, operationsProtos} from 'google-gax'; +import { protobuf, LROperation, operationsProtos } 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 stubBidiStreamingCall(response?: ResponseType, error?: Error) { - const transformStub = error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); - const mockStream = new PassThrough({ - objectMode: true, - transform: transformStub, - }); - return sinon.stub().returns(mockStream); +function stubBidiStreamingCall( + response?: ResponseType, + error?: Error, +) { + const transformStub = error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); + const mockStream = new PassThrough({ + objectMode: true, + transform: transformStub, + }); + return sinon.stub().returns(mockStream); } -function stubLongRunningCall(response?: ResponseType, callError?: Error, lroError?: Error) { - const innerStub = lroError ? sinon.stub().rejects(lroError) : sinon.stub().resolves([response]); - const mockOperation = { - promise: innerStub, - }; - return callError ? sinon.stub().rejects(callError) : sinon.stub().resolves([mockOperation]); +function stubLongRunningCall( + response?: ResponseType, + callError?: Error, + lroError?: Error, +) { + const innerStub = lroError + ? sinon.stub().rejects(lroError) + : sinon.stub().resolves([response]); + const mockOperation = { + promise: innerStub, + }; + return callError + ? sinon.stub().rejects(callError) + : sinon.stub().resolves([mockOperation]); } -function stubLongRunningCallWithCallback(response?: ResponseType, callError?: Error, lroError?: Error) { - const innerStub = lroError ? sinon.stub().rejects(lroError) : sinon.stub().resolves([response]); - const mockOperation = { - promise: innerStub, - }; - return callError ? sinon.stub().callsArgWith(2, callError) : sinon.stub().callsArgWith(2, null, mockOperation); +function stubLongRunningCallWithCallback( + response?: ResponseType, + callError?: Error, + lroError?: Error, +) { + const innerStub = lroError + ? sinon.stub().rejects(lroError) + : sinon.stub().resolves([response]); + const mockOperation = { + promise: innerStub, + }; + return callError + ? sinon.stub().callsArgWith(2, callError) + : sinon.stub().callsArgWith(2, null, mockOperation); } -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.SpeechClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new speechModule.v1.SpeechClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'speech.googleapis.com'); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = new speechModule.v1.SpeechClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'speech.googleapis.com'); + }); - it('has universeDomain', () => { - const client = new speechModule.v1.SpeechClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); + it('has universeDomain', () => { + const client = new speechModule.v1.SpeechClient(); + 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 = speechModule.v1.SpeechClient.servicePath; - assert.strictEqual(servicePath, 'speech.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = speechModule.v1.SpeechClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'speech.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new speechModule.v1.SpeechClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'speech.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 = speechModule.v1.SpeechClient.servicePath; + assert.strictEqual(servicePath, 'speech.googleapis.com'); + assert(stub.called); + stub.restore(); + }); - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new speechModule.v1.SpeechClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'speech.example.com'); - }); + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = speechModule.v1.SpeechClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'speech.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = new speechModule.v1.SpeechClient({ + universeDomain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'speech.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 speechModule.v1.SpeechClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'speech.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 speechModule.v1.SpeechClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'speech.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 speechModule.v1.SpeechClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); - }); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = new speechModule.v1.SpeechClient({ + universe_domain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'speech.example.com'); + }); - it('has port', () => { - const port = speechModule.v1.SpeechClient.port; - assert(port); - assert(typeof port === 'number'); + 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 speechModule.v1.SpeechClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'speech.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 speechModule.v1.SpeechClient(); - 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 speechModule.v1.SpeechClient({ + universeDomain: 'configured.example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'speech.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 gRPC fallback', () => { - const client = new speechModule.v1.SpeechClient({ - fallback: true, - }); - assert(client); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new speechModule.v1.SpeechClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.speechStub, undefined); - await client.initialize(); - assert(client.speechStub); - }); + it('has port', () => { + const port = speechModule.v1.SpeechClient.port; + assert(port); + assert(typeof port === 'number'); + }); - it('has close method for the initialized client', done => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.speechStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('should create a client with no option', () => { + const client = new speechModule.v1.SpeechClient(); + assert(client); + }); - it('has close method for the non-initialized client', done => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.speechStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('should create a client with gRPC fallback', () => { + const client = new speechModule.v1.SpeechClient({ + fallback: true, + }); + assert(client); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new speechModule.v1.SpeechClient({ - 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 initialize method and supports deferred initialization', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.speechStub, undefined); + await client.initialize(); + assert(client.speechStub); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new speechModule.v1.SpeechClient({ - 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 initialized client', (done) => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.speechStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); }); - describe('recognize', () => { - it('invokes recognize without error', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.RecognizeRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1.RecognizeResponse() - ); - client.innerApiCalls.recognize = stubSimpleCall(expectedResponse); - const [response] = await client.recognize(request); - assert.deepStrictEqual(response, expectedResponse); + it('has close method for the non-initialized client', (done) => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.speechStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('invokes recognize without error using callback', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.RecognizeRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1.RecognizeResponse() - ); - client.innerApiCalls.recognize = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.recognize( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v1.IRecognizeResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - }); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new speechModule.v1.SpeechClient({ + 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 recognize with error', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.RecognizeRequest() - ); - const expectedError = new Error('expected'); - client.innerApiCalls.recognize = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.recognize(request), expectedError); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new speechModule.v1.SpeechClient({ + 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 recognize with closed client', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.RecognizeRequest() - ); - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.recognize(request), expectedError); - }); + describe('recognize', () => { + it('invokes recognize without error', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.RecognizeRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1.RecognizeResponse(), + ); + client.innerApiCalls.recognize = stubSimpleCall(expectedResponse); + const [response] = await client.recognize(request); + assert.deepStrictEqual(response, expectedResponse); }); - describe('longRunningRecognize', () => { - it('invokes longRunningRecognize without error', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.LongRunningRecognizeRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.longRunningRecognize = stubLongRunningCall(expectedResponse); - const [operation] = await client.longRunningRecognize(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - }); + it('invokes recognize without error using callback', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.RecognizeRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1.RecognizeResponse(), + ); + client.innerApiCalls.recognize = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.recognize( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v1.IRecognizeResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + }); - it('invokes longRunningRecognize without error using callback', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.LongRunningRecognizeRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.longRunningRecognize = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.longRunningRecognize( - request, - (err?: Error|null, - result?: LROperation|null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const operation = await promise as LROperation; - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - }); + it('invokes recognize with error', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.RecognizeRequest(), + ); + const expectedError = new Error('expected'); + client.innerApiCalls.recognize = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.recognize(request), expectedError); + }); - it('invokes longRunningRecognize with call error', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.LongRunningRecognizeRequest() - ); - const expectedError = new Error('expected'); - client.innerApiCalls.longRunningRecognize = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.longRunningRecognize(request), expectedError); - }); + it('invokes recognize with closed client', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.RecognizeRequest(), + ); + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.recognize(request), expectedError); + }); + }); - it('invokes longRunningRecognize with LRO error', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.LongRunningRecognizeRequest() - ); - const expectedError = new Error('expected'); - client.innerApiCalls.longRunningRecognize = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.longRunningRecognize(request); - await assert.rejects(operation.promise(), expectedError); - }); + describe('longRunningRecognize', () => { + it('invokes longRunningRecognize without error', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.LongRunningRecognizeRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.longRunningRecognize = + stubLongRunningCall(expectedResponse); + const [operation] = await client.longRunningRecognize(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + }); - it('invokes checkLongRunningRecognizeProgress without error', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - expectedResponse.name = 'test'; - expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; - expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')} - - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const decodedOperation = await client.checkLongRunningRecognizeProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); + it('invokes longRunningRecognize without error using callback', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.LongRunningRecognizeRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.longRunningRecognize = + stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.longRunningRecognize( + request, + ( + err?: Error | null, + result?: LROperation< + protos.google.cloud.speech.v1.ILongRunningRecognizeResponse, + protos.google.cloud.speech.v1.ILongRunningRecognizeMetadata + > | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const operation = (await promise) as LROperation< + protos.google.cloud.speech.v1.ILongRunningRecognizeResponse, + protos.google.cloud.speech.v1.ILongRunningRecognizeMetadata + >; + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + }); - it('invokes checkLongRunningRecognizeProgress with error', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkLongRunningRecognizeProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); + it('invokes longRunningRecognize with call error', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.LongRunningRecognizeRequest(), + ); + const expectedError = new Error('expected'); + client.innerApiCalls.longRunningRecognize = stubLongRunningCall( + undefined, + expectedError, + ); + await assert.rejects(client.longRunningRecognize(request), expectedError); }); - describe('streamingRecognize', () => { - it('invokes streamingRecognize without error', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.StreamingRecognizeRequest() - ); - - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1.StreamingRecognizeResponse() - ); - client.innerApiCalls.streamingRecognize = stubBidiStreamingCall(expectedResponse); - const stream = client._streamingRecognize(); - const promise = new Promise((resolve, reject) => { - stream.on('data', (response: protos.google.cloud.speech.v1.StreamingRecognizeResponse) => { - resolve(response); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - stream.write(request); - stream.end(); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.streamingRecognize as SinonStub) - .getCall(0).calledWith(null)); - assert.deepStrictEqual(((stream as unknown as PassThrough) - ._transform as SinonStub).getCall(0).args[0], request); - }); + it('invokes longRunningRecognize with LRO error', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.LongRunningRecognizeRequest(), + ); + const expectedError = new Error('expected'); + client.innerApiCalls.longRunningRecognize = stubLongRunningCall( + undefined, + undefined, + expectedError, + ); + const [operation] = await client.longRunningRecognize(request); + await assert.rejects(operation.promise(), expectedError); + }); - it('invokes streamingRecognize with error', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1.StreamingRecognizeRequest() - ); - const expectedError = new Error('expected'); - client.innerApiCalls.streamingRecognize = stubBidiStreamingCall(undefined, expectedError); - const stream = client._streamingRecognize(); - const promise = new Promise((resolve, reject) => { - stream.on('data', (response: protos.google.cloud.speech.v1.StreamingRecognizeResponse) => { - resolve(response); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - stream.write(request); - stream.end(); - }); - await assert.rejects(promise, expectedError); - assert((client.innerApiCalls.streamingRecognize as SinonStub) - .getCall(0).calledWith(null)); - assert.deepStrictEqual(((stream as unknown as PassThrough) - ._transform as SinonStub).getCall(0).args[0], request); - }); + it('invokes checkLongRunningRecognizeProgress without error', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + expectedResponse.name = 'test'; + expectedResponse.response = { type_url: 'url', value: Buffer.from('') }; + expectedResponse.metadata = { type_url: 'url', value: Buffer.from('') }; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkLongRunningRecognizeProgress( + expectedResponse.name, + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); }); - describe('getOperation', () => { - it('invokes getOperation without error', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.GetOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const response = await client.getOperation(request); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0).calledWith(request) - ); - }); - it('invokes getOperation without error using callback', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.GetOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - client.operationsClient.getOperation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.operationsClient.getOperation( - request, - undefined, - ( - err?: Error | null, - result?: operationsProtos.google.longrunning.Operation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }).catch(err => {throw err}); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); - it('invokes getOperation with error', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.GetOperationRequest() - ); - const expectedError = new Error('expected'); - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(async () => {await client.getOperation(request)}, expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0).calledWith(request)); - }); + + it('invokes checkLongRunningRecognizeProgress with error', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.checkLongRunningRecognizeProgress(''), + expectedError, + ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); }); - describe('cancelOperation', () => { - it('invokes cancelOperation without error', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.CancelOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.operationsClient.cancelOperation = stubSimpleCall(expectedResponse); - const response = await client.cancelOperation(request); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.operationsClient.cancelOperation as SinonStub) - .getCall(0).calledWith(request) - ); - }); - it('invokes cancelOperation without error using callback', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.CancelOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.operationsClient.cancelOperation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.operationsClient.cancelOperation( - request, - undefined, - ( - err?: Error | null, - result?: protos.google.protobuf.Empty | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }).catch(err => {throw err}); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.operationsClient.cancelOperation as SinonStub) - .getCall(0)); - }); - it('invokes cancelOperation with error', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.CancelOperationRequest() - ); - const expectedError = new Error('expected'); - client.operationsClient.cancelOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(async () => {await client.cancelOperation(request)}, expectedError); - assert((client.operationsClient.cancelOperation as SinonStub) - .getCall(0).calledWith(request)); + }); + + describe('streamingRecognize', () => { + it('invokes streamingRecognize without error', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.StreamingRecognizeRequest(), + ); + + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1.StreamingRecognizeResponse(), + ); + client.innerApiCalls.streamingRecognize = + stubBidiStreamingCall(expectedResponse); + const stream = client._streamingRecognize(); + const promise = new Promise((resolve, reject) => { + stream.on( + 'data', + ( + response: protos.google.cloud.speech.v1.StreamingRecognizeResponse, + ) => { + resolve(response); + }, + ); + stream.on('error', (err: Error) => { + reject(err); }); + stream.write(request); + stream.end(); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.streamingRecognize as SinonStub) + .getCall(0) + .calledWith(null), + ); + assert.deepStrictEqual( + ((stream as unknown as PassThrough)._transform as SinonStub).getCall(0) + .args[0], + request, + ); }); - describe('deleteOperation', () => { - it('invokes deleteOperation without error', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.DeleteOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.operationsClient.deleteOperation = stubSimpleCall(expectedResponse); - const response = await client.deleteOperation(request); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.operationsClient.deleteOperation as SinonStub) - .getCall(0).calledWith(request) - ); - }); - it('invokes deleteOperation without error using callback', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.DeleteOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.operationsClient.deleteOperation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.operationsClient.deleteOperation( - request, - undefined, - ( - err?: Error | null, - result?: protos.google.protobuf.Empty | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }).catch(err => {throw err}); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.operationsClient.deleteOperation as SinonStub) - .getCall(0)); - }); - it('invokes deleteOperation with error', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.DeleteOperationRequest() - ); - const expectedError = new Error('expected'); - client.operationsClient.deleteOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(async () => {await client.deleteOperation(request)}, expectedError); - assert((client.operationsClient.deleteOperation as SinonStub) - .getCall(0).calledWith(request)); + + it('invokes streamingRecognize with error', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1.StreamingRecognizeRequest(), + ); + const expectedError = new Error('expected'); + client.innerApiCalls.streamingRecognize = stubBidiStreamingCall( + undefined, + expectedError, + ); + const stream = client._streamingRecognize(); + const promise = new Promise((resolve, reject) => { + stream.on( + 'data', + ( + response: protos.google.cloud.speech.v1.StreamingRecognizeResponse, + ) => { + resolve(response); + }, + ); + stream.on('error', (err: Error) => { + reject(err); }); + stream.write(request); + stream.end(); + }); + await assert.rejects(promise, expectedError); + assert( + (client.innerApiCalls.streamingRecognize as SinonStub) + .getCall(0) + .calledWith(null), + ); + assert.deepStrictEqual( + ((stream as unknown as PassThrough)._transform as SinonStub).getCall(0) + .args[0], + request, + ); }); - describe('listOperationsAsync', () => { - it('uses async iteration with listOperations without error', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsRequest() - ); - const expectedResponse = [ - generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsResponse() - ), - generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsResponse() - ), - generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsResponse() - ), - ]; - client.operationsClient.descriptor.listOperations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: operationsProtos.google.longrunning.IOperation[] = []; - const iterable = client.operationsClient.listOperationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.operationsClient.descriptor.listOperations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - }); - it('uses async iteration with listOperations with error', async () => { - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsRequest() - ); - const expectedError = new Error('expected'); - client.operationsClient.descriptor.listOperations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.operationsClient.listOperationsAsync(request); - await assert.rejects(async () => { - const responses: operationsProtos.google.longrunning.IOperation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.operationsClient.descriptor.listOperations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - }); + }); + describe('getOperation', () => { + it('invokes getOperation without error', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.GetOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const response = await client.getOperation(request); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.operationsClient.getOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + it('invokes getOperation without error using callback', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.GetOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + client.operationsClient.getOperation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.operationsClient + .getOperation( + request, + undefined, + ( + err?: Error | null, + result?: operationsProtos.google.longrunning.Operation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ) + .catch((err) => { + throw err; + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); }); + it('invokes getOperation with error', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.GetOperationRequest(), + ); + const expectedError = new Error('expected'); + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(async () => { + await client.getOperation(request); + }, expectedError); + assert( + (client.operationsClient.getOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + }); + describe('cancelOperation', () => { + it('invokes cancelOperation without error', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.CancelOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.operationsClient.cancelOperation = + stubSimpleCall(expectedResponse); + const response = await client.cancelOperation(request); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.operationsClient.cancelOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + it('invokes cancelOperation without error using callback', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.CancelOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.operationsClient.cancelOperation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.operationsClient + .cancelOperation( + request, + undefined, + ( + err?: Error | null, + result?: protos.google.protobuf.Empty | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ) + .catch((err) => { + throw err; + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.operationsClient.cancelOperation as SinonStub).getCall(0)); + }); + it('invokes cancelOperation with error', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.CancelOperationRequest(), + ); + const expectedError = new Error('expected'); + client.operationsClient.cancelOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(async () => { + await client.cancelOperation(request); + }, expectedError); + assert( + (client.operationsClient.cancelOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + }); + describe('deleteOperation', () => { + it('invokes deleteOperation without error', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.DeleteOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.operationsClient.deleteOperation = + stubSimpleCall(expectedResponse); + const response = await client.deleteOperation(request); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.operationsClient.deleteOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + it('invokes deleteOperation without error using callback', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.DeleteOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.operationsClient.deleteOperation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.operationsClient + .deleteOperation( + request, + undefined, + ( + err?: Error | null, + result?: protos.google.protobuf.Empty | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ) + .catch((err) => { + throw err; + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.operationsClient.deleteOperation as SinonStub).getCall(0)); + }); + it('invokes deleteOperation with error', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.DeleteOperationRequest(), + ); + const expectedError = new Error('expected'); + client.operationsClient.deleteOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(async () => { + await client.deleteOperation(request); + }, expectedError); + assert( + (client.operationsClient.deleteOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + }); + describe('listOperationsAsync', () => { + it('uses async iteration with listOperations without error', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsRequest(), + ); + const expectedResponse = [ + generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsResponse(), + ), + generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsResponse(), + ), + generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsResponse(), + ), + ]; + client.operationsClient.descriptor.listOperations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: operationsProtos.google.longrunning.IOperation[] = []; + const iterable = client.operationsClient.listOperationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.operationsClient.descriptor.listOperations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + }); + it('uses async iteration with listOperations with error', async () => { + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsRequest(), + ); + const expectedError = new Error('expected'); + client.operationsClient.descriptor.listOperations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.operationsClient.listOperationsAsync(request); + await assert.rejects(async () => { + const responses: operationsProtos.google.longrunning.IOperation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.operationsClient.descriptor.listOperations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + }); + }); - describe('Path templates', () => { - - describe('customClass', async () => { - const fakePath = "/rendered/path/customClass"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - custom_class: "customClassValue", - }; - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.customClassPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.customClassPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('customClassPath', () => { - const result = client.customClassPath("projectValue", "locationValue", "customClassValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.customClassPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromCustomClassName', () => { - const result = client.matchProjectFromCustomClassName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.customClassPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromCustomClassName', () => { - const result = client.matchLocationFromCustomClassName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.customClassPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchCustomClassFromCustomClassName', () => { - const result = client.matchCustomClassFromCustomClassName(fakePath); - assert.strictEqual(result, "customClassValue"); - assert((client.pathTemplates.customClassPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + describe('Path templates', () => { + describe('customClass', async () => { + const fakePath = '/rendered/path/customClass'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + custom_class: 'customClassValue', + }; + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.customClassPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.customClassPathTemplate.match = sinon + .stub() + .returns(expectedParameters); - describe('phraseSet', async () => { - const fakePath = "/rendered/path/phraseSet"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - phrase_set: "phraseSetValue", - }; - const client = new speechModule.v1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.phraseSetPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.phraseSetPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('phraseSetPath', () => { - const result = client.phraseSetPath("projectValue", "locationValue", "phraseSetValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.phraseSetPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromPhraseSetName', () => { - const result = client.matchProjectFromPhraseSetName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.phraseSetPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromPhraseSetName', () => { - const result = client.matchLocationFromPhraseSetName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.phraseSetPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchPhraseSetFromPhraseSetName', () => { - const result = client.matchPhraseSetFromPhraseSetName(fakePath); - assert.strictEqual(result, "phraseSetValue"); - assert((client.pathTemplates.phraseSetPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('customClassPath', () => { + const result = client.customClassPath( + 'projectValue', + 'locationValue', + 'customClassValue', + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.customClassPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromCustomClassName', () => { + const result = client.matchProjectFromCustomClassName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.customClassPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromCustomClassName', () => { + const result = client.matchLocationFromCustomClassName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.customClassPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchCustomClassFromCustomClassName', () => { + const result = client.matchCustomClassFromCustomClassName(fakePath); + assert.strictEqual(result, 'customClassValue'); + assert( + (client.pathTemplates.customClassPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); + + describe('phraseSet', async () => { + const fakePath = '/rendered/path/phraseSet'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + phrase_set: 'phraseSetValue', + }; + const client = new speechModule.v1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.phraseSetPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.phraseSetPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('phraseSetPath', () => { + const result = client.phraseSetPath( + 'projectValue', + 'locationValue', + 'phraseSetValue', + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.phraseSetPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromPhraseSetName', () => { + const result = client.matchProjectFromPhraseSetName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.phraseSetPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromPhraseSetName', () => { + const result = client.matchLocationFromPhraseSetName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.phraseSetPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchPhraseSetFromPhraseSetName', () => { + const result = client.matchPhraseSetFromPhraseSetName(fakePath); + assert.strictEqual(result, 'phraseSetValue'); + assert( + (client.pathTemplates.phraseSetPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-speech/test/gapic_speech_v1p1beta1.ts b/packages/google-cloud-speech/test/gapic_speech_v1p1beta1.ts index cf8730380a27..52d8d8c5c9e9 100644 --- a/packages/google-cloud-speech/test/gapic_speech_v1p1beta1.ts +++ b/packages/google-cloud-speech/test/gapic_speech_v1p1beta1.ts @@ -19,846 +19,1062 @@ 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 speechModule from '../src'; -import {PassThrough} from 'stream'; +import { PassThrough } from 'stream'; -import {protobuf, LROperation, operationsProtos} from 'google-gax'; +import { protobuf, LROperation, operationsProtos } 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 stubBidiStreamingCall(response?: ResponseType, error?: Error) { - const transformStub = error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); - const mockStream = new PassThrough({ - objectMode: true, - transform: transformStub, - }); - return sinon.stub().returns(mockStream); +function stubBidiStreamingCall( + response?: ResponseType, + error?: Error, +) { + const transformStub = error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); + const mockStream = new PassThrough({ + objectMode: true, + transform: transformStub, + }); + return sinon.stub().returns(mockStream); } -function stubLongRunningCall(response?: ResponseType, callError?: Error, lroError?: Error) { - const innerStub = lroError ? sinon.stub().rejects(lroError) : sinon.stub().resolves([response]); - const mockOperation = { - promise: innerStub, - }; - return callError ? sinon.stub().rejects(callError) : sinon.stub().resolves([mockOperation]); +function stubLongRunningCall( + response?: ResponseType, + callError?: Error, + lroError?: Error, +) { + const innerStub = lroError + ? sinon.stub().rejects(lroError) + : sinon.stub().resolves([response]); + const mockOperation = { + promise: innerStub, + }; + return callError + ? sinon.stub().rejects(callError) + : sinon.stub().resolves([mockOperation]); } -function stubLongRunningCallWithCallback(response?: ResponseType, callError?: Error, lroError?: Error) { - const innerStub = lroError ? sinon.stub().rejects(lroError) : sinon.stub().resolves([response]); - const mockOperation = { - promise: innerStub, - }; - return callError ? sinon.stub().callsArgWith(2, callError) : sinon.stub().callsArgWith(2, null, mockOperation); +function stubLongRunningCallWithCallback( + response?: ResponseType, + callError?: Error, + lroError?: Error, +) { + const innerStub = lroError + ? sinon.stub().rejects(lroError) + : sinon.stub().resolves([response]); + const mockOperation = { + promise: innerStub, + }; + return callError + ? sinon.stub().callsArgWith(2, callError) + : sinon.stub().callsArgWith(2, null, mockOperation); } -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('v1p1beta1.SpeechClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new speechModule.v1p1beta1.SpeechClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'speech.googleapis.com'); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = new speechModule.v1p1beta1.SpeechClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'speech.googleapis.com'); + }); - it('has universeDomain', () => { - const client = new speechModule.v1p1beta1.SpeechClient(); - const universeDomain = client.universeDomain; - assert.strictEqual(universeDomain, "googleapis.com"); - }); + it('has universeDomain', () => { + const client = new speechModule.v1p1beta1.SpeechClient(); + 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 = speechModule.v1p1beta1.SpeechClient.servicePath; - assert.strictEqual(servicePath, 'speech.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = speechModule.v1p1beta1.SpeechClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'speech.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new speechModule.v1p1beta1.SpeechClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'speech.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 = speechModule.v1p1beta1.SpeechClient.servicePath; + assert.strictEqual(servicePath, 'speech.googleapis.com'); + assert(stub.called); + stub.restore(); + }); - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new speechModule.v1p1beta1.SpeechClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'speech.example.com'); - }); + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = speechModule.v1p1beta1.SpeechClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'speech.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + universeDomain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'speech.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 speechModule.v1p1beta1.SpeechClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'speech.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 speechModule.v1p1beta1.SpeechClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'speech.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 speechModule.v1p1beta1.SpeechClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); - }); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + universe_domain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'speech.example.com'); + }); - it('has port', () => { - const port = speechModule.v1p1beta1.SpeechClient.port; - assert(port); - assert(typeof port === 'number'); + 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 speechModule.v1p1beta1.SpeechClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'speech.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 speechModule.v1p1beta1.SpeechClient(); - 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 speechModule.v1p1beta1.SpeechClient({ + universeDomain: 'configured.example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'speech.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 gRPC fallback', () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - fallback: true, - }); - assert(client); + }); + } + it('does not allow setting both universeDomain and universe_domain', () => { + assert.throws(() => { + new speechModule.v1p1beta1.SpeechClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.speechStub, undefined); - await client.initialize(); - assert(client.speechStub); - }); + it('has port', () => { + const port = speechModule.v1p1beta1.SpeechClient.port; + assert(port); + assert(typeof port === 'number'); + }); - it('has close method for the initialized client', done => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.speechStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('should create a client with no option', () => { + const client = new speechModule.v1p1beta1.SpeechClient(); + assert(client); + }); - it('has close method for the non-initialized client', done => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.speechStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + it('should create a client with gRPC fallback', () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + fallback: true, + }); + assert(client); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new speechModule.v1p1beta1.SpeechClient({ - 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 initialize method and supports deferred initialization', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.speechStub, undefined); + await client.initialize(); + assert(client.speechStub); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new speechModule.v1p1beta1.SpeechClient({ - 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 initialized client', (done) => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.speechStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); }); - describe('recognize', () => { - it('invokes recognize without error', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.RecognizeRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.RecognizeResponse() - ); - client.innerApiCalls.recognize = stubSimpleCall(expectedResponse); - const [response] = await client.recognize(request); - assert.deepStrictEqual(response, expectedResponse); + it('has close method for the non-initialized client', (done) => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.speechStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('invokes recognize without error using callback', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.RecognizeRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.RecognizeResponse() - ); - client.innerApiCalls.recognize = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.recognize( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v1p1beta1.IRecognizeResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - }); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new speechModule.v1p1beta1.SpeechClient({ + 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 recognize with error', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.RecognizeRequest() - ); - const expectedError = new Error('expected'); - client.innerApiCalls.recognize = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.recognize(request), expectedError); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new speechModule.v1p1beta1.SpeechClient({ + 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 recognize with closed client', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.RecognizeRequest() - ); - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.recognize(request), expectedError); - }); + describe('recognize', () => { + it('invokes recognize without error', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.RecognizeRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.RecognizeResponse(), + ); + client.innerApiCalls.recognize = stubSimpleCall(expectedResponse); + const [response] = await client.recognize(request); + assert.deepStrictEqual(response, expectedResponse); }); - describe('longRunningRecognize', () => { - it('invokes longRunningRecognize without error', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.LongRunningRecognizeRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.longRunningRecognize = stubLongRunningCall(expectedResponse); - const [operation] = await client.longRunningRecognize(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - }); + it('invokes recognize without error using callback', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.RecognizeRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.RecognizeResponse(), + ); + client.innerApiCalls.recognize = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.recognize( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v1p1beta1.IRecognizeResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + }); - it('invokes longRunningRecognize without error using callback', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.LongRunningRecognizeRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.longRunningRecognize = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.longRunningRecognize( - request, - (err?: Error|null, - result?: LROperation|null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const operation = await promise as LROperation; - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - }); + it('invokes recognize with error', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.RecognizeRequest(), + ); + const expectedError = new Error('expected'); + client.innerApiCalls.recognize = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.recognize(request), expectedError); + }); - it('invokes longRunningRecognize with call error', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.LongRunningRecognizeRequest() - ); - const expectedError = new Error('expected'); - client.innerApiCalls.longRunningRecognize = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.longRunningRecognize(request), expectedError); - }); + it('invokes recognize with closed client', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.RecognizeRequest(), + ); + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.recognize(request), expectedError); + }); + }); - it('invokes longRunningRecognize with LRO error', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.LongRunningRecognizeRequest() - ); - const expectedError = new Error('expected'); - client.innerApiCalls.longRunningRecognize = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.longRunningRecognize(request); - await assert.rejects(operation.promise(), expectedError); - }); + describe('longRunningRecognize', () => { + it('invokes longRunningRecognize without error', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.LongRunningRecognizeRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.longRunningRecognize = + stubLongRunningCall(expectedResponse); + const [operation] = await client.longRunningRecognize(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + }); - it('invokes checkLongRunningRecognizeProgress without error', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - expectedResponse.name = 'test'; - expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; - expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')} - - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const decodedOperation = await client.checkLongRunningRecognizeProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); + it('invokes longRunningRecognize without error using callback', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.LongRunningRecognizeRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.longRunningRecognize = + stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.longRunningRecognize( + request, + ( + err?: Error | null, + result?: LROperation< + protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeResponse, + protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeMetadata + > | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const operation = (await promise) as LROperation< + protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeResponse, + protos.google.cloud.speech.v1p1beta1.ILongRunningRecognizeMetadata + >; + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + }); - it('invokes checkLongRunningRecognizeProgress with error', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkLongRunningRecognizeProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); + it('invokes longRunningRecognize with call error', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.LongRunningRecognizeRequest(), + ); + const expectedError = new Error('expected'); + client.innerApiCalls.longRunningRecognize = stubLongRunningCall( + undefined, + expectedError, + ); + await assert.rejects(client.longRunningRecognize(request), expectedError); }); - describe('streamingRecognize', () => { - it('invokes streamingRecognize without error', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.StreamingRecognizeRequest() - ); - - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.StreamingRecognizeResponse() - ); - client.innerApiCalls.streamingRecognize = stubBidiStreamingCall(expectedResponse); - const stream = client._streamingRecognize(); - const promise = new Promise((resolve, reject) => { - stream.on('data', (response: protos.google.cloud.speech.v1p1beta1.StreamingRecognizeResponse) => { - resolve(response); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - stream.write(request); - stream.end(); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.streamingRecognize as SinonStub) - .getCall(0).calledWith(null)); - assert.deepStrictEqual(((stream as unknown as PassThrough) - ._transform as SinonStub).getCall(0).args[0], request); - }); + it('invokes longRunningRecognize with LRO error', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.LongRunningRecognizeRequest(), + ); + const expectedError = new Error('expected'); + client.innerApiCalls.longRunningRecognize = stubLongRunningCall( + undefined, + undefined, + expectedError, + ); + const [operation] = await client.longRunningRecognize(request); + await assert.rejects(operation.promise(), expectedError); + }); - it('invokes streamingRecognize with error', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v1p1beta1.StreamingRecognizeRequest() - ); - const expectedError = new Error('expected'); - client.innerApiCalls.streamingRecognize = stubBidiStreamingCall(undefined, expectedError); - const stream = client._streamingRecognize(); - const promise = new Promise((resolve, reject) => { - stream.on('data', (response: protos.google.cloud.speech.v1p1beta1.StreamingRecognizeResponse) => { - resolve(response); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - stream.write(request); - stream.end(); - }); - await assert.rejects(promise, expectedError); - assert((client.innerApiCalls.streamingRecognize as SinonStub) - .getCall(0).calledWith(null)); - assert.deepStrictEqual(((stream as unknown as PassThrough) - ._transform as SinonStub).getCall(0).args[0], request); - }); + it('invokes checkLongRunningRecognizeProgress without error', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + expectedResponse.name = 'test'; + expectedResponse.response = { type_url: 'url', value: Buffer.from('') }; + expectedResponse.metadata = { type_url: 'url', value: Buffer.from('') }; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkLongRunningRecognizeProgress( + expectedResponse.name, + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); }); - describe('getOperation', () => { - it('invokes getOperation without error', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.GetOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const response = await client.getOperation(request); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0).calledWith(request) - ); - }); - it('invokes getOperation without error using callback', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.GetOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - client.operationsClient.getOperation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.operationsClient.getOperation( - request, - undefined, - ( - err?: Error | null, - result?: operationsProtos.google.longrunning.Operation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }).catch(err => {throw err}); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); - it('invokes getOperation with error', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.GetOperationRequest() - ); - const expectedError = new Error('expected'); - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(async () => {await client.getOperation(request)}, expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0).calledWith(request)); - }); + + it('invokes checkLongRunningRecognizeProgress with error', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.checkLongRunningRecognizeProgress(''), + expectedError, + ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); }); - describe('cancelOperation', () => { - it('invokes cancelOperation without error', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.CancelOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.operationsClient.cancelOperation = stubSimpleCall(expectedResponse); - const response = await client.cancelOperation(request); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.operationsClient.cancelOperation as SinonStub) - .getCall(0).calledWith(request) - ); - }); - it('invokes cancelOperation without error using callback', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.CancelOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.operationsClient.cancelOperation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.operationsClient.cancelOperation( - request, - undefined, - ( - err?: Error | null, - result?: protos.google.protobuf.Empty | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }).catch(err => {throw err}); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.operationsClient.cancelOperation as SinonStub) - .getCall(0)); - }); - it('invokes cancelOperation with error', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.CancelOperationRequest() - ); - const expectedError = new Error('expected'); - client.operationsClient.cancelOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(async () => {await client.cancelOperation(request)}, expectedError); - assert((client.operationsClient.cancelOperation as SinonStub) - .getCall(0).calledWith(request)); + }); + + describe('streamingRecognize', () => { + it('invokes streamingRecognize without error', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.StreamingRecognizeRequest(), + ); + + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.StreamingRecognizeResponse(), + ); + client.innerApiCalls.streamingRecognize = + stubBidiStreamingCall(expectedResponse); + const stream = client._streamingRecognize(); + const promise = new Promise((resolve, reject) => { + stream.on( + 'data', + ( + response: protos.google.cloud.speech.v1p1beta1.StreamingRecognizeResponse, + ) => { + resolve(response); + }, + ); + stream.on('error', (err: Error) => { + reject(err); }); + stream.write(request); + stream.end(); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.streamingRecognize as SinonStub) + .getCall(0) + .calledWith(null), + ); + assert.deepStrictEqual( + ((stream as unknown as PassThrough)._transform as SinonStub).getCall(0) + .args[0], + request, + ); }); - describe('deleteOperation', () => { - it('invokes deleteOperation without error', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.DeleteOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.operationsClient.deleteOperation = stubSimpleCall(expectedResponse); - const response = await client.deleteOperation(request); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.operationsClient.deleteOperation as SinonStub) - .getCall(0).calledWith(request) - ); - }); - it('invokes deleteOperation without error using callback', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.DeleteOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.operationsClient.deleteOperation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.operationsClient.deleteOperation( - request, - undefined, - ( - err?: Error | null, - result?: protos.google.protobuf.Empty | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }).catch(err => {throw err}); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.operationsClient.deleteOperation as SinonStub) - .getCall(0)); - }); - it('invokes deleteOperation with error', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.DeleteOperationRequest() - ); - const expectedError = new Error('expected'); - client.operationsClient.deleteOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(async () => {await client.deleteOperation(request)}, expectedError); - assert((client.operationsClient.deleteOperation as SinonStub) - .getCall(0).calledWith(request)); + + it('invokes streamingRecognize with error', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v1p1beta1.StreamingRecognizeRequest(), + ); + const expectedError = new Error('expected'); + client.innerApiCalls.streamingRecognize = stubBidiStreamingCall( + undefined, + expectedError, + ); + const stream = client._streamingRecognize(); + const promise = new Promise((resolve, reject) => { + stream.on( + 'data', + ( + response: protos.google.cloud.speech.v1p1beta1.StreamingRecognizeResponse, + ) => { + resolve(response); + }, + ); + stream.on('error', (err: Error) => { + reject(err); }); + stream.write(request); + stream.end(); + }); + await assert.rejects(promise, expectedError); + assert( + (client.innerApiCalls.streamingRecognize as SinonStub) + .getCall(0) + .calledWith(null), + ); + assert.deepStrictEqual( + ((stream as unknown as PassThrough)._transform as SinonStub).getCall(0) + .args[0], + request, + ); }); - describe('listOperationsAsync', () => { - it('uses async iteration with listOperations without error', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsRequest() - ); - const expectedResponse = [ - generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsResponse() - ), - generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsResponse() - ), - generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsResponse() - ), - ]; - client.operationsClient.descriptor.listOperations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: operationsProtos.google.longrunning.IOperation[] = []; - const iterable = client.operationsClient.listOperationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.operationsClient.descriptor.listOperations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - }); - it('uses async iteration with listOperations with error', async () => { - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsRequest() - ); - const expectedError = new Error('expected'); - client.operationsClient.descriptor.listOperations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.operationsClient.listOperationsAsync(request); - await assert.rejects(async () => { - const responses: operationsProtos.google.longrunning.IOperation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.operationsClient.descriptor.listOperations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - }); + }); + describe('getOperation', () => { + it('invokes getOperation without error', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.GetOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const response = await client.getOperation(request); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.operationsClient.getOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + it('invokes getOperation without error using callback', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.GetOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + client.operationsClient.getOperation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.operationsClient + .getOperation( + request, + undefined, + ( + err?: Error | null, + result?: operationsProtos.google.longrunning.Operation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ) + .catch((err) => { + throw err; + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); }); + it('invokes getOperation with error', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.GetOperationRequest(), + ); + const expectedError = new Error('expected'); + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(async () => { + await client.getOperation(request); + }, expectedError); + assert( + (client.operationsClient.getOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + }); + describe('cancelOperation', () => { + it('invokes cancelOperation without error', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.CancelOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.operationsClient.cancelOperation = + stubSimpleCall(expectedResponse); + const response = await client.cancelOperation(request); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.operationsClient.cancelOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + it('invokes cancelOperation without error using callback', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.CancelOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.operationsClient.cancelOperation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.operationsClient + .cancelOperation( + request, + undefined, + ( + err?: Error | null, + result?: protos.google.protobuf.Empty | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ) + .catch((err) => { + throw err; + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.operationsClient.cancelOperation as SinonStub).getCall(0)); + }); + it('invokes cancelOperation with error', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.CancelOperationRequest(), + ); + const expectedError = new Error('expected'); + client.operationsClient.cancelOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(async () => { + await client.cancelOperation(request); + }, expectedError); + assert( + (client.operationsClient.cancelOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + }); + describe('deleteOperation', () => { + it('invokes deleteOperation without error', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.DeleteOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.operationsClient.deleteOperation = + stubSimpleCall(expectedResponse); + const response = await client.deleteOperation(request); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.operationsClient.deleteOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + it('invokes deleteOperation without error using callback', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.DeleteOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.operationsClient.deleteOperation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.operationsClient + .deleteOperation( + request, + undefined, + ( + err?: Error | null, + result?: protos.google.protobuf.Empty | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ) + .catch((err) => { + throw err; + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.operationsClient.deleteOperation as SinonStub).getCall(0)); + }); + it('invokes deleteOperation with error', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.DeleteOperationRequest(), + ); + const expectedError = new Error('expected'); + client.operationsClient.deleteOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(async () => { + await client.deleteOperation(request); + }, expectedError); + assert( + (client.operationsClient.deleteOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + }); + describe('listOperationsAsync', () => { + it('uses async iteration with listOperations without error', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsRequest(), + ); + const expectedResponse = [ + generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsResponse(), + ), + generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsResponse(), + ), + generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsResponse(), + ), + ]; + client.operationsClient.descriptor.listOperations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: operationsProtos.google.longrunning.IOperation[] = []; + const iterable = client.operationsClient.listOperationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.operationsClient.descriptor.listOperations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + }); + it('uses async iteration with listOperations with error', async () => { + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsRequest(), + ); + const expectedError = new Error('expected'); + client.operationsClient.descriptor.listOperations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.operationsClient.listOperationsAsync(request); + await assert.rejects(async () => { + const responses: operationsProtos.google.longrunning.IOperation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.operationsClient.descriptor.listOperations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + }); + }); - describe('Path templates', () => { - - describe('customClass', async () => { - const fakePath = "/rendered/path/customClass"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - custom_class: "customClassValue", - }; - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.customClassPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.customClassPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('customClassPath', () => { - const result = client.customClassPath("projectValue", "locationValue", "customClassValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.customClassPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromCustomClassName', () => { - const result = client.matchProjectFromCustomClassName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.customClassPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromCustomClassName', () => { - const result = client.matchLocationFromCustomClassName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.customClassPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchCustomClassFromCustomClassName', () => { - const result = client.matchCustomClassFromCustomClassName(fakePath); - assert.strictEqual(result, "customClassValue"); - assert((client.pathTemplates.customClassPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + describe('Path templates', () => { + describe('customClass', async () => { + const fakePath = '/rendered/path/customClass'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + custom_class: 'customClassValue', + }; + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.customClassPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.customClassPathTemplate.match = sinon + .stub() + .returns(expectedParameters); - describe('phraseSet', async () => { - const fakePath = "/rendered/path/phraseSet"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - phrase_set: "phraseSetValue", - }; - const client = new speechModule.v1p1beta1.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.phraseSetPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.phraseSetPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('phraseSetPath', () => { - const result = client.phraseSetPath("projectValue", "locationValue", "phraseSetValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.phraseSetPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromPhraseSetName', () => { - const result = client.matchProjectFromPhraseSetName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.phraseSetPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromPhraseSetName', () => { - const result = client.matchLocationFromPhraseSetName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.phraseSetPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchPhraseSetFromPhraseSetName', () => { - const result = client.matchPhraseSetFromPhraseSetName(fakePath); - assert.strictEqual(result, "phraseSetValue"); - assert((client.pathTemplates.phraseSetPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('customClassPath', () => { + const result = client.customClassPath( + 'projectValue', + 'locationValue', + 'customClassValue', + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.customClassPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromCustomClassName', () => { + const result = client.matchProjectFromCustomClassName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.customClassPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromCustomClassName', () => { + const result = client.matchLocationFromCustomClassName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.customClassPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchCustomClassFromCustomClassName', () => { + const result = client.matchCustomClassFromCustomClassName(fakePath); + assert.strictEqual(result, 'customClassValue'); + assert( + (client.pathTemplates.customClassPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); + + describe('phraseSet', async () => { + const fakePath = '/rendered/path/phraseSet'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + phrase_set: 'phraseSetValue', + }; + const client = new speechModule.v1p1beta1.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.phraseSetPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.phraseSetPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('phraseSetPath', () => { + const result = client.phraseSetPath( + 'projectValue', + 'locationValue', + 'phraseSetValue', + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.phraseSetPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromPhraseSetName', () => { + const result = client.matchProjectFromPhraseSetName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.phraseSetPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromPhraseSetName', () => { + const result = client.matchLocationFromPhraseSetName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.phraseSetPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchPhraseSetFromPhraseSetName', () => { + const result = client.matchPhraseSetFromPhraseSetName(fakePath); + assert.strictEqual(result, 'phraseSetValue'); + assert( + (client.pathTemplates.phraseSetPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-speech/test/gapic_speech_v2.ts b/packages/google-cloud-speech/test/gapic_speech_v2.ts index 174a2042ce0d..3b4f2134950d 100644 --- a/packages/google-cloud-speech/test/gapic_speech_v2.ts +++ b/packages/google-cloud-speech/test/gapic_speech_v2.ts @@ -19,4517 +19,5678 @@ 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 speechModule from '../src'; -import {PassThrough} from 'stream'; +import { PassThrough } from 'stream'; -import {protobuf, LROperation, operationsProtos, LocationProtos} from 'google-gax'; +import { + protobuf, + LROperation, + operationsProtos, + 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 stubBidiStreamingCall(response?: ResponseType, error?: Error) { - const transformStub = error ? sinon.stub().callsArgWith(2, error) : sinon.stub().callsArgWith(2, null, response); - const mockStream = new PassThrough({ - objectMode: true, - transform: transformStub, - }); - return sinon.stub().returns(mockStream); +function stubBidiStreamingCall( + response?: ResponseType, + error?: Error, +) { + const transformStub = error + ? sinon.stub().callsArgWith(2, error) + : sinon.stub().callsArgWith(2, null, response); + const mockStream = new PassThrough({ + objectMode: true, + transform: transformStub, + }); + return sinon.stub().returns(mockStream); } -function stubLongRunningCall(response?: ResponseType, callError?: Error, lroError?: Error) { - const innerStub = lroError ? sinon.stub().rejects(lroError) : sinon.stub().resolves([response]); - const mockOperation = { - promise: innerStub, - }; - return callError ? sinon.stub().rejects(callError) : sinon.stub().resolves([mockOperation]); +function stubLongRunningCall( + response?: ResponseType, + callError?: Error, + lroError?: Error, +) { + const innerStub = lroError + ? sinon.stub().rejects(lroError) + : sinon.stub().resolves([response]); + const mockOperation = { + promise: innerStub, + }; + return callError + ? sinon.stub().rejects(callError) + : sinon.stub().resolves([mockOperation]); } -function stubLongRunningCallWithCallback(response?: ResponseType, callError?: Error, lroError?: Error) { - const innerStub = lroError ? sinon.stub().rejects(lroError) : sinon.stub().resolves([response]); - const mockOperation = { - promise: innerStub, - }; - return callError ? sinon.stub().callsArgWith(2, callError) : sinon.stub().callsArgWith(2, null, mockOperation); +function stubLongRunningCallWithCallback( + response?: ResponseType, + callError?: Error, + lroError?: Error, +) { + const innerStub = lroError + ? sinon.stub().rejects(lroError) + : sinon.stub().resolves([response]); + const mockOperation = { + promise: innerStub, + }; + return callError + ? sinon.stub().callsArgWith(2, callError) + : sinon.stub().callsArgWith(2, null, mockOperation); } -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('v2.SpeechClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new speechModule.v2.SpeechClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'speech.googleapis.com'); - }); - - it('has universeDomain', () => { - const client = new speechModule.v2.SpeechClient(); - 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 = speechModule.v2.SpeechClient.servicePath; - assert.strictEqual(servicePath, 'speech.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = speechModule.v2.SpeechClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'speech.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new speechModule.v2.SpeechClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'speech.example.com'); - }); - - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new speechModule.v2.SpeechClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'speech.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 speechModule.v2.SpeechClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'speech.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 speechModule.v2.SpeechClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'speech.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 speechModule.v2.SpeechClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); - }); - - it('has port', () => { - const port = speechModule.v2.SpeechClient.port; - assert(port); - assert(typeof port === 'number'); - }); - - it('should create a client with no option', () => { - const client = new speechModule.v2.SpeechClient(); - assert(client); - }); - - it('should create a client with gRPC fallback', () => { - const client = new speechModule.v2.SpeechClient({ - fallback: true, - }); - assert(client); - }); - - it('has initialize method and supports deferred initialization', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.speechStub, undefined); - await client.initialize(); - assert(client.speechStub); - }); - - it('has close method for the initialized client', done => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.speechStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); - - it('has close method for the non-initialized client', done => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.speechStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); - - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new speechModule.v2.SpeechClient({ - 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 speechModule.v2.SpeechClient({ - 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('Common methods', () => { + it('has apiEndpoint', () => { + const client = new speechModule.v2.SpeechClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'speech.googleapis.com'); }); - describe('getRecognizer', () => { - it('invokes getRecognizer without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.GetRecognizerRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.GetRecognizerRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v2.Recognizer() - ); - client.innerApiCalls.getRecognizer = stubSimpleCall(expectedResponse); - const [response] = await client.getRecognizer(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getRecognizer as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getRecognizer as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes getRecognizer without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.GetRecognizerRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.GetRecognizerRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v2.Recognizer() - ); - client.innerApiCalls.getRecognizer = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getRecognizer( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v2.IRecognizer|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getRecognizer as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getRecognizer as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes getRecognizer with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.GetRecognizerRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.GetRecognizerRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.getRecognizer = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getRecognizer(request), expectedError); - const actualRequest = (client.innerApiCalls.getRecognizer as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getRecognizer as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes getRecognizer with closed client', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.GetRecognizerRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.GetRecognizerRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.getRecognizer(request), expectedError); - }); + it('has universeDomain', () => { + const client = new speechModule.v2.SpeechClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); }); - describe('recognize', () => { - it('invokes recognize without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.RecognizeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.RecognizeRequest', ['recognizer']); - request.recognizer = defaultValue1; - const expectedHeaderRequestParams = `recognizer=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v2.RecognizeResponse() - ); - client.innerApiCalls.recognize = stubSimpleCall(expectedResponse); - const [response] = await client.recognize(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.recognize as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.recognize as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes recognize without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.RecognizeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.RecognizeRequest', ['recognizer']); - request.recognizer = defaultValue1; - const expectedHeaderRequestParams = `recognizer=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v2.RecognizeResponse() - ); - client.innerApiCalls.recognize = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.recognize( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v2.IRecognizeResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.recognize as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.recognize as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes recognize with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.RecognizeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.RecognizeRequest', ['recognizer']); - request.recognizer = defaultValue1; - const expectedHeaderRequestParams = `recognizer=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.recognize = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.recognize(request), expectedError); - const actualRequest = (client.innerApiCalls.recognize as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.recognize as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes recognize with closed client', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.RecognizeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.RecognizeRequest', ['recognizer']); - request.recognizer = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.recognize(request), expectedError); - }); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = speechModule.v2.SpeechClient.servicePath; + assert.strictEqual(servicePath, 'speech.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = speechModule.v2.SpeechClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'speech.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = new speechModule.v2.SpeechClient({ + universeDomain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'speech.example.com'); }); - describe('getConfig', () => { - it('invokes getConfig without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.GetConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.GetConfigRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v2.Config() - ); - client.innerApiCalls.getConfig = stubSimpleCall(expectedResponse); - const [response] = await client.getConfig(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes getConfig without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.GetConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.GetConfigRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v2.Config() - ); - client.innerApiCalls.getConfig = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getConfig( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v2.IConfig|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = new speechModule.v2.SpeechClient({ + universe_domain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'speech.example.com'); + }); - it('invokes getConfig with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.GetConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.GetConfigRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.getConfig = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getConfig(request), expectedError); - const actualRequest = (client.innerApiCalls.getConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + 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 speechModule.v2.SpeechClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'speech.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 speechModule.v2.SpeechClient({ + universeDomain: 'configured.example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'speech.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 speechModule.v2.SpeechClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('invokes getConfig with closed client', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.GetConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.GetConfigRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.getConfig(request), expectedError); - }); + it('has port', () => { + const port = speechModule.v2.SpeechClient.port; + assert(port); + assert(typeof port === 'number'); }); - describe('updateConfig', () => { - it('invokes updateConfig without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UpdateConfigRequest() - ); - request.config ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UpdateConfigRequest', ['config', 'name']); - request.config.name = defaultValue1; - const expectedHeaderRequestParams = `config.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v2.Config() - ); - client.innerApiCalls.updateConfig = stubSimpleCall(expectedResponse); - const [response] = await client.updateConfig(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updateConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('should create a client with no option', () => { + const client = new speechModule.v2.SpeechClient(); + assert(client); + }); - it('invokes updateConfig without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UpdateConfigRequest() - ); - request.config ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UpdateConfigRequest', ['config', 'name']); - request.config.name = defaultValue1; - const expectedHeaderRequestParams = `config.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v2.Config() - ); - client.innerApiCalls.updateConfig = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.updateConfig( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v2.IConfig|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updateConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('should create a client with gRPC fallback', () => { + const client = new speechModule.v2.SpeechClient({ + fallback: true, + }); + assert(client); + }); - it('invokes updateConfig with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UpdateConfigRequest() - ); - request.config ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UpdateConfigRequest', ['config', 'name']); - request.config.name = defaultValue1; - const expectedHeaderRequestParams = `config.name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.updateConfig = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.updateConfig(request), expectedError); - const actualRequest = (client.innerApiCalls.updateConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('has initialize method and supports deferred initialization', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.speechStub, undefined); + await client.initialize(); + assert(client.speechStub); + }); - it('invokes updateConfig with closed client', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UpdateConfigRequest() - ); - request.config ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UpdateConfigRequest', ['config', 'name']); - request.config.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.updateConfig(request), expectedError); + it('has close method for the initialized client', (done) => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.speechStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); }); - describe('getCustomClass', () => { - it('invokes getCustomClass without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.GetCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.GetCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v2.CustomClass() - ); - client.innerApiCalls.getCustomClass = stubSimpleCall(expectedResponse); - const [response] = await client.getCustomClass(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getCustomClass 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 speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.speechStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('invokes getCustomClass without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.GetCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.GetCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v2.CustomClass() - ); - client.innerApiCalls.getCustomClass = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getCustomClass( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v2.ICustomClass|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getCustomClass 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 speechModule.v2.SpeechClient({ + 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 getCustomClass with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.GetCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.GetCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.getCustomClass = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getCustomClass(request), expectedError); - const actualRequest = (client.innerApiCalls.getCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getCustomClass 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 speechModule.v2.SpeechClient({ + 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('getRecognizer', () => { + it('invokes getRecognizer without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.GetRecognizerRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.GetRecognizerRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v2.Recognizer(), + ); + client.innerApiCalls.getRecognizer = stubSimpleCall(expectedResponse); + const [response] = await client.getRecognizer(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getRecognizer as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getRecognizer as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getCustomClass with closed client', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.GetCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.GetCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.getCustomClass(request), expectedError); - }); + it('invokes getRecognizer without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.GetRecognizerRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.GetRecognizerRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v2.Recognizer(), + ); + client.innerApiCalls.getRecognizer = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getRecognizer( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v2.IRecognizer | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getRecognizer as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getRecognizer as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('getPhraseSet', () => { - it('invokes getPhraseSet without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.GetPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.GetPhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v2.PhraseSet() - ); - client.innerApiCalls.getPhraseSet = stubSimpleCall(expectedResponse); - const [response] = await client.getPhraseSet(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getPhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getRecognizer with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.GetRecognizerRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.GetRecognizerRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getRecognizer = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.getRecognizer(request), expectedError); + const actualRequest = ( + client.innerApiCalls.getRecognizer as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getRecognizer as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getPhraseSet without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.GetPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.GetPhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v2.PhraseSet() - ); - client.innerApiCalls.getPhraseSet = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getPhraseSet( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v2.IPhraseSet|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getPhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getRecognizer with closed client', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.GetRecognizerRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.GetRecognizerRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.getRecognizer(request), expectedError); + }); + }); + + describe('recognize', () => { + it('invokes recognize without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.RecognizeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.RecognizeRequest', + ['recognizer'], + ); + request.recognizer = defaultValue1; + const expectedHeaderRequestParams = `recognizer=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v2.RecognizeResponse(), + ); + client.innerApiCalls.recognize = stubSimpleCall(expectedResponse); + const [response] = await client.recognize(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.recognize as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.recognize as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getPhraseSet with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.GetPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.GetPhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.getPhraseSet = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getPhraseSet(request), expectedError); - const actualRequest = (client.innerApiCalls.getPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getPhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes recognize without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.RecognizeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.RecognizeRequest', + ['recognizer'], + ); + request.recognizer = defaultValue1; + const expectedHeaderRequestParams = `recognizer=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v2.RecognizeResponse(), + ); + client.innerApiCalls.recognize = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.recognize( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v2.IRecognizeResponse | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.recognize as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.recognize as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getPhraseSet with closed client', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.GetPhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.GetPhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.getPhraseSet(request), expectedError); - }); + it('invokes recognize with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.RecognizeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.RecognizeRequest', + ['recognizer'], + ); + request.recognizer = defaultValue1; + const expectedHeaderRequestParams = `recognizer=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.recognize = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.recognize(request), expectedError); + const actualRequest = ( + client.innerApiCalls.recognize as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.recognize as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('createRecognizer', () => { - it('invokes createRecognizer without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.CreateRecognizerRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.CreateRecognizerRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.createRecognizer = stubLongRunningCall(expectedResponse); - const [operation] = await client.createRecognizer(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createRecognizer as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createRecognizer as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes recognize with closed client', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.RecognizeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.RecognizeRequest', + ['recognizer'], + ); + request.recognizer = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.recognize(request), expectedError); + }); + }); + + describe('getConfig', () => { + it('invokes getConfig without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.GetConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.GetConfigRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v2.Config(), + ); + client.innerApiCalls.getConfig = stubSimpleCall(expectedResponse); + const [response] = await client.getConfig(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes createRecognizer without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.CreateRecognizerRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.CreateRecognizerRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.createRecognizer = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.createRecognizer( - request, - (err?: Error|null, - result?: LROperation|null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const operation = await promise as LROperation; - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createRecognizer as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createRecognizer as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getConfig without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.GetConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.GetConfigRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v2.Config(), + ); + client.innerApiCalls.getConfig = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getConfig( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v2.IConfig | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes createRecognizer with call error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.CreateRecognizerRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.CreateRecognizerRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.createRecognizer = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.createRecognizer(request), expectedError); - const actualRequest = (client.innerApiCalls.createRecognizer as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createRecognizer as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getConfig with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.GetConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.GetConfigRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getConfig = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.getConfig(request), expectedError); + const actualRequest = ( + client.innerApiCalls.getConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes createRecognizer with LRO error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.CreateRecognizerRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.CreateRecognizerRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.createRecognizer = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.createRecognizer(request); - await assert.rejects(operation.promise(), expectedError); - const actualRequest = (client.innerApiCalls.createRecognizer as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createRecognizer as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getConfig with closed client', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.GetConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.GetConfigRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.getConfig(request), expectedError); + }); + }); + + describe('updateConfig', () => { + it('invokes updateConfig without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UpdateConfigRequest(), + ); + request.config ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UpdateConfigRequest', + ['config', 'name'], + ); + request.config.name = defaultValue1; + const expectedHeaderRequestParams = `config.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v2.Config(), + ); + client.innerApiCalls.updateConfig = stubSimpleCall(expectedResponse); + const [response] = await client.updateConfig(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updateConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkCreateRecognizerProgress without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - expectedResponse.name = 'test'; - expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; - expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')} - - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const decodedOperation = await client.checkCreateRecognizerProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); + it('invokes updateConfig without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UpdateConfigRequest(), + ); + request.config ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UpdateConfigRequest', + ['config', 'name'], + ); + request.config.name = defaultValue1; + const expectedHeaderRequestParams = `config.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v2.Config(), + ); + client.innerApiCalls.updateConfig = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.updateConfig( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v2.IConfig | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updateConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkCreateRecognizerProgress with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkCreateRecognizerProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); + it('invokes updateConfig with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UpdateConfigRequest(), + ); + request.config ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UpdateConfigRequest', + ['config', 'name'], + ); + request.config.name = defaultValue1; + const expectedHeaderRequestParams = `config.name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.updateConfig = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.updateConfig(request), expectedError); + const actualRequest = ( + client.innerApiCalls.updateConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('updateRecognizer', () => { - it('invokes updateRecognizer without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UpdateRecognizerRequest() - ); - request.recognizer ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UpdateRecognizerRequest', ['recognizer', 'name']); - request.recognizer.name = defaultValue1; - const expectedHeaderRequestParams = `recognizer.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.updateRecognizer = stubLongRunningCall(expectedResponse); - const [operation] = await client.updateRecognizer(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updateRecognizer as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateRecognizer as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes updateConfig with closed client', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UpdateConfigRequest(), + ); + request.config ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UpdateConfigRequest', + ['config', 'name'], + ); + request.config.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.updateConfig(request), expectedError); + }); + }); + + describe('getCustomClass', () => { + it('invokes getCustomClass without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.GetCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.GetCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v2.CustomClass(), + ); + client.innerApiCalls.getCustomClass = stubSimpleCall(expectedResponse); + const [response] = await client.getCustomClass(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updateRecognizer without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UpdateRecognizerRequest() - ); - request.recognizer ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UpdateRecognizerRequest', ['recognizer', 'name']); - request.recognizer.name = defaultValue1; - const expectedHeaderRequestParams = `recognizer.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.updateRecognizer = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.updateRecognizer( - request, - (err?: Error|null, - result?: LROperation|null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const operation = await promise as LROperation; - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updateRecognizer as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateRecognizer as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getCustomClass without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.GetCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.GetCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v2.CustomClass(), + ); + client.innerApiCalls.getCustomClass = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getCustomClass( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v2.ICustomClass | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updateRecognizer with call error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UpdateRecognizerRequest() - ); - request.recognizer ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UpdateRecognizerRequest', ['recognizer', 'name']); - request.recognizer.name = defaultValue1; - const expectedHeaderRequestParams = `recognizer.name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.updateRecognizer = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.updateRecognizer(request), expectedError); - const actualRequest = (client.innerApiCalls.updateRecognizer as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateRecognizer as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getCustomClass with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.GetCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.GetCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getCustomClass = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.getCustomClass(request), expectedError); + const actualRequest = ( + client.innerApiCalls.getCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updateRecognizer with LRO error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UpdateRecognizerRequest() - ); - request.recognizer ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UpdateRecognizerRequest', ['recognizer', 'name']); - request.recognizer.name = defaultValue1; - const expectedHeaderRequestParams = `recognizer.name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.updateRecognizer = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.updateRecognizer(request); - await assert.rejects(operation.promise(), expectedError); - const actualRequest = (client.innerApiCalls.updateRecognizer as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateRecognizer as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getCustomClass with closed client', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.GetCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.GetCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.getCustomClass(request), expectedError); + }); + }); + + describe('getPhraseSet', () => { + it('invokes getPhraseSet without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.GetPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.GetPhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v2.PhraseSet(), + ); + client.innerApiCalls.getPhraseSet = stubSimpleCall(expectedResponse); + const [response] = await client.getPhraseSet(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkUpdateRecognizerProgress without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - expectedResponse.name = 'test'; - expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; - expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')} - - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const decodedOperation = await client.checkUpdateRecognizerProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); + it('invokes getPhraseSet without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.GetPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.GetPhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v2.PhraseSet(), + ); + client.innerApiCalls.getPhraseSet = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getPhraseSet( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v2.IPhraseSet | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkUpdateRecognizerProgress with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkUpdateRecognizerProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); + it('invokes getPhraseSet with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.GetPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.GetPhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getPhraseSet = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.getPhraseSet(request), expectedError); + const actualRequest = ( + client.innerApiCalls.getPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('deleteRecognizer', () => { - it('invokes deleteRecognizer without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.DeleteRecognizerRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.DeleteRecognizerRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.deleteRecognizer = stubLongRunningCall(expectedResponse); - const [operation] = await client.deleteRecognizer(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.deleteRecognizer as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteRecognizer as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getPhraseSet with closed client', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.GetPhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.GetPhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.getPhraseSet(request), expectedError); + }); + }); + + describe('createRecognizer', () => { + it('invokes createRecognizer without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.CreateRecognizerRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.CreateRecognizerRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.createRecognizer = + stubLongRunningCall(expectedResponse); + const [operation] = await client.createRecognizer(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createRecognizer as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createRecognizer as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deleteRecognizer without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.DeleteRecognizerRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.DeleteRecognizerRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.deleteRecognizer = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.deleteRecognizer( - request, - (err?: Error|null, - result?: LROperation|null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const operation = await promise as LROperation; - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.deleteRecognizer as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteRecognizer as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createRecognizer without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.CreateRecognizerRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.CreateRecognizerRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.createRecognizer = + stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.createRecognizer( + request, + ( + err?: Error | null, + result?: LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + > | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const operation = (await promise) as LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >; + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createRecognizer as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createRecognizer as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deleteRecognizer with call error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.DeleteRecognizerRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.DeleteRecognizerRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.deleteRecognizer = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.deleteRecognizer(request), expectedError); - const actualRequest = (client.innerApiCalls.deleteRecognizer as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteRecognizer as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createRecognizer with call error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.CreateRecognizerRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.CreateRecognizerRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.createRecognizer = stubLongRunningCall( + undefined, + expectedError, + ); + await assert.rejects(client.createRecognizer(request), expectedError); + const actualRequest = ( + client.innerApiCalls.createRecognizer as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createRecognizer as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deleteRecognizer with LRO error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.DeleteRecognizerRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.DeleteRecognizerRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.deleteRecognizer = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.deleteRecognizer(request); - await assert.rejects(operation.promise(), expectedError); - const actualRequest = (client.innerApiCalls.deleteRecognizer as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteRecognizer as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createRecognizer with LRO error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.CreateRecognizerRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.CreateRecognizerRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.createRecognizer = stubLongRunningCall( + undefined, + undefined, + expectedError, + ); + const [operation] = await client.createRecognizer(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.createRecognizer as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createRecognizer as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkDeleteRecognizerProgress without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - expectedResponse.name = 'test'; - expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; - expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')} - - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const decodedOperation = await client.checkDeleteRecognizerProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); + it('invokes checkCreateRecognizerProgress without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + expectedResponse.name = 'test'; + expectedResponse.response = { type_url: 'url', value: Buffer.from('') }; + expectedResponse.metadata = { type_url: 'url', value: Buffer.from('') }; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkCreateRecognizerProgress( + expectedResponse.name, + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); - it('invokes checkDeleteRecognizerProgress with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkDeleteRecognizerProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); + it('invokes checkCreateRecognizerProgress with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.checkCreateRecognizerProgress(''), + expectedError, + ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + }); + + describe('updateRecognizer', () => { + it('invokes updateRecognizer without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UpdateRecognizerRequest(), + ); + request.recognizer ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UpdateRecognizerRequest', + ['recognizer', 'name'], + ); + request.recognizer.name = defaultValue1; + const expectedHeaderRequestParams = `recognizer.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.updateRecognizer = + stubLongRunningCall(expectedResponse); + const [operation] = await client.updateRecognizer(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updateRecognizer as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateRecognizer as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('undeleteRecognizer', () => { - it('invokes undeleteRecognizer without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UndeleteRecognizerRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UndeleteRecognizerRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.undeleteRecognizer = stubLongRunningCall(expectedResponse); - const [operation] = await client.undeleteRecognizer(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.undeleteRecognizer as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.undeleteRecognizer as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes updateRecognizer without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UpdateRecognizerRequest(), + ); + request.recognizer ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UpdateRecognizerRequest', + ['recognizer', 'name'], + ); + request.recognizer.name = defaultValue1; + const expectedHeaderRequestParams = `recognizer.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.updateRecognizer = + stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.updateRecognizer( + request, + ( + err?: Error | null, + result?: LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + > | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const operation = (await promise) as LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >; + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updateRecognizer as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateRecognizer as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes undeleteRecognizer without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UndeleteRecognizerRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UndeleteRecognizerRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.undeleteRecognizer = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.undeleteRecognizer( - request, - (err?: Error|null, - result?: LROperation|null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const operation = await promise as LROperation; - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.undeleteRecognizer as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.undeleteRecognizer as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes updateRecognizer with call error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UpdateRecognizerRequest(), + ); + request.recognizer ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UpdateRecognizerRequest', + ['recognizer', 'name'], + ); + request.recognizer.name = defaultValue1; + const expectedHeaderRequestParams = `recognizer.name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.updateRecognizer = stubLongRunningCall( + undefined, + expectedError, + ); + await assert.rejects(client.updateRecognizer(request), expectedError); + const actualRequest = ( + client.innerApiCalls.updateRecognizer as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateRecognizer as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes undeleteRecognizer with call error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UndeleteRecognizerRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UndeleteRecognizerRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.undeleteRecognizer = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.undeleteRecognizer(request), expectedError); - const actualRequest = (client.innerApiCalls.undeleteRecognizer as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.undeleteRecognizer as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes updateRecognizer with LRO error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UpdateRecognizerRequest(), + ); + request.recognizer ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UpdateRecognizerRequest', + ['recognizer', 'name'], + ); + request.recognizer.name = defaultValue1; + const expectedHeaderRequestParams = `recognizer.name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.updateRecognizer = stubLongRunningCall( + undefined, + undefined, + expectedError, + ); + const [operation] = await client.updateRecognizer(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.updateRecognizer as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateRecognizer as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes undeleteRecognizer with LRO error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UndeleteRecognizerRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UndeleteRecognizerRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.undeleteRecognizer = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.undeleteRecognizer(request); - await assert.rejects(operation.promise(), expectedError); - const actualRequest = (client.innerApiCalls.undeleteRecognizer as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.undeleteRecognizer as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes checkUpdateRecognizerProgress without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + expectedResponse.name = 'test'; + expectedResponse.response = { type_url: 'url', value: Buffer.from('') }; + expectedResponse.metadata = { type_url: 'url', value: Buffer.from('') }; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkUpdateRecognizerProgress( + expectedResponse.name, + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); - it('invokes checkUndeleteRecognizerProgress without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - expectedResponse.name = 'test'; - expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; - expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')} - - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const decodedOperation = await client.checkUndeleteRecognizerProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); + it('invokes checkUpdateRecognizerProgress with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.checkUpdateRecognizerProgress(''), + expectedError, + ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + }); + + describe('deleteRecognizer', () => { + it('invokes deleteRecognizer without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.DeleteRecognizerRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.DeleteRecognizerRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.deleteRecognizer = + stubLongRunningCall(expectedResponse); + const [operation] = await client.deleteRecognizer(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.deleteRecognizer as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteRecognizer as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkUndeleteRecognizerProgress with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkUndeleteRecognizerProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); + it('invokes deleteRecognizer without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.DeleteRecognizerRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.DeleteRecognizerRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.deleteRecognizer = + stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.deleteRecognizer( + request, + ( + err?: Error | null, + result?: LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + > | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const operation = (await promise) as LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >; + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.deleteRecognizer as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteRecognizer as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('batchRecognize', () => { - it('invokes batchRecognize without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.BatchRecognizeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.BatchRecognizeRequest', ['recognizer']); - request.recognizer = defaultValue1; - const expectedHeaderRequestParams = `recognizer=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.batchRecognize = stubLongRunningCall(expectedResponse); - const [operation] = await client.batchRecognize(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.batchRecognize as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.batchRecognize as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes deleteRecognizer with call error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.DeleteRecognizerRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.DeleteRecognizerRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.deleteRecognizer = stubLongRunningCall( + undefined, + expectedError, + ); + await assert.rejects(client.deleteRecognizer(request), expectedError); + const actualRequest = ( + client.innerApiCalls.deleteRecognizer as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteRecognizer as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes batchRecognize without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.BatchRecognizeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.BatchRecognizeRequest', ['recognizer']); - request.recognizer = defaultValue1; - const expectedHeaderRequestParams = `recognizer=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.batchRecognize = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.batchRecognize( - request, - (err?: Error|null, - result?: LROperation|null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const operation = await promise as LROperation; - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.batchRecognize as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.batchRecognize as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes deleteRecognizer with LRO error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.DeleteRecognizerRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.DeleteRecognizerRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.deleteRecognizer = stubLongRunningCall( + undefined, + undefined, + expectedError, + ); + const [operation] = await client.deleteRecognizer(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.deleteRecognizer as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteRecognizer as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes batchRecognize with call error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.BatchRecognizeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.BatchRecognizeRequest', ['recognizer']); - request.recognizer = defaultValue1; - const expectedHeaderRequestParams = `recognizer=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.batchRecognize = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.batchRecognize(request), expectedError); - const actualRequest = (client.innerApiCalls.batchRecognize as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.batchRecognize as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes checkDeleteRecognizerProgress without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + expectedResponse.name = 'test'; + expectedResponse.response = { type_url: 'url', value: Buffer.from('') }; + expectedResponse.metadata = { type_url: 'url', value: Buffer.from('') }; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkDeleteRecognizerProgress( + expectedResponse.name, + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); - it('invokes batchRecognize with LRO error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.BatchRecognizeRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.BatchRecognizeRequest', ['recognizer']); - request.recognizer = defaultValue1; - const expectedHeaderRequestParams = `recognizer=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.batchRecognize = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.batchRecognize(request); - await assert.rejects(operation.promise(), expectedError); - const actualRequest = (client.innerApiCalls.batchRecognize as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.batchRecognize as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes checkDeleteRecognizerProgress with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.checkDeleteRecognizerProgress(''), + expectedError, + ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + }); + + describe('undeleteRecognizer', () => { + it('invokes undeleteRecognizer without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UndeleteRecognizerRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UndeleteRecognizerRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.undeleteRecognizer = + stubLongRunningCall(expectedResponse); + const [operation] = await client.undeleteRecognizer(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.undeleteRecognizer as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.undeleteRecognizer as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkBatchRecognizeProgress without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - expectedResponse.name = 'test'; - expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; - expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')} - - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const decodedOperation = await client.checkBatchRecognizeProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); + it('invokes undeleteRecognizer without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UndeleteRecognizerRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UndeleteRecognizerRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.undeleteRecognizer = + stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.undeleteRecognizer( + request, + ( + err?: Error | null, + result?: LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + > | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const operation = (await promise) as LROperation< + protos.google.cloud.speech.v2.IRecognizer, + protos.google.cloud.speech.v2.IOperationMetadata + >; + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.undeleteRecognizer as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.undeleteRecognizer as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkBatchRecognizeProgress with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkBatchRecognizeProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); + it('invokes undeleteRecognizer with call error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UndeleteRecognizerRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UndeleteRecognizerRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.undeleteRecognizer = stubLongRunningCall( + undefined, + expectedError, + ); + await assert.rejects(client.undeleteRecognizer(request), expectedError); + const actualRequest = ( + client.innerApiCalls.undeleteRecognizer as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.undeleteRecognizer as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('createCustomClass', () => { - it('invokes createCustomClass without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.CreateCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.CreateCustomClassRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.createCustomClass = stubLongRunningCall(expectedResponse); - const [operation] = await client.createCustomClass(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes undeleteRecognizer with LRO error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UndeleteRecognizerRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UndeleteRecognizerRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.undeleteRecognizer = stubLongRunningCall( + undefined, + undefined, + expectedError, + ); + const [operation] = await client.undeleteRecognizer(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.undeleteRecognizer as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.undeleteRecognizer as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes createCustomClass without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.CreateCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.CreateCustomClassRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.createCustomClass = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.createCustomClass( - request, - (err?: Error|null, - result?: LROperation|null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const operation = await promise as LROperation; - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes checkUndeleteRecognizerProgress without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + expectedResponse.name = 'test'; + expectedResponse.response = { type_url: 'url', value: Buffer.from('') }; + expectedResponse.metadata = { type_url: 'url', value: Buffer.from('') }; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkUndeleteRecognizerProgress( + expectedResponse.name, + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); - it('invokes createCustomClass with call error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.CreateCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.CreateCustomClassRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.createCustomClass = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.createCustomClass(request), expectedError); - const actualRequest = (client.innerApiCalls.createCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes checkUndeleteRecognizerProgress with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.checkUndeleteRecognizerProgress(''), + expectedError, + ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + }); + + describe('batchRecognize', () => { + it('invokes batchRecognize without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.BatchRecognizeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.BatchRecognizeRequest', + ['recognizer'], + ); + request.recognizer = defaultValue1; + const expectedHeaderRequestParams = `recognizer=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.batchRecognize = + stubLongRunningCall(expectedResponse); + const [operation] = await client.batchRecognize(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.batchRecognize as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.batchRecognize as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes createCustomClass with LRO error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.CreateCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.CreateCustomClassRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.createCustomClass = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.createCustomClass(request); - await assert.rejects(operation.promise(), expectedError); - const actualRequest = (client.innerApiCalls.createCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes batchRecognize without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.BatchRecognizeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.BatchRecognizeRequest', + ['recognizer'], + ); + request.recognizer = defaultValue1; + const expectedHeaderRequestParams = `recognizer=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.batchRecognize = + stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.batchRecognize( + request, + ( + err?: Error | null, + result?: LROperation< + protos.google.cloud.speech.v2.IBatchRecognizeResponse, + protos.google.cloud.speech.v2.IOperationMetadata + > | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const operation = (await promise) as LROperation< + protos.google.cloud.speech.v2.IBatchRecognizeResponse, + protos.google.cloud.speech.v2.IOperationMetadata + >; + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.batchRecognize as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.batchRecognize as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkCreateCustomClassProgress without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - expectedResponse.name = 'test'; - expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; - expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')} - - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const decodedOperation = await client.checkCreateCustomClassProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); + it('invokes batchRecognize with call error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.BatchRecognizeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.BatchRecognizeRequest', + ['recognizer'], + ); + request.recognizer = defaultValue1; + const expectedHeaderRequestParams = `recognizer=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.batchRecognize = stubLongRunningCall( + undefined, + expectedError, + ); + await assert.rejects(client.batchRecognize(request), expectedError); + const actualRequest = ( + client.innerApiCalls.batchRecognize as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.batchRecognize as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkCreateCustomClassProgress with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkCreateCustomClassProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); + it('invokes batchRecognize with LRO error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.BatchRecognizeRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.BatchRecognizeRequest', + ['recognizer'], + ); + request.recognizer = defaultValue1; + const expectedHeaderRequestParams = `recognizer=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.batchRecognize = stubLongRunningCall( + undefined, + undefined, + expectedError, + ); + const [operation] = await client.batchRecognize(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.batchRecognize as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.batchRecognize as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('updateCustomClass', () => { - it('invokes updateCustomClass without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UpdateCustomClassRequest() - ); - request.customClass ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UpdateCustomClassRequest', ['customClass', 'name']); - request.customClass.name = defaultValue1; - const expectedHeaderRequestParams = `custom_class.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.updateCustomClass = stubLongRunningCall(expectedResponse); - const [operation] = await client.updateCustomClass(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updateCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes checkBatchRecognizeProgress without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + expectedResponse.name = 'test'; + expectedResponse.response = { type_url: 'url', value: Buffer.from('') }; + expectedResponse.metadata = { type_url: 'url', value: Buffer.from('') }; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkBatchRecognizeProgress( + expectedResponse.name, + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); - it('invokes updateCustomClass without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UpdateCustomClassRequest() - ); - request.customClass ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UpdateCustomClassRequest', ['customClass', 'name']); - request.customClass.name = defaultValue1; - const expectedHeaderRequestParams = `custom_class.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.updateCustomClass = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.updateCustomClass( - request, - (err?: Error|null, - result?: LROperation|null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const operation = await promise as LROperation; - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updateCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes checkBatchRecognizeProgress with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.checkBatchRecognizeProgress(''), + expectedError, + ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + }); + + describe('createCustomClass', () => { + it('invokes createCustomClass without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.CreateCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.CreateCustomClassRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.createCustomClass = + stubLongRunningCall(expectedResponse); + const [operation] = await client.createCustomClass(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updateCustomClass with call error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UpdateCustomClassRequest() - ); - request.customClass ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UpdateCustomClassRequest', ['customClass', 'name']); - request.customClass.name = defaultValue1; - const expectedHeaderRequestParams = `custom_class.name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.updateCustomClass = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.updateCustomClass(request), expectedError); - const actualRequest = (client.innerApiCalls.updateCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createCustomClass without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.CreateCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.CreateCustomClassRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.createCustomClass = + stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.createCustomClass( + request, + ( + err?: Error | null, + result?: LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + > | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const operation = (await promise) as LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >; + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updateCustomClass with LRO error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UpdateCustomClassRequest() - ); - request.customClass ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UpdateCustomClassRequest', ['customClass', 'name']); - request.customClass.name = defaultValue1; - const expectedHeaderRequestParams = `custom_class.name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.updateCustomClass = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.updateCustomClass(request); - await assert.rejects(operation.promise(), expectedError); - const actualRequest = (client.innerApiCalls.updateCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createCustomClass with call error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.CreateCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.CreateCustomClassRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.createCustomClass = stubLongRunningCall( + undefined, + expectedError, + ); + await assert.rejects(client.createCustomClass(request), expectedError); + const actualRequest = ( + client.innerApiCalls.createCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkUpdateCustomClassProgress without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - expectedResponse.name = 'test'; - expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; - expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')} - - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const decodedOperation = await client.checkUpdateCustomClassProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); + it('invokes createCustomClass with LRO error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.CreateCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.CreateCustomClassRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.createCustomClass = stubLongRunningCall( + undefined, + undefined, + expectedError, + ); + const [operation] = await client.createCustomClass(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.createCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkUpdateCustomClassProgress with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkUpdateCustomClassProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); + it('invokes checkCreateCustomClassProgress without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + expectedResponse.name = 'test'; + expectedResponse.response = { type_url: 'url', value: Buffer.from('') }; + expectedResponse.metadata = { type_url: 'url', value: Buffer.from('') }; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkCreateCustomClassProgress( + expectedResponse.name, + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); }); - describe('deleteCustomClass', () => { - it('invokes deleteCustomClass without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.DeleteCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.DeleteCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.deleteCustomClass = stubLongRunningCall(expectedResponse); - const [operation] = await client.deleteCustomClass(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.deleteCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes checkCreateCustomClassProgress with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.checkCreateCustomClassProgress(''), + expectedError, + ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + }); + + describe('updateCustomClass', () => { + it('invokes updateCustomClass without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UpdateCustomClassRequest(), + ); + request.customClass ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UpdateCustomClassRequest', + ['customClass', 'name'], + ); + request.customClass.name = defaultValue1; + const expectedHeaderRequestParams = `custom_class.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.updateCustomClass = + stubLongRunningCall(expectedResponse); + const [operation] = await client.updateCustomClass(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updateCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deleteCustomClass without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.DeleteCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.DeleteCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.deleteCustomClass = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.deleteCustomClass( - request, - (err?: Error|null, - result?: LROperation|null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const operation = await promise as LROperation; - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.deleteCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes updateCustomClass without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UpdateCustomClassRequest(), + ); + request.customClass ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UpdateCustomClassRequest', + ['customClass', 'name'], + ); + request.customClass.name = defaultValue1; + const expectedHeaderRequestParams = `custom_class.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.updateCustomClass = + stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.updateCustomClass( + request, + ( + err?: Error | null, + result?: LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + > | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const operation = (await promise) as LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >; + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updateCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deleteCustomClass with call error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.DeleteCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.DeleteCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.deleteCustomClass = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.deleteCustomClass(request), expectedError); - const actualRequest = (client.innerApiCalls.deleteCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes updateCustomClass with call error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UpdateCustomClassRequest(), + ); + request.customClass ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UpdateCustomClassRequest', + ['customClass', 'name'], + ); + request.customClass.name = defaultValue1; + const expectedHeaderRequestParams = `custom_class.name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.updateCustomClass = stubLongRunningCall( + undefined, + expectedError, + ); + await assert.rejects(client.updateCustomClass(request), expectedError); + const actualRequest = ( + client.innerApiCalls.updateCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deleteCustomClass with LRO error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.DeleteCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.DeleteCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.deleteCustomClass = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.deleteCustomClass(request); - await assert.rejects(operation.promise(), expectedError); - const actualRequest = (client.innerApiCalls.deleteCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes updateCustomClass with LRO error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UpdateCustomClassRequest(), + ); + request.customClass ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UpdateCustomClassRequest', + ['customClass', 'name'], + ); + request.customClass.name = defaultValue1; + const expectedHeaderRequestParams = `custom_class.name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.updateCustomClass = stubLongRunningCall( + undefined, + undefined, + expectedError, + ); + const [operation] = await client.updateCustomClass(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.updateCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkDeleteCustomClassProgress without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - expectedResponse.name = 'test'; - expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; - expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')} - - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const decodedOperation = await client.checkDeleteCustomClassProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); + it('invokes checkUpdateCustomClassProgress without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + expectedResponse.name = 'test'; + expectedResponse.response = { type_url: 'url', value: Buffer.from('') }; + expectedResponse.metadata = { type_url: 'url', value: Buffer.from('') }; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkUpdateCustomClassProgress( + expectedResponse.name, + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); - it('invokes checkDeleteCustomClassProgress with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkDeleteCustomClassProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); + it('invokes checkUpdateCustomClassProgress with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.checkUpdateCustomClassProgress(''), + expectedError, + ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + }); + + describe('deleteCustomClass', () => { + it('invokes deleteCustomClass without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.DeleteCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.DeleteCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.deleteCustomClass = + stubLongRunningCall(expectedResponse); + const [operation] = await client.deleteCustomClass(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.deleteCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('undeleteCustomClass', () => { - it('invokes undeleteCustomClass without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UndeleteCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UndeleteCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.undeleteCustomClass = stubLongRunningCall(expectedResponse); - const [operation] = await client.undeleteCustomClass(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.undeleteCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.undeleteCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes deleteCustomClass without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.DeleteCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.DeleteCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.deleteCustomClass = + stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.deleteCustomClass( + request, + ( + err?: Error | null, + result?: LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + > | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const operation = (await promise) as LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >; + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.deleteCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes undeleteCustomClass without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UndeleteCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UndeleteCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.undeleteCustomClass = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.undeleteCustomClass( - request, - (err?: Error|null, - result?: LROperation|null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const operation = await promise as LROperation; - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.undeleteCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.undeleteCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes deleteCustomClass with call error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.DeleteCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.DeleteCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.deleteCustomClass = stubLongRunningCall( + undefined, + expectedError, + ); + await assert.rejects(client.deleteCustomClass(request), expectedError); + const actualRequest = ( + client.innerApiCalls.deleteCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes undeleteCustomClass with call error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UndeleteCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UndeleteCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.undeleteCustomClass = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.undeleteCustomClass(request), expectedError); - const actualRequest = (client.innerApiCalls.undeleteCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.undeleteCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes deleteCustomClass with LRO error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.DeleteCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.DeleteCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.deleteCustomClass = stubLongRunningCall( + undefined, + undefined, + expectedError, + ); + const [operation] = await client.deleteCustomClass(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.deleteCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes undeleteCustomClass with LRO error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UndeleteCustomClassRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UndeleteCustomClassRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.undeleteCustomClass = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.undeleteCustomClass(request); - await assert.rejects(operation.promise(), expectedError); - const actualRequest = (client.innerApiCalls.undeleteCustomClass as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.undeleteCustomClass as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes checkDeleteCustomClassProgress without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + expectedResponse.name = 'test'; + expectedResponse.response = { type_url: 'url', value: Buffer.from('') }; + expectedResponse.metadata = { type_url: 'url', value: Buffer.from('') }; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkDeleteCustomClassProgress( + expectedResponse.name, + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); - it('invokes checkUndeleteCustomClassProgress without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - expectedResponse.name = 'test'; - expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; - expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')} - - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const decodedOperation = await client.checkUndeleteCustomClassProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); + it('invokes checkDeleteCustomClassProgress with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.checkDeleteCustomClassProgress(''), + expectedError, + ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + }); + + describe('undeleteCustomClass', () => { + it('invokes undeleteCustomClass without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UndeleteCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UndeleteCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.undeleteCustomClass = + stubLongRunningCall(expectedResponse); + const [operation] = await client.undeleteCustomClass(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.undeleteCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.undeleteCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkUndeleteCustomClassProgress with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkUndeleteCustomClassProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); + it('invokes undeleteCustomClass without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UndeleteCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UndeleteCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.undeleteCustomClass = + stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.undeleteCustomClass( + request, + ( + err?: Error | null, + result?: LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + > | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const operation = (await promise) as LROperation< + protos.google.cloud.speech.v2.ICustomClass, + protos.google.cloud.speech.v2.IOperationMetadata + >; + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.undeleteCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.undeleteCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('createPhraseSet', () => { - it('invokes createPhraseSet without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.CreatePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.CreatePhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.createPhraseSet = stubLongRunningCall(expectedResponse); - const [operation] = await client.createPhraseSet(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createPhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes undeleteCustomClass with call error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UndeleteCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UndeleteCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.undeleteCustomClass = stubLongRunningCall( + undefined, + expectedError, + ); + await assert.rejects(client.undeleteCustomClass(request), expectedError); + const actualRequest = ( + client.innerApiCalls.undeleteCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.undeleteCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes createPhraseSet without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.CreatePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.CreatePhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.createPhraseSet = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.createPhraseSet( - request, - (err?: Error|null, - result?: LROperation|null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const operation = await promise as LROperation; - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createPhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes undeleteCustomClass with LRO error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UndeleteCustomClassRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UndeleteCustomClassRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.undeleteCustomClass = stubLongRunningCall( + undefined, + undefined, + expectedError, + ); + const [operation] = await client.undeleteCustomClass(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.undeleteCustomClass as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.undeleteCustomClass as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes createPhraseSet with call error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.CreatePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.CreatePhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.createPhraseSet = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.createPhraseSet(request), expectedError); - const actualRequest = (client.innerApiCalls.createPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createPhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes checkUndeleteCustomClassProgress without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + expectedResponse.name = 'test'; + expectedResponse.response = { type_url: 'url', value: Buffer.from('') }; + expectedResponse.metadata = { type_url: 'url', value: Buffer.from('') }; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkUndeleteCustomClassProgress( + expectedResponse.name, + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); - it('invokes createPhraseSet with LRO error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.CreatePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.CreatePhraseSetRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.createPhraseSet = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.createPhraseSet(request); - await assert.rejects(operation.promise(), expectedError); - const actualRequest = (client.innerApiCalls.createPhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createPhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes checkUndeleteCustomClassProgress with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.checkUndeleteCustomClassProgress(''), + expectedError, + ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + }); + + describe('createPhraseSet', () => { + it('invokes createPhraseSet without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.CreatePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.CreatePhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.createPhraseSet = + stubLongRunningCall(expectedResponse); + const [operation] = await client.createPhraseSet(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkCreatePhraseSetProgress without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - expectedResponse.name = 'test'; - expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; - expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')} - - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const decodedOperation = await client.checkCreatePhraseSetProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); + it('invokes createPhraseSet without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.CreatePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.CreatePhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.createPhraseSet = + stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.createPhraseSet( + request, + ( + err?: Error | null, + result?: LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + > | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const operation = (await promise) as LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >; + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkCreatePhraseSetProgress with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkCreatePhraseSetProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); + it('invokes createPhraseSet with call error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.CreatePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.CreatePhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.createPhraseSet = stubLongRunningCall( + undefined, + expectedError, + ); + await assert.rejects(client.createPhraseSet(request), expectedError); + const actualRequest = ( + client.innerApiCalls.createPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('updatePhraseSet', () => { - it('invokes updatePhraseSet without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UpdatePhraseSetRequest() - ); - request.phraseSet ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UpdatePhraseSetRequest', ['phraseSet', 'name']); - request.phraseSet.name = defaultValue1; - const expectedHeaderRequestParams = `phrase_set.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.updatePhraseSet = stubLongRunningCall(expectedResponse); - const [operation] = await client.updatePhraseSet(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updatePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updatePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createPhraseSet with LRO error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.CreatePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.CreatePhraseSetRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.createPhraseSet = stubLongRunningCall( + undefined, + undefined, + expectedError, + ); + const [operation] = await client.createPhraseSet(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.createPhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createPhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updatePhraseSet without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UpdatePhraseSetRequest() - ); - request.phraseSet ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UpdatePhraseSetRequest', ['phraseSet', 'name']); - request.phraseSet.name = defaultValue1; - const expectedHeaderRequestParams = `phrase_set.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.updatePhraseSet = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.updatePhraseSet( - request, - (err?: Error|null, - result?: LROperation|null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const operation = await promise as LROperation; - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updatePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updatePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes checkCreatePhraseSetProgress without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + expectedResponse.name = 'test'; + expectedResponse.response = { type_url: 'url', value: Buffer.from('') }; + expectedResponse.metadata = { type_url: 'url', value: Buffer.from('') }; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkCreatePhraseSetProgress( + expectedResponse.name, + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); - it('invokes updatePhraseSet with call error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UpdatePhraseSetRequest() - ); - request.phraseSet ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UpdatePhraseSetRequest', ['phraseSet', 'name']); - request.phraseSet.name = defaultValue1; - const expectedHeaderRequestParams = `phrase_set.name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.updatePhraseSet = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.updatePhraseSet(request), expectedError); - const actualRequest = (client.innerApiCalls.updatePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updatePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes checkCreatePhraseSetProgress with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.checkCreatePhraseSetProgress(''), + expectedError, + ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + }); + + describe('updatePhraseSet', () => { + it('invokes updatePhraseSet without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UpdatePhraseSetRequest(), + ); + request.phraseSet ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UpdatePhraseSetRequest', + ['phraseSet', 'name'], + ); + request.phraseSet.name = defaultValue1; + const expectedHeaderRequestParams = `phrase_set.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.updatePhraseSet = + stubLongRunningCall(expectedResponse); + const [operation] = await client.updatePhraseSet(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updatePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updatePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updatePhraseSet with LRO error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UpdatePhraseSetRequest() - ); - request.phraseSet ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UpdatePhraseSetRequest', ['phraseSet', 'name']); - request.phraseSet.name = defaultValue1; - const expectedHeaderRequestParams = `phrase_set.name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.updatePhraseSet = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.updatePhraseSet(request); - await assert.rejects(operation.promise(), expectedError); - const actualRequest = (client.innerApiCalls.updatePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updatePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes updatePhraseSet without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UpdatePhraseSetRequest(), + ); + request.phraseSet ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UpdatePhraseSetRequest', + ['phraseSet', 'name'], + ); + request.phraseSet.name = defaultValue1; + const expectedHeaderRequestParams = `phrase_set.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.updatePhraseSet = + stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.updatePhraseSet( + request, + ( + err?: Error | null, + result?: LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + > | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const operation = (await promise) as LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >; + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updatePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updatePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkUpdatePhraseSetProgress without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - expectedResponse.name = 'test'; - expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; - expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')} - - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const decodedOperation = await client.checkUpdatePhraseSetProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); + it('invokes updatePhraseSet with call error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UpdatePhraseSetRequest(), + ); + request.phraseSet ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UpdatePhraseSetRequest', + ['phraseSet', 'name'], + ); + request.phraseSet.name = defaultValue1; + const expectedHeaderRequestParams = `phrase_set.name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.updatePhraseSet = stubLongRunningCall( + undefined, + expectedError, + ); + await assert.rejects(client.updatePhraseSet(request), expectedError); + const actualRequest = ( + client.innerApiCalls.updatePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updatePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkUpdatePhraseSetProgress with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkUpdatePhraseSetProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); + it('invokes updatePhraseSet with LRO error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UpdatePhraseSetRequest(), + ); + request.phraseSet ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UpdatePhraseSetRequest', + ['phraseSet', 'name'], + ); + request.phraseSet.name = defaultValue1; + const expectedHeaderRequestParams = `phrase_set.name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.updatePhraseSet = stubLongRunningCall( + undefined, + undefined, + expectedError, + ); + const [operation] = await client.updatePhraseSet(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.updatePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updatePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('deletePhraseSet', () => { - it('invokes deletePhraseSet without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.DeletePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.DeletePhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.deletePhraseSet = stubLongRunningCall(expectedResponse); - const [operation] = await client.deletePhraseSet(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.deletePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deletePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes checkUpdatePhraseSetProgress without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + expectedResponse.name = 'test'; + expectedResponse.response = { type_url: 'url', value: Buffer.from('') }; + expectedResponse.metadata = { type_url: 'url', value: Buffer.from('') }; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkUpdatePhraseSetProgress( + expectedResponse.name, + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); - it('invokes deletePhraseSet without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.DeletePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.DeletePhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.deletePhraseSet = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.deletePhraseSet( - request, - (err?: Error|null, - result?: LROperation|null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const operation = await promise as LROperation; - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.deletePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deletePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes checkUpdatePhraseSetProgress with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.checkUpdatePhraseSetProgress(''), + expectedError, + ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + }); + + describe('deletePhraseSet', () => { + it('invokes deletePhraseSet without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.DeletePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.DeletePhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.deletePhraseSet = + stubLongRunningCall(expectedResponse); + const [operation] = await client.deletePhraseSet(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.deletePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deletePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deletePhraseSet with call error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.DeletePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.DeletePhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.deletePhraseSet = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.deletePhraseSet(request), expectedError); - const actualRequest = (client.innerApiCalls.deletePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deletePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes deletePhraseSet without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.DeletePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.DeletePhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.deletePhraseSet = + stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.deletePhraseSet( + request, + ( + err?: Error | null, + result?: LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + > | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const operation = (await promise) as LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >; + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.deletePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deletePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deletePhraseSet with LRO error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.DeletePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.DeletePhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.deletePhraseSet = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.deletePhraseSet(request); - await assert.rejects(operation.promise(), expectedError); - const actualRequest = (client.innerApiCalls.deletePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deletePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes deletePhraseSet with call error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.DeletePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.DeletePhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.deletePhraseSet = stubLongRunningCall( + undefined, + expectedError, + ); + await assert.rejects(client.deletePhraseSet(request), expectedError); + const actualRequest = ( + client.innerApiCalls.deletePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deletePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkDeletePhraseSetProgress without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - expectedResponse.name = 'test'; - expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; - expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')} - - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const decodedOperation = await client.checkDeletePhraseSetProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); + it('invokes deletePhraseSet with LRO error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.DeletePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.DeletePhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.deletePhraseSet = stubLongRunningCall( + undefined, + undefined, + expectedError, + ); + const [operation] = await client.deletePhraseSet(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.deletePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deletePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkDeletePhraseSetProgress with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkDeletePhraseSetProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); + it('invokes checkDeletePhraseSetProgress without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + expectedResponse.name = 'test'; + expectedResponse.response = { type_url: 'url', value: Buffer.from('') }; + expectedResponse.metadata = { type_url: 'url', value: Buffer.from('') }; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkDeletePhraseSetProgress( + expectedResponse.name, + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); }); - describe('undeletePhraseSet', () => { - it('invokes undeletePhraseSet without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UndeletePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UndeletePhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.undeletePhraseSet = stubLongRunningCall(expectedResponse); - const [operation] = await client.undeletePhraseSet(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.undeletePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.undeletePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes checkDeletePhraseSetProgress with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.checkDeletePhraseSetProgress(''), + expectedError, + ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + }); + + describe('undeletePhraseSet', () => { + it('invokes undeletePhraseSet without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UndeletePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UndeletePhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.undeletePhraseSet = + stubLongRunningCall(expectedResponse); + const [operation] = await client.undeletePhraseSet(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.undeletePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.undeletePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes undeletePhraseSet without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UndeletePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UndeletePhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.undeletePhraseSet = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.undeletePhraseSet( - request, - (err?: Error|null, - result?: LROperation|null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const operation = await promise as LROperation; - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.undeletePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.undeletePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes undeletePhraseSet without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UndeletePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UndeletePhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.undeletePhraseSet = + stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.undeletePhraseSet( + request, + ( + err?: Error | null, + result?: LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + > | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const operation = (await promise) as LROperation< + protos.google.cloud.speech.v2.IPhraseSet, + protos.google.cloud.speech.v2.IOperationMetadata + >; + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.undeletePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.undeletePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes undeletePhraseSet with call error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UndeletePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UndeletePhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.undeletePhraseSet = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.undeletePhraseSet(request), expectedError); - const actualRequest = (client.innerApiCalls.undeletePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.undeletePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes undeletePhraseSet with call error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UndeletePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UndeletePhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.undeletePhraseSet = stubLongRunningCall( + undefined, + expectedError, + ); + await assert.rejects(client.undeletePhraseSet(request), expectedError); + const actualRequest = ( + client.innerApiCalls.undeletePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.undeletePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes undeletePhraseSet with LRO error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.UndeletePhraseSetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.UndeletePhraseSetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.undeletePhraseSet = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.undeletePhraseSet(request); - await assert.rejects(operation.promise(), expectedError); - const actualRequest = (client.innerApiCalls.undeletePhraseSet as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.undeletePhraseSet as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes undeletePhraseSet with LRO error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.UndeletePhraseSetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.UndeletePhraseSetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.undeletePhraseSet = stubLongRunningCall( + undefined, + undefined, + expectedError, + ); + const [operation] = await client.undeletePhraseSet(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.undeletePhraseSet as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.undeletePhraseSet as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkUndeletePhraseSetProgress without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - expectedResponse.name = 'test'; - expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; - expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')} - - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const decodedOperation = await client.checkUndeletePhraseSetProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); + it('invokes checkUndeletePhraseSetProgress without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + expectedResponse.name = 'test'; + expectedResponse.response = { type_url: 'url', value: Buffer.from('') }; + expectedResponse.metadata = { type_url: 'url', value: Buffer.from('') }; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkUndeletePhraseSetProgress( + expectedResponse.name, + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); - it('invokes checkUndeletePhraseSetProgress with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkUndeletePhraseSetProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); + it('invokes checkUndeletePhraseSetProgress with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.checkUndeletePhraseSetProgress(''), + expectedError, + ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + }); + + describe('streamingRecognize', () => { + it('invokes streamingRecognize without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.StreamingRecognizeRequest(), + ); + + const expectedResponse = generateSampleMessage( + new protos.google.cloud.speech.v2.StreamingRecognizeResponse(), + ); + client.innerApiCalls.streamingRecognize = + stubBidiStreamingCall(expectedResponse); + const stream = client._streamingRecognize(); + const promise = new Promise((resolve, reject) => { + stream.on( + 'data', + ( + response: protos.google.cloud.speech.v2.StreamingRecognizeResponse, + ) => { + resolve(response); + }, + ); + stream.on('error', (err: Error) => { + reject(err); + }); + stream.write(request); + stream.end(); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.streamingRecognize as SinonStub) + .getCall(0) + .calledWith(null), + ); + assert.deepStrictEqual( + ((stream as unknown as PassThrough)._transform as SinonStub).getCall(0) + .args[0], + request, + ); }); - describe('streamingRecognize', () => { - it('invokes streamingRecognize without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.StreamingRecognizeRequest() - ); - - const expectedResponse = generateSampleMessage( - new protos.google.cloud.speech.v2.StreamingRecognizeResponse() - ); - client.innerApiCalls.streamingRecognize = stubBidiStreamingCall(expectedResponse); - const stream = client._streamingRecognize(); - const promise = new Promise((resolve, reject) => { - stream.on('data', (response: protos.google.cloud.speech.v2.StreamingRecognizeResponse) => { - resolve(response); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - stream.write(request); - stream.end(); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.streamingRecognize as SinonStub) - .getCall(0).calledWith(null)); - assert.deepStrictEqual(((stream as unknown as PassThrough) - ._transform as SinonStub).getCall(0).args[0], request); - }); + it('invokes streamingRecognize with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.StreamingRecognizeRequest(), + ); + const expectedError = new Error('expected'); + client.innerApiCalls.streamingRecognize = stubBidiStreamingCall( + undefined, + expectedError, + ); + const stream = client._streamingRecognize(); + const promise = new Promise((resolve, reject) => { + stream.on( + 'data', + ( + response: protos.google.cloud.speech.v2.StreamingRecognizeResponse, + ) => { + resolve(response); + }, + ); + stream.on('error', (err: Error) => { + reject(err); + }); + stream.write(request); + stream.end(); + }); + await assert.rejects(promise, expectedError); + assert( + (client.innerApiCalls.streamingRecognize as SinonStub) + .getCall(0) + .calledWith(null), + ); + assert.deepStrictEqual( + ((stream as unknown as PassThrough)._transform as SinonStub).getCall(0) + .args[0], + request, + ); + }); + }); + + describe('listRecognizers', () => { + it('invokes listRecognizers without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.ListRecognizersRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.ListRecognizersRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), + generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), + generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), + ]; + client.innerApiCalls.listRecognizers = stubSimpleCall(expectedResponse); + const [response] = await client.listRecognizers(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listRecognizers as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listRecognizers as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes streamingRecognize with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.StreamingRecognizeRequest() - ); - const expectedError = new Error('expected'); - client.innerApiCalls.streamingRecognize = stubBidiStreamingCall(undefined, expectedError); - const stream = client._streamingRecognize(); - const promise = new Promise((resolve, reject) => { - stream.on('data', (response: protos.google.cloud.speech.v2.StreamingRecognizeResponse) => { - resolve(response); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - stream.write(request); - stream.end(); - }); - await assert.rejects(promise, expectedError); - assert((client.innerApiCalls.streamingRecognize as SinonStub) - .getCall(0).calledWith(null)); - assert.deepStrictEqual(((stream as unknown as PassThrough) - ._transform as SinonStub).getCall(0).args[0], request); - }); + it('invokes listRecognizers without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.ListRecognizersRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.ListRecognizersRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), + generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), + generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), + ]; + client.innerApiCalls.listRecognizers = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listRecognizers( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v2.IRecognizer[] | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listRecognizers as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listRecognizers as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('listRecognizers', () => { - it('invokes listRecognizers without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.ListRecognizersRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.ListRecognizersRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), - generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), - generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), - ]; - client.innerApiCalls.listRecognizers = stubSimpleCall(expectedResponse); - const [response] = await client.listRecognizers(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listRecognizers as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listRecognizers as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listRecognizers with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.ListRecognizersRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.ListRecognizersRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listRecognizers = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.listRecognizers(request), expectedError); + const actualRequest = ( + client.innerApiCalls.listRecognizers as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listRecognizers as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes listRecognizers without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.ListRecognizersRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.ListRecognizersRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), - generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), - generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), - ]; - client.innerApiCalls.listRecognizers = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listRecognizers( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v2.IRecognizer[]|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listRecognizers as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listRecognizers as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listRecognizersStream without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.ListRecognizersRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.ListRecognizersRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), + generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), + generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), + ]; + client.descriptors.page.listRecognizers.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.listRecognizersStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.speech.v2.Recognizer[] = []; + stream.on( + 'data', + (response: protos.google.cloud.speech.v2.Recognizer) => { + 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.listRecognizers.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listRecognizers, request), + ); + assert( + (client.descriptors.page.listRecognizers.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('invokes listRecognizers with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.ListRecognizersRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.ListRecognizersRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.listRecognizers = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.listRecognizers(request), expectedError); - const actualRequest = (client.innerApiCalls.listRecognizers as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listRecognizers as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listRecognizersStream with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.ListRecognizersRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.ListRecognizersRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listRecognizers.createStream = + stubPageStreamingCall(undefined, expectedError); + const stream = client.listRecognizersStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.speech.v2.Recognizer[] = []; + stream.on( + 'data', + (response: protos.google.cloud.speech.v2.Recognizer) => { + responses.push(response); + }, + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + assert( + (client.descriptors.page.listRecognizers.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listRecognizers, request), + ); + assert( + (client.descriptors.page.listRecognizers.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('invokes listRecognizersStream without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.ListRecognizersRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.ListRecognizersRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), - generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), - generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), - ]; - client.descriptors.page.listRecognizers.createStream = stubPageStreamingCall(expectedResponse); - const stream = client.listRecognizersStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.speech.v2.Recognizer[] = []; - stream.on('data', (response: protos.google.cloud.speech.v2.Recognizer) => { - 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.listRecognizers.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listRecognizers, request)); - assert( - (client.descriptors.page.listRecognizers.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('uses async iteration with listRecognizers without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.ListRecognizersRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.ListRecognizersRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), + generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), + generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), + ]; + client.descriptors.page.listRecognizers.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.speech.v2.IRecognizer[] = []; + const iterable = client.listRecognizersAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.descriptors.page.listRecognizers.asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + (client.descriptors.page.listRecognizers.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('invokes listRecognizersStream with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.ListRecognizersRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.ListRecognizersRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listRecognizers.createStream = stubPageStreamingCall(undefined, expectedError); - const stream = client.listRecognizersStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.speech.v2.Recognizer[] = []; - stream.on('data', (response: protos.google.cloud.speech.v2.Recognizer) => { - responses.push(response); - }); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - assert((client.descriptors.page.listRecognizers.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listRecognizers, request)); - assert( - (client.descriptors.page.listRecognizers.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('uses async iteration with listRecognizers with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.ListRecognizersRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.ListRecognizersRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listRecognizers.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listRecognizersAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.speech.v2.IRecognizer[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.descriptors.page.listRecognizers.asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + (client.descriptors.page.listRecognizers.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); + }); + + describe('listCustomClasses', () => { + it('invokes listCustomClasses without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.ListCustomClassesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.ListCustomClassesRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), + generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), + generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), + ]; + client.innerApiCalls.listCustomClasses = stubSimpleCall(expectedResponse); + const [response] = await client.listCustomClasses(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listCustomClasses as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listCustomClasses as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('uses async iteration with listRecognizers without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.ListRecognizersRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.ListRecognizersRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), - generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), - generateSampleMessage(new protos.google.cloud.speech.v2.Recognizer()), - ]; - client.descriptors.page.listRecognizers.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: protos.google.cloud.speech.v2.IRecognizer[] = []; - const iterable = client.listRecognizersAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + it('invokes listCustomClasses without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.ListCustomClassesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.ListCustomClassesRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), + generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), + generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), + ]; + client.innerApiCalls.listCustomClasses = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listCustomClasses( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v2.ICustomClass[] | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.descriptors.page.listRecognizers.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listRecognizers.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - - it('uses async iteration with listRecognizers with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.ListRecognizersRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.ListRecognizersRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listRecognizers.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listRecognizersAsync(request); - await assert.rejects(async () => { - const responses: protos.google.cloud.speech.v2.IRecognizer[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.descriptors.page.listRecognizers.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listRecognizers.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.listCustomClasses as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listCustomClasses as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('listCustomClasses', () => { - it('invokes listCustomClasses without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.ListCustomClassesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.ListCustomClassesRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), - ]; - client.innerApiCalls.listCustomClasses = stubSimpleCall(expectedResponse); - const [response] = await client.listCustomClasses(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listCustomClasses as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listCustomClasses as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listCustomClasses with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.ListCustomClassesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.ListCustomClassesRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listCustomClasses = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.listCustomClasses(request), expectedError); + const actualRequest = ( + client.innerApiCalls.listCustomClasses as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listCustomClasses as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes listCustomClasses without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.ListCustomClassesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.ListCustomClassesRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), - ]; - client.innerApiCalls.listCustomClasses = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listCustomClasses( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v2.ICustomClass[]|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listCustomClasses as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listCustomClasses as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listCustomClassesStream without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.ListCustomClassesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.ListCustomClassesRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), + generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), + generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), + ]; + client.descriptors.page.listCustomClasses.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.listCustomClassesStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.speech.v2.CustomClass[] = []; + stream.on( + 'data', + (response: protos.google.cloud.speech.v2.CustomClass) => { + 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.listCustomClasses.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listCustomClasses, request), + ); + assert( + (client.descriptors.page.listCustomClasses.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('invokes listCustomClasses with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.ListCustomClassesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.ListCustomClassesRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.listCustomClasses = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.listCustomClasses(request), expectedError); - const actualRequest = (client.innerApiCalls.listCustomClasses as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listCustomClasses as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listCustomClassesStream with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.ListCustomClassesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.ListCustomClassesRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listCustomClasses.createStream = + stubPageStreamingCall(undefined, expectedError); + const stream = client.listCustomClassesStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.speech.v2.CustomClass[] = []; + stream.on( + 'data', + (response: protos.google.cloud.speech.v2.CustomClass) => { + responses.push(response); + }, + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + assert( + (client.descriptors.page.listCustomClasses.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listCustomClasses, request), + ); + assert( + (client.descriptors.page.listCustomClasses.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('invokes listCustomClassesStream without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.ListCustomClassesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.ListCustomClassesRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), - ]; - client.descriptors.page.listCustomClasses.createStream = stubPageStreamingCall(expectedResponse); - const stream = client.listCustomClassesStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.speech.v2.CustomClass[] = []; - stream.on('data', (response: protos.google.cloud.speech.v2.CustomClass) => { - 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.listCustomClasses.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listCustomClasses, request)); - assert( - (client.descriptors.page.listCustomClasses.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('uses async iteration with listCustomClasses without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.ListCustomClassesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.ListCustomClassesRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), + generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), + generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), + ]; + client.descriptors.page.listCustomClasses.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.speech.v2.ICustomClass[] = []; + const iterable = client.listCustomClassesAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.descriptors.page.listCustomClasses.asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + (client.descriptors.page.listCustomClasses.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('invokes listCustomClassesStream with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.ListCustomClassesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.ListCustomClassesRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listCustomClasses.createStream = stubPageStreamingCall(undefined, expectedError); - const stream = client.listCustomClassesStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.speech.v2.CustomClass[] = []; - stream.on('data', (response: protos.google.cloud.speech.v2.CustomClass) => { - responses.push(response); - }); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - assert((client.descriptors.page.listCustomClasses.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listCustomClasses, request)); - assert( - (client.descriptors.page.listCustomClasses.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('uses async iteration with listCustomClasses with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.ListCustomClassesRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.ListCustomClassesRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listCustomClasses.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listCustomClassesAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.speech.v2.ICustomClass[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.descriptors.page.listCustomClasses.asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + (client.descriptors.page.listCustomClasses.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); + }); + + describe('listPhraseSets', () => { + it('invokes listPhraseSets without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.ListPhraseSetsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.ListPhraseSetsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), + generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), + generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), + ]; + client.innerApiCalls.listPhraseSets = stubSimpleCall(expectedResponse); + const [response] = await client.listPhraseSets(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listPhraseSets as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listPhraseSets as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('uses async iteration with listCustomClasses without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.ListCustomClassesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.ListCustomClassesRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), - generateSampleMessage(new protos.google.cloud.speech.v2.CustomClass()), - ]; - client.descriptors.page.listCustomClasses.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: protos.google.cloud.speech.v2.ICustomClass[] = []; - const iterable = client.listCustomClassesAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + it('invokes listPhraseSets without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.ListPhraseSetsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.ListPhraseSetsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), + generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), + generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), + ]; + client.innerApiCalls.listPhraseSets = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listPhraseSets( + request, + ( + err?: Error | null, + result?: protos.google.cloud.speech.v2.IPhraseSet[] | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.descriptors.page.listCustomClasses.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listCustomClasses.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - - it('uses async iteration with listCustomClasses with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.ListCustomClassesRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.ListCustomClassesRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listCustomClasses.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listCustomClassesAsync(request); - await assert.rejects(async () => { - const responses: protos.google.cloud.speech.v2.ICustomClass[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.descriptors.page.listCustomClasses.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listCustomClasses.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.listPhraseSets as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listPhraseSets as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('listPhraseSets', () => { - it('invokes listPhraseSets without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.ListPhraseSetsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.ListPhraseSetsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), - ]; - client.innerApiCalls.listPhraseSets = stubSimpleCall(expectedResponse); - const [response] = await client.listPhraseSets(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listPhraseSets as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listPhraseSets as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listPhraseSets without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.ListPhraseSetsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.ListPhraseSetsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), - ]; - client.innerApiCalls.listPhraseSets = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listPhraseSets( - request, - (err?: Error|null, result?: protos.google.cloud.speech.v2.IPhraseSet[]|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listPhraseSets as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listPhraseSets as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listPhraseSets with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.ListPhraseSetsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.ListPhraseSetsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.listPhraseSets = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.listPhraseSets(request), expectedError); - const actualRequest = (client.innerApiCalls.listPhraseSets as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listPhraseSets as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listPhraseSets with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.ListPhraseSetsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.ListPhraseSetsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listPhraseSets = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.listPhraseSets(request), expectedError); + const actualRequest = ( + client.innerApiCalls.listPhraseSets as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listPhraseSets as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes listPhraseSetsStream without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.ListPhraseSetsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.ListPhraseSetsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), - ]; - client.descriptors.page.listPhraseSets.createStream = stubPageStreamingCall(expectedResponse); - const stream = client.listPhraseSetsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.speech.v2.PhraseSet[] = []; - stream.on('data', (response: protos.google.cloud.speech.v2.PhraseSet) => { - 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.listPhraseSets.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listPhraseSets, request)); - assert( - (client.descriptors.page.listPhraseSets.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('invokes listPhraseSetsStream without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.ListPhraseSetsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.ListPhraseSetsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), + generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), + generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), + ]; + client.descriptors.page.listPhraseSets.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.listPhraseSetsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.speech.v2.PhraseSet[] = []; + stream.on( + 'data', + (response: protos.google.cloud.speech.v2.PhraseSet) => { + 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.listPhraseSets.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listPhraseSets, request), + ); + assert( + (client.descriptors.page.listPhraseSets.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('invokes listPhraseSetsStream with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.ListPhraseSetsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.ListPhraseSetsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listPhraseSets.createStream = stubPageStreamingCall(undefined, expectedError); - const stream = client.listPhraseSetsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.speech.v2.PhraseSet[] = []; - stream.on('data', (response: protos.google.cloud.speech.v2.PhraseSet) => { - responses.push(response); - }); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - assert((client.descriptors.page.listPhraseSets.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listPhraseSets, request)); - assert( - (client.descriptors.page.listPhraseSets.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('invokes listPhraseSetsStream with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.ListPhraseSetsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.ListPhraseSetsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listPhraseSets.createStream = + stubPageStreamingCall(undefined, expectedError); + const stream = client.listPhraseSetsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.speech.v2.PhraseSet[] = []; + stream.on( + 'data', + (response: protos.google.cloud.speech.v2.PhraseSet) => { + responses.push(response); + }, + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + assert( + (client.descriptors.page.listPhraseSets.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listPhraseSets, request), + ); + assert( + (client.descriptors.page.listPhraseSets.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('uses async iteration with listPhraseSets without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.ListPhraseSetsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.ListPhraseSetsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), - generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), - ]; - client.descriptors.page.listPhraseSets.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: protos.google.cloud.speech.v2.IPhraseSet[] = []; - const iterable = client.listPhraseSetsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.descriptors.page.listPhraseSets.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listPhraseSets.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('uses async iteration with listPhraseSets without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.ListPhraseSetsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.ListPhraseSetsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), + generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), + generateSampleMessage(new protos.google.cloud.speech.v2.PhraseSet()), + ]; + client.descriptors.page.listPhraseSets.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.speech.v2.IPhraseSet[] = []; + const iterable = client.listPhraseSetsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.descriptors.page.listPhraseSets.asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + (client.descriptors.page.listPhraseSets.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('uses async iteration with listPhraseSets with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.speech.v2.ListPhraseSetsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.speech.v2.ListPhraseSetsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listPhraseSets.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listPhraseSetsAsync(request); - await assert.rejects(async () => { - const responses: protos.google.cloud.speech.v2.IPhraseSet[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.descriptors.page.listPhraseSets.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listPhraseSets.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('uses async iteration with listPhraseSets with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.speech.v2.ListPhraseSetsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.speech.v2.ListPhraseSetsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listPhraseSets.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listPhraseSetsAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.speech.v2.IPhraseSet[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.descriptors.page.listPhraseSets.asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + (client.descriptors.page.listPhraseSets.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 speechModule.v2.SpeechClient({ - 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 speechModule.v2.SpeechClient({ - 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 speechModule.v2.SpeechClient({ - 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 speechModule.v2.SpeechClient({ + 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 speechModule.v2.SpeechClient({ - 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 speechModule.v2.SpeechClient({ + 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 speechModule.v2.SpeechClient({ - 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('getOperation', () => { - it('invokes getOperation without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.GetOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const response = await client.getOperation(request); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0).calledWith(request) - ); - }); - it('invokes getOperation without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.GetOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - client.operationsClient.getOperation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.operationsClient.getOperation( - request, - undefined, - ( - err?: Error | null, - result?: operationsProtos.google.longrunning.Operation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }).catch(err => {throw err}); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); - it('invokes getOperation with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.GetOperationRequest() - ); - const expectedError = new Error('expected'); - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(async () => {await client.getOperation(request)}, expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0).calledWith(request)); - }); + it('invokes getLocation with error', async () => { + const client = new speechModule.v2.SpeechClient({ + 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('cancelOperation', () => { - it('invokes cancelOperation without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.CancelOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.operationsClient.cancelOperation = stubSimpleCall(expectedResponse); - const response = await client.cancelOperation(request); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.operationsClient.cancelOperation as SinonStub) - .getCall(0).calledWith(request) - ); - }); - it('invokes cancelOperation without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.CancelOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.operationsClient.cancelOperation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.operationsClient.cancelOperation( - request, - undefined, - ( - err?: Error | null, - result?: protos.google.protobuf.Empty | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }).catch(err => {throw err}); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.operationsClient.cancelOperation as SinonStub) - .getCall(0)); - }); - it('invokes cancelOperation with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.CancelOperationRequest() - ); - const expectedError = new Error('expected'); - client.operationsClient.cancelOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(async () => {await client.cancelOperation(request)}, expectedError); - assert((client.operationsClient.cancelOperation as SinonStub) - .getCall(0).calledWith(request)); - }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = new speechModule.v2.SpeechClient({ + 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('deleteOperation', () => { - it('invokes deleteOperation without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.DeleteOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.operationsClient.deleteOperation = stubSimpleCall(expectedResponse); - const response = await client.deleteOperation(request); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.operationsClient.deleteOperation as SinonStub) - .getCall(0).calledWith(request) - ); - }); - it('invokes deleteOperation without error using callback', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.DeleteOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.operationsClient.deleteOperation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.operationsClient.deleteOperation( - request, - undefined, - ( - err?: Error | null, - result?: protos.google.protobuf.Empty | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }).catch(err => {throw err}); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.operationsClient.deleteOperation as SinonStub) - .getCall(0)); - }); - it('invokes deleteOperation with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.DeleteOperationRequest() - ); - const expectedError = new Error('expected'); - client.operationsClient.deleteOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(async () => {await client.deleteOperation(request)}, expectedError); - assert((client.operationsClient.deleteOperation as SinonStub) - .getCall(0).calledWith(request)); - }); + it('uses async iteration with listLocations with error', async () => { + const client = new speechModule.v2.SpeechClient({ + 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('listOperationsAsync', () => { - it('uses async iteration with listOperations without error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsRequest() - ); - const expectedResponse = [ - generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsResponse() - ), - generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsResponse() - ), - generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsResponse() - ), - ]; - client.operationsClient.descriptor.listOperations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: operationsProtos.google.longrunning.IOperation[] = []; - const iterable = client.operationsClient.listOperationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.operationsClient.descriptor.listOperations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - }); - it('uses async iteration with listOperations with error', async () => { - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsRequest() - ); - const expectedError = new Error('expected'); - client.operationsClient.descriptor.listOperations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.operationsClient.listOperationsAsync(request); - await assert.rejects(async () => { - const responses: operationsProtos.google.longrunning.IOperation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.operationsClient.descriptor.listOperations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - }); + }); + describe('getOperation', () => { + it('invokes getOperation without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.GetOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const response = await client.getOperation(request); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.operationsClient.getOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + it('invokes getOperation without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.GetOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + client.operationsClient.getOperation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.operationsClient + .getOperation( + request, + undefined, + ( + err?: Error | null, + result?: operationsProtos.google.longrunning.Operation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ) + .catch((err) => { + throw err; + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + it('invokes getOperation with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.GetOperationRequest(), + ); + const expectedError = new Error('expected'); + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(async () => { + await client.getOperation(request); + }, expectedError); + assert( + (client.operationsClient.getOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + }); + describe('cancelOperation', () => { + it('invokes cancelOperation without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.CancelOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.operationsClient.cancelOperation = + stubSimpleCall(expectedResponse); + const response = await client.cancelOperation(request); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.operationsClient.cancelOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + it('invokes cancelOperation without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.CancelOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.operationsClient.cancelOperation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.operationsClient + .cancelOperation( + request, + undefined, + ( + err?: Error | null, + result?: protos.google.protobuf.Empty | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ) + .catch((err) => { + throw err; + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.operationsClient.cancelOperation as SinonStub).getCall(0)); + }); + it('invokes cancelOperation with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.CancelOperationRequest(), + ); + const expectedError = new Error('expected'); + client.operationsClient.cancelOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(async () => { + await client.cancelOperation(request); + }, expectedError); + assert( + (client.operationsClient.cancelOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + }); + describe('deleteOperation', () => { + it('invokes deleteOperation without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.DeleteOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.operationsClient.deleteOperation = + stubSimpleCall(expectedResponse); + const response = await client.deleteOperation(request); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.operationsClient.deleteOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + it('invokes deleteOperation without error using callback', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.DeleteOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.operationsClient.deleteOperation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.operationsClient + .deleteOperation( + request, + undefined, + ( + err?: Error | null, + result?: protos.google.protobuf.Empty | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ) + .catch((err) => { + throw err; + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.operationsClient.deleteOperation as SinonStub).getCall(0)); + }); + it('invokes deleteOperation with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.DeleteOperationRequest(), + ); + const expectedError = new Error('expected'); + client.operationsClient.deleteOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(async () => { + await client.deleteOperation(request); + }, expectedError); + assert( + (client.operationsClient.deleteOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + }); + describe('listOperationsAsync', () => { + it('uses async iteration with listOperations without error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsRequest(), + ); + const expectedResponse = [ + generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsResponse(), + ), + generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsResponse(), + ), + generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsResponse(), + ), + ]; + client.operationsClient.descriptor.listOperations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: operationsProtos.google.longrunning.IOperation[] = []; + const iterable = client.operationsClient.listOperationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.operationsClient.descriptor.listOperations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + }); + it('uses async iteration with listOperations with error', async () => { + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsRequest(), + ); + const expectedError = new Error('expected'); + client.operationsClient.descriptor.listOperations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.operationsClient.listOperationsAsync(request); + await assert.rejects(async () => { + const responses: operationsProtos.google.longrunning.IOperation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.operationsClient.descriptor.listOperations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + }); + }); + + describe('Path templates', () => { + describe('config', async () => { + const fakePath = '/rendered/path/config'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + }; + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.configPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.configPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('configPath', () => { + const result = client.configPath('projectValue', 'locationValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.configPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromConfigName', () => { + const result = client.matchProjectFromConfigName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.configPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromConfigName', () => { + const result = client.matchLocationFromConfigName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.configPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); - describe('Path templates', () => { - - describe('config', async () => { - const fakePath = "/rendered/path/config"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - }; - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.configPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.configPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('configPath', () => { - const result = client.configPath("projectValue", "locationValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.configPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromConfigName', () => { - const result = client.matchProjectFromConfigName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.configPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromConfigName', () => { - const result = client.matchLocationFromConfigName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.configPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); - - describe('cryptoKey', async () => { - const fakePath = "/rendered/path/cryptoKey"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - key_ring: "keyRingValue", - crypto_key: "cryptoKeyValue", - }; - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.cryptoKeyPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.cryptoKeyPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('cryptoKeyPath', () => { - const result = client.cryptoKeyPath("projectValue", "locationValue", "keyRingValue", "cryptoKeyValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.cryptoKeyPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromCryptoKeyName', () => { - const result = client.matchProjectFromCryptoKeyName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.cryptoKeyPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromCryptoKeyName', () => { - const result = client.matchLocationFromCryptoKeyName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.cryptoKeyPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchKeyRingFromCryptoKeyName', () => { - const result = client.matchKeyRingFromCryptoKeyName(fakePath); - assert.strictEqual(result, "keyRingValue"); - assert((client.pathTemplates.cryptoKeyPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchCryptoKeyFromCryptoKeyName', () => { - const result = client.matchCryptoKeyFromCryptoKeyName(fakePath); - assert.strictEqual(result, "cryptoKeyValue"); - assert((client.pathTemplates.cryptoKeyPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + describe('cryptoKey', async () => { + const fakePath = '/rendered/path/cryptoKey'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + key_ring: 'keyRingValue', + crypto_key: 'cryptoKeyValue', + }; + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.cryptoKeyPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.cryptoKeyPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('cryptoKeyPath', () => { + const result = client.cryptoKeyPath( + 'projectValue', + 'locationValue', + 'keyRingValue', + 'cryptoKeyValue', + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.cryptoKeyPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromCryptoKeyName', () => { + const result = client.matchProjectFromCryptoKeyName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.cryptoKeyPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromCryptoKeyName', () => { + const result = client.matchLocationFromCryptoKeyName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.cryptoKeyPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchKeyRingFromCryptoKeyName', () => { + const result = client.matchKeyRingFromCryptoKeyName(fakePath); + assert.strictEqual(result, 'keyRingValue'); + assert( + (client.pathTemplates.cryptoKeyPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchCryptoKeyFromCryptoKeyName', () => { + const result = client.matchCryptoKeyFromCryptoKeyName(fakePath); + assert.strictEqual(result, 'cryptoKeyValue'); + assert( + (client.pathTemplates.cryptoKeyPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); - describe('cryptoKeyVersion', async () => { - const fakePath = "/rendered/path/cryptoKeyVersion"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - key_ring: "keyRingValue", - crypto_key: "cryptoKeyValue", - crypto_key_version: "cryptoKeyVersionValue", - }; - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.cryptoKeyVersionPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.cryptoKeyVersionPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('cryptoKeyVersionPath', () => { - const result = client.cryptoKeyVersionPath("projectValue", "locationValue", "keyRingValue", "cryptoKeyValue", "cryptoKeyVersionValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.cryptoKeyVersionPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromCryptoKeyVersionName', () => { - const result = client.matchProjectFromCryptoKeyVersionName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.cryptoKeyVersionPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromCryptoKeyVersionName', () => { - const result = client.matchLocationFromCryptoKeyVersionName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.cryptoKeyVersionPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchKeyRingFromCryptoKeyVersionName', () => { - const result = client.matchKeyRingFromCryptoKeyVersionName(fakePath); - assert.strictEqual(result, "keyRingValue"); - assert((client.pathTemplates.cryptoKeyVersionPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchCryptoKeyFromCryptoKeyVersionName', () => { - const result = client.matchCryptoKeyFromCryptoKeyVersionName(fakePath); - assert.strictEqual(result, "cryptoKeyValue"); - assert((client.pathTemplates.cryptoKeyVersionPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchCryptoKeyVersionFromCryptoKeyVersionName', () => { - const result = client.matchCryptoKeyVersionFromCryptoKeyVersionName(fakePath); - assert.strictEqual(result, "cryptoKeyVersionValue"); - assert((client.pathTemplates.cryptoKeyVersionPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + describe('cryptoKeyVersion', async () => { + const fakePath = '/rendered/path/cryptoKeyVersion'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + key_ring: 'keyRingValue', + crypto_key: 'cryptoKeyValue', + crypto_key_version: 'cryptoKeyVersionValue', + }; + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.cryptoKeyVersionPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.cryptoKeyVersionPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('cryptoKeyVersionPath', () => { + const result = client.cryptoKeyVersionPath( + 'projectValue', + 'locationValue', + 'keyRingValue', + 'cryptoKeyValue', + 'cryptoKeyVersionValue', + ); + assert.strictEqual(result, fakePath); + assert( + ( + client.pathTemplates.cryptoKeyVersionPathTemplate + .render as SinonStub + ) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromCryptoKeyVersionName', () => { + const result = client.matchProjectFromCryptoKeyVersionName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.cryptoKeyVersionPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromCryptoKeyVersionName', () => { + const result = client.matchLocationFromCryptoKeyVersionName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.cryptoKeyVersionPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchKeyRingFromCryptoKeyVersionName', () => { + const result = client.matchKeyRingFromCryptoKeyVersionName(fakePath); + assert.strictEqual(result, 'keyRingValue'); + assert( + (client.pathTemplates.cryptoKeyVersionPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchCryptoKeyFromCryptoKeyVersionName', () => { + const result = client.matchCryptoKeyFromCryptoKeyVersionName(fakePath); + assert.strictEqual(result, 'cryptoKeyValue'); + assert( + (client.pathTemplates.cryptoKeyVersionPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchCryptoKeyVersionFromCryptoKeyVersionName', () => { + const result = + client.matchCryptoKeyVersionFromCryptoKeyVersionName(fakePath); + assert.strictEqual(result, 'cryptoKeyVersionValue'); + assert( + (client.pathTemplates.cryptoKeyVersionPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); - describe('customClass', async () => { - const fakePath = "/rendered/path/customClass"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - custom_class: "customClassValue", - }; - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.customClassPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.customClassPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('customClassPath', () => { - const result = client.customClassPath("projectValue", "locationValue", "customClassValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.customClassPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromCustomClassName', () => { - const result = client.matchProjectFromCustomClassName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.customClassPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromCustomClassName', () => { - const result = client.matchLocationFromCustomClassName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.customClassPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchCustomClassFromCustomClassName', () => { - const result = client.matchCustomClassFromCustomClassName(fakePath); - assert.strictEqual(result, "customClassValue"); - assert((client.pathTemplates.customClassPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + describe('customClass', async () => { + const fakePath = '/rendered/path/customClass'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + custom_class: 'customClassValue', + }; + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.customClassPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.customClassPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('customClassPath', () => { + const result = client.customClassPath( + 'projectValue', + 'locationValue', + 'customClassValue', + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.customClassPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromCustomClassName', () => { + const result = client.matchProjectFromCustomClassName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.customClassPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromCustomClassName', () => { + const result = client.matchLocationFromCustomClassName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.customClassPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchCustomClassFromCustomClassName', () => { + const result = client.matchCustomClassFromCustomClassName(fakePath); + assert.strictEqual(result, 'customClassValue'); + assert( + (client.pathTemplates.customClassPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); - describe('location', async () => { - const fakePath = "/rendered/path/location"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - }; - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.locationPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.locationPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('locationPath', () => { - const result = client.locationPath("projectValue", "locationValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.locationPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromLocationName', () => { - const result = client.matchProjectFromLocationName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.locationPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromLocationName', () => { - const result = client.matchLocationFromLocationName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.locationPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + describe('location', async () => { + const fakePath = '/rendered/path/location'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + }; + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.locationPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.locationPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('locationPath', () => { + const result = client.locationPath('projectValue', 'locationValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.locationPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromLocationName', () => { + const result = client.matchProjectFromLocationName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.locationPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromLocationName', () => { + const result = client.matchLocationFromLocationName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.locationPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); - describe('phraseSet', async () => { - const fakePath = "/rendered/path/phraseSet"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - phrase_set: "phraseSetValue", - }; - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.phraseSetPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.phraseSetPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('phraseSetPath', () => { - const result = client.phraseSetPath("projectValue", "locationValue", "phraseSetValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.phraseSetPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromPhraseSetName', () => { - const result = client.matchProjectFromPhraseSetName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.phraseSetPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromPhraseSetName', () => { - const result = client.matchLocationFromPhraseSetName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.phraseSetPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchPhraseSetFromPhraseSetName', () => { - const result = client.matchPhraseSetFromPhraseSetName(fakePath); - assert.strictEqual(result, "phraseSetValue"); - assert((client.pathTemplates.phraseSetPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + describe('phraseSet', async () => { + const fakePath = '/rendered/path/phraseSet'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + phrase_set: 'phraseSetValue', + }; + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.phraseSetPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.phraseSetPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('phraseSetPath', () => { + const result = client.phraseSetPath( + 'projectValue', + 'locationValue', + 'phraseSetValue', + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.phraseSetPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromPhraseSetName', () => { + const result = client.matchProjectFromPhraseSetName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.phraseSetPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromPhraseSetName', () => { + const result = client.matchLocationFromPhraseSetName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.phraseSetPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchPhraseSetFromPhraseSetName', () => { + const result = client.matchPhraseSetFromPhraseSetName(fakePath); + assert.strictEqual(result, 'phraseSetValue'); + assert( + (client.pathTemplates.phraseSetPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); - describe('project', async () => { - const fakePath = "/rendered/path/project"; - const expectedParameters = { - project: "projectValue", - }; - const client = new speechModule.v2.SpeechClient({ - 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 speechModule.v2.SpeechClient({ + 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('recognizer', async () => { - const fakePath = "/rendered/path/recognizer"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - recognizer: "recognizerValue", - }; - const client = new speechModule.v2.SpeechClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.recognizerPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.recognizerPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('recognizerPath', () => { - const result = client.recognizerPath("projectValue", "locationValue", "recognizerValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.recognizerPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromRecognizerName', () => { - const result = client.matchProjectFromRecognizerName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.recognizerPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromRecognizerName', () => { - const result = client.matchLocationFromRecognizerName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.recognizerPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchRecognizerFromRecognizerName', () => { - const result = client.matchRecognizerFromRecognizerName(fakePath); - assert.strictEqual(result, "recognizerValue"); - assert((client.pathTemplates.recognizerPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + describe('recognizer', async () => { + const fakePath = '/rendered/path/recognizer'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + recognizer: 'recognizerValue', + }; + const client = new speechModule.v2.SpeechClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.recognizerPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.recognizerPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('recognizerPath', () => { + const result = client.recognizerPath( + 'projectValue', + 'locationValue', + 'recognizerValue', + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.recognizerPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromRecognizerName', () => { + const result = client.matchProjectFromRecognizerName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.recognizerPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromRecognizerName', () => { + const result = client.matchLocationFromRecognizerName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.recognizerPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchRecognizerFromRecognizerName', () => { + const result = client.matchRecognizerFromRecognizerName(fakePath); + assert.strictEqual(result, 'recognizerValue'); + assert( + (client.pathTemplates.recognizerPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-speech/webpack.config.js b/packages/google-cloud-speech/webpack.config.js index c880b0d7d8ec..50273cca41c0 100644 --- a/packages/google-cloud-speech/webpack.config.js +++ b/packages/google-cloud-speech/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. diff --git a/packages/google-cloud-storagebatchoperations/README.md b/packages/google-cloud-storagebatchoperations/README.md index bc56ad39685d..7752d1dba2a9 100644 --- a/packages/google-cloud-storagebatchoperations/README.md +++ b/packages/google-cloud-storagebatchoperations/README.md @@ -57,7 +57,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-storagebatchoperations/samples/generated/v1/snippet_metadata_google.cloud.storagebatchoperations.v1.json) | | cancel job | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-storagebatchoperations/samples/generated/v1/storage_batch_operations.cancel_job.js) | | create job | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-storagebatchoperations/samples/generated/v1/storage_batch_operations.create_job.js) | | delete job | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-storagebatchoperations/samples/generated/v1/storage_batch_operations.delete_job.js) | @@ -98,7 +97,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-storagebatchoperations/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`) @@ -108,7 +107,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-storagebatchoperations/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-storagebatchoperations/protos/protos.d.ts b/packages/google-cloud-storagebatchoperations/protos/protos.d.ts index 4a5b6bc797dc..18f28d7c2cf5 100644 --- a/packages/google-cloud-storagebatchoperations/protos/protos.d.ts +++ b/packages/google-cloud-storagebatchoperations/protos/protos.d.ts @@ -3917,6 +3917,9 @@ export namespace google { /** CommonLanguageSettings destinations */ destinations?: (google.api.ClientLibraryDestination[]|null); + + /** CommonLanguageSettings selectiveGapicGeneration */ + selectiveGapicGeneration?: (google.api.ISelectiveGapicGeneration|null); } /** Represents a CommonLanguageSettings. */ @@ -3934,6 +3937,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 @@ -4634,6 +4640,9 @@ export namespace google { /** PythonSettings common */ common?: (google.api.ICommonLanguageSettings|null); + + /** PythonSettings experimentalFeatures */ + experimentalFeatures?: (google.api.PythonSettings.IExperimentalFeatures|null); } /** Represents a PythonSettings. */ @@ -4648,6 +4657,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 @@ -4726,6 +4738,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 { @@ -5052,6 +5176,9 @@ export namespace google { /** GoSettings common */ common?: (google.api.ICommonLanguageSettings|null); + + /** GoSettings renamedServices */ + renamedServices?: ({ [k: string]: string }|null); } /** Represents a GoSettings. */ @@ -5066,6 +5193,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 @@ -5390,6 +5520,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, @@ -5420,6 +5653,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. */ @@ -5434,6 +5670,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 @@ -5524,6 +5763,103 @@ export namespace google { } } + /** 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; + } + /** Properties of a ResourceDescriptor. */ interface IResourceDescriptor { @@ -5880,6 +6216,7 @@ export namespace google { /** Edition enum. */ enum Edition { EDITION_UNKNOWN = 0, + EDITION_LEGACY = 900, EDITION_PROTO2 = 998, EDITION_PROTO3 = 999, EDITION_2023 = 1000, @@ -5910,6 +6247,9 @@ export namespace google { /** FileDescriptorProto weakDependency */ weakDependency?: (number[]|null); + /** FileDescriptorProto optionDependency */ + optionDependency?: (string[]|null); + /** FileDescriptorProto messageType */ messageType?: (google.protobuf.IDescriptorProto[]|null); @@ -5959,6 +6299,9 @@ export namespace google { /** FileDescriptorProto weakDependency. */ public weakDependency: number[]; + /** FileDescriptorProto optionDependency. */ + public optionDependency: string[]; + /** FileDescriptorProto messageType. */ public messageType: google.protobuf.IDescriptorProto[]; @@ -6093,6 +6436,9 @@ export namespace google { /** DescriptorProto reservedName */ reservedName?: (string[]|null); + + /** DescriptorProto visibility */ + visibility?: (google.protobuf.SymbolVisibility|keyof typeof google.protobuf.SymbolVisibility|null); } /** Represents a DescriptorProto. */ @@ -6134,6 +6480,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 @@ -6981,6 +7330,9 @@ export namespace google { /** EnumDescriptorProto reservedName */ reservedName?: (string[]|null); + + /** EnumDescriptorProto visibility */ + visibility?: (google.protobuf.SymbolVisibility|keyof typeof google.protobuf.SymbolVisibility|null); } /** Represents an EnumDescriptorProto. */ @@ -7007,6 +7359,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 @@ -7941,6 +8296,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); @@ -7999,6 +8357,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[]; @@ -8219,6 +8580,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. */ @@ -8457,6 +8933,9 @@ export namespace google { /** EnumValueOptions debugRedact */ debugRedact?: (boolean|null); + /** EnumValueOptions featureSupport */ + featureSupport?: (google.protobuf.FieldOptions.IFeatureSupport|null); + /** EnumValueOptions uninterpretedOption */ uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); } @@ -8479,6 +8958,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[]; @@ -9071,6 +9553,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. */ @@ -9100,6 +9588,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 @@ -9222,6 +9716,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. */ @@ -9341,8 +9945,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. */ @@ -9357,8 +9964,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. @@ -9891,6 +10501,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-storagebatchoperations/protos/protos.js b/packages/google-cloud-storagebatchoperations/protos/protos.js index 155072cf31f3..12648ec75a97 100644 --- a/packages/google-cloud-storagebatchoperations/protos/protos.js +++ b/packages/google-cloud-storagebatchoperations/protos/protos.js @@ -356,7 +356,7 @@ function ListJobsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -461,9 +461,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListJobsRequest.decode = function decode(reader, length, error) { + ListJobsRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.ListJobsRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -491,7 +495,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -522,9 +526,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListJobsRequest.verify = function verify(message) { + ListJobsRequest.verify = function verify(message, long) { if (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"; @@ -551,9 +559,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.ListJobsRequest} ListJobsRequest */ - ListJobsRequest.fromObject = function fromObject(object) { + ListJobsRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.ListJobsRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.ListJobsRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -654,7 +666,7 @@ this.unreachable = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -741,9 +753,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListJobsResponse.decode = function decode(reader, length, error) { + ListJobsResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.ListJobsResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -753,7 +769,7 @@ case 1: { if (!(message.jobs && message.jobs.length)) message.jobs = []; - message.jobs.push($root.google.cloud.storagebatchoperations.v1.Job.decode(reader, reader.uint32())); + message.jobs.push($root.google.cloud.storagebatchoperations.v1.Job.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -767,7 +783,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -798,14 +814,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListJobsResponse.verify = function verify(message) { + ListJobsResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.jobs != null && message.hasOwnProperty("jobs")) { if (!Array.isArray(message.jobs)) return "jobs: array expected"; for (var i = 0; i < message.jobs.length; ++i) { - var error = $root.google.cloud.storagebatchoperations.v1.Job.verify(message.jobs[i]); + var error = $root.google.cloud.storagebatchoperations.v1.Job.verify(message.jobs[i], long + 1); if (error) return "jobs." + error; } @@ -831,9 +851,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.ListJobsResponse} ListJobsResponse */ - ListJobsResponse.fromObject = function fromObject(object) { + ListJobsResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.ListJobsResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.ListJobsResponse(); if (object.jobs) { if (!Array.isArray(object.jobs)) @@ -842,7 +866,7 @@ for (var i = 0; i < object.jobs.length; ++i) { if (typeof object.jobs[i] !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.ListJobsResponse.jobs: object expected"); - message.jobs[i] = $root.google.cloud.storagebatchoperations.v1.Job.fromObject(object.jobs[i]); + message.jobs[i] = $root.google.cloud.storagebatchoperations.v1.Job.fromObject(object.jobs[i], long + 1); } } if (object.nextPageToken != null) @@ -940,7 +964,7 @@ function GetJobRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -1005,9 +1029,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetJobRequest.decode = function decode(reader, length, error) { + GetJobRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.GetJobRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -1019,7 +1047,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -1050,9 +1078,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetJobRequest.verify = function verify(message) { + GetJobRequest.verify = function verify(message, long) { if (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"; @@ -1067,9 +1099,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.GetJobRequest} GetJobRequest */ - GetJobRequest.fromObject = function fromObject(object) { + GetJobRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.GetJobRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.GetJobRequest(); if (object.name != null) message.name = String(object.name); @@ -1148,7 +1184,7 @@ function CreateJobRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -1243,9 +1279,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CreateJobRequest.decode = function decode(reader, length, error) { + CreateJobRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.CreateJobRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -1261,7 +1301,7 @@ break; } case 3: { - message.job = $root.google.cloud.storagebatchoperations.v1.Job.decode(reader, reader.uint32()); + message.job = $root.google.cloud.storagebatchoperations.v1.Job.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { @@ -1269,7 +1309,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -1300,9 +1340,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CreateJobRequest.verify = function verify(message) { + CreateJobRequest.verify = function verify(message, long) { if (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"; @@ -1310,7 +1354,7 @@ if (!$util.isString(message.jobId)) return "jobId: string expected"; if (message.job != null && message.hasOwnProperty("job")) { - var error = $root.google.cloud.storagebatchoperations.v1.Job.verify(message.job); + var error = $root.google.cloud.storagebatchoperations.v1.Job.verify(message.job, long + 1); if (error) return "job." + error; } @@ -1328,9 +1372,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.CreateJobRequest} CreateJobRequest */ - CreateJobRequest.fromObject = function fromObject(object) { + CreateJobRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.CreateJobRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.CreateJobRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -1339,7 +1387,7 @@ if (object.job != null) { if (typeof object.job !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.CreateJobRequest.job: object expected"); - message.job = $root.google.cloud.storagebatchoperations.v1.Job.fromObject(object.job); + message.job = $root.google.cloud.storagebatchoperations.v1.Job.fromObject(object.job, long + 1); } if (object.requestId != null) message.requestId = String(object.requestId); @@ -1426,7 +1474,7 @@ function CancelJobRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -1501,9 +1549,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CancelJobRequest.decode = function decode(reader, length, error) { + CancelJobRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.CancelJobRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -1519,7 +1571,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -1550,9 +1602,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CancelJobRequest.verify = function verify(message) { + CancelJobRequest.verify = function verify(message, long) { if (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"; @@ -1570,9 +1626,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.CancelJobRequest} CancelJobRequest */ - CancelJobRequest.fromObject = function fromObject(object) { + CancelJobRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.CancelJobRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.CancelJobRequest(); if (object.name != null) message.name = String(object.name); @@ -1656,7 +1716,7 @@ function DeleteJobRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -1741,9 +1801,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DeleteJobRequest.decode = function decode(reader, length, error) { + DeleteJobRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.DeleteJobRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -1763,7 +1827,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -1794,9 +1858,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DeleteJobRequest.verify = function verify(message) { + DeleteJobRequest.verify = function verify(message, long) { if (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"; @@ -1817,9 +1885,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.DeleteJobRequest} DeleteJobRequest */ - DeleteJobRequest.fromObject = function fromObject(object) { + DeleteJobRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.DeleteJobRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.DeleteJobRequest(); if (object.name != null) message.name = String(object.name); @@ -1905,7 +1977,7 @@ function CancelJobResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -1960,9 +2032,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CancelJobResponse.decode = function decode(reader, length, error) { + CancelJobResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.CancelJobResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -1970,7 +2046,7 @@ break; switch (tag >>> 3) { default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -2001,9 +2077,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CancelJobResponse.verify = function verify(message) { + CancelJobResponse.verify = function verify(message, 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; }; @@ -2015,9 +2095,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.CancelJobResponse} CancelJobResponse */ - CancelJobResponse.fromObject = function fromObject(object) { + CancelJobResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.CancelJobResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); return new $root.google.cloud.storagebatchoperations.v1.CancelJobResponse(); }; @@ -2087,7 +2171,7 @@ function ListBucketOperationsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -2192,9 +2276,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListBucketOperationsRequest.decode = function decode(reader, length, error) { + ListBucketOperationsRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -2222,7 +2310,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -2253,9 +2341,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListBucketOperationsRequest.verify = function verify(message) { + ListBucketOperationsRequest.verify = function verify(message, long) { if (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"; @@ -2282,9 +2374,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest} ListBucketOperationsRequest */ - ListBucketOperationsRequest.fromObject = function fromObject(object) { + ListBucketOperationsRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -2385,7 +2481,7 @@ this.unreachable = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -2472,9 +2568,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListBucketOperationsResponse.decode = function decode(reader, length, error) { + ListBucketOperationsResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.ListBucketOperationsResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -2484,7 +2584,7 @@ case 1: { if (!(message.bucketOperations && message.bucketOperations.length)) message.bucketOperations = []; - message.bucketOperations.push($root.google.cloud.storagebatchoperations.v1.BucketOperation.decode(reader, reader.uint32())); + message.bucketOperations.push($root.google.cloud.storagebatchoperations.v1.BucketOperation.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -2498,7 +2598,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -2529,14 +2629,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListBucketOperationsResponse.verify = function verify(message) { + ListBucketOperationsResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.bucketOperations != null && message.hasOwnProperty("bucketOperations")) { if (!Array.isArray(message.bucketOperations)) return "bucketOperations: array expected"; for (var i = 0; i < message.bucketOperations.length; ++i) { - var error = $root.google.cloud.storagebatchoperations.v1.BucketOperation.verify(message.bucketOperations[i]); + var error = $root.google.cloud.storagebatchoperations.v1.BucketOperation.verify(message.bucketOperations[i], long + 1); if (error) return "bucketOperations." + error; } @@ -2562,9 +2666,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.ListBucketOperationsResponse} ListBucketOperationsResponse */ - ListBucketOperationsResponse.fromObject = function fromObject(object) { + ListBucketOperationsResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.ListBucketOperationsResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.ListBucketOperationsResponse(); if (object.bucketOperations) { if (!Array.isArray(object.bucketOperations)) @@ -2573,7 +2681,7 @@ for (var i = 0; i < object.bucketOperations.length; ++i) { if (typeof object.bucketOperations[i] !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.ListBucketOperationsResponse.bucketOperations: object expected"); - message.bucketOperations[i] = $root.google.cloud.storagebatchoperations.v1.BucketOperation.fromObject(object.bucketOperations[i]); + message.bucketOperations[i] = $root.google.cloud.storagebatchoperations.v1.BucketOperation.fromObject(object.bucketOperations[i], long + 1); } } if (object.nextPageToken != null) @@ -2671,7 +2779,7 @@ function GetBucketOperationRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -2736,9 +2844,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetBucketOperationRequest.decode = function decode(reader, length, error) { + GetBucketOperationRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.GetBucketOperationRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -2750,7 +2862,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -2781,9 +2893,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetBucketOperationRequest.verify = function verify(message) { + GetBucketOperationRequest.verify = function verify(message, long) { if (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"; @@ -2798,9 +2914,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.GetBucketOperationRequest} GetBucketOperationRequest */ - GetBucketOperationRequest.fromObject = function fromObject(object) { + GetBucketOperationRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.GetBucketOperationRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.GetBucketOperationRequest(); if (object.name != null) message.name = String(object.name); @@ -2881,7 +3001,7 @@ function OperationMetadata(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -2996,9 +3116,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OperationMetadata.decode = function decode(reader, length, error) { + OperationMetadata.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.OperationMetadata(); while (reader.pos < end) { var tag = reader.uint32(); @@ -3010,11 +3134,11 @@ break; } case 2: { - 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 3: { - 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: { @@ -3026,11 +3150,11 @@ break; } case 10: { - message.job = $root.google.cloud.storagebatchoperations.v1.Job.decode(reader, reader.uint32()); + message.job = $root.google.cloud.storagebatchoperations.v1.Job.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -3061,19 +3185,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - OperationMetadata.verify = function verify(message) { + OperationMetadata.verify = function verify(message, long) { if (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"; 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; } 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; } @@ -3084,7 +3212,7 @@ if (!$util.isString(message.apiVersion)) return "apiVersion: string expected"; if (message.job != null && message.hasOwnProperty("job")) { - var error = $root.google.cloud.storagebatchoperations.v1.Job.verify(message.job); + var error = $root.google.cloud.storagebatchoperations.v1.Job.verify(message.job, long + 1); if (error) return "job." + error; } @@ -3099,21 +3227,25 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.OperationMetadata} OperationMetadata */ - OperationMetadata.fromObject = function fromObject(object) { + OperationMetadata.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.OperationMetadata) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.OperationMetadata(); if (object.operation != null) message.operation = String(object.operation); if (object.createTime != null) { if (typeof object.createTime !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.OperationMetadata.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.endTime != null) { if (typeof object.endTime !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.OperationMetadata.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.requestedCancellation != null) message.requestedCancellation = Boolean(object.requestedCancellation); @@ -3122,7 +3254,7 @@ if (object.job != null) { if (typeof object.job !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.OperationMetadata.job: object expected"); - message.job = $root.google.cloud.storagebatchoperations.v1.Job.fromObject(object.job); + message.job = $root.google.cloud.storagebatchoperations.v1.Job.fromObject(object.job, long + 1); } return message; }; @@ -3229,7 +3361,7 @@ this.errorSummaries = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -3480,9 +3612,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Job.decode = function decode(reader, length, error) { + Job.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.Job(); while (reader.pos < end) { var tag = reader.uint32(); @@ -3498,53 +3634,53 @@ break; } case 19: { - message.bucketList = $root.google.cloud.storagebatchoperations.v1.BucketList.decode(reader, reader.uint32()); + message.bucketList = $root.google.cloud.storagebatchoperations.v1.BucketList.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.putObjectHold = $root.google.cloud.storagebatchoperations.v1.PutObjectHold.decode(reader, reader.uint32()); + message.putObjectHold = $root.google.cloud.storagebatchoperations.v1.PutObjectHold.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { - message.deleteObject = $root.google.cloud.storagebatchoperations.v1.DeleteObject.decode(reader, reader.uint32()); + message.deleteObject = $root.google.cloud.storagebatchoperations.v1.DeleteObject.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { - message.putMetadata = $root.google.cloud.storagebatchoperations.v1.PutMetadata.decode(reader, reader.uint32()); + message.putMetadata = $root.google.cloud.storagebatchoperations.v1.PutMetadata.decode(reader, reader.uint32(), undefined, long + 1); break; } case 20: { - message.rewriteObject = $root.google.cloud.storagebatchoperations.v1.RewriteObject.decode(reader, reader.uint32()); + message.rewriteObject = $root.google.cloud.storagebatchoperations.v1.RewriteObject.decode(reader, reader.uint32(), undefined, long + 1); break; } case 23: { - message.updateObjectCustomContext = $root.google.cloud.storagebatchoperations.v1.UpdateObjectCustomContext.decode(reader, reader.uint32()); + message.updateObjectCustomContext = $root.google.cloud.storagebatchoperations.v1.UpdateObjectCustomContext.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { - message.loggingConfig = $root.google.cloud.storagebatchoperations.v1.LoggingConfig.decode(reader, reader.uint32()); + message.loggingConfig = $root.google.cloud.storagebatchoperations.v1.LoggingConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 10: { - 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 11: { - message.scheduleTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.scheduleTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 12: { - message.completeTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.completeTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 13: { - message.counters = $root.google.cloud.storagebatchoperations.v1.Counters.decode(reader, reader.uint32()); + message.counters = $root.google.cloud.storagebatchoperations.v1.Counters.decode(reader, reader.uint32(), undefined, long + 1); break; } case 14: { if (!(message.errorSummaries && message.errorSummaries.length)) message.errorSummaries = []; - message.errorSummaries.push($root.google.cloud.storagebatchoperations.v1.ErrorSummary.decode(reader, reader.uint32())); + message.errorSummaries.push($root.google.cloud.storagebatchoperations.v1.ErrorSummary.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 15: { @@ -3560,7 +3696,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -3591,9 +3727,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Job.verify = function verify(message) { + Job.verify = function verify(message, 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)) @@ -3604,7 +3744,7 @@ if (message.bucketList != null && message.hasOwnProperty("bucketList")) { properties.source = 1; { - var error = $root.google.cloud.storagebatchoperations.v1.BucketList.verify(message.bucketList); + var error = $root.google.cloud.storagebatchoperations.v1.BucketList.verify(message.bucketList, long + 1); if (error) return "bucketList." + error; } @@ -3612,7 +3752,7 @@ if (message.putObjectHold != null && message.hasOwnProperty("putObjectHold")) { properties.transformation = 1; { - var error = $root.google.cloud.storagebatchoperations.v1.PutObjectHold.verify(message.putObjectHold); + var error = $root.google.cloud.storagebatchoperations.v1.PutObjectHold.verify(message.putObjectHold, long + 1); if (error) return "putObjectHold." + error; } @@ -3622,7 +3762,7 @@ return "transformation: multiple values"; properties.transformation = 1; { - var error = $root.google.cloud.storagebatchoperations.v1.DeleteObject.verify(message.deleteObject); + var error = $root.google.cloud.storagebatchoperations.v1.DeleteObject.verify(message.deleteObject, long + 1); if (error) return "deleteObject." + error; } @@ -3632,7 +3772,7 @@ return "transformation: multiple values"; properties.transformation = 1; { - var error = $root.google.cloud.storagebatchoperations.v1.PutMetadata.verify(message.putMetadata); + var error = $root.google.cloud.storagebatchoperations.v1.PutMetadata.verify(message.putMetadata, long + 1); if (error) return "putMetadata." + error; } @@ -3642,7 +3782,7 @@ return "transformation: multiple values"; properties.transformation = 1; { - var error = $root.google.cloud.storagebatchoperations.v1.RewriteObject.verify(message.rewriteObject); + var error = $root.google.cloud.storagebatchoperations.v1.RewriteObject.verify(message.rewriteObject, long + 1); if (error) return "rewriteObject." + error; } @@ -3652,33 +3792,33 @@ return "transformation: multiple values"; properties.transformation = 1; { - var error = $root.google.cloud.storagebatchoperations.v1.UpdateObjectCustomContext.verify(message.updateObjectCustomContext); + var error = $root.google.cloud.storagebatchoperations.v1.UpdateObjectCustomContext.verify(message.updateObjectCustomContext, long + 1); if (error) return "updateObjectCustomContext." + error; } } if (message.loggingConfig != null && message.hasOwnProperty("loggingConfig")) { - var error = $root.google.cloud.storagebatchoperations.v1.LoggingConfig.verify(message.loggingConfig); + var error = $root.google.cloud.storagebatchoperations.v1.LoggingConfig.verify(message.loggingConfig, long + 1); if (error) return "loggingConfig." + 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; } 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; } if (message.completeTime != null && message.hasOwnProperty("completeTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.completeTime); + var error = $root.google.protobuf.Timestamp.verify(message.completeTime, long + 1); if (error) return "completeTime." + error; } if (message.counters != null && message.hasOwnProperty("counters")) { - var error = $root.google.cloud.storagebatchoperations.v1.Counters.verify(message.counters); + var error = $root.google.cloud.storagebatchoperations.v1.Counters.verify(message.counters, long + 1); if (error) return "counters." + error; } @@ -3686,7 +3826,7 @@ if (!Array.isArray(message.errorSummaries)) return "errorSummaries: array expected"; for (var i = 0; i < message.errorSummaries.length; ++i) { - var error = $root.google.cloud.storagebatchoperations.v1.ErrorSummary.verify(message.errorSummaries[i]); + var error = $root.google.cloud.storagebatchoperations.v1.ErrorSummary.verify(message.errorSummaries[i], long + 1); if (error) return "errorSummaries." + error; } @@ -3720,9 +3860,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.Job} Job */ - Job.fromObject = function fromObject(object) { + Job.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.Job) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.Job(); if (object.name != null) message.name = String(object.name); @@ -3731,57 +3875,57 @@ if (object.bucketList != null) { if (typeof object.bucketList !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.Job.bucketList: object expected"); - message.bucketList = $root.google.cloud.storagebatchoperations.v1.BucketList.fromObject(object.bucketList); + message.bucketList = $root.google.cloud.storagebatchoperations.v1.BucketList.fromObject(object.bucketList, long + 1); } if (object.putObjectHold != null) { if (typeof object.putObjectHold !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.Job.putObjectHold: object expected"); - message.putObjectHold = $root.google.cloud.storagebatchoperations.v1.PutObjectHold.fromObject(object.putObjectHold); + message.putObjectHold = $root.google.cloud.storagebatchoperations.v1.PutObjectHold.fromObject(object.putObjectHold, long + 1); } if (object.deleteObject != null) { if (typeof object.deleteObject !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.Job.deleteObject: object expected"); - message.deleteObject = $root.google.cloud.storagebatchoperations.v1.DeleteObject.fromObject(object.deleteObject); + message.deleteObject = $root.google.cloud.storagebatchoperations.v1.DeleteObject.fromObject(object.deleteObject, long + 1); } if (object.putMetadata != null) { if (typeof object.putMetadata !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.Job.putMetadata: object expected"); - message.putMetadata = $root.google.cloud.storagebatchoperations.v1.PutMetadata.fromObject(object.putMetadata); + message.putMetadata = $root.google.cloud.storagebatchoperations.v1.PutMetadata.fromObject(object.putMetadata, long + 1); } if (object.rewriteObject != null) { if (typeof object.rewriteObject !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.Job.rewriteObject: object expected"); - message.rewriteObject = $root.google.cloud.storagebatchoperations.v1.RewriteObject.fromObject(object.rewriteObject); + message.rewriteObject = $root.google.cloud.storagebatchoperations.v1.RewriteObject.fromObject(object.rewriteObject, long + 1); } if (object.updateObjectCustomContext != null) { if (typeof object.updateObjectCustomContext !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.Job.updateObjectCustomContext: object expected"); - message.updateObjectCustomContext = $root.google.cloud.storagebatchoperations.v1.UpdateObjectCustomContext.fromObject(object.updateObjectCustomContext); + message.updateObjectCustomContext = $root.google.cloud.storagebatchoperations.v1.UpdateObjectCustomContext.fromObject(object.updateObjectCustomContext, long + 1); } if (object.loggingConfig != null) { if (typeof object.loggingConfig !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.Job.loggingConfig: object expected"); - message.loggingConfig = $root.google.cloud.storagebatchoperations.v1.LoggingConfig.fromObject(object.loggingConfig); + message.loggingConfig = $root.google.cloud.storagebatchoperations.v1.LoggingConfig.fromObject(object.loggingConfig, long + 1); } if (object.createTime != null) { if (typeof object.createTime !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.Job.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.scheduleTime != null) { if (typeof object.scheduleTime !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.Job.scheduleTime: object expected"); - message.scheduleTime = $root.google.protobuf.Timestamp.fromObject(object.scheduleTime); + message.scheduleTime = $root.google.protobuf.Timestamp.fromObject(object.scheduleTime, long + 1); } if (object.completeTime != null) { if (typeof object.completeTime !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.Job.completeTime: object expected"); - message.completeTime = $root.google.protobuf.Timestamp.fromObject(object.completeTime); + message.completeTime = $root.google.protobuf.Timestamp.fromObject(object.completeTime, long + 1); } if (object.counters != null) { if (typeof object.counters !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.Job.counters: object expected"); - message.counters = $root.google.cloud.storagebatchoperations.v1.Counters.fromObject(object.counters); + message.counters = $root.google.cloud.storagebatchoperations.v1.Counters.fromObject(object.counters, long + 1); } if (object.errorSummaries) { if (!Array.isArray(object.errorSummaries)) @@ -3790,7 +3934,7 @@ for (var i = 0; i < object.errorSummaries.length; ++i) { if (typeof object.errorSummaries[i] !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.Job.errorSummaries: object expected"); - message.errorSummaries[i] = $root.google.cloud.storagebatchoperations.v1.ErrorSummary.fromObject(object.errorSummaries[i]); + message.errorSummaries[i] = $root.google.cloud.storagebatchoperations.v1.ErrorSummary.fromObject(object.errorSummaries[i], long + 1); } } switch (object.state) { @@ -4003,7 +4147,7 @@ this.errorSummaries = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -4234,9 +4378,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BucketOperation.decode = function decode(reader, length, error) { + BucketOperation.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.BucketOperation(); while (reader.pos < end) { var tag = reader.uint32(); @@ -4252,53 +4400,53 @@ break; } case 3: { - message.prefixList = $root.google.cloud.storagebatchoperations.v1.PrefixList.decode(reader, reader.uint32()); + message.prefixList = $root.google.cloud.storagebatchoperations.v1.PrefixList.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { - message.manifest = $root.google.cloud.storagebatchoperations.v1.Manifest.decode(reader, reader.uint32()); + message.manifest = $root.google.cloud.storagebatchoperations.v1.Manifest.decode(reader, reader.uint32(), undefined, long + 1); break; } case 11: { - message.putObjectHold = $root.google.cloud.storagebatchoperations.v1.PutObjectHold.decode(reader, reader.uint32()); + message.putObjectHold = $root.google.cloud.storagebatchoperations.v1.PutObjectHold.decode(reader, reader.uint32(), undefined, long + 1); break; } case 12: { - message.deleteObject = $root.google.cloud.storagebatchoperations.v1.DeleteObject.decode(reader, reader.uint32()); + message.deleteObject = $root.google.cloud.storagebatchoperations.v1.DeleteObject.decode(reader, reader.uint32(), undefined, long + 1); break; } case 13: { - message.putMetadata = $root.google.cloud.storagebatchoperations.v1.PutMetadata.decode(reader, reader.uint32()); + message.putMetadata = $root.google.cloud.storagebatchoperations.v1.PutMetadata.decode(reader, reader.uint32(), undefined, long + 1); break; } case 14: { - message.rewriteObject = $root.google.cloud.storagebatchoperations.v1.RewriteObject.decode(reader, reader.uint32()); + message.rewriteObject = $root.google.cloud.storagebatchoperations.v1.RewriteObject.decode(reader, reader.uint32(), undefined, long + 1); break; } case 15: { - message.updateObjectCustomContext = $root.google.cloud.storagebatchoperations.v1.UpdateObjectCustomContext.decode(reader, reader.uint32()); + message.updateObjectCustomContext = $root.google.cloud.storagebatchoperations.v1.UpdateObjectCustomContext.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - 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 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.completeTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.completeTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { - message.counters = $root.google.cloud.storagebatchoperations.v1.Counters.decode(reader, reader.uint32()); + message.counters = $root.google.cloud.storagebatchoperations.v1.Counters.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { if (!(message.errorSummaries && message.errorSummaries.length)) message.errorSummaries = []; - message.errorSummaries.push($root.google.cloud.storagebatchoperations.v1.ErrorSummary.decode(reader, reader.uint32())); + message.errorSummaries.push($root.google.cloud.storagebatchoperations.v1.ErrorSummary.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 10: { @@ -4306,7 +4454,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -4337,9 +4485,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BucketOperation.verify = function verify(message) { + BucketOperation.verify = function verify(message, 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)) @@ -4350,7 +4502,7 @@ if (message.prefixList != null && message.hasOwnProperty("prefixList")) { properties.objectConfiguration = 1; { - var error = $root.google.cloud.storagebatchoperations.v1.PrefixList.verify(message.prefixList); + var error = $root.google.cloud.storagebatchoperations.v1.PrefixList.verify(message.prefixList, long + 1); if (error) return "prefixList." + error; } @@ -4360,7 +4512,7 @@ return "objectConfiguration: multiple values"; properties.objectConfiguration = 1; { - var error = $root.google.cloud.storagebatchoperations.v1.Manifest.verify(message.manifest); + var error = $root.google.cloud.storagebatchoperations.v1.Manifest.verify(message.manifest, long + 1); if (error) return "manifest." + error; } @@ -4368,7 +4520,7 @@ if (message.putObjectHold != null && message.hasOwnProperty("putObjectHold")) { properties.transformation = 1; { - var error = $root.google.cloud.storagebatchoperations.v1.PutObjectHold.verify(message.putObjectHold); + var error = $root.google.cloud.storagebatchoperations.v1.PutObjectHold.verify(message.putObjectHold, long + 1); if (error) return "putObjectHold." + error; } @@ -4378,7 +4530,7 @@ return "transformation: multiple values"; properties.transformation = 1; { - var error = $root.google.cloud.storagebatchoperations.v1.DeleteObject.verify(message.deleteObject); + var error = $root.google.cloud.storagebatchoperations.v1.DeleteObject.verify(message.deleteObject, long + 1); if (error) return "deleteObject." + error; } @@ -4388,7 +4540,7 @@ return "transformation: multiple values"; properties.transformation = 1; { - var error = $root.google.cloud.storagebatchoperations.v1.PutMetadata.verify(message.putMetadata); + var error = $root.google.cloud.storagebatchoperations.v1.PutMetadata.verify(message.putMetadata, long + 1); if (error) return "putMetadata." + error; } @@ -4398,7 +4550,7 @@ return "transformation: multiple values"; properties.transformation = 1; { - var error = $root.google.cloud.storagebatchoperations.v1.RewriteObject.verify(message.rewriteObject); + var error = $root.google.cloud.storagebatchoperations.v1.RewriteObject.verify(message.rewriteObject, long + 1); if (error) return "rewriteObject." + error; } @@ -4408,28 +4560,28 @@ return "transformation: multiple values"; properties.transformation = 1; { - var error = $root.google.cloud.storagebatchoperations.v1.UpdateObjectCustomContext.verify(message.updateObjectCustomContext); + var error = $root.google.cloud.storagebatchoperations.v1.UpdateObjectCustomContext.verify(message.updateObjectCustomContext, long + 1); if (error) return "updateObjectCustomContext." + 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; } 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.completeTime != null && message.hasOwnProperty("completeTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.completeTime); + var error = $root.google.protobuf.Timestamp.verify(message.completeTime, long + 1); if (error) return "completeTime." + error; } if (message.counters != null && message.hasOwnProperty("counters")) { - var error = $root.google.cloud.storagebatchoperations.v1.Counters.verify(message.counters); + var error = $root.google.cloud.storagebatchoperations.v1.Counters.verify(message.counters, long + 1); if (error) return "counters." + error; } @@ -4437,7 +4589,7 @@ if (!Array.isArray(message.errorSummaries)) return "errorSummaries: array expected"; for (var i = 0; i < message.errorSummaries.length; ++i) { - var error = $root.google.cloud.storagebatchoperations.v1.ErrorSummary.verify(message.errorSummaries[i]); + var error = $root.google.cloud.storagebatchoperations.v1.ErrorSummary.verify(message.errorSummaries[i], long + 1); if (error) return "errorSummaries." + error; } @@ -4465,9 +4617,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.BucketOperation} BucketOperation */ - BucketOperation.fromObject = function fromObject(object) { + BucketOperation.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.BucketOperation) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.BucketOperation(); if (object.name != null) message.name = String(object.name); @@ -4476,57 +4632,57 @@ if (object.prefixList != null) { if (typeof object.prefixList !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.BucketOperation.prefixList: object expected"); - message.prefixList = $root.google.cloud.storagebatchoperations.v1.PrefixList.fromObject(object.prefixList); + message.prefixList = $root.google.cloud.storagebatchoperations.v1.PrefixList.fromObject(object.prefixList, long + 1); } if (object.manifest != null) { if (typeof object.manifest !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.BucketOperation.manifest: object expected"); - message.manifest = $root.google.cloud.storagebatchoperations.v1.Manifest.fromObject(object.manifest); + message.manifest = $root.google.cloud.storagebatchoperations.v1.Manifest.fromObject(object.manifest, long + 1); } if (object.putObjectHold != null) { if (typeof object.putObjectHold !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.BucketOperation.putObjectHold: object expected"); - message.putObjectHold = $root.google.cloud.storagebatchoperations.v1.PutObjectHold.fromObject(object.putObjectHold); + message.putObjectHold = $root.google.cloud.storagebatchoperations.v1.PutObjectHold.fromObject(object.putObjectHold, long + 1); } if (object.deleteObject != null) { if (typeof object.deleteObject !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.BucketOperation.deleteObject: object expected"); - message.deleteObject = $root.google.cloud.storagebatchoperations.v1.DeleteObject.fromObject(object.deleteObject); + message.deleteObject = $root.google.cloud.storagebatchoperations.v1.DeleteObject.fromObject(object.deleteObject, long + 1); } if (object.putMetadata != null) { if (typeof object.putMetadata !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.BucketOperation.putMetadata: object expected"); - message.putMetadata = $root.google.cloud.storagebatchoperations.v1.PutMetadata.fromObject(object.putMetadata); + message.putMetadata = $root.google.cloud.storagebatchoperations.v1.PutMetadata.fromObject(object.putMetadata, long + 1); } if (object.rewriteObject != null) { if (typeof object.rewriteObject !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.BucketOperation.rewriteObject: object expected"); - message.rewriteObject = $root.google.cloud.storagebatchoperations.v1.RewriteObject.fromObject(object.rewriteObject); + message.rewriteObject = $root.google.cloud.storagebatchoperations.v1.RewriteObject.fromObject(object.rewriteObject, long + 1); } if (object.updateObjectCustomContext != null) { if (typeof object.updateObjectCustomContext !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.BucketOperation.updateObjectCustomContext: object expected"); - message.updateObjectCustomContext = $root.google.cloud.storagebatchoperations.v1.UpdateObjectCustomContext.fromObject(object.updateObjectCustomContext); + message.updateObjectCustomContext = $root.google.cloud.storagebatchoperations.v1.UpdateObjectCustomContext.fromObject(object.updateObjectCustomContext, long + 1); } if (object.createTime != null) { if (typeof object.createTime !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.BucketOperation.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.startTime != null) { if (typeof object.startTime !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.BucketOperation.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.completeTime != null) { if (typeof object.completeTime !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.BucketOperation.completeTime: object expected"); - message.completeTime = $root.google.protobuf.Timestamp.fromObject(object.completeTime); + message.completeTime = $root.google.protobuf.Timestamp.fromObject(object.completeTime, long + 1); } if (object.counters != null) { if (typeof object.counters !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.BucketOperation.counters: object expected"); - message.counters = $root.google.cloud.storagebatchoperations.v1.Counters.fromObject(object.counters); + message.counters = $root.google.cloud.storagebatchoperations.v1.Counters.fromObject(object.counters, long + 1); } if (object.errorSummaries) { if (!Array.isArray(object.errorSummaries)) @@ -4535,7 +4691,7 @@ for (var i = 0; i < object.errorSummaries.length; ++i) { if (typeof object.errorSummaries[i] !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.BucketOperation.errorSummaries: object expected"); - message.errorSummaries[i] = $root.google.cloud.storagebatchoperations.v1.ErrorSummary.fromObject(object.errorSummaries[i]); + message.errorSummaries[i] = $root.google.cloud.storagebatchoperations.v1.ErrorSummary.fromObject(object.errorSummaries[i], long + 1); } } switch (object.state) { @@ -4726,7 +4882,7 @@ this.buckets = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -4792,9 +4948,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BucketList.decode = function decode(reader, length, error) { + BucketList.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.BucketList(); while (reader.pos < end) { var tag = reader.uint32(); @@ -4804,11 +4964,11 @@ case 1: { if (!(message.buckets && message.buckets.length)) message.buckets = []; - message.buckets.push($root.google.cloud.storagebatchoperations.v1.BucketList.Bucket.decode(reader, reader.uint32())); + message.buckets.push($root.google.cloud.storagebatchoperations.v1.BucketList.Bucket.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -4839,14 +4999,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BucketList.verify = function verify(message) { + BucketList.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.buckets != null && message.hasOwnProperty("buckets")) { if (!Array.isArray(message.buckets)) return "buckets: array expected"; for (var i = 0; i < message.buckets.length; ++i) { - var error = $root.google.cloud.storagebatchoperations.v1.BucketList.Bucket.verify(message.buckets[i]); + var error = $root.google.cloud.storagebatchoperations.v1.BucketList.Bucket.verify(message.buckets[i], long + 1); if (error) return "buckets." + error; } @@ -4862,9 +5026,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.BucketList} BucketList */ - BucketList.fromObject = function fromObject(object) { + BucketList.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.BucketList) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.BucketList(); if (object.buckets) { if (!Array.isArray(object.buckets)) @@ -4873,7 +5041,7 @@ for (var i = 0; i < object.buckets.length; ++i) { if (typeof object.buckets[i] !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.BucketList.buckets: object expected"); - message.buckets[i] = $root.google.cloud.storagebatchoperations.v1.BucketList.Bucket.fromObject(object.buckets[i]); + message.buckets[i] = $root.google.cloud.storagebatchoperations.v1.BucketList.Bucket.fromObject(object.buckets[i], long + 1); } } return message; @@ -4950,7 +5118,7 @@ function Bucket(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -5049,9 +5217,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Bucket.decode = function decode(reader, length, error) { + Bucket.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.BucketList.Bucket(); while (reader.pos < end) { var tag = reader.uint32(); @@ -5063,15 +5235,15 @@ break; } case 2: { - message.prefixList = $root.google.cloud.storagebatchoperations.v1.PrefixList.decode(reader, reader.uint32()); + message.prefixList = $root.google.cloud.storagebatchoperations.v1.PrefixList.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { - message.manifest = $root.google.cloud.storagebatchoperations.v1.Manifest.decode(reader, reader.uint32()); + message.manifest = $root.google.cloud.storagebatchoperations.v1.Manifest.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -5102,9 +5274,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Bucket.verify = function verify(message) { + Bucket.verify = function verify(message, 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.bucket != null && message.hasOwnProperty("bucket")) if (!$util.isString(message.bucket)) @@ -5112,7 +5288,7 @@ if (message.prefixList != null && message.hasOwnProperty("prefixList")) { properties.objectConfiguration = 1; { - var error = $root.google.cloud.storagebatchoperations.v1.PrefixList.verify(message.prefixList); + var error = $root.google.cloud.storagebatchoperations.v1.PrefixList.verify(message.prefixList, long + 1); if (error) return "prefixList." + error; } @@ -5122,7 +5298,7 @@ return "objectConfiguration: multiple values"; properties.objectConfiguration = 1; { - var error = $root.google.cloud.storagebatchoperations.v1.Manifest.verify(message.manifest); + var error = $root.google.cloud.storagebatchoperations.v1.Manifest.verify(message.manifest, long + 1); if (error) return "manifest." + error; } @@ -5138,21 +5314,25 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.BucketList.Bucket} Bucket */ - Bucket.fromObject = function fromObject(object) { + Bucket.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.BucketList.Bucket) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.BucketList.Bucket(); if (object.bucket != null) message.bucket = String(object.bucket); if (object.prefixList != null) { if (typeof object.prefixList !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.BucketList.Bucket.prefixList: object expected"); - message.prefixList = $root.google.cloud.storagebatchoperations.v1.PrefixList.fromObject(object.prefixList); + message.prefixList = $root.google.cloud.storagebatchoperations.v1.PrefixList.fromObject(object.prefixList, long + 1); } if (object.manifest != null) { if (typeof object.manifest !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.BucketList.Bucket.manifest: object expected"); - message.manifest = $root.google.cloud.storagebatchoperations.v1.Manifest.fromObject(object.manifest); + message.manifest = $root.google.cloud.storagebatchoperations.v1.Manifest.fromObject(object.manifest, long + 1); } return message; }; @@ -5239,7 +5419,7 @@ function Manifest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -5304,9 +5484,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Manifest.decode = function decode(reader, length, error) { + Manifest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.Manifest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -5318,7 +5502,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -5349,9 +5533,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Manifest.verify = function verify(message) { + Manifest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.manifestLocation != null && message.hasOwnProperty("manifestLocation")) if (!$util.isString(message.manifestLocation)) return "manifestLocation: string expected"; @@ -5366,9 +5554,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.Manifest} Manifest */ - Manifest.fromObject = function fromObject(object) { + Manifest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.Manifest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.Manifest(); if (object.manifestLocation != null) message.manifestLocation = String(object.manifestLocation); @@ -5445,7 +5637,7 @@ this.includedObjectPrefixes = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -5511,9 +5703,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PrefixList.decode = function decode(reader, length, error) { + PrefixList.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.PrefixList(); while (reader.pos < end) { var tag = reader.uint32(); @@ -5527,7 +5723,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -5558,9 +5754,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PrefixList.verify = function verify(message) { + PrefixList.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.includedObjectPrefixes != null && message.hasOwnProperty("includedObjectPrefixes")) { if (!Array.isArray(message.includedObjectPrefixes)) return "includedObjectPrefixes: array expected"; @@ -5579,9 +5779,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.PrefixList} PrefixList */ - PrefixList.fromObject = function fromObject(object) { + PrefixList.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.PrefixList) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.PrefixList(); if (object.includedObjectPrefixes) { if (!Array.isArray(object.includedObjectPrefixes)) @@ -5666,7 +5870,7 @@ function PutObjectHold(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -5741,9 +5945,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PutObjectHold.decode = function decode(reader, length, error) { + PutObjectHold.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.PutObjectHold(); while (reader.pos < end) { var tag = reader.uint32(); @@ -5759,7 +5967,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -5790,9 +5998,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PutObjectHold.verify = function verify(message) { + PutObjectHold.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.temporaryHold != null && message.hasOwnProperty("temporaryHold")) switch (message.temporaryHold) { default: @@ -5822,9 +6034,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.PutObjectHold} PutObjectHold */ - PutObjectHold.fromObject = function fromObject(object) { + PutObjectHold.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.PutObjectHold) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.PutObjectHold(); switch (object.temporaryHold) { default: @@ -5958,7 +6174,7 @@ function DeleteObject(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -6023,9 +6239,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DeleteObject.decode = function decode(reader, length, error) { + DeleteObject.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.DeleteObject(); while (reader.pos < end) { var tag = reader.uint32(); @@ -6037,7 +6257,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -6068,9 +6288,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DeleteObject.verify = function verify(message) { + DeleteObject.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.permanentObjectDeletionEnabled != null && message.hasOwnProperty("permanentObjectDeletionEnabled")) if (typeof message.permanentObjectDeletionEnabled !== "boolean") return "permanentObjectDeletionEnabled: boolean expected"; @@ -6085,9 +6309,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.DeleteObject} DeleteObject */ - DeleteObject.fromObject = function fromObject(object) { + DeleteObject.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.DeleteObject) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.DeleteObject(); if (object.permanentObjectDeletionEnabled != null) message.permanentObjectDeletionEnabled = Boolean(object.permanentObjectDeletionEnabled); @@ -6163,7 +6391,7 @@ function RewriteObject(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -6237,9 +6465,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RewriteObject.decode = function decode(reader, length, error) { + RewriteObject.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.RewriteObject(); while (reader.pos < end) { var tag = reader.uint32(); @@ -6251,7 +6483,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -6282,9 +6514,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RewriteObject.verify = function verify(message) { + RewriteObject.verify = function verify(message, 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.kmsKey != null && message.hasOwnProperty("kmsKey")) { properties._kmsKey = 1; @@ -6302,9 +6538,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.RewriteObject} RewriteObject */ - RewriteObject.fromObject = function fromObject(object) { + RewriteObject.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.RewriteObject) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.RewriteObject(); if (object.kmsKey != null) message.kmsKey = String(object.kmsKey); @@ -6382,7 +6622,7 @@ function ObjectRetention(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -6472,9 +6712,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ObjectRetention.decode = function decode(reader, length, error) { + ObjectRetention.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.ObjectRetention(); while (reader.pos < end) { var tag = reader.uint32(); @@ -6490,7 +6734,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -6521,9 +6765,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ObjectRetention.verify = function verify(message) { + ObjectRetention.verify = function verify(message, 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.retainUntilTime != null && message.hasOwnProperty("retainUntilTime")) { properties._retainUntilTime = 1; @@ -6552,9 +6800,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.ObjectRetention} ObjectRetention */ - ObjectRetention.fromObject = function fromObject(object) { + ObjectRetention.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.ObjectRetention) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.ObjectRetention(); if (object.retainUntilTime != null) message.retainUntilTime = String(object.retainUntilTime); @@ -6680,7 +6932,7 @@ this.customMetadata = {}; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -6861,9 +7113,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - PutMetadata.decode = function decode(reader, length, error) { + PutMetadata.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.PutMetadata(), key, value; while (reader.pos < end) { var tag = reader.uint32(); @@ -6910,19 +7166,21 @@ value = reader.string(); break; default: - reader.skipType(tag2 & 7); + reader.skipType(tag2 & 7, long); break; } } + if (key === "__proto__") + $util.makeProp(message.customMetadata, key); message.customMetadata[key] = value; break; } case 8: { - message.objectRetention = $root.google.cloud.storagebatchoperations.v1.ObjectRetention.decode(reader, reader.uint32()); + message.objectRetention = $root.google.cloud.storagebatchoperations.v1.ObjectRetention.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -6953,9 +7211,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - PutMetadata.verify = function verify(message) { + PutMetadata.verify = function verify(message, 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.contentDisposition != null && message.hasOwnProperty("contentDisposition")) { properties._contentDisposition = 1; @@ -6998,7 +7260,7 @@ if (message.objectRetention != null && message.hasOwnProperty("objectRetention")) { properties._objectRetention = 1; { - var error = $root.google.cloud.storagebatchoperations.v1.ObjectRetention.verify(message.objectRetention); + var error = $root.google.cloud.storagebatchoperations.v1.ObjectRetention.verify(message.objectRetention, long + 1); if (error) return "objectRetention." + error; } @@ -7014,9 +7276,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.PutMetadata} PutMetadata */ - PutMetadata.fromObject = function fromObject(object) { + PutMetadata.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.PutMetadata) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.PutMetadata(); if (object.contentDisposition != null) message.contentDisposition = String(object.contentDisposition); @@ -7034,13 +7300,16 @@ if (typeof object.customMetadata !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.PutMetadata.customMetadata: object expected"); message.customMetadata = {}; - for (var keys = Object.keys(object.customMetadata), i = 0; i < keys.length; ++i) + for (var keys = Object.keys(object.customMetadata), i = 0; i < keys.length; ++i) { + if (keys[i] === "__proto__") + $util.makeProp(message.customMetadata, keys[i]); message.customMetadata[keys[i]] = String(object.customMetadata[keys[i]]); + } } if (object.objectRetention != null) { if (typeof object.objectRetention !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.PutMetadata.objectRetention: object expected"); - message.objectRetention = $root.google.cloud.storagebatchoperations.v1.ObjectRetention.fromObject(object.objectRetention); + message.objectRetention = $root.google.cloud.storagebatchoperations.v1.ObjectRetention.fromObject(object.objectRetention, long + 1); } return message; }; @@ -7093,8 +7362,11 @@ var keys2; if (message.customMetadata && (keys2 = Object.keys(message.customMetadata)).length) { object.customMetadata = {}; - for (var j = 0; j < keys2.length; ++j) + for (var j = 0; j < keys2.length; ++j) { + if (keys2[j] === "__proto__") + $util.makeProp(object.customMetadata, keys2[j]); object.customMetadata[keys2[j]] = message.customMetadata[keys2[j]]; + } } if (message.objectRetention != null && message.hasOwnProperty("objectRetention")) { object.objectRetention = $root.google.cloud.storagebatchoperations.v1.ObjectRetention.toObject(message.objectRetention, options); @@ -7153,7 +7425,7 @@ function ObjectCustomContextPayload(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -7227,9 +7499,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ObjectCustomContextPayload.decode = function decode(reader, length, error) { + ObjectCustomContextPayload.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.ObjectCustomContextPayload(); while (reader.pos < end) { var tag = reader.uint32(); @@ -7241,7 +7517,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -7272,9 +7548,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ObjectCustomContextPayload.verify = function verify(message) { + ObjectCustomContextPayload.verify = function verify(message, 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.value != null && message.hasOwnProperty("value")) { properties._value = 1; @@ -7292,9 +7572,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.ObjectCustomContextPayload} ObjectCustomContextPayload */ - ObjectCustomContextPayload.fromObject = function fromObject(object) { + ObjectCustomContextPayload.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.ObjectCustomContextPayload) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.ObjectCustomContextPayload(); if (object.value != null) message.value = String(object.value); @@ -7374,7 +7658,7 @@ this.keysToClear = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -7453,9 +7737,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CustomContextUpdates.decode = function decode(reader, length, error) { + CustomContextUpdates.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.CustomContextUpdates(), key, value; while (reader.pos < end) { var tag = reader.uint32(); @@ -7475,13 +7763,15 @@ key = reader.string(); break; case 2: - value = $root.google.cloud.storagebatchoperations.v1.ObjectCustomContextPayload.decode(reader, reader.uint32()); + value = $root.google.cloud.storagebatchoperations.v1.ObjectCustomContextPayload.decode(reader, reader.uint32(), undefined, long + 1); break; default: - reader.skipType(tag2 & 7); + reader.skipType(tag2 & 7, long); break; } } + if (key === "__proto__") + $util.makeProp(message.updates, key); message.updates[key] = value; break; } @@ -7492,7 +7782,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -7523,15 +7813,19 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CustomContextUpdates.verify = function verify(message) { + CustomContextUpdates.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.updates != null && message.hasOwnProperty("updates")) { if (!$util.isObject(message.updates)) return "updates: object expected"; var key = Object.keys(message.updates); for (var i = 0; i < key.length; ++i) { - var error = $root.google.cloud.storagebatchoperations.v1.ObjectCustomContextPayload.verify(message.updates[key[i]]); + var error = $root.google.cloud.storagebatchoperations.v1.ObjectCustomContextPayload.verify(message.updates[key[i]], long + 1); if (error) return "updates." + error; } @@ -7554,18 +7848,24 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.CustomContextUpdates} CustomContextUpdates */ - CustomContextUpdates.fromObject = function fromObject(object) { + CustomContextUpdates.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.CustomContextUpdates) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.CustomContextUpdates(); if (object.updates) { if (typeof object.updates !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.CustomContextUpdates.updates: object expected"); message.updates = {}; for (var keys = Object.keys(object.updates), i = 0; i < keys.length; ++i) { + if (keys[i] === "__proto__") + $util.makeProp(message.updates, keys[i]); if (typeof object.updates[keys[i]] !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.CustomContextUpdates.updates: object expected"); - message.updates[keys[i]] = $root.google.cloud.storagebatchoperations.v1.ObjectCustomContextPayload.fromObject(object.updates[keys[i]]); + message.updates[keys[i]] = $root.google.cloud.storagebatchoperations.v1.ObjectCustomContextPayload.fromObject(object.updates[keys[i]], long + 1); } } if (object.keysToClear) { @@ -7598,8 +7898,11 @@ var keys2; if (message.updates && (keys2 = Object.keys(message.updates)).length) { object.updates = {}; - for (var j = 0; j < keys2.length; ++j) + for (var j = 0; j < keys2.length; ++j) { + if (keys2[j] === "__proto__") + $util.makeProp(object.updates, keys2[j]); object.updates[keys2[j]] = $root.google.cloud.storagebatchoperations.v1.ObjectCustomContextPayload.toObject(message.updates[keys2[j]], options); + } } if (message.keysToClear && message.keysToClear.length) { object.keysToClear = []; @@ -7659,7 +7962,7 @@ function UpdateObjectCustomContext(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -7748,9 +8051,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UpdateObjectCustomContext.decode = function decode(reader, length, error) { + UpdateObjectCustomContext.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.UpdateObjectCustomContext(); while (reader.pos < end) { var tag = reader.uint32(); @@ -7758,7 +8065,7 @@ break; switch (tag >>> 3) { case 1: { - message.customContextUpdates = $root.google.cloud.storagebatchoperations.v1.CustomContextUpdates.decode(reader, reader.uint32()); + message.customContextUpdates = $root.google.cloud.storagebatchoperations.v1.CustomContextUpdates.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { @@ -7766,7 +8073,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -7797,14 +8104,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UpdateObjectCustomContext.verify = function verify(message) { + UpdateObjectCustomContext.verify = function verify(message, 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.customContextUpdates != null && message.hasOwnProperty("customContextUpdates")) { properties.action = 1; { - var error = $root.google.cloud.storagebatchoperations.v1.CustomContextUpdates.verify(message.customContextUpdates); + var error = $root.google.cloud.storagebatchoperations.v1.CustomContextUpdates.verify(message.customContextUpdates, long + 1); if (error) return "customContextUpdates." + error; } @@ -7827,14 +8138,18 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.UpdateObjectCustomContext} UpdateObjectCustomContext */ - UpdateObjectCustomContext.fromObject = function fromObject(object) { + UpdateObjectCustomContext.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.UpdateObjectCustomContext) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.UpdateObjectCustomContext(); if (object.customContextUpdates != null) { if (typeof object.customContextUpdates !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.UpdateObjectCustomContext.customContextUpdates: object expected"); - message.customContextUpdates = $root.google.cloud.storagebatchoperations.v1.CustomContextUpdates.fromObject(object.customContextUpdates); + message.customContextUpdates = $root.google.cloud.storagebatchoperations.v1.CustomContextUpdates.fromObject(object.customContextUpdates, long + 1); } if (object.clearAll != null) message.clearAll = Boolean(object.clearAll); @@ -7919,7 +8234,7 @@ this.errorLogEntries = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -8005,9 +8320,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ErrorSummary.decode = function decode(reader, length, error) { + ErrorSummary.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.ErrorSummary(); while (reader.pos < end) { var tag = reader.uint32(); @@ -8025,11 +8344,11 @@ case 3: { if (!(message.errorLogEntries && message.errorLogEntries.length)) message.errorLogEntries = []; - message.errorLogEntries.push($root.google.cloud.storagebatchoperations.v1.ErrorLogEntry.decode(reader, reader.uint32())); + message.errorLogEntries.push($root.google.cloud.storagebatchoperations.v1.ErrorLogEntry.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -8060,9 +8379,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ErrorSummary.verify = function verify(message) { + ErrorSummary.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.errorCode != null && message.hasOwnProperty("errorCode")) switch (message.errorCode) { default: @@ -8093,7 +8416,7 @@ if (!Array.isArray(message.errorLogEntries)) return "errorLogEntries: array expected"; for (var i = 0; i < message.errorLogEntries.length; ++i) { - var error = $root.google.cloud.storagebatchoperations.v1.ErrorLogEntry.verify(message.errorLogEntries[i]); + var error = $root.google.cloud.storagebatchoperations.v1.ErrorLogEntry.verify(message.errorLogEntries[i], long + 1); if (error) return "errorLogEntries." + error; } @@ -8109,9 +8432,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.ErrorSummary} ErrorSummary */ - ErrorSummary.fromObject = function fromObject(object) { + ErrorSummary.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.ErrorSummary) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.ErrorSummary(); switch (object.errorCode) { default: @@ -8205,7 +8532,7 @@ for (var i = 0; i < object.errorLogEntries.length; ++i) { if (typeof object.errorLogEntries[i] !== "object") throw TypeError(".google.cloud.storagebatchoperations.v1.ErrorSummary.errorLogEntries: object expected"); - message.errorLogEntries[i] = $root.google.cloud.storagebatchoperations.v1.ErrorLogEntry.fromObject(object.errorLogEntries[i]); + message.errorLogEntries[i] = $root.google.cloud.storagebatchoperations.v1.ErrorLogEntry.fromObject(object.errorLogEntries[i], long + 1); } } return message; @@ -8300,7 +8627,7 @@ this.errorDetails = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -8376,9 +8703,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ErrorLogEntry.decode = function decode(reader, length, error) { + ErrorLogEntry.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.ErrorLogEntry(); while (reader.pos < end) { var tag = reader.uint32(); @@ -8396,7 +8727,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -8427,9 +8758,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ErrorLogEntry.verify = function verify(message) { + ErrorLogEntry.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.objectUri != null && message.hasOwnProperty("objectUri")) if (!$util.isString(message.objectUri)) return "objectUri: string expected"; @@ -8451,9 +8786,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.ErrorLogEntry} ErrorLogEntry */ - ErrorLogEntry.fromObject = function fromObject(object) { + ErrorLogEntry.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.ErrorLogEntry) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.ErrorLogEntry(); if (object.objectUri != null) message.objectUri = String(object.objectUri); @@ -8549,7 +8888,7 @@ function Counters(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -8701,9 +9040,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Counters.decode = function decode(reader, length, error) { + Counters.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.Counters(); while (reader.pos < end) { var tag = reader.uint32(); @@ -8739,7 +9082,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -8770,9 +9113,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Counters.verify = function verify(message) { + Counters.verify = function verify(message, 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.totalObjectCount != null && message.hasOwnProperty("totalObjectCount")) if (!$util.isInteger(message.totalObjectCount) && !(message.totalObjectCount && $util.isInteger(message.totalObjectCount.low) && $util.isInteger(message.totalObjectCount.high))) @@ -8814,9 +9161,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.Counters} Counters */ - Counters.fromObject = function fromObject(object) { + Counters.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.Counters) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.Counters(); if (object.totalObjectCount != null) if ($util.Long) @@ -9016,7 +9367,7 @@ this.logActionStates = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -9099,9 +9450,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LoggingConfig.decode = function decode(reader, length, error) { + LoggingConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storagebatchoperations.v1.LoggingConfig(); while (reader.pos < end) { var tag = reader.uint32(); @@ -9131,7 +9486,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -9162,9 +9517,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LoggingConfig.verify = function verify(message) { + LoggingConfig.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.logActions != null && message.hasOwnProperty("logActions")) { if (!Array.isArray(message.logActions)) return "logActions: array expected"; @@ -9201,9 +9560,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storagebatchoperations.v1.LoggingConfig} LoggingConfig */ - LoggingConfig.fromObject = function fromObject(object) { + LoggingConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storagebatchoperations.v1.LoggingConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storagebatchoperations.v1.LoggingConfig(); if (object.logActions) { if (!Array.isArray(object.logActions)) @@ -9383,7 +9746,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]]; } @@ -9459,9 +9822,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(); @@ -9471,7 +9838,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: { @@ -9479,7 +9846,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -9510,14 +9877,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; } @@ -9536,9 +9907,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)) @@ -9547,7 +9922,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) @@ -9641,7 +10016,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]]; } @@ -9811,9 +10186,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(); @@ -9845,7 +10224,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: { @@ -9859,11 +10238,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; } } @@ -9894,9 +10273,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)) @@ -9939,7 +10322,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; } @@ -9954,7 +10337,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; } @@ -9970,9 +10353,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); @@ -9989,7 +10376,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); @@ -10002,7 +10389,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; @@ -10122,7 +10509,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]]; } @@ -10197,9 +10584,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(); @@ -10215,7 +10606,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -10246,9 +10637,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"; @@ -10266,9 +10661,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); @@ -10338,6 +10737,7 @@ * @interface ICommonLanguageSettings * @property {string|null} [referenceDocsUri] CommonLanguageSettings referenceDocsUri * @property {Array.|null} [destinations] CommonLanguageSettings destinations + * @property {google.api.ISelectiveGapicGeneration|null} [selectiveGapicGeneration] CommonLanguageSettings selectiveGapicGeneration */ /** @@ -10352,7 +10752,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]]; } @@ -10372,6 +10772,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 @@ -10404,6 +10812,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; }; @@ -10431,9 +10841,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(); @@ -10455,8 +10869,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; } } @@ -10487,9 +10905,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"; @@ -10506,6 +10928,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; }; @@ -10517,9 +10944,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); @@ -10548,6 +10979,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; }; @@ -10566,8 +11002,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) { @@ -10575,6 +11013,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; }; @@ -10637,7 +11077,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]]; } @@ -10802,9 +11242,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(); @@ -10824,39 +11268,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; } } @@ -10887,9 +11331,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"; @@ -10911,42 +11359,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; } @@ -10961,9 +11409,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); @@ -11012,42 +11464,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; }; @@ -11165,7 +11617,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]]; } @@ -11333,9 +11785,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(); @@ -11345,7 +11801,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: { @@ -11381,7 +11837,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: { @@ -11393,7 +11849,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -11424,14 +11880,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; } @@ -11476,7 +11936,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; } @@ -11498,9 +11958,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)) @@ -11509,7 +11973,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) @@ -11576,7 +12040,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) @@ -11700,7 +12164,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]]; } @@ -11786,9 +12250,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(); @@ -11815,19 +12283,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; } } @@ -11858,9 +12328,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"; @@ -11873,7 +12347,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; } @@ -11888,9 +12362,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); @@ -11898,13 +12376,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; }; @@ -11933,8 +12414,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); @@ -11990,7 +12474,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]]; } @@ -12055,9 +12539,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(); @@ -12065,11 +12553,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; } } @@ -12100,11 +12588,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; } @@ -12119,14 +12611,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; }; @@ -12200,7 +12696,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]]; } @@ -12265,9 +12761,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(); @@ -12275,11 +12775,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; } } @@ -12310,11 +12810,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; } @@ -12329,14 +12833,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; }; @@ -12397,6 +12905,7 @@ * @memberof google.api * @interface IPythonSettings * @property {google.api.ICommonLanguageSettings|null} [common] PythonSettings common + * @property {google.api.PythonSettings.IExperimentalFeatures|null} [experimentalFeatures] PythonSettings experimentalFeatures */ /** @@ -12410,7 +12919,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]]; } @@ -12422,6 +12931,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 @@ -12448,6 +12965,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; }; @@ -12475,9 +12994,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(); @@ -12485,11 +13008,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; } } @@ -12520,14 +13047,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; }; @@ -12539,14 +13075,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; }; @@ -12564,10 +13109,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; }; @@ -12597,6 +13146,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; })(); @@ -12620,7 +13433,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]]; } @@ -12685,9 +13498,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(); @@ -12695,11 +13512,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; } } @@ -12730,11 +13547,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; } @@ -12749,14 +13570,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; }; @@ -12840,7 +13665,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]]; } @@ -12960,9 +13785,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(); @@ -12970,7 +13799,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: { @@ -12989,10 +13818,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; } @@ -13012,10 +13843,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; } @@ -13038,7 +13871,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -13069,11 +13902,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; } @@ -13125,28 +13962,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)) @@ -13201,13 +14048,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 = []; @@ -13276,7 +14129,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]]; } @@ -13341,9 +14194,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(); @@ -13351,11 +14208,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; } } @@ -13386,11 +14243,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; } @@ -13405,14 +14266,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; }; @@ -13473,6 +14338,7 @@ * @memberof google.api * @interface IGoSettings * @property {google.api.ICommonLanguageSettings|null} [common] GoSettings common + * @property {Object.|null} [renamedServices] GoSettings renamedServices */ /** @@ -13484,9 +14350,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]]; } @@ -13498,6 +14365,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 @@ -13524,6 +14399,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; }; @@ -13551,21 +14429,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; } } @@ -13596,14 +14503,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; }; @@ -13615,14 +14534,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; }; @@ -13640,10 +14573,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; }; @@ -13699,7 +14643,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]]; } @@ -13785,9 +14729,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(); @@ -13799,7 +14747,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: { @@ -13809,7 +14757,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -13840,14 +14788,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; } @@ -13869,16 +14821,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)) @@ -13970,7 +14926,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]]; } @@ -14065,9 +15021,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(); @@ -14075,7 +15035,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: { @@ -14083,15 +15043,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; } } @@ -14122,11 +15082,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; } @@ -14134,12 +15098,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; } @@ -14154,26 +15118,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; }; @@ -14282,24 +15250,281 @@ return values; })(); - /** - * LaunchStage enum. - * @name google.api.LaunchStage - * @enum {number} - * @property {number} LAUNCH_STAGE_UNSPECIFIED=0 LAUNCH_STAGE_UNSPECIFIED value - * @property {number} UNIMPLEMENTED=6 UNIMPLEMENTED value - * @property {number} PRELAUNCH=7 PRELAUNCH value - * @property {number} EARLY_ACCESS=1 EARLY_ACCESS value - * @property {number} ALPHA=2 ALPHA value - * @property {number} BETA=3 BETA value - * @property {number} GA=4 GA value - * @property {number} DEPRECATED=5 DEPRECATED value - */ - api.LaunchStage = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "LAUNCH_STAGE_UNSPECIFIED"] = 0; - values[valuesById[6] = "UNIMPLEMENTED"] = 6; - values[valuesById[7] = "PRELAUNCH"] = 7; + 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 + * @enum {number} + * @property {number} LAUNCH_STAGE_UNSPECIFIED=0 LAUNCH_STAGE_UNSPECIFIED value + * @property {number} UNIMPLEMENTED=6 UNIMPLEMENTED value + * @property {number} PRELAUNCH=7 PRELAUNCH value + * @property {number} EARLY_ACCESS=1 EARLY_ACCESS value + * @property {number} ALPHA=2 ALPHA value + * @property {number} BETA=3 BETA value + * @property {number} GA=4 GA value + * @property {number} DEPRECATED=5 DEPRECATED value + */ + api.LaunchStage = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "LAUNCH_STAGE_UNSPECIFIED"] = 0; + values[valuesById[6] = "UNIMPLEMENTED"] = 6; + values[valuesById[7] = "PRELAUNCH"] = 7; values[valuesById[1] = "EARLY_ACCESS"] = 1; values[valuesById[2] = "ALPHA"] = 2; values[valuesById[3] = "BETA"] = 3; @@ -14343,6 +15568,7 @@ * @memberof google.api * @interface IFieldInfo * @property {google.api.FieldInfo.Format|null} [format] FieldInfo format + * @property {Array.|null} [referencedTypes] FieldInfo referencedTypes */ /** @@ -14354,9 +15580,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]]; } @@ -14368,6 +15595,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 @@ -14394,6 +15629,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; }; @@ -14421,9 +15659,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(); @@ -14434,8 +15676,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; } } @@ -14466,9 +15714,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: @@ -14480,6 +15732,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; }; @@ -14491,9 +15752,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: @@ -14523,6 +15788,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; }; @@ -14539,10 +15814,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; }; @@ -14595,116 +15877,333 @@ return FieldInfo; })(); - api.ResourceDescriptor = (function() { + api.TypeReference = (function() { /** - * Properties of a ResourceDescriptor. + * Properties of a TypeReference. * @memberof google.api - * @interface IResourceDescriptor - * @property {string|null} [type] ResourceDescriptor type - * @property {Array.|null} [pattern] ResourceDescriptor pattern - * @property {string|null} [nameField] ResourceDescriptor nameField - * @property {google.api.ResourceDescriptor.History|null} [history] ResourceDescriptor history - * @property {string|null} [plural] ResourceDescriptor plural - * @property {string|null} [singular] ResourceDescriptor singular - * @property {Array.|null} [style] ResourceDescriptor style + * @interface ITypeReference + * @property {string|null} [typeName] TypeReference typeName */ /** - * Constructs a new ResourceDescriptor. + * Constructs a new TypeReference. * @memberof google.api - * @classdesc Represents a ResourceDescriptor. - * @implements IResourceDescriptor + * @classdesc Represents a TypeReference. + * @implements ITypeReference * @constructor - * @param {google.api.IResourceDescriptor=} [properties] Properties to set + * @param {google.api.ITypeReference=} [properties] Properties to set */ - function ResourceDescriptor(properties) { - this.pattern = []; - this.style = []; + function TypeReference(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } /** - * ResourceDescriptor type. - * @member {string} type - * @memberof google.api.ResourceDescriptor - * @instance - */ - ResourceDescriptor.prototype.type = ""; - - /** - * ResourceDescriptor pattern. - * @member {Array.} pattern - * @memberof google.api.ResourceDescriptor - * @instance - */ - ResourceDescriptor.prototype.pattern = $util.emptyArray; - - /** - * ResourceDescriptor nameField. - * @member {string} nameField - * @memberof google.api.ResourceDescriptor - * @instance - */ - ResourceDescriptor.prototype.nameField = ""; - - /** - * ResourceDescriptor history. - * @member {google.api.ResourceDescriptor.History} history - * @memberof google.api.ResourceDescriptor - * @instance - */ - ResourceDescriptor.prototype.history = 0; - - /** - * ResourceDescriptor plural. - * @member {string} plural - * @memberof google.api.ResourceDescriptor - * @instance - */ - ResourceDescriptor.prototype.plural = ""; - - /** - * ResourceDescriptor singular. - * @member {string} singular - * @memberof google.api.ResourceDescriptor - * @instance - */ - ResourceDescriptor.prototype.singular = ""; - - /** - * ResourceDescriptor style. - * @member {Array.} style - * @memberof google.api.ResourceDescriptor + * TypeReference typeName. + * @member {string} typeName + * @memberof google.api.TypeReference * @instance */ - ResourceDescriptor.prototype.style = $util.emptyArray; + TypeReference.prototype.typeName = ""; /** - * Creates a new ResourceDescriptor instance using the specified properties. + * Creates a new TypeReference instance using the specified properties. * @function create - * @memberof google.api.ResourceDescriptor + * @memberof google.api.TypeReference * @static - * @param {google.api.IResourceDescriptor=} [properties] Properties to set - * @returns {google.api.ResourceDescriptor} ResourceDescriptor instance + * @param {google.api.ITypeReference=} [properties] Properties to set + * @returns {google.api.TypeReference} TypeReference instance */ - ResourceDescriptor.create = function create(properties) { - return new ResourceDescriptor(properties); + TypeReference.create = function create(properties) { + return new TypeReference(properties); }; /** - * Encodes the specified ResourceDescriptor message. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages. + * Encodes the specified TypeReference message. Does not implicitly {@link google.api.TypeReference.verify|verify} messages. * @function encode - * @memberof google.api.ResourceDescriptor + * @memberof google.api.TypeReference * @static - * @param {google.api.IResourceDescriptor} message ResourceDescriptor message or plain object to encode + * @param {google.api.ITypeReference} message TypeReference message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ResourceDescriptor.encode = function encode(message, 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; + })(); + + api.ResourceDescriptor = (function() { + + /** + * Properties of a ResourceDescriptor. + * @memberof google.api + * @interface IResourceDescriptor + * @property {string|null} [type] ResourceDescriptor type + * @property {Array.|null} [pattern] ResourceDescriptor pattern + * @property {string|null} [nameField] ResourceDescriptor nameField + * @property {google.api.ResourceDescriptor.History|null} [history] ResourceDescriptor history + * @property {string|null} [plural] ResourceDescriptor plural + * @property {string|null} [singular] ResourceDescriptor singular + * @property {Array.|null} [style] ResourceDescriptor style + */ + + /** + * Constructs a new ResourceDescriptor. + * @memberof google.api + * @classdesc Represents a ResourceDescriptor. + * @implements IResourceDescriptor + * @constructor + * @param {google.api.IResourceDescriptor=} [properties] Properties to set + */ + function ResourceDescriptor(properties) { + this.pattern = []; + this.style = []; + 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]]; + } + + /** + * ResourceDescriptor type. + * @member {string} type + * @memberof google.api.ResourceDescriptor + * @instance + */ + ResourceDescriptor.prototype.type = ""; + + /** + * ResourceDescriptor pattern. + * @member {Array.} pattern + * @memberof google.api.ResourceDescriptor + * @instance + */ + ResourceDescriptor.prototype.pattern = $util.emptyArray; + + /** + * ResourceDescriptor nameField. + * @member {string} nameField + * @memberof google.api.ResourceDescriptor + * @instance + */ + ResourceDescriptor.prototype.nameField = ""; + + /** + * ResourceDescriptor history. + * @member {google.api.ResourceDescriptor.History} history + * @memberof google.api.ResourceDescriptor + * @instance + */ + ResourceDescriptor.prototype.history = 0; + + /** + * ResourceDescriptor plural. + * @member {string} plural + * @memberof google.api.ResourceDescriptor + * @instance + */ + ResourceDescriptor.prototype.plural = ""; + + /** + * ResourceDescriptor singular. + * @member {string} singular + * @memberof google.api.ResourceDescriptor + * @instance + */ + ResourceDescriptor.prototype.singular = ""; + + /** + * ResourceDescriptor style. + * @member {Array.} style + * @memberof google.api.ResourceDescriptor + * @instance + */ + ResourceDescriptor.prototype.style = $util.emptyArray; + + /** + * Creates a new ResourceDescriptor instance using the specified properties. + * @function create + * @memberof google.api.ResourceDescriptor + * @static + * @param {google.api.IResourceDescriptor=} [properties] Properties to set + * @returns {google.api.ResourceDescriptor} ResourceDescriptor instance + */ + ResourceDescriptor.create = function create(properties) { + return new ResourceDescriptor(properties); + }; + + /** + * Encodes the specified ResourceDescriptor message. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages. + * @function encode + * @memberof google.api.ResourceDescriptor + * @static + * @param {google.api.IResourceDescriptor} message ResourceDescriptor message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ResourceDescriptor.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); if (message.type != null && Object.hasOwnProperty.call(message, "type")) @@ -14753,9 +16252,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(); @@ -14800,7 +16303,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -14831,9 +16334,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"; @@ -14885,9 +16392,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); @@ -15075,7 +16586,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]]; } @@ -15150,9 +16661,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(); @@ -15168,7 +16683,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -15199,9 +16714,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"; @@ -15219,9 +16738,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); @@ -15316,7 +16839,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]]; } @@ -15382,9 +16905,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(); @@ -15394,11 +16921,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; } } @@ -15429,14 +16956,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; } @@ -15452,9 +16983,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)) @@ -15463,7 +16998,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; @@ -15526,6 +17061,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 @@ -15540,6 +17076,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; @@ -15564,6 +17101,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 @@ -15586,13 +17124,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]]; } @@ -15636,6 +17175,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 @@ -15757,6 +17304,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; }; @@ -15784,9 +17334,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(); @@ -15829,36 +17383,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: { @@ -15870,7 +17430,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -15901,9 +17461,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"; @@ -15931,11 +17495,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; } @@ -15944,7 +17515,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; } @@ -15953,7 +17524,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; } @@ -15962,18 +17533,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; } @@ -15985,6 +17556,7 @@ default: return "edition: enum value expected"; case 0: + case 900: case 998: case 999: case 1000: @@ -16008,9 +17580,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); @@ -16037,6 +17613,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"); @@ -16044,7 +17627,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) { @@ -16054,7 +17637,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) { @@ -16064,7 +17647,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) { @@ -16074,18 +17657,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); @@ -16100,6 +17683,10 @@ case 0: message.edition = 0; break; + case "EDITION_LEGACY": + case 900: + message.edition = 900; + break; case "EDITION_PROTO2": case 998: message.edition = 998; @@ -16165,6 +17752,7 @@ object.extension = []; object.publicDependency = []; object.weakDependency = []; + object.optionDependency = []; } if (options.defaults) { object.name = ""; @@ -16221,6 +17809,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; }; @@ -16269,6 +17862,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 */ /** @@ -16290,7 +17884,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]]; } @@ -16374,6 +17968,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 @@ -16426,6 +18028,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; }; @@ -16453,9 +18057,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(); @@ -16469,47 +18077,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: { @@ -16518,8 +18126,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; } } @@ -16550,9 +18162,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"; @@ -16560,7 +18176,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; } @@ -16569,7 +18185,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; } @@ -16578,7 +18194,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; } @@ -16587,7 +18203,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; } @@ -16596,7 +18212,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; } @@ -16605,13 +18221,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; } @@ -16619,7 +18235,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; } @@ -16631,6 +18247,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; }; @@ -16642,9 +18267,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); @@ -16655,7 +18284,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) { @@ -16665,7 +18294,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) { @@ -16675,7 +18304,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) { @@ -16685,7 +18314,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) { @@ -16695,7 +18324,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) { @@ -16705,13 +18334,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)) @@ -16720,7 +18349,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) { @@ -16730,12 +18359,32 @@ for (var i = 0; i < object.reservedName.length; ++i) message.reservedName[i] = String(object.reservedName[i]); } - return message; - }; - - /** - * Creates a plain object from a DescriptorProto message. Also converts values to other types if specified. - * @function toObject + 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; + }; + + /** + * Creates a plain object from a DescriptorProto message. Also converts values to other types if specified. + * @function toObject * @memberof google.protobuf.DescriptorProto * @static * @param {google.protobuf.DescriptorProto} message DescriptorProto @@ -16759,6 +18408,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; @@ -16804,6 +18454,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; }; @@ -16855,7 +18507,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]]; } @@ -16940,9 +18592,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(); @@ -16958,11 +18614,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; } } @@ -16993,9 +18649,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"; @@ -17003,7 +18663,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; } @@ -17018,9 +18678,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; @@ -17029,7 +18693,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; }; @@ -17111,7 +18775,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]]; } @@ -17186,9 +18850,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(); @@ -17204,7 +18872,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -17235,9 +18903,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"; @@ -17255,9 +18927,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; @@ -17347,7 +19023,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]]; } @@ -17444,9 +19120,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(); @@ -17456,17 +19136,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: { @@ -17474,7 +19154,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -17505,14 +19185,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; } @@ -17521,13 +19205,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; } @@ -17550,9 +19234,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)) @@ -17561,7 +19249,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) { @@ -17571,13 +19259,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": @@ -17686,7 +19374,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]]; } @@ -17791,9 +19479,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(); @@ -17821,7 +19513,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -17852,9 +19544,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"; @@ -17881,9 +19577,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; @@ -18007,7 +19707,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]]; } @@ -18172,9 +19872,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(); @@ -18218,7 +19922,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: { @@ -18226,7 +19930,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -18257,9 +19961,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"; @@ -18315,7 +20023,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; } @@ -18333,9 +20041,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); @@ -18454,7 +20166,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); @@ -18624,7 +20336,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]]; } @@ -18699,9 +20411,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(); @@ -18713,11 +20429,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; } } @@ -18748,14 +20464,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; } @@ -18770,16 +20490,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; }; @@ -18848,6 +20572,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 */ /** @@ -18864,7 +20589,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]]; } @@ -18908,6 +20633,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 @@ -18945,6 +20678,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; }; @@ -18972,9 +20707,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(); @@ -18988,17 +20727,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: { @@ -19007,8 +20746,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; } } @@ -19039,9 +20782,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"; @@ -19049,13 +20796,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; } @@ -19063,7 +20810,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; } @@ -19075,6 +20822,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; }; @@ -19086,9 +20842,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); @@ -19099,13 +20859,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)) @@ -19114,7 +20874,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) { @@ -19124,6 +20884,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; }; @@ -19148,6 +20928,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; @@ -19168,6 +20949,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; }; @@ -19218,7 +21001,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]]; } @@ -19293,9 +21076,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(); @@ -19311,7 +21098,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -19342,9 +21129,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"; @@ -19362,9 +21153,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; @@ -19451,7 +21246,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]]; } @@ -19536,9 +21331,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(); @@ -19554,11 +21353,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; } } @@ -19589,9 +21388,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"; @@ -19599,7 +21402,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; } @@ -19614,9 +21417,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); @@ -19625,7 +21432,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; }; @@ -19709,7 +21516,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]]; } @@ -19795,9 +21602,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(); @@ -19811,15 +21622,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; } } @@ -19850,9 +21661,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"; @@ -19860,13 +21675,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; } @@ -19881,9 +21696,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); @@ -19894,13 +21713,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; }; @@ -19990,7 +21809,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]]; } @@ -20105,9 +21924,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(); @@ -20127,7 +21950,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: { @@ -20139,7 +21962,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -20170,9 +21993,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"; @@ -20183,7 +22010,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; } @@ -20204,9 +22031,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); @@ -20217,7 +22048,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); @@ -20334,7 +22165,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]]; } @@ -20611,9 +22442,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(); @@ -20697,23 +22532,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; } } @@ -20744,9 +22579,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"; @@ -20811,7 +22650,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; } @@ -20819,7 +22658,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; } @@ -20828,7 +22667,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; } @@ -20844,9 +22683,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); @@ -20907,7 +22750,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)) @@ -20916,7 +22759,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"]) { @@ -20926,7 +22769,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; @@ -21097,7 +22940,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]]; } @@ -21233,9 +23076,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(); @@ -21263,21 +23110,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; } } @@ -21308,9 +23155,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"; @@ -21327,7 +23178,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; } @@ -21335,13 +23186,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; } @@ -21356,9 +23207,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); @@ -21373,7 +23228,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)) @@ -21382,13 +23237,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; }; @@ -21486,6 +23341,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.IFieldInfo|null} [".google.api.fieldInfo"] FieldOptions .google.api.fieldInfo @@ -21507,7 +23363,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]]; } @@ -21607,6 +23463,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 @@ -21689,6 +23553,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(); @@ -21726,9 +23592,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(); @@ -21785,17 +23655,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: { @@ -21810,15 +23684,15 @@ 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; } 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; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -21849,9 +23723,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: @@ -21921,21 +23799,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; } @@ -21960,12 +23843,12 @@ } } 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; } 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; } @@ -21980,9 +23863,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: @@ -22116,13 +24003,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)) @@ -22131,7 +24023,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"]) { @@ -22186,12 +24078,12 @@ 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); } 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); } return message; }; @@ -22226,6 +24118,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; } @@ -22259,6 +24152,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) @@ -22401,7 +24296,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]]; } @@ -22476,9 +24371,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(); @@ -22494,7 +24393,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -22525,14 +24424,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: @@ -22559,9 +24463,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: @@ -22574,103 +24482,601 @@ case 0: message.edition = 0; break; + case "EDITION_LEGACY": + case 900: + message.edition = 900; + break; + case "EDITION_PROTO2": + case 998: + message.edition = 998; + break; + case "EDITION_PROTO3": + case 999: + message.edition = 999; + break; + case "EDITION_2023": + case 1000: + message.edition = 1000; + break; + case "EDITION_2024": + case 1001: + message.edition = 1001; + break; + case "EDITION_1_TEST_ONLY": + case 1: + message.edition = 1; + break; + case "EDITION_2_TEST_ONLY": + case 2: + message.edition = 2; + break; + case "EDITION_99997_TEST_ONLY": + case 99997: + message.edition = 99997; + break; + case "EDITION_99998_TEST_ONLY": + case 99998: + message.edition = 99998; + break; + case "EDITION_99999_TEST_ONLY": + case 99999: + message.edition = 99999; + break; + case "EDITION_MAX": + case 2147483647: + message.edition = 2147483647; + break; + } + if (object.value != null) + message.value = String(object.value); + return message; + }; + + /** + * Creates a plain object from an EditionDefault message. Also converts values to other types if specified. + * @function toObject + * @memberof google.protobuf.FieldOptions.EditionDefault + * @static + * @param {google.protobuf.FieldOptions.EditionDefault} message EditionDefault + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + EditionDefault.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.value = ""; + object.edition = options.enums === String ? "EDITION_UNKNOWN" : 0; + } + if (message.value != null && message.hasOwnProperty("value")) + object.value = message.value; + 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; + return object; + }; + + /** + * Converts this EditionDefault to JSON. + * @function toJSON + * @memberof google.protobuf.FieldOptions.EditionDefault + * @instance + * @returns {Object.} JSON object + */ + EditionDefault.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for EditionDefault + * @function getTypeUrl + * @memberof google.protobuf.FieldOptions.EditionDefault + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + EditionDefault.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.protobuf.FieldOptions.EditionDefault"; + }; + + 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.edition = 998; + message.editionRemoved = 998; break; case "EDITION_PROTO3": case 999: - message.edition = 999; + message.editionRemoved = 999; break; case "EDITION_2023": case 1000: - message.edition = 1000; + message.editionRemoved = 1000; break; case "EDITION_2024": case 1001: - message.edition = 1001; + message.editionRemoved = 1001; break; case "EDITION_1_TEST_ONLY": case 1: - message.edition = 1; + message.editionRemoved = 1; break; case "EDITION_2_TEST_ONLY": case 2: - message.edition = 2; + message.editionRemoved = 2; break; case "EDITION_99997_TEST_ONLY": case 99997: - message.edition = 99997; + message.editionRemoved = 99997; break; case "EDITION_99998_TEST_ONLY": case 99998: - message.edition = 99998; + message.editionRemoved = 99998; break; case "EDITION_99999_TEST_ONLY": case 99999: - message.edition = 99999; + message.editionRemoved = 99999; break; case "EDITION_MAX": case 2147483647: - message.edition = 2147483647; + message.editionRemoved = 2147483647; break; } - if (object.value != null) - message.value = String(object.value); return message; }; /** - * Creates a plain object from an EditionDefault message. Also converts values to other types if specified. + * Creates a plain object from a FeatureSupport message. Also converts values to other types if specified. * @function toObject - * @memberof google.protobuf.FieldOptions.EditionDefault + * @memberof google.protobuf.FieldOptions.FeatureSupport * @static - * @param {google.protobuf.FieldOptions.EditionDefault} message EditionDefault + * @param {google.protobuf.FieldOptions.FeatureSupport} message FeatureSupport * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - EditionDefault.toObject = function toObject(message, options) { + FeatureSupport.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.value = ""; - object.edition = options.enums === String ? "EDITION_UNKNOWN" : 0; - } - if (message.value != null && message.hasOwnProperty("value")) - object.value = message.value; - 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; + 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 EditionDefault to JSON. + * Converts this FeatureSupport to JSON. * @function toJSON - * @memberof google.protobuf.FieldOptions.EditionDefault + * @memberof google.protobuf.FieldOptions.FeatureSupport * @instance * @returns {Object.} JSON object */ - EditionDefault.prototype.toJSON = function toJSON() { + FeatureSupport.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for EditionDefault + * Gets the default type url for FeatureSupport * @function getTypeUrl - * @memberof google.protobuf.FieldOptions.EditionDefault + * @memberof google.protobuf.FieldOptions.FeatureSupport * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - EditionDefault.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + FeatureSupport.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.protobuf.FieldOptions.EditionDefault"; + return typeUrlPrefix + "/google.protobuf.FieldOptions.FeatureSupport"; }; - return EditionDefault; + return FeatureSupport; })(); return FieldOptions; @@ -22698,7 +25104,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]]; } @@ -22774,9 +25180,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(); @@ -22784,17 +25194,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; } } @@ -22825,11 +25235,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; } @@ -22837,7 +25251,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; } @@ -22853,14 +25267,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)) @@ -22869,7 +25287,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; @@ -22956,7 +25374,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]]; } @@ -23062,9 +25480,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(); @@ -23084,17 +25506,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; } } @@ -23125,9 +25547,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"; @@ -23138,7 +25564,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; } @@ -23146,7 +25572,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; } @@ -23162,9 +25588,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); @@ -23175,7 +25605,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)) @@ -23184,7 +25614,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; @@ -23265,6 +25695,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 */ @@ -23280,7 +25711,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]]; } @@ -23308,6 +25739,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 @@ -23346,6 +25785,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(); @@ -23376,9 +25817,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(); @@ -23390,21 +25835,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; } } @@ -23435,25 +25884,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; } @@ -23469,19 +25927,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"); @@ -23489,7 +25956,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; @@ -23514,6 +25981,7 @@ object.deprecated = false; object.features = null; object.debugRedact = false; + object.featureSupport = null; } if (message.deprecated != null && message.hasOwnProperty("deprecated")) object.deprecated = message.deprecated; @@ -23521,6 +25989,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) @@ -23584,7 +26054,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]]; } @@ -23700,9 +26170,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(); @@ -23710,7 +26184,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: { @@ -23720,7 +26194,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: { @@ -23736,7 +26210,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -23767,11 +26241,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; } @@ -23782,7 +26260,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; } @@ -23807,14 +26285,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); @@ -23825,7 +26307,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) @@ -23934,7 +26416,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]]; } @@ -24061,9 +26543,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(); @@ -24079,17 +26565,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: { @@ -24099,11 +26585,11 @@ break; } case 1049: { - message[".google.longrunning.operationInfo"] = $root.google.longrunning.OperationInfo.decode(reader, reader.uint32()); + message[".google.longrunning.operationInfo"] = $root.google.longrunning.OperationInfo.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -24134,9 +26620,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"; @@ -24150,7 +26640,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; } @@ -24158,13 +26648,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; } @@ -24176,7 +26666,7 @@ return ".google.api.methodSignature: string[] expected"; } if (message[".google.longrunning.operationInfo"] != null && message.hasOwnProperty(".google.longrunning.operationInfo")) { - var error = $root.google.longrunning.OperationInfo.verify(message[".google.longrunning.operationInfo"]); + var error = $root.google.longrunning.OperationInfo.verify(message[".google.longrunning.operationInfo"], long + 1); if (error) return ".google.longrunning.operationInfo." + error; } @@ -24191,9 +26681,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); @@ -24220,7 +26714,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)) @@ -24229,13 +26723,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"])) @@ -24247,7 +26741,7 @@ if (object[".google.longrunning.operationInfo"] != null) { if (typeof object[".google.longrunning.operationInfo"] !== "object") throw TypeError(".google.protobuf.MethodOptions..google.longrunning.operationInfo: object expected"); - message[".google.longrunning.operationInfo"] = $root.google.longrunning.OperationInfo.fromObject(object[".google.longrunning.operationInfo"]); + message[".google.longrunning.operationInfo"] = $root.google.longrunning.OperationInfo.fromObject(object[".google.longrunning.operationInfo"], long + 1); } return message; }; @@ -24371,7 +26865,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]]; } @@ -24497,9 +26991,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(); @@ -24509,7 +27007,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: { @@ -24537,7 +27035,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -24568,14 +27066,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; } @@ -24609,9 +27111,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)) @@ -24620,7 +27126,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) @@ -24765,7 +27271,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]]; } @@ -24838,9 +27344,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(); @@ -24856,7 +27366,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -24891,9 +27401,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") @@ -24909,9 +27423,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); @@ -24988,6 +27506,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 */ /** @@ -25001,7 +27521,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]]; } @@ -25053,6 +27573,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 @@ -25089,6 +27625,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; }; @@ -25116,9 +27656,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(); @@ -25149,8 +27693,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; } } @@ -25181,9 +27733,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: @@ -25239,6 +27795,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; }; @@ -25250,9 +27826,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: @@ -25378,6 +27958,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; }; @@ -25401,6 +28029,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; @@ -25414,6 +28044,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; }; @@ -25541,6 +28175,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; })(); @@ -25567,7 +28426,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]]; } @@ -25653,9 +28512,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(); @@ -25665,7 +28528,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: { @@ -25677,7 +28540,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -25708,14 +28571,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; } @@ -25725,6 +28592,7 @@ default: return "minimumEdition: enum value expected"; case 0: + case 900: case 998: case 999: case 1000: @@ -25742,6 +28610,7 @@ default: return "maximumEdition: enum value expected"; case 0: + case 900: case 998: case 999: case 1000: @@ -25765,9 +28634,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)) @@ -25776,7 +28649,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) { @@ -25790,6 +28663,10 @@ case 0: message.minimumEdition = 0; break; + case "EDITION_LEGACY": + case 900: + message.minimumEdition = 900; + break; case "EDITION_PROTO2": case 998: message.minimumEdition = 998; @@ -25842,6 +28719,10 @@ case 0: message.maximumEdition = 0; break; + case "EDITION_LEGACY": + case 900: + message.maximumEdition = 900; + break; case "EDITION_PROTO2": case 998: message.maximumEdition = 998; @@ -25950,7 +28831,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 */ /** @@ -25964,7 +28846,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]]; } @@ -25977,12 +28859,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. @@ -26008,10 +28898,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; }; @@ -26039,9 +28931,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(); @@ -26052,12 +28948,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; } } @@ -26088,14 +28988,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: @@ -26108,10 +29013,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; }; @@ -26124,9 +29034,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: @@ -26139,6 +29053,10 @@ case 0: message.edition = 0; break; + case "EDITION_LEGACY": + case 900: + message.edition = 900; + break; case "EDITION_PROTO2": case 998: message.edition = 998; @@ -26180,10 +29098,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; }; @@ -26202,13 +29125,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; }; @@ -26265,7 +29191,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]]; } @@ -26331,9 +29257,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(); @@ -26343,11 +29273,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; } } @@ -26378,14 +29308,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; } @@ -26401,9 +29335,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)) @@ -26412,7 +29350,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; @@ -26494,7 +29432,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]]; } @@ -26608,9 +29546,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(); @@ -26654,7 +29596,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -26685,9 +29627,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"; @@ -26726,9 +29672,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)) @@ -26855,7 +29805,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]]; } @@ -26921,9 +29871,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(); @@ -26933,11 +29887,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; } } @@ -26968,14 +29922,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; } @@ -26991,9 +29949,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)) @@ -27002,7 +29964,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; @@ -27082,7 +30044,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]]; } @@ -27191,9 +30153,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(); @@ -27228,7 +30194,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -27259,9 +30225,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"; @@ -27298,9 +30268,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)) @@ -27423,6 +30397,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() { /** @@ -27444,7 +30434,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]]; } @@ -27519,9 +30509,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(); @@ -27537,7 +30531,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -27568,9 +30562,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"; @@ -27588,9 +30586,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) @@ -27687,7 +30689,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]]; } @@ -27762,9 +30764,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(); @@ -27780,7 +30786,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -27811,9 +30817,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"; @@ -27831,9 +30841,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) @@ -27930,7 +30944,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]]; } @@ -28005,9 +31019,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(); @@ -28023,7 +31041,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -28054,9 +31072,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"; @@ -28074,9 +31096,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); @@ -28166,7 +31192,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]]; } @@ -28221,9 +31247,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(); @@ -28231,7 +31261,7 @@ break; switch (tag >>> 3) { default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -28262,9 +31292,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; }; @@ -28276,9 +31310,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(); }; @@ -28403,7 +31441,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]]; } @@ -28489,9 +31527,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(); @@ -28509,11 +31551,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; } } @@ -28544,9 +31586,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"; @@ -28557,7 +31603,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; } @@ -28573,9 +31619,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; @@ -28588,7 +31638,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; @@ -28890,7 +31940,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]]; } @@ -29009,9 +32059,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.longrunning.Operation(); while (reader.pos < end) { var tag = reader.uint32(); @@ -29023,7 +32077,7 @@ break; } case 2: { - message.metadata = $root.google.protobuf.Any.decode(reader, reader.uint32()); + message.metadata = $root.google.protobuf.Any.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -29031,15 +32085,15 @@ break; } case 4: { - message.error = $root.google.rpc.Status.decode(reader, reader.uint32()); + message.error = $root.google.rpc.Status.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.response = $root.google.protobuf.Any.decode(reader, reader.uint32()); + message.response = $root.google.protobuf.Any.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -29070,15 +32124,19 @@ * @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"; var properties = {}; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.google.protobuf.Any.verify(message.metadata); + var error = $root.google.protobuf.Any.verify(message.metadata, long + 1); if (error) return "metadata." + error; } @@ -29088,7 +32146,7 @@ if (message.error != null && message.hasOwnProperty("error")) { properties.result = 1; { - var error = $root.google.rpc.Status.verify(message.error); + var error = $root.google.rpc.Status.verify(message.error, long + 1); if (error) return "error." + error; } @@ -29098,7 +32156,7 @@ return "result: multiple values"; properties.result = 1; { - var error = $root.google.protobuf.Any.verify(message.response); + var error = $root.google.protobuf.Any.verify(message.response, long + 1); if (error) return "response." + error; } @@ -29114,28 +32172,32 @@ * @param {Object.} object Plain object * @returns {google.longrunning.Operation} Operation */ - Operation.fromObject = function fromObject(object) { + Operation.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.Operation) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.Operation(); if (object.name != null) message.name = String(object.name); if (object.metadata != null) { if (typeof object.metadata !== "object") throw TypeError(".google.longrunning.Operation.metadata: object expected"); - message.metadata = $root.google.protobuf.Any.fromObject(object.metadata); + message.metadata = $root.google.protobuf.Any.fromObject(object.metadata, long + 1); } if (object.done != null) message.done = Boolean(object.done); if (object.error != null) { if (typeof object.error !== "object") throw TypeError(".google.longrunning.Operation.error: object expected"); - message.error = $root.google.rpc.Status.fromObject(object.error); + message.error = $root.google.rpc.Status.fromObject(object.error, long + 1); } if (object.response != null) { if (typeof object.response !== "object") throw TypeError(".google.longrunning.Operation.response: object expected"); - message.response = $root.google.protobuf.Any.fromObject(object.response); + message.response = $root.google.protobuf.Any.fromObject(object.response, long + 1); } return message; }; @@ -29226,7 +32288,7 @@ function GetOperationRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -29291,9 +32353,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetOperationRequest.decode = function decode(reader, length, error) { + GetOperationRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.GetOperationRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -29305,7 +32371,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -29336,9 +32402,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetOperationRequest.verify = function verify(message) { + GetOperationRequest.verify = function verify(message, long) { if (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"; @@ -29353,9 +32423,13 @@ * @param {Object.} object Plain object * @returns {google.longrunning.GetOperationRequest} GetOperationRequest */ - GetOperationRequest.fromObject = function fromObject(object) { + GetOperationRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.GetOperationRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.GetOperationRequest(); if (object.name != null) message.name = String(object.name); @@ -29434,7 +32508,7 @@ function ListOperationsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -29529,9 +32603,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListOperationsRequest.decode = function decode(reader, length, error) { + ListOperationsRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.ListOperationsRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -29555,7 +32633,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -29586,9 +32664,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListOperationsRequest.verify = function verify(message) { + ListOperationsRequest.verify = function verify(message, long) { if (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"; @@ -29612,9 +32694,13 @@ * @param {Object.} object Plain object * @returns {google.longrunning.ListOperationsRequest} ListOperationsRequest */ - ListOperationsRequest.fromObject = function fromObject(object) { + ListOperationsRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.ListOperationsRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.ListOperationsRequest(); if (object.name != null) message.name = String(object.name); @@ -29708,7 +32794,7 @@ this.operations = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -29784,9 +32870,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListOperationsResponse.decode = function decode(reader, length, error) { + ListOperationsResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.ListOperationsResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -29796,7 +32886,7 @@ case 1: { if (!(message.operations && message.operations.length)) message.operations = []; - message.operations.push($root.google.longrunning.Operation.decode(reader, reader.uint32())); + message.operations.push($root.google.longrunning.Operation.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -29804,7 +32894,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -29835,14 +32925,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListOperationsResponse.verify = function verify(message) { + ListOperationsResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.operations != null && message.hasOwnProperty("operations")) { if (!Array.isArray(message.operations)) return "operations: array expected"; for (var i = 0; i < message.operations.length; ++i) { - var error = $root.google.longrunning.Operation.verify(message.operations[i]); + var error = $root.google.longrunning.Operation.verify(message.operations[i], long + 1); if (error) return "operations." + error; } @@ -29861,9 +32955,13 @@ * @param {Object.} object Plain object * @returns {google.longrunning.ListOperationsResponse} ListOperationsResponse */ - ListOperationsResponse.fromObject = function fromObject(object) { + ListOperationsResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.ListOperationsResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.ListOperationsResponse(); if (object.operations) { if (!Array.isArray(object.operations)) @@ -29872,7 +32970,7 @@ for (var i = 0; i < object.operations.length; ++i) { if (typeof object.operations[i] !== "object") throw TypeError(".google.longrunning.ListOperationsResponse.operations: object expected"); - message.operations[i] = $root.google.longrunning.Operation.fromObject(object.operations[i]); + message.operations[i] = $root.google.longrunning.Operation.fromObject(object.operations[i], long + 1); } } if (object.nextPageToken != null) @@ -29956,7 +33054,7 @@ function CancelOperationRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -30021,9 +33119,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CancelOperationRequest.decode = function decode(reader, length, error) { + CancelOperationRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.CancelOperationRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -30035,7 +33137,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -30066,9 +33168,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CancelOperationRequest.verify = function verify(message) { + CancelOperationRequest.verify = function verify(message, long) { if (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"; @@ -30083,9 +33189,13 @@ * @param {Object.} object Plain object * @returns {google.longrunning.CancelOperationRequest} CancelOperationRequest */ - CancelOperationRequest.fromObject = function fromObject(object) { + CancelOperationRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.CancelOperationRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.CancelOperationRequest(); if (object.name != null) message.name = String(object.name); @@ -30161,7 +33271,7 @@ function DeleteOperationRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -30226,9 +33336,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DeleteOperationRequest.decode = function decode(reader, length, error) { + DeleteOperationRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.DeleteOperationRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -30240,7 +33354,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -30271,9 +33385,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DeleteOperationRequest.verify = function verify(message) { + DeleteOperationRequest.verify = function verify(message, long) { if (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"; @@ -30288,9 +33406,13 @@ * @param {Object.} object Plain object * @returns {google.longrunning.DeleteOperationRequest} DeleteOperationRequest */ - DeleteOperationRequest.fromObject = function fromObject(object) { + DeleteOperationRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.DeleteOperationRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.DeleteOperationRequest(); if (object.name != null) message.name = String(object.name); @@ -30367,7 +33489,7 @@ function WaitOperationRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -30442,9 +33564,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - WaitOperationRequest.decode = function decode(reader, length, error) { + WaitOperationRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.WaitOperationRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -30456,11 +33582,11 @@ break; } case 2: { - message.timeout = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.timeout = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -30491,14 +33617,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - WaitOperationRequest.verify = function verify(message) { + WaitOperationRequest.verify = function verify(message, long) { if (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.timeout != null && message.hasOwnProperty("timeout")) { - var error = $root.google.protobuf.Duration.verify(message.timeout); + var error = $root.google.protobuf.Duration.verify(message.timeout, long + 1); if (error) return "timeout." + error; } @@ -30513,16 +33643,20 @@ * @param {Object.} object Plain object * @returns {google.longrunning.WaitOperationRequest} WaitOperationRequest */ - WaitOperationRequest.fromObject = function fromObject(object) { + WaitOperationRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.WaitOperationRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.WaitOperationRequest(); if (object.name != null) message.name = String(object.name); if (object.timeout != null) { if (typeof object.timeout !== "object") throw TypeError(".google.longrunning.WaitOperationRequest.timeout: object expected"); - message.timeout = $root.google.protobuf.Duration.fromObject(object.timeout); + message.timeout = $root.google.protobuf.Duration.fromObject(object.timeout, long + 1); } return message; }; @@ -30601,7 +33735,7 @@ function OperationInfo(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -30676,9 +33810,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OperationInfo.decode = function decode(reader, length, error) { + OperationInfo.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.OperationInfo(); while (reader.pos < end) { var tag = reader.uint32(); @@ -30694,7 +33832,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -30725,9 +33863,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - OperationInfo.verify = function verify(message) { + OperationInfo.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.responseType != null && message.hasOwnProperty("responseType")) if (!$util.isString(message.responseType)) return "responseType: string expected"; @@ -30745,9 +33887,13 @@ * @param {Object.} object Plain object * @returns {google.longrunning.OperationInfo} OperationInfo */ - OperationInfo.fromObject = function fromObject(object) { + OperationInfo.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.OperationInfo) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.OperationInfo(); if (object.responseType != null) message.responseType = String(object.responseType); diff --git a/packages/google-cloud-storagebatchoperations/protos/protos.json b/packages/google-cloud-storagebatchoperations/protos/protos.json index 00ce8bf37e47..5453a3ed0651 100644 --- a/packages/google-cloud-storagebatchoperations/protos/protos.json +++ b/packages/google-cloud-storagebatchoperations/protos/protos.json @@ -1193,8 +1193,7 @@ "java_multiple_files": true, "java_outer_classname": "ResourceProto", "java_package": "com.google.api", - "objc_class_prefix": "GAPI", - "cc_enable_arenas": true + "objc_class_prefix": "GAPI" }, "nested": { "http": { @@ -1318,6 +1317,10 @@ "rule": "repeated", "type": "ClientLibraryDestination", "id": 2 + }, + "selectiveGapicGeneration": { + "type": "SelectiveGapicGeneration", + "id": 3 } } }, @@ -1458,6 +1461,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 + } + } } } }, @@ -1515,6 +1540,11 @@ "common": { "type": "CommonLanguageSettings", "id": 1 + }, + "renamedServices": { + "keyType": "string", + "type": "string", + "id": 2 } } }, @@ -1576,6 +1606,19 @@ "PACKAGE_MANAGER": 20 } }, + "SelectiveGapicGeneration": { + "fields": { + "methods": { + "rule": "repeated", + "type": "string", + "id": 1 + }, + "generateOmittedAsInternal": { + "type": "bool", + "id": 2 + } + } + }, "LaunchStage": { "values": { "LAUNCH_STAGE_UNSPECIFIED": 0, @@ -1620,6 +1663,11 @@ "format": { "type": "Format", "id": 1 + }, + "referencedTypes": { + "rule": "repeated", + "type": "TypeReference", + "id": 2 } }, "nested": { @@ -1634,6 +1682,14 @@ } } }, + "TypeReference": { + "fields": { + "typeName": { + "type": "string", + "id": 1 + } + } + }, "resourceReference": { "type": "google.api.ResourceReference", "id": 1055, @@ -1732,12 +1788,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, @@ -1776,6 +1839,11 @@ "type": "int32", "id": 11 }, + "optionDependency": { + "rule": "repeated", + "type": "string", + "id": 15 + }, "messageType": { "rule": "repeated", "type": "DescriptorProto", @@ -1864,6 +1932,10 @@ "rule": "repeated", "type": "string", "id": 10 + }, + "visibility": { + "type": "SymbolVisibility", + "id": 11 } }, "nested": { @@ -2089,6 +2161,10 @@ "rule": "repeated", "type": "string", "id": 5 + }, + "visibility": { + "type": "SymbolVisibility", + "id": 6 } }, "nested": { @@ -2139,7 +2215,14 @@ "type": "ServiceOptions", "id": 3 } - } + }, + "reserved": [ + [ + 4, + 4 + ], + "stream" + ] }, "MethodDescriptorProto": { "edition": "proto2", @@ -2303,6 +2386,7 @@ 42, 42 ], + "php_generic_services", [ 38, 38 @@ -2438,7 +2522,8 @@ "type": "bool", "id": 10, "options": { - "default": false + "default": false, + "deprecated": true } }, "debugRedact": { @@ -2466,6 +2551,10 @@ "type": "FeatureSet", "id": 21 }, + "featureSupport": { + "type": "FeatureSupport", + "id": 22 + }, "uninterpretedOption": { "rule": "repeated", "type": "UninterpretedOption", @@ -2535,6 +2624,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 + } + } } } }, @@ -2623,6 +2732,10 @@ "default": false } }, + "featureSupport": { + "type": "FieldOptions.FeatureSupport", + "id": 4 + }, "uninterpretedOption": { "rule": "repeated", "type": "UninterpretedOption", @@ -2765,6 +2878,7 @@ "options": { "retention": "RETENTION_RUNTIME", "targets": "TARGET_TYPE_FILE", + "feature_support.edition_introduced": "EDITION_2023", "edition_defaults.edition": "EDITION_2023", "edition_defaults.value": "EXPLICIT" } @@ -2775,6 +2889,7 @@ "options": { "retention": "RETENTION_RUNTIME", "targets": "TARGET_TYPE_FILE", + "feature_support.edition_introduced": "EDITION_2023", "edition_defaults.edition": "EDITION_PROTO3", "edition_defaults.value": "OPEN" } @@ -2785,6 +2900,7 @@ "options": { "retention": "RETENTION_RUNTIME", "targets": "TARGET_TYPE_FILE", + "feature_support.edition_introduced": "EDITION_2023", "edition_defaults.edition": "EDITION_PROTO3", "edition_defaults.value": "PACKED" } @@ -2795,6 +2911,7 @@ "options": { "retention": "RETENTION_RUNTIME", "targets": "TARGET_TYPE_FILE", + "feature_support.edition_introduced": "EDITION_2023", "edition_defaults.edition": "EDITION_PROTO3", "edition_defaults.value": "VERIFY" } @@ -2805,7 +2922,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" } }, @@ -2815,27 +2933,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, @@ -2880,7 +3009,13 @@ "UTF8_VALIDATION_UNKNOWN": 0, "VERIFY": 2, "NONE": 3 - } + }, + "reserved": [ + [ + 1, + 1 + ] + ] }, "MessageEncoding": { "values": { @@ -2895,6 +3030,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 + } + } + } } } }, @@ -2922,11 +3084,26 @@ "type": "Edition", "id": 3 }, - "features": { + "overridableFeatures": { "type": "FeatureSet", - "id": 2 + "id": 4 + }, + "fixedFeatures": { + "type": "FeatureSet", + "id": 5 } - } + }, + "reserved": [ + [ + 1, + 1 + ], + [ + 2, + 2 + ], + "features" + ] } } }, @@ -2939,6 +3116,12 @@ "id": 1 } }, + "extensions": [ + [ + 536000000, + 536000000 + ] + ], "nested": { "Location": { "fields": { @@ -3024,6 +3207,14 @@ } } }, + "SymbolVisibility": { + "edition": "proto2", + "values": { + "VISIBILITY_UNSET": 0, + "VISIBILITY_LOCAL": 1, + "VISIBILITY_EXPORT": 2 + } + }, "Duration": { "fields": { "seconds": { @@ -3123,6 +3314,7 @@ "java_multiple_files": true, "java_outer_classname": "OperationsProto", "java_package": "com.google.longrunning", + "objc_class_prefix": "GLRUN", "php_namespace": "Google\\LongRunning" }, "nested": { diff --git a/packages/google-cloud-storagebatchoperations/src/v1/index.ts b/packages/google-cloud-storagebatchoperations/src/v1/index.ts index 8c340f64ce4b..5614cf942a28 100644 --- a/packages/google-cloud-storagebatchoperations/src/v1/index.ts +++ b/packages/google-cloud-storagebatchoperations/src/v1/index.ts @@ -16,4 +16,4 @@ // ** https://github.com/googleapis/gapic-generator-typescript ** // ** All changes to this file may be overwritten. ** -export {StorageBatchOperationsClient} from './storage_batch_operations_client'; +export { StorageBatchOperationsClient } from './storage_batch_operations_client'; diff --git a/packages/google-cloud-storagebatchoperations/src/v1/storage_batch_operations_client.ts b/packages/google-cloud-storagebatchoperations/src/v1/storage_batch_operations_client.ts index e22956e87a2c..8e73d0aa080c 100644 --- a/packages/google-cloud-storagebatchoperations/src/v1/storage_batch_operations_client.ts +++ b/packages/google-cloud-storagebatchoperations/src/v1/storage_batch_operations_client.ts @@ -18,11 +18,22 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, GrpcClientOptions, LROperation, PaginationCallback, GaxCall, LocationsClient, LocationProtos} from 'google-gax'; -import {Transform} from 'stream'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + GrpcClientOptions, + LROperation, + 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 @@ -47,7 +58,7 @@ export class StorageBatchOperationsClient { 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('storagebatchoperations'); @@ -60,11 +71,11 @@ export class StorageBatchOperationsClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; + pathTemplates: { [name: string]: gax.PathTemplate }; operationsClient: gax.OperationsClient; - storageBatchOperationsStub?: Promise<{[name: string]: Function}>; + storageBatchOperationsStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of StorageBatchOperationsClient. @@ -105,21 +116,43 @@ export class StorageBatchOperationsClient { * const client = new StorageBatchOperationsClient({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 StorageBatchOperationsClient; - 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 StorageBatchOperationsClient; + 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 = 'storagebatchoperations.' + 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; @@ -144,7 +177,7 @@ export class StorageBatchOperationsClient { 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; @@ -158,15 +191,11 @@ export class StorageBatchOperationsClient { } 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 { @@ -188,16 +217,16 @@ export class StorageBatchOperationsClient { // Create useful helper objects for these. this.pathTemplates = { bucketOperationPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/jobs/{job}/bucketOperations/{bucket_operation}' + 'projects/{project}/locations/{location}/jobs/{job}/bucketOperations/{bucket_operation}', ), jobPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/jobs/{job}' + 'projects/{project}/locations/{location}/jobs/{job}', ), locationPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}' + 'projects/{project}/locations/{location}', ), projectPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}' + 'projects/{project}', ), }; @@ -205,10 +234,16 @@ export class StorageBatchOperationsClient { // (e.g. 50 results at a time, with tokens to get subsequent // pages). Denote the keys used for pagination and results. this.descriptors.page = { - listJobs: - new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'jobs'), - listBucketOperations: - new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'bucketOperations') + listJobs: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'jobs', + ), + listBucketOperations: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'bucketOperations', + ), }; const protoFilesRoot = this._gaxModule.protobufFromJSON(jsonProtos); @@ -217,29 +252,63 @@ export class StorageBatchOperationsClient { // rather than holding a request open. const lroOptions: GrpcClientOptions = { auth: this.auth, - grpc: 'grpc' in this._gaxGrpc ? this._gaxGrpc.grpc : undefined + grpc: 'grpc' in this._gaxGrpc ? this._gaxGrpc.grpc : undefined, }; if (opts.fallback) { lroOptions.protoJson = protoFilesRoot; - lroOptions.httpRules = [{selector: 'google.cloud.location.Locations.GetLocation',get: '/v1/{name=projects/*/locations/*}',},{selector: 'google.cloud.location.Locations.ListLocations',get: '/v1/{name=projects/*}/locations',},{selector: 'google.longrunning.Operations.CancelOperation',post: '/v1/{name=projects/*/locations/*/operations/*}:cancel',body: '*',},{selector: 'google.longrunning.Operations.DeleteOperation',delete: '/v1/{name=projects/*/locations/*/operations/*}',},{selector: 'google.longrunning.Operations.GetOperation',get: '/v1/{name=projects/*/locations/*/operations/*}',},{selector: 'google.longrunning.Operations.ListOperations',get: '/v1/{name=projects/*/locations/*}/operations',}]; + lroOptions.httpRules = [ + { + selector: 'google.cloud.location.Locations.GetLocation', + get: '/v1/{name=projects/*/locations/*}', + }, + { + selector: 'google.cloud.location.Locations.ListLocations', + get: '/v1/{name=projects/*}/locations', + }, + { + selector: 'google.longrunning.Operations.CancelOperation', + post: '/v1/{name=projects/*/locations/*/operations/*}:cancel', + body: '*', + }, + { + selector: 'google.longrunning.Operations.DeleteOperation', + delete: '/v1/{name=projects/*/locations/*/operations/*}', + }, + { + selector: 'google.longrunning.Operations.GetOperation', + get: '/v1/{name=projects/*/locations/*/operations/*}', + }, + { + selector: 'google.longrunning.Operations.ListOperations', + get: '/v1/{name=projects/*/locations/*}/operations', + }, + ]; } - this.operationsClient = this._gaxModule.lro(lroOptions).operationsClient(opts); + this.operationsClient = this._gaxModule + .lro(lroOptions) + .operationsClient(opts); const createJobResponse = protoFilesRoot.lookup( - '.google.cloud.storagebatchoperations.v1.Job') as gax.protobuf.Type; + '.google.cloud.storagebatchoperations.v1.Job', + ) as gax.protobuf.Type; const createJobMetadata = protoFilesRoot.lookup( - '.google.cloud.storagebatchoperations.v1.OperationMetadata') as gax.protobuf.Type; + '.google.cloud.storagebatchoperations.v1.OperationMetadata', + ) as gax.protobuf.Type; this.descriptors.longrunning = { createJob: new this._gaxModule.LongrunningDescriptor( this.operationsClient, createJobResponse.decode.bind(createJobResponse), - createJobMetadata.decode.bind(createJobMetadata)) + createJobMetadata.decode.bind(createJobMetadata), + ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.storagebatchoperations.v1.StorageBatchOperations', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.storagebatchoperations.v1.StorageBatchOperations', + 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 @@ -270,28 +339,42 @@ export class StorageBatchOperationsClient { // Put together the "service stub" for // google.cloud.storagebatchoperations.v1.StorageBatchOperations. this.storageBatchOperationsStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.storagebatchoperations.v1.StorageBatchOperations') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (this._protos as any).google.cloud.storagebatchoperations.v1.StorageBatchOperations, - this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.storagebatchoperations.v1.StorageBatchOperations', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any + (this._protos as any).google.cloud.storagebatchoperations.v1 + .StorageBatchOperations, + 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 storageBatchOperationsStubMethods = - ['listJobs', 'getJob', 'createJob', 'deleteJob', 'cancelJob', 'listBucketOperations', 'getBucketOperation']; + const storageBatchOperationsStubMethods = [ + 'listJobs', + 'getJob', + 'createJob', + 'deleteJob', + 'cancelJob', + 'listBucketOperations', + 'getBucketOperation', + ]; for (const methodName of storageBatchOperationsStubMethods) { const callPromise = this.storageBatchOperationsStub.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] || @@ -301,7 +384,7 @@ export class StorageBatchOperationsClient { callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -316,8 +399,14 @@ export class StorageBatchOperationsClient { * @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 'storagebatchoperations.googleapis.com'; } @@ -328,8 +417,14 @@ export class StorageBatchOperationsClient { * @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 'storagebatchoperations.googleapis.com'; } @@ -360,9 +455,7 @@ export class StorageBatchOperationsClient { * @returns {string[]} List of default scopes. */ static get scopes() { - return [ - 'https://www.googleapis.com/auth/cloud-platform' - ]; + return ['https://www.googleapis.com/auth/cloud-platform']; } getProjectId(): Promise; @@ -371,8 +464,9 @@ export class StorageBatchOperationsClient { * 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; @@ -383,610 +477,887 @@ export class StorageBatchOperationsClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Gets a batch job. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. `name` of the job to retrieve. - * Format: projects/{project_id}/locations/global/jobs/{job_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.storagebatchoperations.v1.Job|Job}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/storage_batch_operations.get_job.js - * region_tag:storagebatchoperations_v1_generated_StorageBatchOperations_GetJob_async - */ + /** + * Gets a batch job. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. `name` of the job to retrieve. + * Format: projects/{project_id}/locations/global/jobs/{job_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.storagebatchoperations.v1.Job|Job}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/storage_batch_operations.get_job.js + * region_tag:storagebatchoperations_v1_generated_StorageBatchOperations_GetJob_async + */ getJob( - request?: protos.google.cloud.storagebatchoperations.v1.IGetJobRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.storagebatchoperations.v1.IJob, - protos.google.cloud.storagebatchoperations.v1.IGetJobRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.storagebatchoperations.v1.IGetJobRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.storagebatchoperations.v1.IJob, + protos.google.cloud.storagebatchoperations.v1.IGetJobRequest | undefined, + {} | undefined, + ] + >; getJob( - request: protos.google.cloud.storagebatchoperations.v1.IGetJobRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.storagebatchoperations.v1.IJob, - protos.google.cloud.storagebatchoperations.v1.IGetJobRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storagebatchoperations.v1.IGetJobRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.storagebatchoperations.v1.IJob, + | protos.google.cloud.storagebatchoperations.v1.IGetJobRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getJob( - request: protos.google.cloud.storagebatchoperations.v1.IGetJobRequest, - callback: Callback< - protos.google.cloud.storagebatchoperations.v1.IJob, - protos.google.cloud.storagebatchoperations.v1.IGetJobRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storagebatchoperations.v1.IGetJobRequest, + callback: Callback< + protos.google.cloud.storagebatchoperations.v1.IJob, + | protos.google.cloud.storagebatchoperations.v1.IGetJobRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getJob( - request?: protos.google.cloud.storagebatchoperations.v1.IGetJobRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.storagebatchoperations.v1.IJob, - protos.google.cloud.storagebatchoperations.v1.IGetJobRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.storagebatchoperations.v1.IGetJobRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.storagebatchoperations.v1.IJob, - protos.google.cloud.storagebatchoperations.v1.IGetJobRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.storagebatchoperations.v1.IJob, - protos.google.cloud.storagebatchoperations.v1.IGetJobRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.storagebatchoperations.v1.IGetJobRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.storagebatchoperations.v1.IJob, + | protos.google.cloud.storagebatchoperations.v1.IGetJobRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.storagebatchoperations.v1.IJob, + protos.google.cloud.storagebatchoperations.v1.IGetJobRequest | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('getJob request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.storagebatchoperations.v1.IJob, - protos.google.cloud.storagebatchoperations.v1.IGetJobRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.storagebatchoperations.v1.IJob, + | protos.google.cloud.storagebatchoperations.v1.IGetJobRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('getJob response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.getJob(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.storagebatchoperations.v1.IJob, - protos.google.cloud.storagebatchoperations.v1.IGetJobRequest|undefined, - {}|undefined - ]) => { - this._log.info('getJob response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .getJob(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.storagebatchoperations.v1.IJob, + ( + | protos.google.cloud.storagebatchoperations.v1.IGetJobRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('getJob response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails 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 batch job. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The `name` of the job to delete. - * Format: projects/{project_id}/locations/global/jobs/{job_id} . - * @param {string} [request.requestId] - * Optional. An optional request ID to identify requests. Specify a unique - * request ID in case you need to retry your request. Requests with same - * `request_id` will be ignored for at least 60 minutes since the first - * request. The request ID must be a valid UUID with the exception that zero - * UUID is not supported (00000000-0000-0000-0000-000000000000). - * @param {boolean} [request.force] - * Optional. If set to true, any child bucket operations of the job will also - * be deleted. Highly recommended to be set to true by all clients. Users - * cannot mutate bucket operations directly, so only the jobs.delete - * permission is required to delete a job (and its child bucket operations). - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for 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/storage_batch_operations.delete_job.js - * region_tag:storagebatchoperations_v1_generated_StorageBatchOperations_DeleteJob_async - */ + /** + * Deletes a batch job. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The `name` of the job to delete. + * Format: projects/{project_id}/locations/global/jobs/{job_id} . + * @param {string} [request.requestId] + * Optional. An optional request ID to identify requests. Specify a unique + * request ID in case you need to retry your request. Requests with same + * `request_id` will be ignored for at least 60 minutes since the first + * request. The request ID must be a valid UUID with the exception that zero + * UUID is not supported (00000000-0000-0000-0000-000000000000). + * @param {boolean} [request.force] + * Optional. If set to true, any child bucket operations of the job will also + * be deleted. Highly recommended to be set to true by all clients. Users + * cannot mutate bucket operations directly, so only the jobs.delete + * permission is required to delete a job (and its child bucket operations). + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for 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/storage_batch_operations.delete_job.js + * region_tag:storagebatchoperations_v1_generated_StorageBatchOperations_DeleteJob_async + */ deleteJob( - request?: protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest, - options?: CallOptions): - Promise<[ - protos.google.protobuf.IEmpty, - protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.protobuf.IEmpty, + ( + | protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest + | undefined + ), + {} | undefined, + ] + >; deleteJob( - request: protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest, - options: CallOptions, - callback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest, + options: CallOptions, + callback: Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest + | null + | undefined, + {} | null | undefined + >, + ): void; deleteJob( - request: protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest, - callback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest, + callback: Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest + | null + | undefined, + {} | null | undefined + >, + ): void; deleteJob( - request?: protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.protobuf.IEmpty, - protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.protobuf.IEmpty, - protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.protobuf.IEmpty, + ( + | protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('deleteJob request %j', request); - const wrappedCallback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('deleteJob response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.deleteJob(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.protobuf.IEmpty, - protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest|undefined, - {}|undefined - ]) => { - this._log.info('deleteJob response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .deleteJob(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.protobuf.IEmpty, + ( + | protos.google.cloud.storagebatchoperations.v1.IDeleteJobRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('deleteJob response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails 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 a batch job. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The `name` of the job to cancel. - * Format: projects/{project_id}/locations/global/jobs/{job_id}. - * @param {string} [request.requestId] - * Optional. An optional request ID to identify requests. Specify a unique - * request ID in case you need to retry your request. Requests with same - * `request_id` will be ignored for at least 60 minutes since the first - * request. The request ID must be a valid UUID with the exception that zero - * UUID is not supported (00000000-0000-0000-0000-000000000000). - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.storagebatchoperations.v1.CancelJobResponse|CancelJobResponse}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/storage_batch_operations.cancel_job.js - * region_tag:storagebatchoperations_v1_generated_StorageBatchOperations_CancelJob_async - */ + /** + * Cancels a batch job. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The `name` of the job to cancel. + * Format: projects/{project_id}/locations/global/jobs/{job_id}. + * @param {string} [request.requestId] + * Optional. An optional request ID to identify requests. Specify a unique + * request ID in case you need to retry your request. Requests with same + * `request_id` will be ignored for at least 60 minutes since the first + * request. The request ID must be a valid UUID with the exception that zero + * UUID is not supported (00000000-0000-0000-0000-000000000000). + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.storagebatchoperations.v1.CancelJobResponse|CancelJobResponse}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/storage_batch_operations.cancel_job.js + * region_tag:storagebatchoperations_v1_generated_StorageBatchOperations_CancelJob_async + */ cancelJob( - request?: protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.storagebatchoperations.v1.ICancelJobResponse, - protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.storagebatchoperations.v1.ICancelJobResponse, + ( + | protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest + | undefined + ), + {} | undefined, + ] + >; cancelJob( - request: protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.storagebatchoperations.v1.ICancelJobResponse, - protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.storagebatchoperations.v1.ICancelJobResponse, + | protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest + | null + | undefined, + {} | null | undefined + >, + ): void; cancelJob( - request: protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest, - callback: Callback< - protos.google.cloud.storagebatchoperations.v1.ICancelJobResponse, - protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest, + callback: Callback< + protos.google.cloud.storagebatchoperations.v1.ICancelJobResponse, + | protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest + | null + | undefined, + {} | null | undefined + >, + ): void; cancelJob( - request?: protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.storagebatchoperations.v1.ICancelJobResponse, - protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.storagebatchoperations.v1.ICancelJobResponse, - protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.storagebatchoperations.v1.ICancelJobResponse, - protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.storagebatchoperations.v1.ICancelJobResponse, + | protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.storagebatchoperations.v1.ICancelJobResponse, + ( + | protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('cancelJob request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.storagebatchoperations.v1.ICancelJobResponse, - protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.storagebatchoperations.v1.ICancelJobResponse, + | protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('cancelJob response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.cancelJob(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.storagebatchoperations.v1.ICancelJobResponse, - protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest|undefined, - {}|undefined - ]) => { - this._log.info('cancelJob response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .cancelJob(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.storagebatchoperations.v1.ICancelJobResponse, + ( + | protos.google.cloud.storagebatchoperations.v1.ICancelJobRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('cancelJob response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails 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 a BucketOperation. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. `name` of the bucket operation to retrieve. - * Format: - * projects/{project_id}/locations/global/jobs/{job_id}/bucketOperations/{bucket_operation_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.storagebatchoperations.v1.BucketOperation|BucketOperation}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/storage_batch_operations.get_bucket_operation.js - * region_tag:storagebatchoperations_v1_generated_StorageBatchOperations_GetBucketOperation_async - */ + /** + * Gets a BucketOperation. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. `name` of the bucket operation to retrieve. + * Format: + * projects/{project_id}/locations/global/jobs/{job_id}/bucketOperations/{bucket_operation_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.storagebatchoperations.v1.BucketOperation|BucketOperation}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/storage_batch_operations.get_bucket_operation.js + * region_tag:storagebatchoperations_v1_generated_StorageBatchOperations_GetBucketOperation_async + */ getBucketOperation( - request?: protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.storagebatchoperations.v1.IBucketOperation, - protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.storagebatchoperations.v1.IBucketOperation, + ( + | protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest + | undefined + ), + {} | undefined, + ] + >; getBucketOperation( - request: protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.storagebatchoperations.v1.IBucketOperation, - protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.storagebatchoperations.v1.IBucketOperation, + | protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getBucketOperation( - request: protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest, - callback: Callback< - protos.google.cloud.storagebatchoperations.v1.IBucketOperation, - protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest, + callback: Callback< + protos.google.cloud.storagebatchoperations.v1.IBucketOperation, + | protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getBucketOperation( - request?: protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.storagebatchoperations.v1.IBucketOperation, - protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.storagebatchoperations.v1.IBucketOperation, - protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.storagebatchoperations.v1.IBucketOperation, - protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.storagebatchoperations.v1.IBucketOperation, + | protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.storagebatchoperations.v1.IBucketOperation, + ( + | protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('getBucketOperation request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.storagebatchoperations.v1.IBucketOperation, - protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.storagebatchoperations.v1.IBucketOperation, + | protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('getBucketOperation response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.getBucketOperation(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.storagebatchoperations.v1.IBucketOperation, - protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest|undefined, - {}|undefined - ]) => { - this._log.info('getBucketOperation response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .getBucketOperation(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.storagebatchoperations.v1.IBucketOperation, + ( + | protos.google.cloud.storagebatchoperations.v1.IGetBucketOperationRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('getBucketOperation response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails 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 batch job. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Value for parent. - * @param {string} request.jobId - * Required. The optional `job_id` for this Job . If not - * specified, an id is generated. `job_id` should be no more than 128 - * characters and must include only characters available in DNS names, as - * defined by RFC-1123. - * @param {google.cloud.storagebatchoperations.v1.Job} request.job - * Required. The resource being created - * @param {string} [request.requestId] - * Optional. An optional request ID to identify requests. Specify a unique - * request ID in case you need to retry your request. Requests with same - * `request_id` will be ignored for at least 60 minutes since the first - * request. The request ID must be a valid UUID with the exception that zero - * UUID is not supported (00000000-0000-0000-0000-000000000000). - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v1/storage_batch_operations.create_job.js - * region_tag:storagebatchoperations_v1_generated_StorageBatchOperations_CreateJob_async - */ + /** + * Creates a batch job. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Value for parent. + * @param {string} request.jobId + * Required. The optional `job_id` for this Job . If not + * specified, an id is generated. `job_id` should be no more than 128 + * characters and must include only characters available in DNS names, as + * defined by RFC-1123. + * @param {google.cloud.storagebatchoperations.v1.Job} request.job + * Required. The resource being created + * @param {string} [request.requestId] + * Optional. An optional request ID to identify requests. Specify a unique + * request ID in case you need to retry your request. Requests with same + * `request_id` will be ignored for at least 60 minutes since the first + * request. The request ID must be a valid UUID with the exception that zero + * UUID is not supported (00000000-0000-0000-0000-000000000000). + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1/storage_batch_operations.create_job.js + * region_tag:storagebatchoperations_v1_generated_StorageBatchOperations_CreateJob_async + */ createJob( - request?: protos.google.cloud.storagebatchoperations.v1.ICreateJobRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; + request?: protos.google.cloud.storagebatchoperations.v1.ICreateJobRequest, + options?: CallOptions, + ): Promise< + [ + LROperation< + protos.google.cloud.storagebatchoperations.v1.IJob, + protos.google.cloud.storagebatchoperations.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; createJob( - request: protos.google.cloud.storagebatchoperations.v1.ICreateJobRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storagebatchoperations.v1.ICreateJobRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.storagebatchoperations.v1.IJob, + protos.google.cloud.storagebatchoperations.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; createJob( - request: protos.google.cloud.storagebatchoperations.v1.ICreateJobRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storagebatchoperations.v1.ICreateJobRequest, + callback: Callback< + LROperation< + protos.google.cloud.storagebatchoperations.v1.IJob, + protos.google.cloud.storagebatchoperations.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; createJob( - request?: protos.google.cloud.storagebatchoperations.v1.ICreateJobRequest, - optionsOrCallback?: CallOptions|Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>, - callback?: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>|void { + request?: protos.google.cloud.storagebatchoperations.v1.ICreateJobRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.storagebatchoperations.v1.IJob, + protos.google.cloud.storagebatchoperations.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.storagebatchoperations.v1.IJob, + protos.google.cloud.storagebatchoperations.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + LROperation< + protos.google.cloud.storagebatchoperations.v1.IJob, + protos.google.cloud.storagebatchoperations.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + LROperation< + protos.google.cloud.storagebatchoperations.v1.IJob, + protos.google.cloud.storagebatchoperations.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, rawResponse, _) => { this._log.info('createJob response %j', rawResponse); callback!(error, response, rawResponse, _); // We verified callback above. } : undefined; this._log.info('createJob request %j', request); - return this.innerApiCalls.createJob(request, options, wrappedCallback) - ?.then(([response, rawResponse, _]: [ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]) => { - this._log.info('createJob response %j', rawResponse); - return [response, rawResponse, _]; - }); + return this.innerApiCalls + .createJob(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.cloud.storagebatchoperations.v1.IJob, + protos.google.cloud.storagebatchoperations.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('createJob response %j', rawResponse); + return [response, rawResponse, _]; + }, + ); } -/** - * Check the status of the long running operation returned by `createJob()`. - * @param {String} name - * The operation name that will be passed. - * @returns {Promise} - The promise which resolves to an object. - * The decoded operation object has result and metadata field to get information from. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v1/storage_batch_operations.create_job.js - * region_tag:storagebatchoperations_v1_generated_StorageBatchOperations_CreateJob_async - */ - async checkCreateJobProgress(name: string): Promise>{ + /** + * Check the status of the long running operation returned by `createJob()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1/storage_batch_operations.create_job.js + * region_tag:storagebatchoperations_v1_generated_StorageBatchOperations_CreateJob_async + */ + async checkCreateJobProgress( + name: string, + ): Promise< + LROperation< + protos.google.cloud.storagebatchoperations.v1.Job, + protos.google.cloud.storagebatchoperations.v1.OperationMetadata + > + > { this._log.info('createJob long-running'); - const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest({name}); + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + { name }, + ); const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.createJob, this._gaxModule.createDefaultBackoffSettings()); - return decodeOperation as LROperation; + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.createJob, + this._gaxModule.createDefaultBackoffSettings(), + ); + return decodeOperation as LROperation< + protos.google.cloud.storagebatchoperations.v1.Job, + protos.google.cloud.storagebatchoperations.v1.OperationMetadata + >; } - /** - * Lists Jobs in a given project. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Format: projects/{project_id}/locations/global. - * @param {string} [request.filter] - * Optional. Filters results as defined by https://google.aip.dev/160. - * @param {number} [request.pageSize] - * Optional. The list page size. default page size is 100. - * @param {string} [request.pageToken] - * Optional. The list page token. - * @param {string} [request.orderBy] - * Optional. Field to sort by. Supported fields are name, create_time. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.storagebatchoperations.v1.Job|Job}. - * 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 `listJobsAsync()` - * 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 Jobs in a given project. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Format: projects/{project_id}/locations/global. + * @param {string} [request.filter] + * Optional. Filters results as defined by https://google.aip.dev/160. + * @param {number} [request.pageSize] + * Optional. The list page size. default page size is 100. + * @param {string} [request.pageToken] + * Optional. The list page token. + * @param {string} [request.orderBy] + * Optional. Field to sort by. Supported fields are name, create_time. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.storagebatchoperations.v1.Job|Job}. + * 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 `listJobsAsync()` + * 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. + */ listJobs( - request?: protos.google.cloud.storagebatchoperations.v1.IListJobsRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.storagebatchoperations.v1.IJob[], - protos.google.cloud.storagebatchoperations.v1.IListJobsRequest|null, - protos.google.cloud.storagebatchoperations.v1.IListJobsResponse - ]>; + request?: protos.google.cloud.storagebatchoperations.v1.IListJobsRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.storagebatchoperations.v1.IJob[], + protos.google.cloud.storagebatchoperations.v1.IListJobsRequest | null, + protos.google.cloud.storagebatchoperations.v1.IListJobsResponse, + ] + >; listJobs( - request: protos.google.cloud.storagebatchoperations.v1.IListJobsRequest, - options: CallOptions, - callback: PaginationCallback< - protos.google.cloud.storagebatchoperations.v1.IListJobsRequest, - protos.google.cloud.storagebatchoperations.v1.IListJobsResponse|null|undefined, - protos.google.cloud.storagebatchoperations.v1.IJob>): void; + request: protos.google.cloud.storagebatchoperations.v1.IListJobsRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.storagebatchoperations.v1.IListJobsRequest, + | protos.google.cloud.storagebatchoperations.v1.IListJobsResponse + | null + | undefined, + protos.google.cloud.storagebatchoperations.v1.IJob + >, + ): void; listJobs( - request: protos.google.cloud.storagebatchoperations.v1.IListJobsRequest, - callback: PaginationCallback< - protos.google.cloud.storagebatchoperations.v1.IListJobsRequest, - protos.google.cloud.storagebatchoperations.v1.IListJobsResponse|null|undefined, - protos.google.cloud.storagebatchoperations.v1.IJob>): void; + request: protos.google.cloud.storagebatchoperations.v1.IListJobsRequest, + callback: PaginationCallback< + protos.google.cloud.storagebatchoperations.v1.IListJobsRequest, + | protos.google.cloud.storagebatchoperations.v1.IListJobsResponse + | null + | undefined, + protos.google.cloud.storagebatchoperations.v1.IJob + >, + ): void; listJobs( - request?: protos.google.cloud.storagebatchoperations.v1.IListJobsRequest, - optionsOrCallback?: CallOptions|PaginationCallback< - protos.google.cloud.storagebatchoperations.v1.IListJobsRequest, - protos.google.cloud.storagebatchoperations.v1.IListJobsResponse|null|undefined, - protos.google.cloud.storagebatchoperations.v1.IJob>, - callback?: PaginationCallback< + request?: protos.google.cloud.storagebatchoperations.v1.IListJobsRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< protos.google.cloud.storagebatchoperations.v1.IListJobsRequest, - protos.google.cloud.storagebatchoperations.v1.IListJobsResponse|null|undefined, - protos.google.cloud.storagebatchoperations.v1.IJob>): - Promise<[ - protos.google.cloud.storagebatchoperations.v1.IJob[], - protos.google.cloud.storagebatchoperations.v1.IListJobsRequest|null, - protos.google.cloud.storagebatchoperations.v1.IListJobsResponse - ]>|void { + | protos.google.cloud.storagebatchoperations.v1.IListJobsResponse + | null + | undefined, + protos.google.cloud.storagebatchoperations.v1.IJob + >, + callback?: PaginationCallback< + protos.google.cloud.storagebatchoperations.v1.IListJobsRequest, + | protos.google.cloud.storagebatchoperations.v1.IListJobsResponse + | null + | undefined, + protos.google.cloud.storagebatchoperations.v1.IJob + >, + ): Promise< + [ + protos.google.cloud.storagebatchoperations.v1.IJob[], + protos.google.cloud.storagebatchoperations.v1.IListJobsRequest | null, + protos.google.cloud.storagebatchoperations.v1.IListJobsResponse, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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.storagebatchoperations.v1.IListJobsRequest, - protos.google.cloud.storagebatchoperations.v1.IListJobsResponse|null|undefined, - protos.google.cloud.storagebatchoperations.v1.IJob>|undefined = callback + const wrappedCallback: + | PaginationCallback< + protos.google.cloud.storagebatchoperations.v1.IListJobsRequest, + | protos.google.cloud.storagebatchoperations.v1.IListJobsResponse + | null + | undefined, + protos.google.cloud.storagebatchoperations.v1.IJob + > + | undefined = callback ? (error, values, nextPageRequest, rawResponse) => { this._log.info('listJobs values %j', values); callback!(error, values, nextPageRequest, rawResponse); // We verified callback above. @@ -995,201 +1366,230 @@ export class StorageBatchOperationsClient { this._log.info('listJobs request %j', request); return this.innerApiCalls .listJobs(request, options, wrappedCallback) - ?.then(([response, input, output]: [ - protos.google.cloud.storagebatchoperations.v1.IJob[], - protos.google.cloud.storagebatchoperations.v1.IListJobsRequest|null, - protos.google.cloud.storagebatchoperations.v1.IListJobsResponse - ]) => { - this._log.info('listJobs values %j', response); - return [response, input, output]; - }); + ?.then( + ([response, input, output]: [ + protos.google.cloud.storagebatchoperations.v1.IJob[], + protos.google.cloud.storagebatchoperations.v1.IListJobsRequest | null, + protos.google.cloud.storagebatchoperations.v1.IListJobsResponse, + ]) => { + this._log.info('listJobs values %j', response); + return [response, input, output]; + }, + ); } -/** - * Equivalent to `listJobs`, but returns a NodeJS Stream object. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Format: projects/{project_id}/locations/global. - * @param {string} [request.filter] - * Optional. Filters results as defined by https://google.aip.dev/160. - * @param {number} [request.pageSize] - * Optional. The list page size. default page size is 100. - * @param {string} [request.pageToken] - * Optional. The list page token. - * @param {string} [request.orderBy] - * Optional. Field to sort by. Supported fields are name, create_time. - * @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.storagebatchoperations.v1.Job|Job} 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 `listJobsAsync()` - * 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 `listJobs`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Format: projects/{project_id}/locations/global. + * @param {string} [request.filter] + * Optional. Filters results as defined by https://google.aip.dev/160. + * @param {number} [request.pageSize] + * Optional. The list page size. default page size is 100. + * @param {string} [request.pageToken] + * Optional. The list page token. + * @param {string} [request.orderBy] + * Optional. Field to sort by. Supported fields are name, create_time. + * @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.storagebatchoperations.v1.Job|Job} 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 `listJobsAsync()` + * 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. + */ listJobsStream( - request?: protos.google.cloud.storagebatchoperations.v1.IListJobsRequest, - options?: CallOptions): - Transform{ + request?: protos.google.cloud.storagebatchoperations.v1.IListJobsRequest, + 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['listJobs']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listJobs stream %j', request); return this.descriptors.page.listJobs.createStream( this.innerApiCalls.listJobs as GaxCall, request, - callSettings + callSettings, ); } -/** - * Equivalent to `listJobs`, 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. Format: projects/{project_id}/locations/global. - * @param {string} [request.filter] - * Optional. Filters results as defined by https://google.aip.dev/160. - * @param {number} [request.pageSize] - * Optional. The list page size. default page size is 100. - * @param {string} [request.pageToken] - * Optional. The list page token. - * @param {string} [request.orderBy] - * Optional. Field to sort by. Supported fields are name, create_time. - * @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.storagebatchoperations.v1.Job|Job}. 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/storage_batch_operations.list_jobs.js - * region_tag:storagebatchoperations_v1_generated_StorageBatchOperations_ListJobs_async - */ + /** + * Equivalent to `listJobs`, 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. Format: projects/{project_id}/locations/global. + * @param {string} [request.filter] + * Optional. Filters results as defined by https://google.aip.dev/160. + * @param {number} [request.pageSize] + * Optional. The list page size. default page size is 100. + * @param {string} [request.pageToken] + * Optional. The list page token. + * @param {string} [request.orderBy] + * Optional. Field to sort by. Supported fields are name, create_time. + * @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.storagebatchoperations.v1.Job|Job}. 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/storage_batch_operations.list_jobs.js + * region_tag:storagebatchoperations_v1_generated_StorageBatchOperations_ListJobs_async + */ listJobsAsync( - request?: protos.google.cloud.storagebatchoperations.v1.IListJobsRequest, - options?: CallOptions): - AsyncIterable{ + request?: protos.google.cloud.storagebatchoperations.v1.IListJobsRequest, + 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['listJobs']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listJobs iterate %j', request); return this.descriptors.page.listJobs.asyncIterate( this.innerApiCalls['listJobs'] as GaxCall, request as {}, - callSettings + callSettings, ) as AsyncIterable; } - /** - * Lists BucketOperations in a given project and job. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Format: projects/{project_id}/locations/global/jobs/{job_id}. - * @param {string} [request.filter] - * Optional. Filters results as defined by https://google.aip.dev/160. - * @param {number} [request.pageSize] - * Optional. The list page size. Default page size is 100. - * @param {string} [request.pageToken] - * Optional. The list page token. - * @param {string} [request.orderBy] - * Optional. Field to sort by. Supported fields are name, create_time. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.storagebatchoperations.v1.BucketOperation|BucketOperation}. - * 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 `listBucketOperationsAsync()` - * 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 BucketOperations in a given project and job. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Format: projects/{project_id}/locations/global/jobs/{job_id}. + * @param {string} [request.filter] + * Optional. Filters results as defined by https://google.aip.dev/160. + * @param {number} [request.pageSize] + * Optional. The list page size. Default page size is 100. + * @param {string} [request.pageToken] + * Optional. The list page token. + * @param {string} [request.orderBy] + * Optional. Field to sort by. Supported fields are name, create_time. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.storagebatchoperations.v1.BucketOperation|BucketOperation}. + * 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 `listBucketOperationsAsync()` + * 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. + */ listBucketOperations( - request?: protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.storagebatchoperations.v1.IBucketOperation[], - protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest|null, - protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsResponse - ]>; + request?: protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.storagebatchoperations.v1.IBucketOperation[], + protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest | null, + protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsResponse, + ] + >; listBucketOperations( - request: protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest, - options: CallOptions, - callback: PaginationCallback< - protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest, - protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsResponse|null|undefined, - protos.google.cloud.storagebatchoperations.v1.IBucketOperation>): void; + request: protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest, + | protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsResponse + | null + | undefined, + protos.google.cloud.storagebatchoperations.v1.IBucketOperation + >, + ): void; listBucketOperations( - request: protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest, - callback: PaginationCallback< - protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest, - protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsResponse|null|undefined, - protos.google.cloud.storagebatchoperations.v1.IBucketOperation>): void; + request: protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest, + callback: PaginationCallback< + protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest, + | protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsResponse + | null + | undefined, + protos.google.cloud.storagebatchoperations.v1.IBucketOperation + >, + ): void; listBucketOperations( - request?: protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest, - optionsOrCallback?: CallOptions|PaginationCallback< - protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest, - protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsResponse|null|undefined, - protos.google.cloud.storagebatchoperations.v1.IBucketOperation>, - callback?: PaginationCallback< + request?: protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest, - protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsResponse|null|undefined, - protos.google.cloud.storagebatchoperations.v1.IBucketOperation>): - Promise<[ - protos.google.cloud.storagebatchoperations.v1.IBucketOperation[], - protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest|null, - protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsResponse - ]>|void { + | protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsResponse + | null + | undefined, + protos.google.cloud.storagebatchoperations.v1.IBucketOperation + >, + callback?: PaginationCallback< + protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest, + | protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsResponse + | null + | undefined, + protos.google.cloud.storagebatchoperations.v1.IBucketOperation + >, + ): Promise< + [ + protos.google.cloud.storagebatchoperations.v1.IBucketOperation[], + protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest | null, + protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsResponse, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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.storagebatchoperations.v1.IListBucketOperationsRequest, - protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsResponse|null|undefined, - protos.google.cloud.storagebatchoperations.v1.IBucketOperation>|undefined = callback + const wrappedCallback: + | PaginationCallback< + protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest, + | protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsResponse + | null + | undefined, + protos.google.cloud.storagebatchoperations.v1.IBucketOperation + > + | undefined = callback ? (error, values, nextPageRequest, rawResponse) => { this._log.info('listBucketOperations values %j', values); callback!(error, values, nextPageRequest, rawResponse); // We verified callback above. @@ -1198,117 +1598,122 @@ export class StorageBatchOperationsClient { this._log.info('listBucketOperations request %j', request); return this.innerApiCalls .listBucketOperations(request, options, wrappedCallback) - ?.then(([response, input, output]: [ - protos.google.cloud.storagebatchoperations.v1.IBucketOperation[], - protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest|null, - protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsResponse - ]) => { - this._log.info('listBucketOperations values %j', response); - return [response, input, output]; - }); + ?.then( + ([response, input, output]: [ + protos.google.cloud.storagebatchoperations.v1.IBucketOperation[], + protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest | null, + protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsResponse, + ]) => { + this._log.info('listBucketOperations values %j', response); + return [response, input, output]; + }, + ); } -/** - * Equivalent to `listBucketOperations`, but returns a NodeJS Stream object. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Format: projects/{project_id}/locations/global/jobs/{job_id}. - * @param {string} [request.filter] - * Optional. Filters results as defined by https://google.aip.dev/160. - * @param {number} [request.pageSize] - * Optional. The list page size. Default page size is 100. - * @param {string} [request.pageToken] - * Optional. The list page token. - * @param {string} [request.orderBy] - * Optional. Field to sort by. Supported fields are name, create_time. - * @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.storagebatchoperations.v1.BucketOperation|BucketOperation} 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 `listBucketOperationsAsync()` - * 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 `listBucketOperations`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Format: projects/{project_id}/locations/global/jobs/{job_id}. + * @param {string} [request.filter] + * Optional. Filters results as defined by https://google.aip.dev/160. + * @param {number} [request.pageSize] + * Optional. The list page size. Default page size is 100. + * @param {string} [request.pageToken] + * Optional. The list page token. + * @param {string} [request.orderBy] + * Optional. Field to sort by. Supported fields are name, create_time. + * @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.storagebatchoperations.v1.BucketOperation|BucketOperation} 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 `listBucketOperationsAsync()` + * 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. + */ listBucketOperationsStream( - request?: protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest, - options?: CallOptions): - Transform{ + request?: protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest, + 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['listBucketOperations']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listBucketOperations stream %j', request); return this.descriptors.page.listBucketOperations.createStream( this.innerApiCalls.listBucketOperations as GaxCall, request, - callSettings + callSettings, ); } -/** - * Equivalent to `listBucketOperations`, 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. Format: projects/{project_id}/locations/global/jobs/{job_id}. - * @param {string} [request.filter] - * Optional. Filters results as defined by https://google.aip.dev/160. - * @param {number} [request.pageSize] - * Optional. The list page size. Default page size is 100. - * @param {string} [request.pageToken] - * Optional. The list page token. - * @param {string} [request.orderBy] - * Optional. Field to sort by. Supported fields are name, create_time. - * @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.storagebatchoperations.v1.BucketOperation|BucketOperation}. 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/storage_batch_operations.list_bucket_operations.js - * region_tag:storagebatchoperations_v1_generated_StorageBatchOperations_ListBucketOperations_async - */ + /** + * Equivalent to `listBucketOperations`, 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. Format: projects/{project_id}/locations/global/jobs/{job_id}. + * @param {string} [request.filter] + * Optional. Filters results as defined by https://google.aip.dev/160. + * @param {number} [request.pageSize] + * Optional. The list page size. Default page size is 100. + * @param {string} [request.pageToken] + * Optional. The list page token. + * @param {string} [request.orderBy] + * Optional. Field to sort by. Supported fields are name, create_time. + * @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.storagebatchoperations.v1.BucketOperation|BucketOperation}. 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/storage_batch_operations.list_bucket_operations.js + * region_tag:storagebatchoperations_v1_generated_StorageBatchOperations_ListBucketOperations_async + */ listBucketOperationsAsync( - request?: protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest, - options?: CallOptions): - AsyncIterable{ + request?: protos.google.cloud.storagebatchoperations.v1.IListBucketOperationsRequest, + 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['listBucketOperations']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listBucketOperations iterate %j', request); return this.descriptors.page.listBucketOperations.asyncIterate( this.innerApiCalls['listBucketOperations'] as GaxCall, request as {}, - callSettings + callSettings, ) as AsyncIterable; } -/** + + /** * Gets information about a location. * * @param {Object} request @@ -1343,12 +1748,11 @@ export class StorageBatchOperationsClient { | 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. @@ -1381,12 +1785,12 @@ export class StorageBatchOperationsClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } -/** + /** * Gets the latest state of a long-running operation. Clients can use this * method to poll the operation result at intervals as recommended by the API * service. @@ -1429,22 +1833,22 @@ export class StorageBatchOperationsClient { protos.google.longrunning.Operation, protos.google.longrunning.GetOperationRequest, {} | null | undefined - > + >, ): Promise<[protos.google.longrunning.Operation]> { - let options: gax.CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as gax.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 ?? '', - }); + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.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 ?? '', + }); return this.operationsClient.getOperation(request, options, callback); } /** @@ -1479,15 +1883,15 @@ export class StorageBatchOperationsClient { */ listOperationsAsync( request: protos.google.longrunning.ListOperationsRequest, - options?: gax.CallOptions + options?: gax.CallOptions, ): AsyncIterable { - 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 = 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 ?? '', + }); return this.operationsClient.listOperationsAsync(request, options); } /** @@ -1521,7 +1925,7 @@ export class StorageBatchOperationsClient { * await client.cancelOperation({name: ''}); * ``` */ - cancelOperation( + cancelOperation( request: protos.google.longrunning.CancelOperationRequest, optionsOrCallback?: | gax.CallOptions @@ -1534,25 +1938,24 @@ export class StorageBatchOperationsClient { protos.google.longrunning.CancelOperationRequest, protos.google.protobuf.Empty, {} | undefined | null - > + >, ): Promise { - let options: gax.CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as gax.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 ?? '', - }); + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.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 ?? '', + }); return this.operationsClient.cancelOperation(request, options, callback); } - /** * Deletes a long-running operation. This method indicates that the client is * no longer interested in the operation result. It does not cancel the @@ -1591,22 +1994,22 @@ export class StorageBatchOperationsClient { protos.google.protobuf.Empty, protos.google.longrunning.DeleteOperationRequest, {} | null | undefined - > + >, ): Promise { - let options: gax.CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as gax.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 ?? '', - }); + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.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 ?? '', + }); return this.operationsClient.deleteOperation(request, options, callback); } @@ -1623,7 +2026,12 @@ export class StorageBatchOperationsClient { * @param {string} bucket_operation * @returns {string} Resource name string. */ - bucketOperationPath(project:string,location:string,job:string,bucketOperation:string) { + bucketOperationPath( + project: string, + location: string, + job: string, + bucketOperation: string, + ) { return this.pathTemplates.bucketOperationPathTemplate.render({ project: project, location: location, @@ -1640,7 +2048,9 @@ export class StorageBatchOperationsClient { * @returns {string} A string representing the project. */ matchProjectFromBucketOperationName(bucketOperationName: string) { - return this.pathTemplates.bucketOperationPathTemplate.match(bucketOperationName).project; + return this.pathTemplates.bucketOperationPathTemplate.match( + bucketOperationName, + ).project; } /** @@ -1651,7 +2061,9 @@ export class StorageBatchOperationsClient { * @returns {string} A string representing the location. */ matchLocationFromBucketOperationName(bucketOperationName: string) { - return this.pathTemplates.bucketOperationPathTemplate.match(bucketOperationName).location; + return this.pathTemplates.bucketOperationPathTemplate.match( + bucketOperationName, + ).location; } /** @@ -1662,7 +2074,9 @@ export class StorageBatchOperationsClient { * @returns {string} A string representing the job. */ matchJobFromBucketOperationName(bucketOperationName: string) { - return this.pathTemplates.bucketOperationPathTemplate.match(bucketOperationName).job; + return this.pathTemplates.bucketOperationPathTemplate.match( + bucketOperationName, + ).job; } /** @@ -1673,7 +2087,9 @@ export class StorageBatchOperationsClient { * @returns {string} A string representing the bucket_operation. */ matchBucketOperationFromBucketOperationName(bucketOperationName: string) { - return this.pathTemplates.bucketOperationPathTemplate.match(bucketOperationName).bucket_operation; + return this.pathTemplates.bucketOperationPathTemplate.match( + bucketOperationName, + ).bucket_operation; } /** @@ -1684,7 +2100,7 @@ export class StorageBatchOperationsClient { * @param {string} job * @returns {string} Resource name string. */ - jobPath(project:string,location:string,job:string) { + jobPath(project: string, location: string, job: string) { return this.pathTemplates.jobPathTemplate.render({ project: project, location: location, @@ -1732,7 +2148,7 @@ export class StorageBatchOperationsClient { * @param {string} location * @returns {string} Resource name string. */ - locationPath(project:string,location:string) { + locationPath(project: string, location: string) { return this.pathTemplates.locationPathTemplate.render({ project: project, location: location, @@ -1767,7 +2183,7 @@ export class StorageBatchOperationsClient { * @param {string} project * @returns {string} Resource name string. */ - projectPath(project:string) { + projectPath(project: string) { return this.pathTemplates.projectPathTemplate.render({ project: project, }); @@ -1792,14 +2208,16 @@ export class StorageBatchOperationsClient { */ close(): Promise { if (this.storageBatchOperationsStub && !this._terminated) { - return this.storageBatchOperationsStub.then(stub => { + return this.storageBatchOperationsStub.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; + }); void this.operationsClient.close(); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-storagebatchoperations/system-test/fixtures/sample/src/index.ts b/packages/google-cloud-storagebatchoperations/system-test/fixtures/sample/src/index.ts index 3320355ef6c8..e71992a2a37d 100644 --- a/packages/google-cloud-storagebatchoperations/system-test/fixtures/sample/src/index.ts +++ b/packages/google-cloud-storagebatchoperations/system-test/fixtures/sample/src/index.ts @@ -16,10 +16,12 @@ // ** https://github.com/googleapis/gapic-generator-typescript ** // ** All changes to this file may be overwritten. ** -import {StorageBatchOperationsClient} from '@google-cloud/storagebatchoperations'; +import { StorageBatchOperationsClient } from '@google-cloud/storagebatchoperations'; // check that the client class type name can be used -function doStuffWithStorageBatchOperationsClient(client: StorageBatchOperationsClient) { +function doStuffWithStorageBatchOperationsClient( + client: StorageBatchOperationsClient, +) { client.close(); } diff --git a/packages/google-cloud-storagebatchoperations/system-test/install.ts b/packages/google-cloud-storagebatchoperations/system-test/install.ts index f66069aa3940..ccf167042d2e 100644 --- a/packages/google-cloud-storagebatchoperations/system-test/install.ts +++ b/packages/google-cloud-storagebatchoperations/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-storagebatchoperations/test/gapic_storage_batch_operations_v1.ts b/packages/google-cloud-storagebatchoperations/test/gapic_storage_batch_operations_v1.ts index 2c865f9f4055..c5f9a80785ba 100644 --- a/packages/google-cloud-storagebatchoperations/test/gapic_storage_batch_operations_v1.ts +++ b/packages/google-cloud-storagebatchoperations/test/gapic_storage_batch_operations_v1.ts @@ -19,1927 +19,2538 @@ 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 storagebatchoperationsModule from '../src'; -import {PassThrough} from 'stream'; +import { PassThrough } from 'stream'; -import {protobuf, LROperation, operationsProtos, LocationProtos} from 'google-gax'; +import { + protobuf, + LROperation, + operationsProtos, + 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 stubLongRunningCall(response?: ResponseType, callError?: Error, lroError?: Error) { - const innerStub = lroError ? sinon.stub().rejects(lroError) : sinon.stub().resolves([response]); - const mockOperation = { - promise: innerStub, - }; - return callError ? sinon.stub().rejects(callError) : sinon.stub().resolves([mockOperation]); +function stubLongRunningCall( + response?: ResponseType, + callError?: Error, + lroError?: Error, +) { + const innerStub = lroError + ? sinon.stub().rejects(lroError) + : sinon.stub().resolves([response]); + const mockOperation = { + promise: innerStub, + }; + return callError + ? sinon.stub().rejects(callError) + : sinon.stub().resolves([mockOperation]); } -function stubLongRunningCallWithCallback(response?: ResponseType, callError?: Error, lroError?: Error) { - const innerStub = lroError ? sinon.stub().rejects(lroError) : sinon.stub().resolves([response]); - const mockOperation = { - promise: innerStub, - }; - return callError ? sinon.stub().callsArgWith(2, callError) : sinon.stub().callsArgWith(2, null, mockOperation); +function stubLongRunningCallWithCallback( + response?: ResponseType, + callError?: Error, + lroError?: Error, +) { + const innerStub = lroError + ? sinon.stub().rejects(lroError) + : sinon.stub().resolves([response]); + const mockOperation = { + promise: innerStub, + }; + return callError + ? sinon.stub().callsArgWith(2, callError) + : sinon.stub().callsArgWith(2, null, mockOperation); } -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.StorageBatchOperationsClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'storagebatchoperations.googleapis.com'); - }); - - it('has universeDomain', () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient(); - 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 = storagebatchoperationsModule.v1.StorageBatchOperationsClient.servicePath; - assert.strictEqual(servicePath, 'storagebatchoperations.googleapis.com'); - assert(stub.called); - stub.restore(); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'storagebatchoperations.googleapis.com'); + }); - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = storagebatchoperationsModule.v1.StorageBatchOperationsClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'storagebatchoperations.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'storagebatchoperations.example.com'); - }); - - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'storagebatchoperations.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 storagebatchoperationsModule.v1.StorageBatchOperationsClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'storagebatchoperations.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 storagebatchoperationsModule.v1.StorageBatchOperationsClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'storagebatchoperations.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 storagebatchoperationsModule.v1.StorageBatchOperationsClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); - }); + it('has universeDomain', () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); - it('has port', () => { - const port = storagebatchoperationsModule.v1.StorageBatchOperationsClient.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 = + storagebatchoperationsModule.v1.StorageBatchOperationsClient + .servicePath; + assert.strictEqual( + servicePath, + 'storagebatchoperations.googleapis.com', + ); + assert(stub.called); + stub.restore(); + }); + + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + storagebatchoperationsModule.v1.StorageBatchOperationsClient + .apiEndpoint; + assert.strictEqual( + apiEndpoint, + 'storagebatchoperations.googleapis.com', + ); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + universeDomain: 'example.com', }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'storagebatchoperations.example.com'); + }); - it('should create a client with no option', () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient(); - assert(client); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + universe_domain: 'example.com', }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'storagebatchoperations.example.com'); + }); - it('should create a client with gRPC fallback', () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - 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 storagebatchoperationsModule.v1.StorageBatchOperationsClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'storagebatchoperations.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 storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + universeDomain: 'configured.example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual( + servicePath, + 'storagebatchoperations.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 storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('has initialize method and supports deferred initialization', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.storageBatchOperationsStub, undefined); - await client.initialize(); - assert(client.storageBatchOperationsStub); - }); + it('has port', () => { + const port = + storagebatchoperationsModule.v1.StorageBatchOperationsClient.port; + assert(port); + assert(typeof port === 'number'); + }); - it('has close method for the initialized client', done => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.storageBatchOperationsStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('should create a client with no option', () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient(); + assert(client); + }); + + it('should create a client with gRPC fallback', () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + fallback: true, }); + assert(client); + }); - it('has close method for the non-initialized client', done => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.storageBatchOperationsStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); + it('has initialize method and supports deferred initialization', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', }); + assert.strictEqual(client.storageBatchOperationsStub, undefined); + await client.initialize(); + assert(client.storageBatchOperationsStub); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - 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 storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.storageBatchOperationsStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - 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 storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.storageBatchOperationsStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); }); - describe('getJob', () => { - it('invokes getJob without error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.GetJobRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.GetJobRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.Job() - ); - client.innerApiCalls.getJob = stubSimpleCall(expectedResponse); - const [response] = await client.getJob(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getJob as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getJob as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes getJob without error using callback', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.GetJobRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.GetJobRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.Job() - ); - client.innerApiCalls.getJob = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getJob( - request, - (err?: Error|null, result?: protos.google.cloud.storagebatchoperations.v1.IJob|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getJob as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getJob as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes getJob with error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.GetJobRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.GetJobRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.getJob = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getJob(request), expectedError); - const actualRequest = (client.innerApiCalls.getJob as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getJob as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes getJob with closed client', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.GetJobRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.GetJobRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.getJob(request), expectedError); - }); - }); - - describe('deleteJob', () => { - it('invokes deleteJob without error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.DeleteJobRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.DeleteJobRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.innerApiCalls.deleteJob = stubSimpleCall(expectedResponse); - const [response] = await client.deleteJob(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.deleteJob as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteJob as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes deleteJob without error using callback', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.DeleteJobRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.DeleteJobRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.innerApiCalls.deleteJob = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.deleteJob( - 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.deleteJob as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteJob as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes deleteJob with error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.DeleteJobRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.DeleteJobRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.deleteJob = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.deleteJob(request), expectedError); - const actualRequest = (client.innerApiCalls.deleteJob as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteJob as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes deleteJob with closed client', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.DeleteJobRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.DeleteJobRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.deleteJob(request), expectedError); - }); - }); - - describe('cancelJob', () => { - it('invokes cancelJob without error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.CancelJobRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.CancelJobRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.CancelJobResponse() - ); - client.innerApiCalls.cancelJob = stubSimpleCall(expectedResponse); - const [response] = await client.cancelJob(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.cancelJob as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.cancelJob as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes cancelJob without error using callback', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.CancelJobRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.CancelJobRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.CancelJobResponse() - ); - client.innerApiCalls.cancelJob = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.cancelJob( - request, - (err?: Error|null, result?: protos.google.cloud.storagebatchoperations.v1.ICancelJobResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.cancelJob as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.cancelJob as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes cancelJob with error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.CancelJobRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.CancelJobRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.cancelJob = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.cancelJob(request), expectedError); - const actualRequest = (client.innerApiCalls.cancelJob as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.cancelJob as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes cancelJob with closed client', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.CancelJobRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.CancelJobRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.cancelJob(request), expectedError); - }); - }); - - describe('getBucketOperation', () => { - it('invokes getBucketOperation without error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.GetBucketOperationRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.GetBucketOperationRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.BucketOperation() - ); - client.innerApiCalls.getBucketOperation = stubSimpleCall(expectedResponse); - const [response] = await client.getBucketOperation(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getBucketOperation as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getBucketOperation as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes getBucketOperation without error using callback', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.GetBucketOperationRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.GetBucketOperationRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.BucketOperation() - ); - client.innerApiCalls.getBucketOperation = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getBucketOperation( - request, - (err?: Error|null, result?: protos.google.cloud.storagebatchoperations.v1.IBucketOperation|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getBucketOperation as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getBucketOperation as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes getBucketOperation with error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.GetBucketOperationRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.GetBucketOperationRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.getBucketOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getBucketOperation(request), expectedError); - const actualRequest = (client.innerApiCalls.getBucketOperation as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getBucketOperation as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes getBucketOperation with closed client', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.GetBucketOperationRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.GetBucketOperationRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.getBucketOperation(request), expectedError); - }); - }); - - describe('createJob', () => { - it('invokes createJob without error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.CreateJobRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.CreateJobRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.createJob = stubLongRunningCall(expectedResponse); - const [operation] = await client.createJob(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createJob as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createJob as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes createJob without error using callback', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.CreateJobRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.CreateJobRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.createJob = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.createJob( - request, - (err?: Error|null, - result?: LROperation|null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const operation = await promise as LROperation; - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createJob as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createJob as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes createJob with call error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.CreateJobRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.CreateJobRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.createJob = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.createJob(request), expectedError); - const actualRequest = (client.innerApiCalls.createJob as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createJob as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes createJob with LRO error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.CreateJobRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.CreateJobRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.createJob = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.createJob(request); - await assert.rejects(operation.promise(), expectedError); - const actualRequest = (client.innerApiCalls.createJob as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createJob as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes checkCreateJobProgress without error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - expectedResponse.name = 'test'; - expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; - expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')} - - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const decodedOperation = await client.checkCreateJobProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); - - it('invokes checkCreateJobProgress with error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedError = new Error('expected'); + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + 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.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkCreateJobProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); + it('has getProjectId method with callback', async () => { + const fakeProjectId = 'fake-project-id'; + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + 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('getJob', () => { + it('invokes getJob without error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.GetJobRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.GetJobRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.Job(), + ); + client.innerApiCalls.getJob = stubSimpleCall(expectedResponse); + const [response] = await client.getJob(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.getJob as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('listJobs', () => { - it('invokes listJobs without error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.ListJobsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.ListJobsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.Job()), - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.Job()), - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.Job()), - ]; - client.innerApiCalls.listJobs = stubSimpleCall(expectedResponse); - const [response] = await client.listJobs(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listJobs as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listJobs as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listJobs without error using callback', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.ListJobsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.ListJobsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.Job()), - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.Job()), - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.Job()), - ]; - client.innerApiCalls.listJobs = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listJobs( - request, - (err?: Error|null, result?: protos.google.cloud.storagebatchoperations.v1.IJob[]|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listJobs as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listJobs as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listJobs with error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.ListJobsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.ListJobsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.listJobs = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.listJobs(request), expectedError); - const actualRequest = (client.innerApiCalls.listJobs as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listJobs as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listJobsStream without error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.ListJobsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.ListJobsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.Job()), - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.Job()), - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.Job()), - ]; - client.descriptors.page.listJobs.createStream = stubPageStreamingCall(expectedResponse); - const stream = client.listJobsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.storagebatchoperations.v1.Job[] = []; - stream.on('data', (response: protos.google.cloud.storagebatchoperations.v1.Job) => { - 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.listJobs.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listJobs, request)); - assert( - (client.descriptors.page.listJobs.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - - it('invokes listJobsStream with error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.ListJobsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.ListJobsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listJobs.createStream = stubPageStreamingCall(undefined, expectedError); - const stream = client.listJobsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.storagebatchoperations.v1.Job[] = []; - stream.on('data', (response: protos.google.cloud.storagebatchoperations.v1.Job) => { - responses.push(response); - }); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - assert((client.descriptors.page.listJobs.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listJobs, request)); - assert( - (client.descriptors.page.listJobs.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - - it('uses async iteration with listJobs without error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.ListJobsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.ListJobsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.Job()), - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.Job()), - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.Job()), - ]; - client.descriptors.page.listJobs.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: protos.google.cloud.storagebatchoperations.v1.IJob[] = []; - const iterable = client.listJobsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + it('invokes getJob without error using callback', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.GetJobRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.GetJobRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.Job(), + ); + client.innerApiCalls.getJob = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getJob( + request, + ( + err?: Error | null, + result?: protos.google.cloud.storagebatchoperations.v1.IJob | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.descriptors.page.listJobs.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listJobs.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - - it('uses async iteration with listJobs with error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.ListJobsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.ListJobsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listJobs.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listJobsAsync(request); - await assert.rejects(async () => { - const responses: protos.google.cloud.storagebatchoperations.v1.IJob[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.descriptors.page.listJobs.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listJobs.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - }); - - describe('listBucketOperations', () => { - it('invokes listBucketOperations without error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.BucketOperation()), - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.BucketOperation()), - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.BucketOperation()), - ]; - client.innerApiCalls.listBucketOperations = stubSimpleCall(expectedResponse); - const [response] = await client.listBucketOperations(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listBucketOperations as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listBucketOperations as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listBucketOperations without error using callback', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.BucketOperation()), - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.BucketOperation()), - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.BucketOperation()), - ]; - client.innerApiCalls.listBucketOperations = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listBucketOperations( - request, - (err?: Error|null, result?: protos.google.cloud.storagebatchoperations.v1.IBucketOperation[]|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listBucketOperations as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listBucketOperations as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listBucketOperations with error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.listBucketOperations = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.listBucketOperations(request), expectedError); - const actualRequest = (client.innerApiCalls.listBucketOperations as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listBucketOperations as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listBucketOperationsStream without error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.BucketOperation()), - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.BucketOperation()), - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.BucketOperation()), - ]; - client.descriptors.page.listBucketOperations.createStream = stubPageStreamingCall(expectedResponse); - const stream = client.listBucketOperationsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.storagebatchoperations.v1.BucketOperation[] = []; - stream.on('data', (response: protos.google.cloud.storagebatchoperations.v1.BucketOperation) => { - 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.listBucketOperations.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listBucketOperations, request)); - assert( - (client.descriptors.page.listBucketOperations.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - - it('invokes listBucketOperationsStream with error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listBucketOperations.createStream = stubPageStreamingCall(undefined, expectedError); - const stream = client.listBucketOperationsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.storagebatchoperations.v1.BucketOperation[] = []; - stream.on('data', (response: protos.google.cloud.storagebatchoperations.v1.BucketOperation) => { - responses.push(response); - }); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - assert((client.descriptors.page.listBucketOperations.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listBucketOperations, request)); - assert( - (client.descriptors.page.listBucketOperations.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - - it('uses async iteration with listBucketOperations without error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.BucketOperation()), - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.BucketOperation()), - generateSampleMessage(new protos.google.cloud.storagebatchoperations.v1.BucketOperation()), - ]; - client.descriptors.page.listBucketOperations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: protos.google.cloud.storagebatchoperations.v1.IBucketOperation[] = []; - const iterable = client.listBucketOperationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.getJob as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getJob with error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.GetJobRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.GetJobRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getJob = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.getJob(request), expectedError); + const actualRequest = (client.innerApiCalls.getJob as SinonStub).getCall( + 0, + ).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getJob with closed client', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.GetJobRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.GetJobRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.getJob(request), expectedError); + }); + }); + + describe('deleteJob', () => { + it('invokes deleteJob without error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.DeleteJobRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.DeleteJobRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.innerApiCalls.deleteJob = stubSimpleCall(expectedResponse); + const [response] = await client.deleteJob(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.deleteJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes deleteJob without error using callback', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.DeleteJobRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.DeleteJobRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.innerApiCalls.deleteJob = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.deleteJob( + request, + ( + err?: Error | null, + result?: protos.google.protobuf.IEmpty | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.descriptors.page.listBucketOperations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listBucketOperations.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - - it('uses async iteration with listBucketOperations with error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listBucketOperations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listBucketOperationsAsync(request); - await assert.rejects(async () => { - const responses: protos.google.cloud.storagebatchoperations.v1.IBucketOperation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.descriptors.page.listBucketOperations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listBucketOperations.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 storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - 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 storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - 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 storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - 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 storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - 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!); + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.deleteJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes deleteJob with error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.DeleteJobRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.DeleteJobRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.deleteJob = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.deleteJob(request), expectedError); + const actualRequest = ( + client.innerApiCalls.deleteJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes deleteJob with closed client', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.DeleteJobRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.DeleteJobRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.deleteJob(request), expectedError); + }); + }); + + describe('cancelJob', () => { + it('invokes cancelJob without error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.CancelJobRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.CancelJobRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.CancelJobResponse(), + ); + client.innerApiCalls.cancelJob = stubSimpleCall(expectedResponse); + const [response] = await client.cancelJob(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.cancelJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.cancelJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes cancelJob without error using callback', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.CancelJobRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.CancelJobRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.CancelJobResponse(), + ); + client.innerApiCalls.cancelJob = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.cancelJob( + request, + ( + err?: Error | null, + result?: protos.google.cloud.storagebatchoperations.v1.ICancelJobResponse | 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 storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - 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('getOperation', () => { - it('invokes getOperation without error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.GetOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const response = await client.getOperation(request); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0).calledWith(request) - ); - }); - it('invokes getOperation without error using callback', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.GetOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - client.operationsClient.getOperation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.operationsClient.getOperation( - request, - undefined, - ( - err?: Error | null, - result?: operationsProtos.google.longrunning.Operation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }).catch(err => {throw err}); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); - it('invokes getOperation with error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.GetOperationRequest() - ); - const expectedError = new Error('expected'); - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(async () => {await client.getOperation(request)}, expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0).calledWith(request)); - }); - }); - describe('cancelOperation', () => { - it('invokes cancelOperation without error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.CancelOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.operationsClient.cancelOperation = stubSimpleCall(expectedResponse); - const response = await client.cancelOperation(request); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.operationsClient.cancelOperation as SinonStub) - .getCall(0).calledWith(request) - ); - }); - it('invokes cancelOperation without error using callback', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.CancelOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.operationsClient.cancelOperation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.operationsClient.cancelOperation( - request, - undefined, - ( - err?: Error | null, - result?: protos.google.protobuf.Empty | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }).catch(err => {throw err}); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.operationsClient.cancelOperation as SinonStub) - .getCall(0)); - }); - it('invokes cancelOperation with error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.CancelOperationRequest() - ); - const expectedError = new Error('expected'); - client.operationsClient.cancelOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(async () => {await client.cancelOperation(request)}, expectedError); - assert((client.operationsClient.cancelOperation as SinonStub) - .getCall(0).calledWith(request)); - }); - }); - describe('deleteOperation', () => { - it('invokes deleteOperation without error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.DeleteOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.operationsClient.deleteOperation = stubSimpleCall(expectedResponse); - const response = await client.deleteOperation(request); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.operationsClient.deleteOperation as SinonStub) - .getCall(0).calledWith(request) - ); - }); - it('invokes deleteOperation without error using callback', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.DeleteOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.operationsClient.deleteOperation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.operationsClient.deleteOperation( - request, - undefined, - ( - err?: Error | null, - result?: protos.google.protobuf.Empty | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }).catch(err => {throw err}); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.operationsClient.deleteOperation as SinonStub) - .getCall(0)); - }); - it('invokes deleteOperation with error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.DeleteOperationRequest() - ); - const expectedError = new Error('expected'); - client.operationsClient.deleteOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(async () => {await client.deleteOperation(request)}, expectedError); - assert((client.operationsClient.deleteOperation as SinonStub) - .getCall(0).calledWith(request)); - }); - }); - describe('listOperationsAsync', () => { - it('uses async iteration with listOperations without error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsRequest() - ); - const expectedResponse = [ - generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsResponse() - ), - generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsResponse() - ), - generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsResponse() - ), - ]; - client.operationsClient.descriptor.listOperations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: operationsProtos.google.longrunning.IOperation[] = []; - const iterable = client.operationsClient.listOperationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.cancelJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.cancelJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes cancelJob with error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.CancelJobRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.CancelJobRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.cancelJob = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.cancelJob(request), expectedError); + const actualRequest = ( + client.innerApiCalls.cancelJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.cancelJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes cancelJob with closed client', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.CancelJobRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.CancelJobRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.cancelJob(request), expectedError); + }); + }); + + describe('getBucketOperation', () => { + it('invokes getBucketOperation without error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.GetBucketOperationRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.GetBucketOperationRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.BucketOperation(), + ); + client.innerApiCalls.getBucketOperation = + stubSimpleCall(expectedResponse); + const [response] = await client.getBucketOperation(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getBucketOperation as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getBucketOperation as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes getBucketOperation without error using callback', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.GetBucketOperationRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.GetBucketOperationRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.BucketOperation(), + ); + client.innerApiCalls.getBucketOperation = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getBucketOperation( + request, + ( + err?: Error | null, + result?: protos.google.cloud.storagebatchoperations.v1.IBucketOperation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.operationsClient.descriptor.listOperations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - }); - it('uses async iteration with listOperations with error', async () => { - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsRequest() - ); - const expectedError = new Error('expected'); - client.operationsClient.descriptor.listOperations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.operationsClient.listOperationsAsync(request); - await assert.rejects(async () => { - const responses: operationsProtos.google.longrunning.IOperation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.operationsClient.descriptor.listOperations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - }); + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getBucketOperation as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getBucketOperation as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('Path templates', () => { + it('invokes getBucketOperation with error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.GetBucketOperationRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.GetBucketOperationRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getBucketOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.getBucketOperation(request), expectedError); + const actualRequest = ( + client.innerApiCalls.getBucketOperation as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getBucketOperation as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - describe('bucketOperation', async () => { - const fakePath = "/rendered/path/bucketOperation"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - job: "jobValue", - bucket_operation: "bucketOperationValue", - }; - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.bucketOperationPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.bucketOperationPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('bucketOperationPath', () => { - const result = client.bucketOperationPath("projectValue", "locationValue", "jobValue", "bucketOperationValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.bucketOperationPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + it('invokes getBucketOperation with closed client', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.GetBucketOperationRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.GetBucketOperationRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.getBucketOperation(request), expectedError); + }); + }); + + describe('createJob', () => { + it('invokes createJob without error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.CreateJobRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.CreateJobRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.createJob = stubLongRunningCall(expectedResponse); + const [operation] = await client.createJob(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchProjectFromBucketOperationName', () => { - const result = client.matchProjectFromBucketOperationName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.bucketOperationPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('invokes createJob without error using callback', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.CreateJobRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.CreateJobRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.createJob = + stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.createJob( + request, + ( + err?: Error | null, + result?: LROperation< + protos.google.cloud.storagebatchoperations.v1.IJob, + protos.google.cloud.storagebatchoperations.v1.IOperationMetadata + > | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const operation = (await promise) as LROperation< + protos.google.cloud.storagebatchoperations.v1.IJob, + protos.google.cloud.storagebatchoperations.v1.IOperationMetadata + >; + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchLocationFromBucketOperationName', () => { - const result = client.matchLocationFromBucketOperationName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.bucketOperationPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('invokes createJob with call error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.CreateJobRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.CreateJobRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.createJob = stubLongRunningCall( + undefined, + expectedError, + ); + await assert.rejects(client.createJob(request), expectedError); + const actualRequest = ( + client.innerApiCalls.createJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchJobFromBucketOperationName', () => { - const result = client.matchJobFromBucketOperationName(fakePath); - assert.strictEqual(result, "jobValue"); - assert((client.pathTemplates.bucketOperationPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('invokes createJob with LRO error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.CreateJobRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.CreateJobRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.createJob = stubLongRunningCall( + undefined, + undefined, + expectedError, + ); + const [operation] = await client.createJob(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.createJob as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createJob as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchBucketOperationFromBucketOperationName', () => { - const result = client.matchBucketOperationFromBucketOperationName(fakePath); - assert.strictEqual(result, "bucketOperationValue"); - assert((client.pathTemplates.bucketOperationPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('invokes checkCreateJobProgress without error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + expectedResponse.name = 'test'; + expectedResponse.response = { type_url: 'url', value: Buffer.from('') }; + expectedResponse.metadata = { type_url: 'url', value: Buffer.from('') }; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkCreateJobProgress( + expectedResponse.name, + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); - describe('job', async () => { - const fakePath = "/rendered/path/job"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - job: "jobValue", - }; - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.jobPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.jobPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('jobPath', () => { - const result = client.jobPath("projectValue", "locationValue", "jobValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.jobPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + it('invokes checkCreateJobProgress with error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.checkCreateJobProgress(''), expectedError); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + }); + + describe('listJobs', () => { + it('invokes listJobs without error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.ListJobsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.ListJobsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.Job(), + ), + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.Job(), + ), + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.Job(), + ), + ]; + client.innerApiCalls.listJobs = stubSimpleCall(expectedResponse); + const [response] = await client.listJobs(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listJobs as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listJobs as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchProjectFromJobName', () => { - const result = client.matchProjectFromJobName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.jobPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('invokes listJobs without error using callback', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.ListJobsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.ListJobsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.Job(), + ), + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.Job(), + ), + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.Job(), + ), + ]; + client.innerApiCalls.listJobs = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listJobs( + request, + ( + err?: Error | null, + result?: + | protos.google.cloud.storagebatchoperations.v1.IJob[] + | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listJobs as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listJobs as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchLocationFromJobName', () => { - const result = client.matchLocationFromJobName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.jobPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('invokes listJobs with error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.ListJobsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.ListJobsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listJobs = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.listJobs(request), expectedError); + const actualRequest = ( + client.innerApiCalls.listJobs as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listJobs as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('matchJobFromJobName', () => { - const result = client.matchJobFromJobName(fakePath); - assert.strictEqual(result, "jobValue"); - assert((client.pathTemplates.jobPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('invokes listJobsStream without error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.ListJobsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.ListJobsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.Job(), + ), + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.Job(), + ), + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.Job(), + ), + ]; + client.descriptors.page.listJobs.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.listJobsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.storagebatchoperations.v1.Job[] = + []; + stream.on( + 'data', + (response: protos.google.cloud.storagebatchoperations.v1.Job) => { + 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.listJobs.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listJobs, request), + ); + assert( + (client.descriptors.page.listJobs.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - describe('location', async () => { - const fakePath = "/rendered/path/location"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - }; - const client = new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.locationPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.locationPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('locationPath', () => { - const result = client.locationPath("projectValue", "locationValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.locationPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); + it('invokes listJobsStream with error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.ListJobsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.ListJobsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listJobs.createStream = stubPageStreamingCall( + undefined, + expectedError, + ); + const stream = client.listJobsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.storagebatchoperations.v1.Job[] = + []; + stream.on( + 'data', + (response: protos.google.cloud.storagebatchoperations.v1.Job) => { + responses.push(response); + }, + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + assert( + (client.descriptors.page.listJobs.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listJobs, request), + ); + assert( + (client.descriptors.page.listJobs.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('matchProjectFromLocationName', () => { - const result = client.matchProjectFromLocationName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.locationPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); + it('uses async iteration with listJobs without error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.ListJobsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.ListJobsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.Job(), + ), + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.Job(), + ), + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.Job(), + ), + ]; + client.descriptors.page.listJobs.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.storagebatchoperations.v1.IJob[] = + []; + const iterable = client.listJobsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + (client.descriptors.page.listJobs.asyncIterate as SinonStub).getCall(0) + .args[1], + request, + ); + assert( + (client.descriptors.page.listJobs.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('matchLocationFromLocationName', () => { - const result = client.matchLocationFromLocationName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.locationPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + it('uses async iteration with listJobs with error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.ListJobsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.ListJobsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listJobs.asyncIterate = stubAsyncIterationCall( + undefined, + expectedError, + ); + const iterable = client.listJobsAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.storagebatchoperations.v1.IJob[] = + []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + (client.descriptors.page.listJobs.asyncIterate as SinonStub).getCall(0) + .args[1], + request, + ); + assert( + (client.descriptors.page.listJobs.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); + }); + + describe('listBucketOperations', () => { + it('invokes listBucketOperations without error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.BucketOperation(), + ), + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.BucketOperation(), + ), + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.BucketOperation(), + ), + ]; + client.innerApiCalls.listBucketOperations = + stubSimpleCall(expectedResponse); + const [response] = await client.listBucketOperations(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listBucketOperations as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listBucketOperations 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 storagebatchoperationsModule.v1.StorageBatchOperationsClient({ - 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 listBucketOperations without error using callback', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.BucketOperation(), + ), + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.BucketOperation(), + ), + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.BucketOperation(), + ), + ]; + client.innerApiCalls.listBucketOperations = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listBucketOperations( + request, + ( + err?: Error | null, + result?: + | protos.google.cloud.storagebatchoperations.v1.IBucketOperation[] + | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listBucketOperations as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listBucketOperations 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 listBucketOperations with error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listBucketOperations = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.listBucketOperations(request), expectedError); + const actualRequest = ( + client.innerApiCalls.listBucketOperations as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listBucketOperations as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes listBucketOperationsStream without error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.BucketOperation(), + ), + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.BucketOperation(), + ), + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.BucketOperation(), + ), + ]; + client.descriptors.page.listBucketOperations.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.listBucketOperationsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.storagebatchoperations.v1.BucketOperation[] = + []; + stream.on( + 'data', + ( + response: protos.google.cloud.storagebatchoperations.v1.BucketOperation, + ) => { + 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.listBucketOperations.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listBucketOperations, request), + ); + assert( + (client.descriptors.page.listBucketOperations.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); + + it('invokes listBucketOperationsStream with error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listBucketOperations.createStream = + stubPageStreamingCall(undefined, expectedError); + const stream = client.listBucketOperationsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.storagebatchoperations.v1.BucketOperation[] = + []; + stream.on( + 'data', + ( + response: protos.google.cloud.storagebatchoperations.v1.BucketOperation, + ) => { + responses.push(response); + }, + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + assert( + (client.descriptors.page.listBucketOperations.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listBucketOperations, request), + ); + assert( + (client.descriptors.page.listBucketOperations.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); + + it('uses async iteration with listBucketOperations without error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.BucketOperation(), + ), + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.BucketOperation(), + ), + generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.BucketOperation(), + ), + ]; + client.descriptors.page.listBucketOperations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.storagebatchoperations.v1.IBucketOperation[] = + []; + const iterable = client.listBucketOperationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.descriptors.page.listBucketOperations.asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + (client.descriptors.page.listBucketOperations.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); + + it('uses async iteration with listBucketOperations with error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storagebatchoperations.v1.ListBucketOperationsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listBucketOperations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listBucketOperationsAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.storagebatchoperations.v1.IBucketOperation[] = + []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.descriptors.page.listBucketOperations.asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + (client.descriptors.page.listBucketOperations.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 storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + 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 storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + 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 storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + 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 storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + 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 storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + 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('getOperation', () => { + it('invokes getOperation without error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.GetOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const response = await client.getOperation(request); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.operationsClient.getOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + it('invokes getOperation without error using callback', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.GetOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + client.operationsClient.getOperation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.operationsClient + .getOperation( + request, + undefined, + ( + err?: Error | null, + result?: operationsProtos.google.longrunning.Operation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ) + .catch((err) => { + throw err; + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + it('invokes getOperation with error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.GetOperationRequest(), + ); + const expectedError = new Error('expected'); + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(async () => { + await client.getOperation(request); + }, expectedError); + assert( + (client.operationsClient.getOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + }); + describe('cancelOperation', () => { + it('invokes cancelOperation without error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.CancelOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.operationsClient.cancelOperation = + stubSimpleCall(expectedResponse); + const response = await client.cancelOperation(request); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.operationsClient.cancelOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + it('invokes cancelOperation without error using callback', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.CancelOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.operationsClient.cancelOperation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.operationsClient + .cancelOperation( + request, + undefined, + ( + err?: Error | null, + result?: protos.google.protobuf.Empty | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ) + .catch((err) => { + throw err; + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.operationsClient.cancelOperation as SinonStub).getCall(0)); + }); + it('invokes cancelOperation with error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.CancelOperationRequest(), + ); + const expectedError = new Error('expected'); + client.operationsClient.cancelOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(async () => { + await client.cancelOperation(request); + }, expectedError); + assert( + (client.operationsClient.cancelOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + }); + describe('deleteOperation', () => { + it('invokes deleteOperation without error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.DeleteOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.operationsClient.deleteOperation = + stubSimpleCall(expectedResponse); + const response = await client.deleteOperation(request); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.operationsClient.deleteOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + it('invokes deleteOperation without error using callback', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.DeleteOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.operationsClient.deleteOperation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.operationsClient + .deleteOperation( + request, + undefined, + ( + err?: Error | null, + result?: protos.google.protobuf.Empty | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ) + .catch((err) => { + throw err; + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.operationsClient.deleteOperation as SinonStub).getCall(0)); + }); + it('invokes deleteOperation with error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.DeleteOperationRequest(), + ); + const expectedError = new Error('expected'); + client.operationsClient.deleteOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(async () => { + await client.deleteOperation(request); + }, expectedError); + assert( + (client.operationsClient.deleteOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + }); + describe('listOperationsAsync', () => { + it('uses async iteration with listOperations without error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsRequest(), + ); + const expectedResponse = [ + generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsResponse(), + ), + generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsResponse(), + ), + generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsResponse(), + ), + ]; + client.operationsClient.descriptor.listOperations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: operationsProtos.google.longrunning.IOperation[] = []; + const iterable = client.operationsClient.listOperationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.operationsClient.descriptor.listOperations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + }); + it('uses async iteration with listOperations with error', async () => { + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsRequest(), + ); + const expectedError = new Error('expected'); + client.operationsClient.descriptor.listOperations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.operationsClient.listOperationsAsync(request); + await assert.rejects(async () => { + const responses: operationsProtos.google.longrunning.IOperation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.operationsClient.descriptor.listOperations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + }); + }); + + describe('Path templates', () => { + describe('bucketOperation', async () => { + const fakePath = '/rendered/path/bucketOperation'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + job: 'jobValue', + bucket_operation: 'bucketOperationValue', + }; + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.bucketOperationPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.bucketOperationPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('bucketOperationPath', () => { + const result = client.bucketOperationPath( + 'projectValue', + 'locationValue', + 'jobValue', + 'bucketOperationValue', + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.bucketOperationPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromBucketOperationName', () => { + const result = client.matchProjectFromBucketOperationName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.bucketOperationPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromBucketOperationName', () => { + const result = client.matchLocationFromBucketOperationName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.bucketOperationPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchJobFromBucketOperationName', () => { + const result = client.matchJobFromBucketOperationName(fakePath); + assert.strictEqual(result, 'jobValue'); + assert( + (client.pathTemplates.bucketOperationPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchBucketOperationFromBucketOperationName', () => { + const result = + client.matchBucketOperationFromBucketOperationName(fakePath); + assert.strictEqual(result, 'bucketOperationValue'); + assert( + (client.pathTemplates.bucketOperationPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); + + describe('job', async () => { + const fakePath = '/rendered/path/job'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + job: 'jobValue', + }; + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.jobPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.jobPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('jobPath', () => { + const result = client.jobPath( + 'projectValue', + 'locationValue', + 'jobValue', + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.jobPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromJobName', () => { + const result = client.matchProjectFromJobName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.jobPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromJobName', () => { + const result = client.matchLocationFromJobName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.jobPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchJobFromJobName', () => { + const result = client.matchJobFromJobName(fakePath); + assert.strictEqual(result, 'jobValue'); + assert( + (client.pathTemplates.jobPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); + + describe('location', async () => { + const fakePath = '/rendered/path/location'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + }; + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.locationPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.locationPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('locationPath', () => { + const result = client.locationPath('projectValue', 'locationValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.locationPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromLocationName', () => { + const result = client.matchProjectFromLocationName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.locationPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromLocationName', () => { + const result = client.matchLocationFromLocationName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.locationPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); + + describe('project', async () => { + const fakePath = '/rendered/path/project'; + const expectedParameters = { + project: 'projectValue', + }; + const client = + new storagebatchoperationsModule.v1.StorageBatchOperationsClient({ + 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-storagebatchoperations/webpack.config.js b/packages/google-cloud-storagebatchoperations/webpack.config.js index ab88f0433a67..b6c2f0ea68dd 100644 --- a/packages/google-cloud-storagebatchoperations/webpack.config.js +++ b/packages/google-cloud-storagebatchoperations/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. diff --git a/packages/google-cloud-storageinsights/README.md b/packages/google-cloud-storageinsights/README.md index c2f2963ee7f2..afa731300291 100644 --- a/packages/google-cloud-storageinsights/README.md +++ b/packages/google-cloud-storageinsights/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-storageinsights/samples/generated/v1/snippet_metadata_google.cloud.storageinsights.v1.json) | | create dataset config | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-storageinsights/samples/generated/v1/storage_insights.create_dataset_config.js) | | create report config | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-storageinsights/samples/generated/v1/storage_insights.create_report_config.js) | | delete dataset config | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-storageinsights/samples/generated/v1/storage_insights.delete_dataset_config.js) | @@ -106,7 +105,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-storageinsights/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`) @@ -116,7 +115,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-storageinsights/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-storageinsights/protos/protos.d.ts b/packages/google-cloud-storageinsights/protos/protos.d.ts index fc745625949f..e8a66f449ed2 100644 --- a/packages/google-cloud-storageinsights/protos/protos.d.ts +++ b/packages/google-cloud-storageinsights/protos/protos.d.ts @@ -5245,6 +5245,9 @@ export namespace google { /** CommonLanguageSettings destinations */ destinations?: (google.api.ClientLibraryDestination[]|null); + + /** CommonLanguageSettings selectiveGapicGeneration */ + selectiveGapicGeneration?: (google.api.ISelectiveGapicGeneration|null); } /** Represents a CommonLanguageSettings. */ @@ -5262,6 +5265,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 @@ -5962,6 +5968,9 @@ export namespace google { /** PythonSettings common */ common?: (google.api.ICommonLanguageSettings|null); + + /** PythonSettings experimentalFeatures */ + experimentalFeatures?: (google.api.PythonSettings.IExperimentalFeatures|null); } /** Represents a PythonSettings. */ @@ -5976,6 +5985,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 @@ -6054,6 +6066,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 { @@ -6380,6 +6504,9 @@ export namespace google { /** GoSettings common */ common?: (google.api.ICommonLanguageSettings|null); + + /** GoSettings renamedServices */ + renamedServices?: ({ [k: string]: string }|null); } /** Represents a GoSettings. */ @@ -6394,6 +6521,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 @@ -6718,6 +6848,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, @@ -7099,6 +7332,7 @@ export namespace google { /** Edition enum. */ enum Edition { EDITION_UNKNOWN = 0, + EDITION_LEGACY = 900, EDITION_PROTO2 = 998, EDITION_PROTO3 = 999, EDITION_2023 = 1000, @@ -7129,6 +7363,9 @@ export namespace google { /** FileDescriptorProto weakDependency */ weakDependency?: (number[]|null); + /** FileDescriptorProto optionDependency */ + optionDependency?: (string[]|null); + /** FileDescriptorProto messageType */ messageType?: (google.protobuf.IDescriptorProto[]|null); @@ -7178,6 +7415,9 @@ export namespace google { /** FileDescriptorProto weakDependency. */ public weakDependency: number[]; + /** FileDescriptorProto optionDependency. */ + public optionDependency: string[]; + /** FileDescriptorProto messageType. */ public messageType: google.protobuf.IDescriptorProto[]; @@ -7312,6 +7552,9 @@ export namespace google { /** DescriptorProto reservedName */ reservedName?: (string[]|null); + + /** DescriptorProto visibility */ + visibility?: (google.protobuf.SymbolVisibility|keyof typeof google.protobuf.SymbolVisibility|null); } /** Represents a DescriptorProto. */ @@ -7353,6 +7596,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 @@ -8200,6 +8446,9 @@ export namespace google { /** EnumDescriptorProto reservedName */ reservedName?: (string[]|null); + + /** EnumDescriptorProto visibility */ + visibility?: (google.protobuf.SymbolVisibility|keyof typeof google.protobuf.SymbolVisibility|null); } /** Represents an EnumDescriptorProto. */ @@ -8226,6 +8475,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 @@ -9160,6 +9412,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); @@ -9215,6 +9470,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[]; @@ -9435,6 +9693,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. */ @@ -9673,6 +10046,9 @@ export namespace google { /** EnumValueOptions debugRedact */ debugRedact?: (boolean|null); + /** EnumValueOptions featureSupport */ + featureSupport?: (google.protobuf.FieldOptions.IFeatureSupport|null); + /** EnumValueOptions uninterpretedOption */ uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null); } @@ -9695,6 +10071,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[]; @@ -10287,6 +10666,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. */ @@ -10316,6 +10701,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 @@ -10438,6 +10829,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. */ @@ -10557,8 +11058,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. */ @@ -10573,8 +11077,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. @@ -11107,6 +11614,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-storageinsights/protos/protos.js b/packages/google-cloud-storageinsights/protos/protos.js index f8d3c5ae6875..80e6f1a1c82f 100644 --- a/packages/google-cloud-storageinsights/protos/protos.js +++ b/packages/google-cloud-storageinsights/protos/protos.js @@ -587,7 +587,7 @@ function ListReportConfigsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -692,9 +692,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListReportConfigsRequest.decode = function decode(reader, length, error) { + ListReportConfigsRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.ListReportConfigsRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -722,7 +726,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -753,9 +757,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListReportConfigsRequest.verify = function verify(message) { + ListReportConfigsRequest.verify = function verify(message, long) { if (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"; @@ -782,9 +790,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.ListReportConfigsRequest} ListReportConfigsRequest */ - ListReportConfigsRequest.fromObject = function fromObject(object) { + ListReportConfigsRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.ListReportConfigsRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.ListReportConfigsRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -885,7 +897,7 @@ this.unreachable = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -972,9 +984,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListReportConfigsResponse.decode = function decode(reader, length, error) { + ListReportConfigsResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.ListReportConfigsResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -984,7 +1000,7 @@ case 1: { if (!(message.reportConfigs && message.reportConfigs.length)) message.reportConfigs = []; - message.reportConfigs.push($root.google.cloud.storageinsights.v1.ReportConfig.decode(reader, reader.uint32())); + message.reportConfigs.push($root.google.cloud.storageinsights.v1.ReportConfig.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -998,7 +1014,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -1029,14 +1045,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListReportConfigsResponse.verify = function verify(message) { + ListReportConfigsResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.reportConfigs != null && message.hasOwnProperty("reportConfigs")) { if (!Array.isArray(message.reportConfigs)) return "reportConfigs: array expected"; for (var i = 0; i < message.reportConfigs.length; ++i) { - var error = $root.google.cloud.storageinsights.v1.ReportConfig.verify(message.reportConfigs[i]); + var error = $root.google.cloud.storageinsights.v1.ReportConfig.verify(message.reportConfigs[i], long + 1); if (error) return "reportConfigs." + error; } @@ -1062,9 +1082,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.ListReportConfigsResponse} ListReportConfigsResponse */ - ListReportConfigsResponse.fromObject = function fromObject(object) { + ListReportConfigsResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.ListReportConfigsResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.ListReportConfigsResponse(); if (object.reportConfigs) { if (!Array.isArray(object.reportConfigs)) @@ -1073,7 +1097,7 @@ for (var i = 0; i < object.reportConfigs.length; ++i) { if (typeof object.reportConfigs[i] !== "object") throw TypeError(".google.cloud.storageinsights.v1.ListReportConfigsResponse.reportConfigs: object expected"); - message.reportConfigs[i] = $root.google.cloud.storageinsights.v1.ReportConfig.fromObject(object.reportConfigs[i]); + message.reportConfigs[i] = $root.google.cloud.storageinsights.v1.ReportConfig.fromObject(object.reportConfigs[i], long + 1); } } if (object.nextPageToken != null) @@ -1171,7 +1195,7 @@ function GetReportConfigRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -1236,9 +1260,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetReportConfigRequest.decode = function decode(reader, length, error) { + GetReportConfigRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.GetReportConfigRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -1250,7 +1278,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -1281,9 +1309,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetReportConfigRequest.verify = function verify(message) { + GetReportConfigRequest.verify = function verify(message, long) { if (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"; @@ -1298,9 +1330,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.GetReportConfigRequest} GetReportConfigRequest */ - GetReportConfigRequest.fromObject = function fromObject(object) { + GetReportConfigRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.GetReportConfigRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.GetReportConfigRequest(); if (object.name != null) message.name = String(object.name); @@ -1378,7 +1414,7 @@ function CreateReportConfigRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -1463,9 +1499,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CreateReportConfigRequest.decode = function decode(reader, length, error) { + CreateReportConfigRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.CreateReportConfigRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -1477,7 +1517,7 @@ break; } case 3: { - message.reportConfig = $root.google.cloud.storageinsights.v1.ReportConfig.decode(reader, reader.uint32()); + message.reportConfig = $root.google.cloud.storageinsights.v1.ReportConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { @@ -1485,7 +1525,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -1516,14 +1556,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CreateReportConfigRequest.verify = function verify(message) { + CreateReportConfigRequest.verify = function verify(message, long) { if (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.reportConfig != null && message.hasOwnProperty("reportConfig")) { - var error = $root.google.cloud.storageinsights.v1.ReportConfig.verify(message.reportConfig); + var error = $root.google.cloud.storageinsights.v1.ReportConfig.verify(message.reportConfig, long + 1); if (error) return "reportConfig." + error; } @@ -1541,16 +1585,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.CreateReportConfigRequest} CreateReportConfigRequest */ - CreateReportConfigRequest.fromObject = function fromObject(object) { + CreateReportConfigRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.CreateReportConfigRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.CreateReportConfigRequest(); if (object.parent != null) message.parent = String(object.parent); if (object.reportConfig != null) { if (typeof object.reportConfig !== "object") throw TypeError(".google.cloud.storageinsights.v1.CreateReportConfigRequest.reportConfig: object expected"); - message.reportConfig = $root.google.cloud.storageinsights.v1.ReportConfig.fromObject(object.reportConfig); + message.reportConfig = $root.google.cloud.storageinsights.v1.ReportConfig.fromObject(object.reportConfig, long + 1); } if (object.requestId != null) message.requestId = String(object.requestId); @@ -1635,7 +1683,7 @@ function UpdateReportConfigRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -1720,9 +1768,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UpdateReportConfigRequest.decode = function decode(reader, length, error) { + UpdateReportConfigRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.UpdateReportConfigRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -1730,11 +1782,11 @@ break; switch (tag >>> 3) { case 1: { - message.updateMask = $root.google.protobuf.FieldMask.decode(reader, reader.uint32()); + message.updateMask = $root.google.protobuf.FieldMask.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.reportConfig = $root.google.cloud.storageinsights.v1.ReportConfig.decode(reader, reader.uint32()); + message.reportConfig = $root.google.cloud.storageinsights.v1.ReportConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -1742,7 +1794,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -1773,16 +1825,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UpdateReportConfigRequest.verify = function verify(message) { + UpdateReportConfigRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; 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; } if (message.reportConfig != null && message.hasOwnProperty("reportConfig")) { - var error = $root.google.cloud.storageinsights.v1.ReportConfig.verify(message.reportConfig); + var error = $root.google.cloud.storageinsights.v1.ReportConfig.verify(message.reportConfig, long + 1); if (error) return "reportConfig." + error; } @@ -1800,19 +1856,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.UpdateReportConfigRequest} UpdateReportConfigRequest */ - UpdateReportConfigRequest.fromObject = function fromObject(object) { + UpdateReportConfigRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.UpdateReportConfigRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.UpdateReportConfigRequest(); if (object.updateMask != null) { if (typeof object.updateMask !== "object") throw TypeError(".google.cloud.storageinsights.v1.UpdateReportConfigRequest.updateMask: object expected"); - message.updateMask = $root.google.protobuf.FieldMask.fromObject(object.updateMask); + message.updateMask = $root.google.protobuf.FieldMask.fromObject(object.updateMask, long + 1); } if (object.reportConfig != null) { if (typeof object.reportConfig !== "object") throw TypeError(".google.cloud.storageinsights.v1.UpdateReportConfigRequest.reportConfig: object expected"); - message.reportConfig = $root.google.cloud.storageinsights.v1.ReportConfig.fromObject(object.reportConfig); + message.reportConfig = $root.google.cloud.storageinsights.v1.ReportConfig.fromObject(object.reportConfig, long + 1); } if (object.requestId != null) message.requestId = String(object.requestId); @@ -1897,7 +1957,7 @@ function DeleteReportConfigRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -1982,9 +2042,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DeleteReportConfigRequest.decode = function decode(reader, length, error) { + DeleteReportConfigRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.DeleteReportConfigRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -2004,7 +2068,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -2035,9 +2099,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DeleteReportConfigRequest.verify = function verify(message) { + DeleteReportConfigRequest.verify = function verify(message, long) { if (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"; @@ -2058,9 +2126,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.DeleteReportConfigRequest} DeleteReportConfigRequest */ - DeleteReportConfigRequest.fromObject = function fromObject(object) { + DeleteReportConfigRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.DeleteReportConfigRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.DeleteReportConfigRequest(); if (object.name != null) message.name = String(object.name); @@ -2155,7 +2227,7 @@ this.labels = {}; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -2291,9 +2363,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ReportDetail.decode = function decode(reader, length, error) { + ReportDetail.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.ReportDetail(), key, value; while (reader.pos < end) { var tag = reader.uint32(); @@ -2305,7 +2381,7 @@ break; } case 2: { - message.snapshotTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.snapshotTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { @@ -2317,7 +2393,7 @@ break; } case 4: { - message.status = $root.google.rpc.Status.decode(reader, reader.uint32()); + message.status = $root.google.rpc.Status.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { @@ -2336,23 +2412,25 @@ value = reader.string(); break; default: - reader.skipType(tag2 & 7); + reader.skipType(tag2 & 7, long); break; } } + if (key === "__proto__") + $util.makeProp(message.labels, key); message.labels[key] = value; break; } case 6: { - message.targetDatetime = $root.google.type.DateTime.decode(reader, reader.uint32()); + message.targetDatetime = $root.google.type.DateTime.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { - message.reportMetrics = $root.google.cloud.storageinsights.v1.ReportDetail.Metrics.decode(reader, reader.uint32()); + message.reportMetrics = $root.google.cloud.storageinsights.v1.ReportDetail.Metrics.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -2383,14 +2461,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ReportDetail.verify = function verify(message) { + ReportDetail.verify = function verify(message, long) { if (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.snapshotTime != null && message.hasOwnProperty("snapshotTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.snapshotTime); + var error = $root.google.protobuf.Timestamp.verify(message.snapshotTime, long + 1); if (error) return "snapshotTime." + error; } @@ -2401,7 +2483,7 @@ if (!$util.isInteger(message.shardsCount) && !(message.shardsCount && $util.isInteger(message.shardsCount.low) && $util.isInteger(message.shardsCount.high))) return "shardsCount: integer|Long 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; } @@ -2414,12 +2496,12 @@ return "labels: string{k:string} expected"; } if (message.targetDatetime != null && message.hasOwnProperty("targetDatetime")) { - var error = $root.google.type.DateTime.verify(message.targetDatetime); + var error = $root.google.type.DateTime.verify(message.targetDatetime, long + 1); if (error) return "targetDatetime." + error; } if (message.reportMetrics != null && message.hasOwnProperty("reportMetrics")) { - var error = $root.google.cloud.storageinsights.v1.ReportDetail.Metrics.verify(message.reportMetrics); + var error = $root.google.cloud.storageinsights.v1.ReportDetail.Metrics.verify(message.reportMetrics, long + 1); if (error) return "reportMetrics." + error; } @@ -2434,16 +2516,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.ReportDetail} ReportDetail */ - ReportDetail.fromObject = function fromObject(object) { + ReportDetail.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.ReportDetail) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.ReportDetail(); if (object.name != null) message.name = String(object.name); if (object.snapshotTime != null) { if (typeof object.snapshotTime !== "object") throw TypeError(".google.cloud.storageinsights.v1.ReportDetail.snapshotTime: object expected"); - message.snapshotTime = $root.google.protobuf.Timestamp.fromObject(object.snapshotTime); + message.snapshotTime = $root.google.protobuf.Timestamp.fromObject(object.snapshotTime, long + 1); } if (object.reportPathPrefix != null) message.reportPathPrefix = String(object.reportPathPrefix); @@ -2459,24 +2545,27 @@ if (object.status != null) { if (typeof object.status !== "object") throw TypeError(".google.cloud.storageinsights.v1.ReportDetail.status: object expected"); - message.status = $root.google.rpc.Status.fromObject(object.status); + message.status = $root.google.rpc.Status.fromObject(object.status, long + 1); } if (object.labels) { if (typeof object.labels !== "object") throw TypeError(".google.cloud.storageinsights.v1.ReportDetail.labels: object expected"); message.labels = {}; - for (var keys = Object.keys(object.labels), i = 0; i < keys.length; ++i) + for (var keys = Object.keys(object.labels), i = 0; i < keys.length; ++i) { + if (keys[i] === "__proto__") + $util.makeProp(message.labels, keys[i]); message.labels[keys[i]] = String(object.labels[keys[i]]); + } } if (object.targetDatetime != null) { if (typeof object.targetDatetime !== "object") throw TypeError(".google.cloud.storageinsights.v1.ReportDetail.targetDatetime: object expected"); - message.targetDatetime = $root.google.type.DateTime.fromObject(object.targetDatetime); + message.targetDatetime = $root.google.type.DateTime.fromObject(object.targetDatetime, long + 1); } if (object.reportMetrics != null) { if (typeof object.reportMetrics !== "object") throw TypeError(".google.cloud.storageinsights.v1.ReportDetail.reportMetrics: object expected"); - message.reportMetrics = $root.google.cloud.storageinsights.v1.ReportDetail.Metrics.fromObject(object.reportMetrics); + message.reportMetrics = $root.google.cloud.storageinsights.v1.ReportDetail.Metrics.fromObject(object.reportMetrics, long + 1); } return message; }; @@ -2518,8 +2607,11 @@ var keys2; if (message.labels && (keys2 = Object.keys(message.labels)).length) { object.labels = {}; - for (var j = 0; j < keys2.length; ++j) + for (var j = 0; j < keys2.length; ++j) { + if (keys2[j] === "__proto__") + $util.makeProp(object.labels, keys2[j]); object.labels[keys2[j]] = message.labels[keys2[j]]; + } } if (message.targetDatetime != null && message.hasOwnProperty("targetDatetime")) object.targetDatetime = $root.google.type.DateTime.toObject(message.targetDatetime, options); @@ -2581,7 +2673,7 @@ function Metrics(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -2646,9 +2738,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Metrics.decode = function decode(reader, length, error) { + Metrics.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.ReportDetail.Metrics(); while (reader.pos < end) { var tag = reader.uint32(); @@ -2660,7 +2756,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -2691,9 +2787,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Metrics.verify = function verify(message) { + Metrics.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.processedRecordsCount != null && message.hasOwnProperty("processedRecordsCount")) if (!$util.isInteger(message.processedRecordsCount) && !(message.processedRecordsCount && $util.isInteger(message.processedRecordsCount.low) && $util.isInteger(message.processedRecordsCount.high))) return "processedRecordsCount: integer|Long expected"; @@ -2708,9 +2808,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.ReportDetail.Metrics} Metrics */ - Metrics.fromObject = function fromObject(object) { + Metrics.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.ReportDetail.Metrics) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.ReportDetail.Metrics(); if (object.processedRecordsCount != null) if ($util.Long) @@ -2807,7 +2911,7 @@ function ListReportDetailsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -2912,9 +3016,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListReportDetailsRequest.decode = function decode(reader, length, error) { + ListReportDetailsRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.ListReportDetailsRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -2942,7 +3050,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -2973,9 +3081,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListReportDetailsRequest.verify = function verify(message) { + ListReportDetailsRequest.verify = function verify(message, long) { if (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"; @@ -3002,9 +3114,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.ListReportDetailsRequest} ListReportDetailsRequest */ - ListReportDetailsRequest.fromObject = function fromObject(object) { + ListReportDetailsRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.ListReportDetailsRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.ListReportDetailsRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -3105,7 +3221,7 @@ this.unreachable = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -3192,9 +3308,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListReportDetailsResponse.decode = function decode(reader, length, error) { + ListReportDetailsResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.ListReportDetailsResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -3204,7 +3324,7 @@ case 1: { if (!(message.reportDetails && message.reportDetails.length)) message.reportDetails = []; - message.reportDetails.push($root.google.cloud.storageinsights.v1.ReportDetail.decode(reader, reader.uint32())); + message.reportDetails.push($root.google.cloud.storageinsights.v1.ReportDetail.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -3218,7 +3338,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -3249,14 +3369,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListReportDetailsResponse.verify = function verify(message) { + ListReportDetailsResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.reportDetails != null && message.hasOwnProperty("reportDetails")) { if (!Array.isArray(message.reportDetails)) return "reportDetails: array expected"; for (var i = 0; i < message.reportDetails.length; ++i) { - var error = $root.google.cloud.storageinsights.v1.ReportDetail.verify(message.reportDetails[i]); + var error = $root.google.cloud.storageinsights.v1.ReportDetail.verify(message.reportDetails[i], long + 1); if (error) return "reportDetails." + error; } @@ -3282,9 +3406,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.ListReportDetailsResponse} ListReportDetailsResponse */ - ListReportDetailsResponse.fromObject = function fromObject(object) { + ListReportDetailsResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.ListReportDetailsResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.ListReportDetailsResponse(); if (object.reportDetails) { if (!Array.isArray(object.reportDetails)) @@ -3293,7 +3421,7 @@ for (var i = 0; i < object.reportDetails.length; ++i) { if (typeof object.reportDetails[i] !== "object") throw TypeError(".google.cloud.storageinsights.v1.ListReportDetailsResponse.reportDetails: object expected"); - message.reportDetails[i] = $root.google.cloud.storageinsights.v1.ReportDetail.fromObject(object.reportDetails[i]); + message.reportDetails[i] = $root.google.cloud.storageinsights.v1.ReportDetail.fromObject(object.reportDetails[i], long + 1); } } if (object.nextPageToken != null) @@ -3391,7 +3519,7 @@ function GetReportDetailRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -3456,9 +3584,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetReportDetailRequest.decode = function decode(reader, length, error) { + GetReportDetailRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.GetReportDetailRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -3470,7 +3602,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -3501,9 +3633,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetReportDetailRequest.verify = function verify(message) { + GetReportDetailRequest.verify = function verify(message, long) { if (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"; @@ -3518,9 +3654,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.GetReportDetailRequest} GetReportDetailRequest */ - GetReportDetailRequest.fromObject = function fromObject(object) { + GetReportDetailRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.GetReportDetailRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.GetReportDetailRequest(); if (object.name != null) message.name = String(object.name); @@ -3602,7 +3742,7 @@ function OperationMetadata(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -3727,9 +3867,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OperationMetadata.decode = function decode(reader, length, error) { + OperationMetadata.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.OperationMetadata(); while (reader.pos < end) { var tag = reader.uint32(); @@ -3737,11 +3881,11 @@ break; switch (tag >>> 3) { case 1: { - 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 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; } case 3: { @@ -3765,7 +3909,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -3796,16 +3940,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - OperationMetadata.verify = function verify(message) { + OperationMetadata.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; 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; } 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; } @@ -3835,19 +3983,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.OperationMetadata} OperationMetadata */ - OperationMetadata.fromObject = function fromObject(object) { + OperationMetadata.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.OperationMetadata) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.OperationMetadata(); if (object.createTime != null) { if (typeof object.createTime !== "object") throw TypeError(".google.cloud.storageinsights.v1.OperationMetadata.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.endTime != null) { if (typeof object.endTime !== "object") throw TypeError(".google.cloud.storageinsights.v1.OperationMetadata.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.target != null) message.target = String(object.target); @@ -3952,7 +4104,7 @@ function FrequencyOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -4037,9 +4189,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FrequencyOptions.decode = function decode(reader, length, error) { + FrequencyOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.FrequencyOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -4051,15 +4207,15 @@ break; } case 2: { - message.startDate = $root.google.type.Date.decode(reader, reader.uint32()); + message.startDate = $root.google.type.Date.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { - message.endDate = $root.google.type.Date.decode(reader, reader.uint32()); + message.endDate = $root.google.type.Date.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -4090,9 +4246,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FrequencyOptions.verify = function verify(message) { + FrequencyOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.frequency != null && message.hasOwnProperty("frequency")) switch (message.frequency) { default: @@ -4103,12 +4263,12 @@ break; } if (message.startDate != null && message.hasOwnProperty("startDate")) { - var error = $root.google.type.Date.verify(message.startDate); + var error = $root.google.type.Date.verify(message.startDate, long + 1); if (error) return "startDate." + error; } if (message.endDate != null && message.hasOwnProperty("endDate")) { - var error = $root.google.type.Date.verify(message.endDate); + var error = $root.google.type.Date.verify(message.endDate, long + 1); if (error) return "endDate." + error; } @@ -4123,9 +4283,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.FrequencyOptions} FrequencyOptions */ - FrequencyOptions.fromObject = function fromObject(object) { + FrequencyOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.FrequencyOptions) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.FrequencyOptions(); switch (object.frequency) { default: @@ -4150,12 +4314,12 @@ if (object.startDate != null) { if (typeof object.startDate !== "object") throw TypeError(".google.cloud.storageinsights.v1.FrequencyOptions.startDate: object expected"); - message.startDate = $root.google.type.Date.fromObject(object.startDate); + message.startDate = $root.google.type.Date.fromObject(object.startDate, long + 1); } if (object.endDate != null) { if (typeof object.endDate !== "object") throw TypeError(".google.cloud.storageinsights.v1.FrequencyOptions.endDate: object expected"); - message.endDate = $root.google.type.Date.fromObject(object.endDate); + message.endDate = $root.google.type.Date.fromObject(object.endDate, long + 1); } return message; }; @@ -4254,7 +4418,7 @@ function CSVOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -4339,9 +4503,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CSVOptions.decode = function decode(reader, length, error) { + CSVOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.CSVOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -4361,7 +4529,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -4392,9 +4560,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CSVOptions.verify = function verify(message) { + CSVOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.recordSeparator != null && message.hasOwnProperty("recordSeparator")) if (!$util.isString(message.recordSeparator)) return "recordSeparator: string expected"; @@ -4415,9 +4587,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.CSVOptions} CSVOptions */ - CSVOptions.fromObject = function fromObject(object) { + CSVOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.CSVOptions) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.CSVOptions(); if (object.recordSeparator != null) message.recordSeparator = String(object.recordSeparator); @@ -4503,7 +4679,7 @@ function ParquetOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -4558,9 +4734,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ParquetOptions.decode = function decode(reader, length, error) { + ParquetOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.ParquetOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -4568,7 +4748,7 @@ break; switch (tag >>> 3) { default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -4599,9 +4779,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ParquetOptions.verify = function verify(message) { + ParquetOptions.verify = function verify(message, 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; }; @@ -4613,9 +4797,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.ParquetOptions} ParquetOptions */ - ParquetOptions.fromObject = function fromObject(object) { + ParquetOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.ParquetOptions) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); return new $root.google.cloud.storageinsights.v1.ParquetOptions(); }; @@ -4681,7 +4869,7 @@ function CloudStorageFilters(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -4746,9 +4934,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CloudStorageFilters.decode = function decode(reader, length, error) { + CloudStorageFilters.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.CloudStorageFilters(); while (reader.pos < end) { var tag = reader.uint32(); @@ -4760,7 +4952,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -4791,9 +4983,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CloudStorageFilters.verify = function verify(message) { + CloudStorageFilters.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.bucket != null && message.hasOwnProperty("bucket")) if (!$util.isString(message.bucket)) return "bucket: string expected"; @@ -4808,9 +5004,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.CloudStorageFilters} CloudStorageFilters */ - CloudStorageFilters.fromObject = function fromObject(object) { + CloudStorageFilters.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.CloudStorageFilters) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.CloudStorageFilters(); if (object.bucket != null) message.bucket = String(object.bucket); @@ -4887,7 +5087,7 @@ function CloudStorageDestinationOptions(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -4962,9 +5162,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CloudStorageDestinationOptions.decode = function decode(reader, length, error) { + CloudStorageDestinationOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.CloudStorageDestinationOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -4980,7 +5184,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -5011,9 +5215,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CloudStorageDestinationOptions.verify = function verify(message) { + CloudStorageDestinationOptions.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.bucket != null && message.hasOwnProperty("bucket")) if (!$util.isString(message.bucket)) return "bucket: string expected"; @@ -5031,9 +5239,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.CloudStorageDestinationOptions} CloudStorageDestinationOptions */ - CloudStorageDestinationOptions.fromObject = function fromObject(object) { + CloudStorageDestinationOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.CloudStorageDestinationOptions) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.CloudStorageDestinationOptions(); if (object.bucket != null) message.bucket = String(object.bucket); @@ -5118,7 +5330,7 @@ this.metadataFields = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -5229,9 +5441,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ObjectMetadataReportOptions.decode = function decode(reader, length, error) { + ObjectMetadataReportOptions.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.ObjectMetadataReportOptions(); while (reader.pos < end) { var tag = reader.uint32(); @@ -5245,15 +5461,15 @@ break; } case 2: { - message.storageFilters = $root.google.cloud.storageinsights.v1.CloudStorageFilters.decode(reader, reader.uint32()); + message.storageFilters = $root.google.cloud.storageinsights.v1.CloudStorageFilters.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { - message.storageDestinationOptions = $root.google.cloud.storageinsights.v1.CloudStorageDestinationOptions.decode(reader, reader.uint32()); + message.storageDestinationOptions = $root.google.cloud.storageinsights.v1.CloudStorageDestinationOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -5284,9 +5500,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ObjectMetadataReportOptions.verify = function verify(message) { + ObjectMetadataReportOptions.verify = function verify(message, 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.metadataFields != null && message.hasOwnProperty("metadataFields")) { if (!Array.isArray(message.metadataFields)) @@ -5298,7 +5518,7 @@ if (message.storageFilters != null && message.hasOwnProperty("storageFilters")) { properties.filter = 1; { - var error = $root.google.cloud.storageinsights.v1.CloudStorageFilters.verify(message.storageFilters); + var error = $root.google.cloud.storageinsights.v1.CloudStorageFilters.verify(message.storageFilters, long + 1); if (error) return "storageFilters." + error; } @@ -5306,7 +5526,7 @@ if (message.storageDestinationOptions != null && message.hasOwnProperty("storageDestinationOptions")) { properties.destinationOptions = 1; { - var error = $root.google.cloud.storageinsights.v1.CloudStorageDestinationOptions.verify(message.storageDestinationOptions); + var error = $root.google.cloud.storageinsights.v1.CloudStorageDestinationOptions.verify(message.storageDestinationOptions, long + 1); if (error) return "storageDestinationOptions." + error; } @@ -5322,9 +5542,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.ObjectMetadataReportOptions} ObjectMetadataReportOptions */ - ObjectMetadataReportOptions.fromObject = function fromObject(object) { + ObjectMetadataReportOptions.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.ObjectMetadataReportOptions) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.ObjectMetadataReportOptions(); if (object.metadataFields) { if (!Array.isArray(object.metadataFields)) @@ -5336,12 +5560,12 @@ if (object.storageFilters != null) { if (typeof object.storageFilters !== "object") throw TypeError(".google.cloud.storageinsights.v1.ObjectMetadataReportOptions.storageFilters: object expected"); - message.storageFilters = $root.google.cloud.storageinsights.v1.CloudStorageFilters.fromObject(object.storageFilters); + message.storageFilters = $root.google.cloud.storageinsights.v1.CloudStorageFilters.fromObject(object.storageFilters, long + 1); } if (object.storageDestinationOptions != null) { if (typeof object.storageDestinationOptions !== "object") throw TypeError(".google.cloud.storageinsights.v1.ObjectMetadataReportOptions.storageDestinationOptions: object expected"); - message.storageDestinationOptions = $root.google.cloud.storageinsights.v1.CloudStorageDestinationOptions.fromObject(object.storageDestinationOptions); + message.storageDestinationOptions = $root.google.cloud.storageinsights.v1.CloudStorageDestinationOptions.fromObject(object.storageDestinationOptions, long + 1); } return message; }; @@ -5437,7 +5661,7 @@ this.labels = {}; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -5608,9 +5832,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ReportConfig.decode = function decode(reader, length, error) { + ReportConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.ReportConfig(), key, value; while (reader.pos < end) { var tag = reader.uint32(); @@ -5622,27 +5850,27 @@ break; } case 2: { - 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 3: { - message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.frequencyOptions = $root.google.cloud.storageinsights.v1.FrequencyOptions.decode(reader, reader.uint32()); + message.frequencyOptions = $root.google.cloud.storageinsights.v1.FrequencyOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 6: { - message.csvOptions = $root.google.cloud.storageinsights.v1.CSVOptions.decode(reader, reader.uint32()); + message.csvOptions = $root.google.cloud.storageinsights.v1.CSVOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 7: { - message.parquetOptions = $root.google.cloud.storageinsights.v1.ParquetOptions.decode(reader, reader.uint32()); + message.parquetOptions = $root.google.cloud.storageinsights.v1.ParquetOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { - message.objectMetadataReportOptions = $root.google.cloud.storageinsights.v1.ObjectMetadataReportOptions.decode(reader, reader.uint32()); + message.objectMetadataReportOptions = $root.google.cloud.storageinsights.v1.ObjectMetadataReportOptions.decode(reader, reader.uint32(), undefined, long + 1); break; } case 10: { @@ -5661,10 +5889,12 @@ value = reader.string(); break; default: - reader.skipType(tag2 & 7); + reader.skipType(tag2 & 7, long); break; } } + if (key === "__proto__") + $util.makeProp(message.labels, key); message.labels[key] = value; break; } @@ -5673,7 +5903,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -5704,32 +5934,36 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ReportConfig.verify = function verify(message) { + ReportConfig.verify = function verify(message, 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)) return "name: 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; } if (message.updateTime != null && message.hasOwnProperty("updateTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.updateTime); + var error = $root.google.protobuf.Timestamp.verify(message.updateTime, long + 1); if (error) return "updateTime." + error; } if (message.frequencyOptions != null && message.hasOwnProperty("frequencyOptions")) { - var error = $root.google.cloud.storageinsights.v1.FrequencyOptions.verify(message.frequencyOptions); + var error = $root.google.cloud.storageinsights.v1.FrequencyOptions.verify(message.frequencyOptions, long + 1); if (error) return "frequencyOptions." + error; } if (message.csvOptions != null && message.hasOwnProperty("csvOptions")) { properties.reportFormat = 1; { - var error = $root.google.cloud.storageinsights.v1.CSVOptions.verify(message.csvOptions); + var error = $root.google.cloud.storageinsights.v1.CSVOptions.verify(message.csvOptions, long + 1); if (error) return "csvOptions." + error; } @@ -5739,7 +5973,7 @@ return "reportFormat: multiple values"; properties.reportFormat = 1; { - var error = $root.google.cloud.storageinsights.v1.ParquetOptions.verify(message.parquetOptions); + var error = $root.google.cloud.storageinsights.v1.ParquetOptions.verify(message.parquetOptions, long + 1); if (error) return "parquetOptions." + error; } @@ -5747,7 +5981,7 @@ if (message.objectMetadataReportOptions != null && message.hasOwnProperty("objectMetadataReportOptions")) { properties.reportKind = 1; { - var error = $root.google.cloud.storageinsights.v1.ObjectMetadataReportOptions.verify(message.objectMetadataReportOptions); + var error = $root.google.cloud.storageinsights.v1.ObjectMetadataReportOptions.verify(message.objectMetadataReportOptions, long + 1); if (error) return "objectMetadataReportOptions." + error; } @@ -5774,48 +6008,55 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.ReportConfig} ReportConfig */ - ReportConfig.fromObject = function fromObject(object) { + ReportConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.ReportConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.ReportConfig(); if (object.name != null) message.name = String(object.name); if (object.createTime != null) { if (typeof object.createTime !== "object") throw TypeError(".google.cloud.storageinsights.v1.ReportConfig.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.updateTime != null) { if (typeof object.updateTime !== "object") throw TypeError(".google.cloud.storageinsights.v1.ReportConfig.updateTime: object expected"); - message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime); + message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime, long + 1); } if (object.frequencyOptions != null) { if (typeof object.frequencyOptions !== "object") throw TypeError(".google.cloud.storageinsights.v1.ReportConfig.frequencyOptions: object expected"); - message.frequencyOptions = $root.google.cloud.storageinsights.v1.FrequencyOptions.fromObject(object.frequencyOptions); + message.frequencyOptions = $root.google.cloud.storageinsights.v1.FrequencyOptions.fromObject(object.frequencyOptions, long + 1); } if (object.csvOptions != null) { if (typeof object.csvOptions !== "object") throw TypeError(".google.cloud.storageinsights.v1.ReportConfig.csvOptions: object expected"); - message.csvOptions = $root.google.cloud.storageinsights.v1.CSVOptions.fromObject(object.csvOptions); + message.csvOptions = $root.google.cloud.storageinsights.v1.CSVOptions.fromObject(object.csvOptions, long + 1); } if (object.parquetOptions != null) { if (typeof object.parquetOptions !== "object") throw TypeError(".google.cloud.storageinsights.v1.ReportConfig.parquetOptions: object expected"); - message.parquetOptions = $root.google.cloud.storageinsights.v1.ParquetOptions.fromObject(object.parquetOptions); + message.parquetOptions = $root.google.cloud.storageinsights.v1.ParquetOptions.fromObject(object.parquetOptions, long + 1); } if (object.objectMetadataReportOptions != null) { if (typeof object.objectMetadataReportOptions !== "object") throw TypeError(".google.cloud.storageinsights.v1.ReportConfig.objectMetadataReportOptions: object expected"); - message.objectMetadataReportOptions = $root.google.cloud.storageinsights.v1.ObjectMetadataReportOptions.fromObject(object.objectMetadataReportOptions); + message.objectMetadataReportOptions = $root.google.cloud.storageinsights.v1.ObjectMetadataReportOptions.fromObject(object.objectMetadataReportOptions, long + 1); } if (object.labels) { if (typeof object.labels !== "object") throw TypeError(".google.cloud.storageinsights.v1.ReportConfig.labels: object expected"); message.labels = {}; - for (var keys = Object.keys(object.labels), i = 0; i < keys.length; ++i) + for (var keys = Object.keys(object.labels), i = 0; i < keys.length; ++i) { + if (keys[i] === "__proto__") + $util.makeProp(message.labels, keys[i]); message.labels[keys[i]] = String(object.labels[keys[i]]); + } } if (object.displayName != null) message.displayName = String(object.displayName); @@ -5870,8 +6111,11 @@ var keys2; if (message.labels && (keys2 = Object.keys(message.labels)).length) { object.labels = {}; - for (var j = 0; j < keys2.length; ++j) + for (var j = 0; j < keys2.length; ++j) { + if (keys2[j] === "__proto__") + $util.makeProp(object.labels, keys2[j]); object.labels[keys2[j]] = message.labels[keys2[j]]; + } } if (message.displayName != null && message.hasOwnProperty("displayName")) object.displayName = message.displayName; @@ -5928,7 +6172,7 @@ function Identity(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -6003,9 +6247,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Identity.decode = function decode(reader, length, error) { + Identity.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.Identity(); while (reader.pos < end) { var tag = reader.uint32(); @@ -6021,7 +6269,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -6052,9 +6300,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Identity.verify = function verify(message) { + Identity.verify = function verify(message, long) { if (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"; @@ -6078,9 +6330,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.Identity} Identity */ - Identity.fromObject = function fromObject(object) { + Identity.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.Identity) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.Identity(); if (object.name != null) message.name = String(object.name); @@ -6218,7 +6474,7 @@ this.labels = {}; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -6530,9 +6786,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DatasetConfig.decode = function decode(reader, length, error) { + DatasetConfig.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.DatasetConfig(), key, value; while (reader.pos < end) { var tag = reader.uint32(); @@ -6544,11 +6804,11 @@ break; } case 2: { - 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 3: { - message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { @@ -6567,10 +6827,12 @@ value = reader.string(); break; default: - reader.skipType(tag2 & 7); + reader.skipType(tag2 & 7, long); break; } } + if (key === "__proto__") + $util.makeProp(message.labels, key); message.labels[key] = value; break; } @@ -6583,11 +6845,11 @@ break; } case 7: { - message.sourceProjects = $root.google.cloud.storageinsights.v1.DatasetConfig.SourceProjects.decode(reader, reader.uint32()); + message.sourceProjects = $root.google.cloud.storageinsights.v1.DatasetConfig.SourceProjects.decode(reader, reader.uint32(), undefined, long + 1); break; } case 24: { - message.sourceFolders = $root.google.cloud.storageinsights.v1.DatasetConfig.SourceFolders.decode(reader, reader.uint32()); + message.sourceFolders = $root.google.cloud.storageinsights.v1.DatasetConfig.SourceFolders.decode(reader, reader.uint32(), undefined, long + 1); break; } case 25: { @@ -6599,19 +6861,19 @@ break; } case 8: { - message.includeCloudStorageLocations = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageLocations.decode(reader, reader.uint32()); + message.includeCloudStorageLocations = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageLocations.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { - message.excludeCloudStorageLocations = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageLocations.decode(reader, reader.uint32()); + message.excludeCloudStorageLocations = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageLocations.decode(reader, reader.uint32(), undefined, long + 1); break; } case 10: { - message.includeCloudStorageBuckets = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.decode(reader, reader.uint32()); + message.includeCloudStorageBuckets = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.decode(reader, reader.uint32(), undefined, long + 1); break; } case 11: { - message.excludeCloudStorageBuckets = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.decode(reader, reader.uint32()); + message.excludeCloudStorageBuckets = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.decode(reader, reader.uint32(), undefined, long + 1); break; } case 12: { @@ -6627,15 +6889,15 @@ break; } case 15: { - message.link = $root.google.cloud.storageinsights.v1.DatasetConfig.Link.decode(reader, reader.uint32()); + message.link = $root.google.cloud.storageinsights.v1.DatasetConfig.Link.decode(reader, reader.uint32(), undefined, long + 1); break; } case 16: { - message.identity = $root.google.cloud.storageinsights.v1.Identity.decode(reader, reader.uint32()); + message.identity = $root.google.cloud.storageinsights.v1.Identity.decode(reader, reader.uint32(), undefined, long + 1); break; } case 17: { - message.status = $root.google.rpc.Status.decode(reader, reader.uint32()); + message.status = $root.google.rpc.Status.decode(reader, reader.uint32(), undefined, long + 1); break; } case 18: { @@ -6647,7 +6909,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -6678,20 +6940,24 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DatasetConfig.verify = function verify(message) { + DatasetConfig.verify = function verify(message, 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)) return "name: 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; } if (message.updateTime != null && message.hasOwnProperty("updateTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.updateTime); + var error = $root.google.protobuf.Timestamp.verify(message.updateTime, long + 1); if (error) return "updateTime." + error; } @@ -6712,7 +6978,7 @@ if (message.sourceProjects != null && message.hasOwnProperty("sourceProjects")) { properties.sourceOptions = 1; { - var error = $root.google.cloud.storageinsights.v1.DatasetConfig.SourceProjects.verify(message.sourceProjects); + var error = $root.google.cloud.storageinsights.v1.DatasetConfig.SourceProjects.verify(message.sourceProjects, long + 1); if (error) return "sourceProjects." + error; } @@ -6722,7 +6988,7 @@ return "sourceOptions: multiple values"; properties.sourceOptions = 1; { - var error = $root.google.cloud.storageinsights.v1.DatasetConfig.SourceFolders.verify(message.sourceFolders); + var error = $root.google.cloud.storageinsights.v1.DatasetConfig.SourceFolders.verify(message.sourceFolders, long + 1); if (error) return "sourceFolders." + error; } @@ -6744,7 +7010,7 @@ if (message.includeCloudStorageLocations != null && message.hasOwnProperty("includeCloudStorageLocations")) { properties.cloudStorageLocations = 1; { - var error = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageLocations.verify(message.includeCloudStorageLocations); + var error = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageLocations.verify(message.includeCloudStorageLocations, long + 1); if (error) return "includeCloudStorageLocations." + error; } @@ -6754,7 +7020,7 @@ return "cloudStorageLocations: multiple values"; properties.cloudStorageLocations = 1; { - var error = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageLocations.verify(message.excludeCloudStorageLocations); + var error = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageLocations.verify(message.excludeCloudStorageLocations, long + 1); if (error) return "excludeCloudStorageLocations." + error; } @@ -6762,7 +7028,7 @@ if (message.includeCloudStorageBuckets != null && message.hasOwnProperty("includeCloudStorageBuckets")) { properties.cloudStorageBuckets = 1; { - var error = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.verify(message.includeCloudStorageBuckets); + var error = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.verify(message.includeCloudStorageBuckets, long + 1); if (error) return "includeCloudStorageBuckets." + error; } @@ -6772,7 +7038,7 @@ return "cloudStorageBuckets: multiple values"; properties.cloudStorageBuckets = 1; { - var error = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.verify(message.excludeCloudStorageBuckets); + var error = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.verify(message.excludeCloudStorageBuckets, long + 1); if (error) return "excludeCloudStorageBuckets." + error; } @@ -6787,17 +7053,17 @@ if (!$util.isInteger(message.retentionPeriodDays)) return "retentionPeriodDays: integer expected"; if (message.link != null && message.hasOwnProperty("link")) { - var error = $root.google.cloud.storageinsights.v1.DatasetConfig.Link.verify(message.link); + var error = $root.google.cloud.storageinsights.v1.DatasetConfig.Link.verify(message.link, long + 1); if (error) return "link." + error; } if (message.identity != null && message.hasOwnProperty("identity")) { - var error = $root.google.cloud.storageinsights.v1.Identity.verify(message.identity); + var error = $root.google.cloud.storageinsights.v1.Identity.verify(message.identity, long + 1); if (error) return "identity." + 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; } @@ -6826,28 +7092,35 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.DatasetConfig} DatasetConfig */ - DatasetConfig.fromObject = function fromObject(object) { + DatasetConfig.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.DatasetConfig) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.DatasetConfig(); if (object.name != null) message.name = String(object.name); if (object.createTime != null) { if (typeof object.createTime !== "object") throw TypeError(".google.cloud.storageinsights.v1.DatasetConfig.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.updateTime != null) { if (typeof object.updateTime !== "object") throw TypeError(".google.cloud.storageinsights.v1.DatasetConfig.updateTime: object expected"); - message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime); + message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime, long + 1); } if (object.labels) { if (typeof object.labels !== "object") throw TypeError(".google.cloud.storageinsights.v1.DatasetConfig.labels: object expected"); message.labels = {}; - for (var keys = Object.keys(object.labels), i = 0; i < keys.length; ++i) + for (var keys = Object.keys(object.labels), i = 0; i < keys.length; ++i) { + if (keys[i] === "__proto__") + $util.makeProp(message.labels, keys[i]); message.labels[keys[i]] = String(object.labels[keys[i]]); + } } if (object.uid != null) message.uid = String(object.uid); @@ -6863,12 +7136,12 @@ if (object.sourceProjects != null) { if (typeof object.sourceProjects !== "object") throw TypeError(".google.cloud.storageinsights.v1.DatasetConfig.sourceProjects: object expected"); - message.sourceProjects = $root.google.cloud.storageinsights.v1.DatasetConfig.SourceProjects.fromObject(object.sourceProjects); + message.sourceProjects = $root.google.cloud.storageinsights.v1.DatasetConfig.SourceProjects.fromObject(object.sourceProjects, long + 1); } if (object.sourceFolders != null) { if (typeof object.sourceFolders !== "object") throw TypeError(".google.cloud.storageinsights.v1.DatasetConfig.sourceFolders: object expected"); - message.sourceFolders = $root.google.cloud.storageinsights.v1.DatasetConfig.SourceFolders.fromObject(object.sourceFolders); + message.sourceFolders = $root.google.cloud.storageinsights.v1.DatasetConfig.SourceFolders.fromObject(object.sourceFolders, long + 1); } if (object.organizationScope != null) message.organizationScope = Boolean(object.organizationScope); @@ -6877,22 +7150,22 @@ if (object.includeCloudStorageLocations != null) { if (typeof object.includeCloudStorageLocations !== "object") throw TypeError(".google.cloud.storageinsights.v1.DatasetConfig.includeCloudStorageLocations: object expected"); - message.includeCloudStorageLocations = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageLocations.fromObject(object.includeCloudStorageLocations); + message.includeCloudStorageLocations = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageLocations.fromObject(object.includeCloudStorageLocations, long + 1); } if (object.excludeCloudStorageLocations != null) { if (typeof object.excludeCloudStorageLocations !== "object") throw TypeError(".google.cloud.storageinsights.v1.DatasetConfig.excludeCloudStorageLocations: object expected"); - message.excludeCloudStorageLocations = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageLocations.fromObject(object.excludeCloudStorageLocations); + message.excludeCloudStorageLocations = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageLocations.fromObject(object.excludeCloudStorageLocations, long + 1); } if (object.includeCloudStorageBuckets != null) { if (typeof object.includeCloudStorageBuckets !== "object") throw TypeError(".google.cloud.storageinsights.v1.DatasetConfig.includeCloudStorageBuckets: object expected"); - message.includeCloudStorageBuckets = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.fromObject(object.includeCloudStorageBuckets); + message.includeCloudStorageBuckets = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.fromObject(object.includeCloudStorageBuckets, long + 1); } if (object.excludeCloudStorageBuckets != null) { if (typeof object.excludeCloudStorageBuckets !== "object") throw TypeError(".google.cloud.storageinsights.v1.DatasetConfig.excludeCloudStorageBuckets: object expected"); - message.excludeCloudStorageBuckets = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.fromObject(object.excludeCloudStorageBuckets); + message.excludeCloudStorageBuckets = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.fromObject(object.excludeCloudStorageBuckets, long + 1); } if (object.includeNewlyCreatedBuckets != null) message.includeNewlyCreatedBuckets = Boolean(object.includeNewlyCreatedBuckets); @@ -6903,17 +7176,17 @@ if (object.link != null) { if (typeof object.link !== "object") throw TypeError(".google.cloud.storageinsights.v1.DatasetConfig.link: object expected"); - message.link = $root.google.cloud.storageinsights.v1.DatasetConfig.Link.fromObject(object.link); + message.link = $root.google.cloud.storageinsights.v1.DatasetConfig.Link.fromObject(object.link, long + 1); } if (object.identity != null) { if (typeof object.identity !== "object") throw TypeError(".google.cloud.storageinsights.v1.DatasetConfig.identity: object expected"); - message.identity = $root.google.cloud.storageinsights.v1.Identity.fromObject(object.identity); + message.identity = $root.google.cloud.storageinsights.v1.Identity.fromObject(object.identity, long + 1); } if (object.status != null) { if (typeof object.status !== "object") throw TypeError(".google.cloud.storageinsights.v1.DatasetConfig.status: object expected"); - message.status = $root.google.rpc.Status.fromObject(object.status); + message.status = $root.google.rpc.Status.fromObject(object.status, long + 1); } switch (object.datasetConfigState) { default: @@ -6991,8 +7264,11 @@ var keys2; if (message.labels && (keys2 = Object.keys(message.labels)).length) { object.labels = {}; - for (var j = 0; j < keys2.length; ++j) + for (var j = 0; j < keys2.length; ++j) { + if (keys2[j] === "__proto__") + $util.makeProp(object.labels, keys2[j]); object.labels[keys2[j]] = message.labels[keys2[j]]; + } } if (message.uid != null && message.hasOwnProperty("uid")) object.uid = message.uid; @@ -7107,7 +7383,7 @@ this.projectNumbers = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -7176,9 +7452,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SourceProjects.decode = function decode(reader, length, error) { + SourceProjects.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.DatasetConfig.SourceProjects(); while (reader.pos < end) { var tag = reader.uint32(); @@ -7197,7 +7477,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -7228,9 +7508,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SourceProjects.verify = function verify(message) { + SourceProjects.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.projectNumbers != null && message.hasOwnProperty("projectNumbers")) { if (!Array.isArray(message.projectNumbers)) return "projectNumbers: array expected"; @@ -7249,9 +7533,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.DatasetConfig.SourceProjects} SourceProjects */ - SourceProjects.fromObject = function fromObject(object) { + SourceProjects.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.DatasetConfig.SourceProjects) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.DatasetConfig.SourceProjects(); if (object.projectNumbers) { if (!Array.isArray(object.projectNumbers)) @@ -7346,7 +7634,7 @@ this.folderNumbers = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -7415,9 +7703,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SourceFolders.decode = function decode(reader, length, error) { + SourceFolders.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.DatasetConfig.SourceFolders(); while (reader.pos < end) { var tag = reader.uint32(); @@ -7436,7 +7728,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -7467,9 +7759,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SourceFolders.verify = function verify(message) { + SourceFolders.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.folderNumbers != null && message.hasOwnProperty("folderNumbers")) { if (!Array.isArray(message.folderNumbers)) return "folderNumbers: array expected"; @@ -7488,9 +7784,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.DatasetConfig.SourceFolders} SourceFolders */ - SourceFolders.fromObject = function fromObject(object) { + SourceFolders.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.DatasetConfig.SourceFolders) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.DatasetConfig.SourceFolders(); if (object.folderNumbers) { if (!Array.isArray(object.folderNumbers)) @@ -7585,7 +7885,7 @@ this.locations = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -7651,9 +7951,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CloudStorageLocations.decode = function decode(reader, length, error) { + CloudStorageLocations.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageLocations(); while (reader.pos < end) { var tag = reader.uint32(); @@ -7667,7 +7971,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -7698,9 +8002,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CloudStorageLocations.verify = function verify(message) { + CloudStorageLocations.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.locations != null && message.hasOwnProperty("locations")) { if (!Array.isArray(message.locations)) return "locations: array expected"; @@ -7719,9 +8027,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.DatasetConfig.CloudStorageLocations} CloudStorageLocations */ - CloudStorageLocations.fromObject = function fromObject(object) { + CloudStorageLocations.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageLocations) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageLocations(); if (object.locations) { if (!Array.isArray(object.locations)) @@ -7806,7 +8118,7 @@ this.cloudStorageBuckets = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -7872,9 +8184,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CloudStorageBuckets.decode = function decode(reader, length, error) { + CloudStorageBuckets.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets(); while (reader.pos < end) { var tag = reader.uint32(); @@ -7884,11 +8200,11 @@ case 1: { if (!(message.cloudStorageBuckets && message.cloudStorageBuckets.length)) message.cloudStorageBuckets = []; - message.cloudStorageBuckets.push($root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.CloudStorageBucket.decode(reader, reader.uint32())); + message.cloudStorageBuckets.push($root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.CloudStorageBucket.decode(reader, reader.uint32(), undefined, long + 1)); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -7919,14 +8235,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CloudStorageBuckets.verify = function verify(message) { + CloudStorageBuckets.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.cloudStorageBuckets != null && message.hasOwnProperty("cloudStorageBuckets")) { if (!Array.isArray(message.cloudStorageBuckets)) return "cloudStorageBuckets: array expected"; for (var i = 0; i < message.cloudStorageBuckets.length; ++i) { - var error = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.CloudStorageBucket.verify(message.cloudStorageBuckets[i]); + var error = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.CloudStorageBucket.verify(message.cloudStorageBuckets[i], long + 1); if (error) return "cloudStorageBuckets." + error; } @@ -7942,9 +8262,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets} CloudStorageBuckets */ - CloudStorageBuckets.fromObject = function fromObject(object) { + CloudStorageBuckets.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets(); if (object.cloudStorageBuckets) { if (!Array.isArray(object.cloudStorageBuckets)) @@ -7953,7 +8277,7 @@ for (var i = 0; i < object.cloudStorageBuckets.length; ++i) { if (typeof object.cloudStorageBuckets[i] !== "object") throw TypeError(".google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.cloudStorageBuckets: object expected"); - message.cloudStorageBuckets[i] = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.CloudStorageBucket.fromObject(object.cloudStorageBuckets[i]); + message.cloudStorageBuckets[i] = $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.CloudStorageBucket.fromObject(object.cloudStorageBuckets[i], long + 1); } } return message; @@ -8029,7 +8353,7 @@ function CloudStorageBucket(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -8118,9 +8442,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CloudStorageBucket.decode = function decode(reader, length, error) { + CloudStorageBucket.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.CloudStorageBucket(); while (reader.pos < end) { var tag = reader.uint32(); @@ -8136,7 +8464,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -8167,9 +8495,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CloudStorageBucket.verify = function verify(message) { + CloudStorageBucket.verify = function verify(message, 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.bucketName != null && message.hasOwnProperty("bucketName")) { properties.cloudStorageBucket = 1; @@ -8194,9 +8526,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.CloudStorageBucket} CloudStorageBucket */ - CloudStorageBucket.fromObject = function fromObject(object) { + CloudStorageBucket.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.CloudStorageBucket) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.DatasetConfig.CloudStorageBuckets.CloudStorageBucket(); if (object.bucketName != null) message.bucketName = String(object.bucketName); @@ -8284,7 +8620,7 @@ function Link(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -8359,9 +8695,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Link.decode = function decode(reader, length, error) { + Link.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.DatasetConfig.Link(); while (reader.pos < end) { var tag = reader.uint32(); @@ -8377,7 +8717,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -8408,9 +8748,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Link.verify = function verify(message) { + Link.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.dataset != null && message.hasOwnProperty("dataset")) if (!$util.isString(message.dataset)) return "dataset: string expected"; @@ -8428,9 +8772,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.DatasetConfig.Link} Link */ - Link.fromObject = function fromObject(object) { + Link.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.DatasetConfig.Link) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.DatasetConfig.Link(); if (object.dataset != null) message.dataset = String(object.dataset); @@ -8540,7 +8888,7 @@ this.nonStorageIntelligenceEntitledBucketIds = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -8667,9 +9015,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - BucketErrors.decode = function decode(reader, length, error) { + BucketErrors.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.DatasetConfig.BucketErrors(); while (reader.pos < end) { var tag = reader.uint32(); @@ -8709,7 +9061,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -8740,9 +9092,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - BucketErrors.verify = function verify(message) { + BucketErrors.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.validatedCount != null && message.hasOwnProperty("validatedCount")) if (!$util.isInteger(message.validatedCount) && !(message.validatedCount && $util.isInteger(message.validatedCount.low) && $util.isInteger(message.validatedCount.high))) return "validatedCount: integer|Long expected"; @@ -8783,9 +9139,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.DatasetConfig.BucketErrors} BucketErrors */ - BucketErrors.fromObject = function fromObject(object) { + BucketErrors.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.DatasetConfig.BucketErrors) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.DatasetConfig.BucketErrors(); if (object.validatedCount != null) if ($util.Long) @@ -8992,7 +9352,7 @@ this.nonStorageIntelligenceEntitledProjectNumbers = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -9203,9 +9563,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ProjectErrors.decode = function decode(reader, length, error) { + ProjectErrors.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.DatasetConfig.ProjectErrors(); while (reader.pos < end) { var tag = reader.uint32(); @@ -9274,7 +9638,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -9305,9 +9669,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ProjectErrors.verify = function verify(message) { + ProjectErrors.verify = function verify(message, 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.validatedCount != null && message.hasOwnProperty("validatedCount")) { properties._validatedCount = 1; @@ -9378,9 +9746,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.DatasetConfig.ProjectErrors} ProjectErrors */ - ProjectErrors.fromObject = function fromObject(object) { + ProjectErrors.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.DatasetConfig.ProjectErrors) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.DatasetConfig.ProjectErrors(); if (object.validatedCount != null) if ($util.Long) @@ -9621,7 +9993,7 @@ function ValidationErrorsBeforeIngestion(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -9696,9 +10068,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ValidationErrorsBeforeIngestion.decode = function decode(reader, length, error) { + ValidationErrorsBeforeIngestion.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.DatasetConfig.ValidationErrorsBeforeIngestion(); while (reader.pos < end) { var tag = reader.uint32(); @@ -9706,15 +10082,15 @@ break; switch (tag >>> 3) { case 1: { - message.bucketErrors = $root.google.cloud.storageinsights.v1.DatasetConfig.BucketErrors.decode(reader, reader.uint32()); + message.bucketErrors = $root.google.cloud.storageinsights.v1.DatasetConfig.BucketErrors.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.projectErrors = $root.google.cloud.storageinsights.v1.DatasetConfig.ProjectErrors.decode(reader, reader.uint32()); + message.projectErrors = $root.google.cloud.storageinsights.v1.DatasetConfig.ProjectErrors.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -9745,16 +10121,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ValidationErrorsBeforeIngestion.verify = function verify(message) { + ValidationErrorsBeforeIngestion.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.bucketErrors != null && message.hasOwnProperty("bucketErrors")) { - var error = $root.google.cloud.storageinsights.v1.DatasetConfig.BucketErrors.verify(message.bucketErrors); + var error = $root.google.cloud.storageinsights.v1.DatasetConfig.BucketErrors.verify(message.bucketErrors, long + 1); if (error) return "bucketErrors." + error; } if (message.projectErrors != null && message.hasOwnProperty("projectErrors")) { - var error = $root.google.cloud.storageinsights.v1.DatasetConfig.ProjectErrors.verify(message.projectErrors); + var error = $root.google.cloud.storageinsights.v1.DatasetConfig.ProjectErrors.verify(message.projectErrors, long + 1); if (error) return "projectErrors." + error; } @@ -9769,19 +10149,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.DatasetConfig.ValidationErrorsBeforeIngestion} ValidationErrorsBeforeIngestion */ - ValidationErrorsBeforeIngestion.fromObject = function fromObject(object) { + ValidationErrorsBeforeIngestion.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.DatasetConfig.ValidationErrorsBeforeIngestion) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.DatasetConfig.ValidationErrorsBeforeIngestion(); if (object.bucketErrors != null) { if (typeof object.bucketErrors !== "object") throw TypeError(".google.cloud.storageinsights.v1.DatasetConfig.ValidationErrorsBeforeIngestion.bucketErrors: object expected"); - message.bucketErrors = $root.google.cloud.storageinsights.v1.DatasetConfig.BucketErrors.fromObject(object.bucketErrors); + message.bucketErrors = $root.google.cloud.storageinsights.v1.DatasetConfig.BucketErrors.fromObject(object.bucketErrors, long + 1); } if (object.projectErrors != null) { if (typeof object.projectErrors !== "object") throw TypeError(".google.cloud.storageinsights.v1.DatasetConfig.ValidationErrorsBeforeIngestion.projectErrors: object expected"); - message.projectErrors = $root.google.cloud.storageinsights.v1.DatasetConfig.ProjectErrors.fromObject(object.projectErrors); + message.projectErrors = $root.google.cloud.storageinsights.v1.DatasetConfig.ProjectErrors.fromObject(object.projectErrors, long + 1); } return message; }; @@ -9866,7 +10250,7 @@ function ListDatasetConfigsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -9971,9 +10355,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListDatasetConfigsRequest.decode = function decode(reader, length, error) { + ListDatasetConfigsRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.ListDatasetConfigsRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -10001,7 +10389,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -10032,9 +10420,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListDatasetConfigsRequest.verify = function verify(message) { + ListDatasetConfigsRequest.verify = function verify(message, long) { if (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"; @@ -10061,9 +10453,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.ListDatasetConfigsRequest} ListDatasetConfigsRequest */ - ListDatasetConfigsRequest.fromObject = function fromObject(object) { + ListDatasetConfigsRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.ListDatasetConfigsRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.ListDatasetConfigsRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -10164,7 +10560,7 @@ this.unreachable = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -10251,9 +10647,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListDatasetConfigsResponse.decode = function decode(reader, length, error) { + ListDatasetConfigsResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.ListDatasetConfigsResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -10263,7 +10663,7 @@ case 1: { if (!(message.datasetConfigs && message.datasetConfigs.length)) message.datasetConfigs = []; - message.datasetConfigs.push($root.google.cloud.storageinsights.v1.DatasetConfig.decode(reader, reader.uint32())); + message.datasetConfigs.push($root.google.cloud.storageinsights.v1.DatasetConfig.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -10277,7 +10677,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -10308,14 +10708,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListDatasetConfigsResponse.verify = function verify(message) { + ListDatasetConfigsResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.datasetConfigs != null && message.hasOwnProperty("datasetConfigs")) { if (!Array.isArray(message.datasetConfigs)) return "datasetConfigs: array expected"; for (var i = 0; i < message.datasetConfigs.length; ++i) { - var error = $root.google.cloud.storageinsights.v1.DatasetConfig.verify(message.datasetConfigs[i]); + var error = $root.google.cloud.storageinsights.v1.DatasetConfig.verify(message.datasetConfigs[i], long + 1); if (error) return "datasetConfigs." + error; } @@ -10341,9 +10745,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.ListDatasetConfigsResponse} ListDatasetConfigsResponse */ - ListDatasetConfigsResponse.fromObject = function fromObject(object) { + ListDatasetConfigsResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.ListDatasetConfigsResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.ListDatasetConfigsResponse(); if (object.datasetConfigs) { if (!Array.isArray(object.datasetConfigs)) @@ -10352,7 +10760,7 @@ for (var i = 0; i < object.datasetConfigs.length; ++i) { if (typeof object.datasetConfigs[i] !== "object") throw TypeError(".google.cloud.storageinsights.v1.ListDatasetConfigsResponse.datasetConfigs: object expected"); - message.datasetConfigs[i] = $root.google.cloud.storageinsights.v1.DatasetConfig.fromObject(object.datasetConfigs[i]); + message.datasetConfigs[i] = $root.google.cloud.storageinsights.v1.DatasetConfig.fromObject(object.datasetConfigs[i], long + 1); } } if (object.nextPageToken != null) @@ -10450,7 +10858,7 @@ function GetDatasetConfigRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -10515,9 +10923,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetDatasetConfigRequest.decode = function decode(reader, length, error) { + GetDatasetConfigRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.GetDatasetConfigRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -10529,7 +10941,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -10560,9 +10972,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetDatasetConfigRequest.verify = function verify(message) { + GetDatasetConfigRequest.verify = function verify(message, long) { if (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"; @@ -10577,9 +10993,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.GetDatasetConfigRequest} GetDatasetConfigRequest */ - GetDatasetConfigRequest.fromObject = function fromObject(object) { + GetDatasetConfigRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.GetDatasetConfigRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.GetDatasetConfigRequest(); if (object.name != null) message.name = String(object.name); @@ -10658,7 +11078,7 @@ function CreateDatasetConfigRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -10753,9 +11173,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CreateDatasetConfigRequest.decode = function decode(reader, length, error) { + CreateDatasetConfigRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.CreateDatasetConfigRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -10771,7 +11195,7 @@ break; } case 3: { - message.datasetConfig = $root.google.cloud.storageinsights.v1.DatasetConfig.decode(reader, reader.uint32()); + message.datasetConfig = $root.google.cloud.storageinsights.v1.DatasetConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { @@ -10779,7 +11203,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -10810,9 +11234,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CreateDatasetConfigRequest.verify = function verify(message) { + CreateDatasetConfigRequest.verify = function verify(message, long) { if (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"; @@ -10820,7 +11248,7 @@ if (!$util.isString(message.datasetConfigId)) return "datasetConfigId: string expected"; if (message.datasetConfig != null && message.hasOwnProperty("datasetConfig")) { - var error = $root.google.cloud.storageinsights.v1.DatasetConfig.verify(message.datasetConfig); + var error = $root.google.cloud.storageinsights.v1.DatasetConfig.verify(message.datasetConfig, long + 1); if (error) return "datasetConfig." + error; } @@ -10838,9 +11266,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.CreateDatasetConfigRequest} CreateDatasetConfigRequest */ - CreateDatasetConfigRequest.fromObject = function fromObject(object) { + CreateDatasetConfigRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.CreateDatasetConfigRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.CreateDatasetConfigRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -10849,7 +11281,7 @@ if (object.datasetConfig != null) { if (typeof object.datasetConfig !== "object") throw TypeError(".google.cloud.storageinsights.v1.CreateDatasetConfigRequest.datasetConfig: object expected"); - message.datasetConfig = $root.google.cloud.storageinsights.v1.DatasetConfig.fromObject(object.datasetConfig); + message.datasetConfig = $root.google.cloud.storageinsights.v1.DatasetConfig.fromObject(object.datasetConfig, long + 1); } if (object.requestId != null) message.requestId = String(object.requestId); @@ -10937,7 +11369,7 @@ function UpdateDatasetConfigRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -11022,9 +11454,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UpdateDatasetConfigRequest.decode = function decode(reader, length, error) { + UpdateDatasetConfigRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.UpdateDatasetConfigRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -11032,11 +11468,11 @@ break; switch (tag >>> 3) { case 1: { - message.updateMask = $root.google.protobuf.FieldMask.decode(reader, reader.uint32()); + message.updateMask = $root.google.protobuf.FieldMask.decode(reader, reader.uint32(), undefined, long + 1); break; } case 2: { - message.datasetConfig = $root.google.cloud.storageinsights.v1.DatasetConfig.decode(reader, reader.uint32()); + message.datasetConfig = $root.google.cloud.storageinsights.v1.DatasetConfig.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -11044,7 +11480,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -11075,16 +11511,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UpdateDatasetConfigRequest.verify = function verify(message) { + UpdateDatasetConfigRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; 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; } if (message.datasetConfig != null && message.hasOwnProperty("datasetConfig")) { - var error = $root.google.cloud.storageinsights.v1.DatasetConfig.verify(message.datasetConfig); + var error = $root.google.cloud.storageinsights.v1.DatasetConfig.verify(message.datasetConfig, long + 1); if (error) return "datasetConfig." + error; } @@ -11102,19 +11542,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.UpdateDatasetConfigRequest} UpdateDatasetConfigRequest */ - UpdateDatasetConfigRequest.fromObject = function fromObject(object) { + UpdateDatasetConfigRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.UpdateDatasetConfigRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.UpdateDatasetConfigRequest(); if (object.updateMask != null) { if (typeof object.updateMask !== "object") throw TypeError(".google.cloud.storageinsights.v1.UpdateDatasetConfigRequest.updateMask: object expected"); - message.updateMask = $root.google.protobuf.FieldMask.fromObject(object.updateMask); + message.updateMask = $root.google.protobuf.FieldMask.fromObject(object.updateMask, long + 1); } if (object.datasetConfig != null) { if (typeof object.datasetConfig !== "object") throw TypeError(".google.cloud.storageinsights.v1.UpdateDatasetConfigRequest.datasetConfig: object expected"); - message.datasetConfig = $root.google.cloud.storageinsights.v1.DatasetConfig.fromObject(object.datasetConfig); + message.datasetConfig = $root.google.cloud.storageinsights.v1.DatasetConfig.fromObject(object.datasetConfig, long + 1); } if (object.requestId != null) message.requestId = String(object.requestId); @@ -11198,7 +11642,7 @@ function DeleteDatasetConfigRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -11273,9 +11717,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DeleteDatasetConfigRequest.decode = function decode(reader, length, error) { + DeleteDatasetConfigRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.DeleteDatasetConfigRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -11291,7 +11739,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -11322,9 +11770,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DeleteDatasetConfigRequest.verify = function verify(message) { + DeleteDatasetConfigRequest.verify = function verify(message, long) { if (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"; @@ -11342,9 +11794,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.DeleteDatasetConfigRequest} DeleteDatasetConfigRequest */ - DeleteDatasetConfigRequest.fromObject = function fromObject(object) { + DeleteDatasetConfigRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.DeleteDatasetConfigRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.DeleteDatasetConfigRequest(); if (object.name != null) message.name = String(object.name); @@ -11426,7 +11882,7 @@ function LinkDatasetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -11491,9 +11947,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LinkDatasetRequest.decode = function decode(reader, length, error) { + LinkDatasetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.LinkDatasetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -11505,7 +11965,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -11536,9 +11996,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LinkDatasetRequest.verify = function verify(message) { + LinkDatasetRequest.verify = function verify(message, long) { if (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"; @@ -11553,9 +12017,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.LinkDatasetRequest} LinkDatasetRequest */ - LinkDatasetRequest.fromObject = function fromObject(object) { + LinkDatasetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.LinkDatasetRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.LinkDatasetRequest(); if (object.name != null) message.name = String(object.name); @@ -11630,7 +12098,7 @@ function LinkDatasetResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -11685,9 +12153,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LinkDatasetResponse.decode = function decode(reader, length, error) { + LinkDatasetResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.LinkDatasetResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -11695,7 +12167,7 @@ break; switch (tag >>> 3) { default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -11726,9 +12198,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LinkDatasetResponse.verify = function verify(message) { + LinkDatasetResponse.verify = function verify(message, 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; }; @@ -11740,9 +12216,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.LinkDatasetResponse} LinkDatasetResponse */ - LinkDatasetResponse.fromObject = function fromObject(object) { + LinkDatasetResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.LinkDatasetResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); return new $root.google.cloud.storageinsights.v1.LinkDatasetResponse(); }; @@ -11808,7 +12288,7 @@ function UnlinkDatasetRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -11873,9 +12353,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UnlinkDatasetRequest.decode = function decode(reader, length, error) { + UnlinkDatasetRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.UnlinkDatasetRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -11887,7 +12371,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -11918,9 +12402,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UnlinkDatasetRequest.verify = function verify(message) { + UnlinkDatasetRequest.verify = function verify(message, long) { if (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"; @@ -11935,9 +12423,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.UnlinkDatasetRequest} UnlinkDatasetRequest */ - UnlinkDatasetRequest.fromObject = function fromObject(object) { + UnlinkDatasetRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.UnlinkDatasetRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.UnlinkDatasetRequest(); if (object.name != null) message.name = String(object.name); @@ -12014,7 +12506,7 @@ function LocationMetadata(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -12089,9 +12581,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - LocationMetadata.decode = function decode(reader, length, error) { + LocationMetadata.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.storageinsights.v1.LocationMetadata(); while (reader.pos < end) { var tag = reader.uint32(); @@ -12107,7 +12603,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -12138,9 +12634,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - LocationMetadata.verify = function verify(message) { + LocationMetadata.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.reportConfigAvailable != null && message.hasOwnProperty("reportConfigAvailable")) if (typeof message.reportConfigAvailable !== "boolean") return "reportConfigAvailable: boolean expected"; @@ -12158,9 +12658,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.storageinsights.v1.LocationMetadata} LocationMetadata */ - LocationMetadata.fromObject = function fromObject(object) { + LocationMetadata.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.storageinsights.v1.LocationMetadata) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.storageinsights.v1.LocationMetadata(); if (object.reportConfigAvailable != null) message.reportConfigAvailable = Boolean(object.reportConfigAvailable); @@ -12262,7 +12766,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]]; } @@ -12338,9 +12842,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(); @@ -12350,7 +12858,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: { @@ -12358,7 +12866,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -12389,14 +12897,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; } @@ -12415,9 +12927,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)) @@ -12426,7 +12942,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) @@ -12520,7 +13036,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]]; } @@ -12690,9 +13206,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(); @@ -12724,7 +13244,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: { @@ -12738,11 +13258,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; } } @@ -12773,9 +13293,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)) @@ -12818,7 +13342,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; } @@ -12833,7 +13357,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; } @@ -12849,9 +13373,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); @@ -12868,7 +13396,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); @@ -12881,7 +13409,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; @@ -13001,7 +13529,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]]; } @@ -13076,9 +13604,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(); @@ -13094,7 +13626,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -13125,9 +13657,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"; @@ -13145,9 +13681,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); @@ -13217,6 +13757,7 @@ * @interface ICommonLanguageSettings * @property {string|null} [referenceDocsUri] CommonLanguageSettings referenceDocsUri * @property {Array.|null} [destinations] CommonLanguageSettings destinations + * @property {google.api.ISelectiveGapicGeneration|null} [selectiveGapicGeneration] CommonLanguageSettings selectiveGapicGeneration */ /** @@ -13231,7 +13772,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]]; } @@ -13251,6 +13792,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 @@ -13283,6 +13832,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; }; @@ -13310,9 +13861,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(); @@ -13334,8 +13889,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; } } @@ -13366,9 +13925,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"; @@ -13385,6 +13948,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; }; @@ -13396,9 +13964,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); @@ -13427,6 +13999,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; }; @@ -13445,8 +14022,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) { @@ -13454,6 +14033,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; }; @@ -13516,7 +14097,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]]; } @@ -13681,9 +14262,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(); @@ -13703,39 +14288,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; } } @@ -13766,9 +14351,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"; @@ -13790,42 +14379,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; } @@ -13840,9 +14429,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); @@ -13891,42 +14484,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; }; @@ -14044,7 +14637,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]]; } @@ -14212,9 +14805,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(); @@ -14224,7 +14821,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: { @@ -14260,7 +14857,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: { @@ -14272,7 +14869,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -14303,14 +14900,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; } @@ -14355,7 +14956,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; } @@ -14377,9 +14978,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)) @@ -14388,7 +14993,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) @@ -14455,7 +15060,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) @@ -14579,7 +15184,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]]; } @@ -14665,9 +15270,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(); @@ -14694,19 +15303,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; } } @@ -14737,9 +15348,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"; @@ -14752,7 +15367,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; } @@ -14767,9 +15382,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); @@ -14777,13 +15396,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; }; @@ -14812,8 +15434,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); @@ -14869,7 +15494,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]]; } @@ -14934,9 +15559,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(); @@ -14944,11 +15573,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; } } @@ -14979,11 +15608,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; } @@ -14998,14 +15631,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; }; @@ -15079,7 +15716,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]]; } @@ -15144,9 +15781,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(); @@ -15154,11 +15795,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; } } @@ -15189,11 +15830,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; } @@ -15208,14 +15853,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; }; @@ -15276,6 +15925,7 @@ * @memberof google.api * @interface IPythonSettings * @property {google.api.ICommonLanguageSettings|null} [common] PythonSettings common + * @property {google.api.PythonSettings.IExperimentalFeatures|null} [experimentalFeatures] PythonSettings experimentalFeatures */ /** @@ -15289,7 +15939,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]]; } @@ -15301,6 +15951,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 @@ -15327,6 +15985,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; }; @@ -15354,9 +16014,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(); @@ -15364,11 +16028,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; } } @@ -15399,14 +16067,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; }; @@ -15418,14 +16095,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; }; @@ -15443,10 +16129,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; }; @@ -15476,6 +16166,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; })(); @@ -15499,7 +16453,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]]; } @@ -15564,9 +16518,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(); @@ -15574,11 +16532,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; } } @@ -15609,11 +16567,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; } @@ -15628,14 +16590,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; }; @@ -15719,7 +16685,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]]; } @@ -15839,9 +16805,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(); @@ -15849,7 +16819,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: { @@ -15868,10 +16838,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; } @@ -15891,10 +16863,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; } @@ -15917,7 +16891,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -15948,11 +16922,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; } @@ -16004,28 +16982,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)) @@ -16080,13 +17068,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 = []; @@ -16155,7 +17149,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]]; } @@ -16220,9 +17214,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(); @@ -16230,11 +17228,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; } } @@ -16265,11 +17263,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; } @@ -16284,14 +17286,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; }; @@ -16352,6 +17358,7 @@ * @memberof google.api * @interface IGoSettings * @property {google.api.ICommonLanguageSettings|null} [common] GoSettings common + * @property {Object.|null} [renamedServices] GoSettings renamedServices */ /** @@ -16363,9 +17370,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]]; } @@ -16377,6 +17385,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 @@ -16403,6 +17419,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; }; @@ -16430,21 +17449,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; } } @@ -16475,14 +17523,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; }; @@ -16494,14 +17554,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; }; @@ -16519,10 +17593,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; }; @@ -16578,7 +17663,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]]; } @@ -16664,9 +17749,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(); @@ -16678,7 +17767,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: { @@ -16688,7 +17777,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -16719,14 +17808,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; } @@ -16748,16 +17841,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)) @@ -16849,7 +17946,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]]; } @@ -16944,9 +18041,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(); @@ -16954,7 +18055,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: { @@ -16962,15 +18063,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; } } @@ -17001,11 +18102,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; } @@ -17013,12 +18118,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; } @@ -17033,26 +18138,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; }; @@ -17161,6 +18270,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 @@ -17243,7 +18609,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]]; } @@ -17373,9 +18739,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(); @@ -17420,7 +18790,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -17451,9 +18821,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"; @@ -17505,9 +18879,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); @@ -17695,7 +19073,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]]; } @@ -17770,9 +19148,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(); @@ -17788,7 +19170,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -17819,9 +19201,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"; @@ -17839,9 +19225,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); @@ -17936,7 +19326,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]]; } @@ -18002,9 +19392,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(); @@ -18014,11 +19408,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; } } @@ -18049,14 +19443,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; } @@ -18072,9 +19470,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)) @@ -18083,7 +19485,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; @@ -18146,6 +19548,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 @@ -18160,6 +19563,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; @@ -18184,6 +19588,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 @@ -18206,13 +19611,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]]; } @@ -18256,6 +19662,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 @@ -18377,6 +19791,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; }; @@ -18404,9 +19821,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(); @@ -18449,36 +19870,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: { @@ -18490,7 +19917,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -18521,9 +19948,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"; @@ -18551,11 +19982,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; } @@ -18564,7 +20002,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; } @@ -18573,7 +20011,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; } @@ -18582,18 +20020,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; } @@ -18605,6 +20043,7 @@ default: return "edition: enum value expected"; case 0: + case 900: case 998: case 999: case 1000: @@ -18628,9 +20067,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); @@ -18657,6 +20100,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"); @@ -18664,7 +20114,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) { @@ -18674,7 +20124,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) { @@ -18684,7 +20134,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) { @@ -18694,18 +20144,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); @@ -18720,6 +20170,10 @@ case 0: message.edition = 0; break; + case "EDITION_LEGACY": + case 900: + message.edition = 900; + break; case "EDITION_PROTO2": case 998: message.edition = 998; @@ -18785,6 +20239,7 @@ object.extension = []; object.publicDependency = []; object.weakDependency = []; + object.optionDependency = []; } if (options.defaults) { object.name = ""; @@ -18841,6 +20296,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; }; @@ -18889,6 +20349,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 */ /** @@ -18910,7 +20371,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]]; } @@ -18994,6 +20455,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 @@ -19046,6 +20515,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; }; @@ -19073,9 +20544,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(); @@ -19089,47 +20564,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: { @@ -19138,8 +20613,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; } } @@ -19170,9 +20649,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"; @@ -19180,7 +20663,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; } @@ -19189,7 +20672,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; } @@ -19198,7 +20681,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; } @@ -19207,7 +20690,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; } @@ -19216,7 +20699,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; } @@ -19225,13 +20708,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; } @@ -19239,7 +20722,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; } @@ -19251,6 +20734,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; }; @@ -19262,9 +20754,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); @@ -19275,7 +20771,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) { @@ -19285,7 +20781,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) { @@ -19295,7 +20791,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) { @@ -19305,7 +20801,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) { @@ -19315,7 +20811,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) { @@ -19325,13 +20821,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)) @@ -19340,7 +20836,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) { @@ -19350,6 +20846,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; }; @@ -19379,6 +20895,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; @@ -19424,6 +20941,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; }; @@ -19475,7 +20994,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]]; } @@ -19560,9 +21079,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(); @@ -19578,11 +21101,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; } } @@ -19613,9 +21136,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"; @@ -19623,7 +21150,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; } @@ -19638,9 +21165,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; @@ -19649,7 +21180,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; }; @@ -19731,7 +21262,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]]; } @@ -19806,9 +21337,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(); @@ -19824,7 +21359,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -19855,9 +21390,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"; @@ -19875,9 +21414,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; @@ -19967,7 +21510,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]]; } @@ -20064,9 +21607,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(); @@ -20076,17 +21623,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: { @@ -20094,7 +21641,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -20125,14 +21672,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; } @@ -20141,13 +21692,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; } @@ -20170,9 +21721,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)) @@ -20181,7 +21736,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) { @@ -20191,13 +21746,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": @@ -20306,7 +21861,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]]; } @@ -20411,9 +21966,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(); @@ -20441,7 +22000,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -20472,9 +22031,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"; @@ -20501,9 +22064,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; @@ -20627,7 +22194,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]]; } @@ -20792,9 +22359,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(); @@ -20838,7 +22409,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: { @@ -20846,7 +22417,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -20877,9 +22448,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"; @@ -20935,7 +22510,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; } @@ -20953,9 +22528,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); @@ -21074,7 +22653,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); @@ -21244,7 +22823,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]]; } @@ -21319,9 +22898,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(); @@ -21333,11 +22916,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; } } @@ -21368,14 +22951,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; } @@ -21390,16 +22977,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; }; @@ -21468,6 +23059,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 */ /** @@ -21484,7 +23076,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]]; } @@ -21528,6 +23120,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 @@ -21565,6 +23165,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; }; @@ -21592,9 +23194,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(); @@ -21608,17 +23214,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: { @@ -21627,8 +23233,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; } } @@ -21659,9 +23269,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"; @@ -21669,13 +23283,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; } @@ -21683,7 +23297,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; } @@ -21695,6 +23309,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; }; @@ -21706,9 +23329,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); @@ -21719,13 +23346,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)) @@ -21734,7 +23361,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) { @@ -21744,6 +23371,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; }; @@ -21768,6 +23415,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; @@ -21788,6 +23436,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; }; @@ -21838,7 +23488,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]]; } @@ -21913,9 +23563,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(); @@ -21931,7 +23585,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -21962,9 +23616,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"; @@ -21982,9 +23640,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; @@ -22071,7 +23733,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]]; } @@ -22156,9 +23818,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(); @@ -22174,11 +23840,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; } } @@ -22209,9 +23875,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"; @@ -22219,7 +23889,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; } @@ -22234,9 +23904,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); @@ -22245,7 +23919,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; }; @@ -22329,7 +24003,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]]; } @@ -22415,9 +24089,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(); @@ -22431,15 +24109,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; } } @@ -22470,9 +24148,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"; @@ -22480,13 +24162,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; } @@ -22501,9 +24183,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); @@ -22514,13 +24200,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; }; @@ -22610,7 +24296,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]]; } @@ -22725,9 +24411,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(); @@ -22747,7 +24437,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: { @@ -22759,7 +24449,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -22790,9 +24480,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"; @@ -22803,7 +24497,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; } @@ -22824,9 +24518,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); @@ -22837,7 +24535,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); @@ -22954,7 +24652,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]]; } @@ -23231,9 +24929,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(); @@ -23317,23 +25019,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; } } @@ -23364,9 +25066,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"; @@ -23431,7 +25137,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; } @@ -23439,7 +25145,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; } @@ -23448,7 +25154,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; } @@ -23464,9 +25170,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); @@ -23527,7 +25237,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)) @@ -23536,7 +25246,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"]) { @@ -23546,7 +25256,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; @@ -23717,7 +25427,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]]; } @@ -23853,9 +25563,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(); @@ -23883,21 +25597,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; } } @@ -23928,9 +25642,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"; @@ -23947,7 +25665,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; } @@ -23955,13 +25673,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; } @@ -23976,9 +25694,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); @@ -23993,7 +25715,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)) @@ -24002,13 +25724,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; }; @@ -24106,6 +25828,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 @@ -24126,7 +25849,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]]; } @@ -24226,6 +25949,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 @@ -24300,6 +26031,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(); @@ -24335,9 +26068,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(); @@ -24394,17 +26131,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: { @@ -24419,11 +26160,11 @@ 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; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -24454,9 +26195,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: @@ -24526,21 +26271,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; } @@ -24565,7 +26315,7 @@ } } 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; } @@ -24580,9 +26330,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: @@ -24716,13 +26470,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)) @@ -24731,7 +26490,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"]) { @@ -24786,7 +26545,7 @@ 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); } return message; }; @@ -24821,6 +26580,7 @@ object.debugRedact = false; object.retention = options.enums === String ? "RETENTION_UNKNOWN" : 0; object.features = null; + object.featureSupport = null; object[".google.api.resourceReference"] = null; } if (message.ctype != null && message.hasOwnProperty("ctype")) @@ -24853,6 +26613,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) @@ -24993,7 +26755,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]]; } @@ -25068,9 +26830,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(); @@ -25086,7 +26852,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -25117,14 +26883,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: @@ -25151,9 +26922,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: @@ -25166,6 +26941,10 @@ case 0: message.edition = 0; break; + case "EDITION_LEGACY": + case 900: + message.edition = 900; + break; case "EDITION_PROTO2": case 998: message.edition = 998; @@ -25265,6 +27044,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; })(); @@ -25290,7 +27563,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]]; } @@ -25366,9 +27639,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(); @@ -25376,17 +27653,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; } } @@ -25417,11 +27694,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; } @@ -25429,7 +27710,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; } @@ -25445,14 +27726,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)) @@ -25461,7 +27746,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; @@ -25548,7 +27833,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]]; } @@ -25654,9 +27939,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(); @@ -25676,17 +27965,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; } } @@ -25717,9 +28006,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"; @@ -25730,7 +28023,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; } @@ -25738,7 +28031,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; } @@ -25754,9 +28047,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); @@ -25767,7 +28064,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)) @@ -25776,7 +28073,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; @@ -25857,6 +28154,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 */ @@ -25872,7 +28170,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]]; } @@ -25900,6 +28198,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 @@ -25938,6 +28244,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(); @@ -25968,9 +28276,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(); @@ -25982,21 +28294,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; } } @@ -26027,25 +28343,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; } @@ -26061,19 +28386,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"); @@ -26081,7 +28415,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; @@ -26106,6 +28440,7 @@ object.deprecated = false; object.features = null; object.debugRedact = false; + object.featureSupport = null; } if (message.deprecated != null && message.hasOwnProperty("deprecated")) object.deprecated = message.deprecated; @@ -26113,6 +28448,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) @@ -26176,7 +28513,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]]; } @@ -26292,9 +28629,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(); @@ -26302,7 +28643,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: { @@ -26312,7 +28653,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: { @@ -26328,7 +28669,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -26359,11 +28700,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; } @@ -26374,7 +28719,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; } @@ -26399,14 +28744,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); @@ -26417,7 +28766,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) @@ -26526,7 +28875,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]]; } @@ -26653,9 +29002,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(); @@ -26671,17 +29024,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: { @@ -26691,11 +29044,11 @@ break; } case 1049: { - message[".google.longrunning.operationInfo"] = $root.google.longrunning.OperationInfo.decode(reader, reader.uint32()); + message[".google.longrunning.operationInfo"] = $root.google.longrunning.OperationInfo.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -26726,9 +29079,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"; @@ -26742,7 +29099,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; } @@ -26750,13 +29107,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; } @@ -26768,7 +29125,7 @@ return ".google.api.methodSignature: string[] expected"; } if (message[".google.longrunning.operationInfo"] != null && message.hasOwnProperty(".google.longrunning.operationInfo")) { - var error = $root.google.longrunning.OperationInfo.verify(message[".google.longrunning.operationInfo"]); + var error = $root.google.longrunning.OperationInfo.verify(message[".google.longrunning.operationInfo"], long + 1); if (error) return ".google.longrunning.operationInfo." + error; } @@ -26783,9 +29140,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); @@ -26812,7 +29173,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)) @@ -26821,13 +29182,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"])) @@ -26839,7 +29200,7 @@ if (object[".google.longrunning.operationInfo"] != null) { if (typeof object[".google.longrunning.operationInfo"] !== "object") throw TypeError(".google.protobuf.MethodOptions..google.longrunning.operationInfo: object expected"); - message[".google.longrunning.operationInfo"] = $root.google.longrunning.OperationInfo.fromObject(object[".google.longrunning.operationInfo"]); + message[".google.longrunning.operationInfo"] = $root.google.longrunning.OperationInfo.fromObject(object[".google.longrunning.operationInfo"], long + 1); } return message; }; @@ -26963,7 +29324,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]]; } @@ -27089,9 +29450,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(); @@ -27101,7 +29466,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: { @@ -27129,7 +29494,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -27160,14 +29525,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; } @@ -27201,9 +29570,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)) @@ -27212,7 +29585,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) @@ -27357,7 +29730,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]]; } @@ -27430,9 +29803,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(); @@ -27448,7 +29825,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -27483,9 +29860,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") @@ -27501,9 +29882,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); @@ -27580,6 +29965,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 */ /** @@ -27593,7 +29980,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]]; } @@ -27645,6 +30032,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 @@ -27681,6 +30084,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; }; @@ -27708,9 +30115,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(); @@ -27741,8 +30152,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; } } @@ -27773,9 +30192,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: @@ -27831,6 +30254,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; }; @@ -27842,9 +30285,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: @@ -27970,6 +30417,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; }; @@ -27993,6 +30488,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; @@ -28006,6 +30503,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; }; @@ -28133,6 +30634,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; })(); @@ -28159,7 +30885,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]]; } @@ -28245,9 +30971,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(); @@ -28257,7 +30987,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: { @@ -28269,7 +30999,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -28300,14 +31030,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; } @@ -28317,6 +31051,7 @@ default: return "minimumEdition: enum value expected"; case 0: + case 900: case 998: case 999: case 1000: @@ -28334,6 +31069,7 @@ default: return "maximumEdition: enum value expected"; case 0: + case 900: case 998: case 999: case 1000: @@ -28357,9 +31093,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)) @@ -28368,7 +31108,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) { @@ -28382,6 +31122,10 @@ case 0: message.minimumEdition = 0; break; + case "EDITION_LEGACY": + case 900: + message.minimumEdition = 900; + break; case "EDITION_PROTO2": case 998: message.minimumEdition = 998; @@ -28434,6 +31178,10 @@ case 0: message.maximumEdition = 0; break; + case "EDITION_LEGACY": + case 900: + message.maximumEdition = 900; + break; case "EDITION_PROTO2": case 998: message.maximumEdition = 998; @@ -28542,7 +31290,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 */ /** @@ -28556,7 +31305,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]]; } @@ -28569,12 +31318,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. @@ -28600,10 +31357,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; }; @@ -28631,9 +31390,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(); @@ -28644,12 +31407,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; } } @@ -28680,14 +31447,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: @@ -28700,10 +31472,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; }; @@ -28716,9 +31493,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: @@ -28731,6 +31512,10 @@ case 0: message.edition = 0; break; + case "EDITION_LEGACY": + case 900: + message.edition = 900; + break; case "EDITION_PROTO2": case 998: message.edition = 998; @@ -28772,10 +31557,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; }; @@ -28794,13 +31584,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; }; @@ -28857,7 +31650,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]]; } @@ -28923,9 +31716,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(); @@ -28935,11 +31732,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; } } @@ -28970,14 +31767,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; } @@ -28993,9 +31794,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)) @@ -29004,7 +31809,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; @@ -29086,7 +31891,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]]; } @@ -29200,9 +32005,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(); @@ -29246,7 +32055,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -29277,9 +32086,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"; @@ -29318,9 +32131,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)) @@ -29447,7 +32264,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]]; } @@ -29513,9 +32330,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(); @@ -29525,11 +32346,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; } } @@ -29560,14 +32381,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; } @@ -29583,9 +32408,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)) @@ -29594,7 +32423,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; @@ -29674,7 +32503,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]]; } @@ -29783,9 +32612,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(); @@ -29820,7 +32653,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -29851,9 +32684,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"; @@ -29890,9 +32727,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)) @@ -30015,6 +32856,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() { /** @@ -30036,7 +32893,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]]; } @@ -30111,9 +32968,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(); @@ -30129,7 +32990,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -30160,9 +33021,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"; @@ -30180,9 +33045,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) @@ -30279,7 +33148,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]]; } @@ -30354,9 +33223,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(); @@ -30372,7 +33245,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -30403,9 +33276,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"; @@ -30423,9 +33300,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); @@ -30515,7 +33396,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]]; } @@ -30570,9 +33451,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(); @@ -30580,7 +33465,7 @@ break; switch (tag >>> 3) { default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -30611,9 +33496,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; }; @@ -30625,9 +33514,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(); }; @@ -30694,7 +33587,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]]; } @@ -30760,9 +33653,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(); @@ -30776,7 +33673,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -30807,9 +33704,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"; @@ -30828,9 +33729,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)) @@ -30915,7 +33820,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]]; } @@ -30990,9 +33895,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(); @@ -31008,7 +33917,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -31039,9 +33948,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"; @@ -31059,9 +33972,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) @@ -31373,7 +34290,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]]; } @@ -31492,9 +34409,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.longrunning.Operation(); while (reader.pos < end) { var tag = reader.uint32(); @@ -31506,7 +34427,7 @@ break; } case 2: { - message.metadata = $root.google.protobuf.Any.decode(reader, reader.uint32()); + message.metadata = $root.google.protobuf.Any.decode(reader, reader.uint32(), undefined, long + 1); break; } case 3: { @@ -31514,15 +34435,15 @@ break; } case 4: { - message.error = $root.google.rpc.Status.decode(reader, reader.uint32()); + message.error = $root.google.rpc.Status.decode(reader, reader.uint32(), undefined, long + 1); break; } case 5: { - message.response = $root.google.protobuf.Any.decode(reader, reader.uint32()); + message.response = $root.google.protobuf.Any.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -31553,15 +34474,19 @@ * @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"; var properties = {}; if (message.name != null && message.hasOwnProperty("name")) if (!$util.isString(message.name)) return "name: string expected"; if (message.metadata != null && message.hasOwnProperty("metadata")) { - var error = $root.google.protobuf.Any.verify(message.metadata); + var error = $root.google.protobuf.Any.verify(message.metadata, long + 1); if (error) return "metadata." + error; } @@ -31571,7 +34496,7 @@ if (message.error != null && message.hasOwnProperty("error")) { properties.result = 1; { - var error = $root.google.rpc.Status.verify(message.error); + var error = $root.google.rpc.Status.verify(message.error, long + 1); if (error) return "error." + error; } @@ -31581,7 +34506,7 @@ return "result: multiple values"; properties.result = 1; { - var error = $root.google.protobuf.Any.verify(message.response); + var error = $root.google.protobuf.Any.verify(message.response, long + 1); if (error) return "response." + error; } @@ -31597,28 +34522,32 @@ * @param {Object.} object Plain object * @returns {google.longrunning.Operation} Operation */ - Operation.fromObject = function fromObject(object) { + Operation.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.Operation) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.Operation(); if (object.name != null) message.name = String(object.name); if (object.metadata != null) { if (typeof object.metadata !== "object") throw TypeError(".google.longrunning.Operation.metadata: object expected"); - message.metadata = $root.google.protobuf.Any.fromObject(object.metadata); + message.metadata = $root.google.protobuf.Any.fromObject(object.metadata, long + 1); } if (object.done != null) message.done = Boolean(object.done); if (object.error != null) { if (typeof object.error !== "object") throw TypeError(".google.longrunning.Operation.error: object expected"); - message.error = $root.google.rpc.Status.fromObject(object.error); + message.error = $root.google.rpc.Status.fromObject(object.error, long + 1); } if (object.response != null) { if (typeof object.response !== "object") throw TypeError(".google.longrunning.Operation.response: object expected"); - message.response = $root.google.protobuf.Any.fromObject(object.response); + message.response = $root.google.protobuf.Any.fromObject(object.response, long + 1); } return message; }; @@ -31709,7 +34638,7 @@ function GetOperationRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -31774,9 +34703,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetOperationRequest.decode = function decode(reader, length, error) { + GetOperationRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.GetOperationRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -31788,7 +34721,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -31819,9 +34752,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetOperationRequest.verify = function verify(message) { + GetOperationRequest.verify = function verify(message, long) { if (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"; @@ -31836,9 +34773,13 @@ * @param {Object.} object Plain object * @returns {google.longrunning.GetOperationRequest} GetOperationRequest */ - GetOperationRequest.fromObject = function fromObject(object) { + GetOperationRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.GetOperationRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.GetOperationRequest(); if (object.name != null) message.name = String(object.name); @@ -31917,7 +34858,7 @@ function ListOperationsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -32012,9 +34953,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListOperationsRequest.decode = function decode(reader, length, error) { + ListOperationsRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.ListOperationsRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -32038,7 +34983,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -32069,9 +35014,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListOperationsRequest.verify = function verify(message) { + ListOperationsRequest.verify = function verify(message, long) { if (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"; @@ -32095,9 +35044,13 @@ * @param {Object.} object Plain object * @returns {google.longrunning.ListOperationsRequest} ListOperationsRequest */ - ListOperationsRequest.fromObject = function fromObject(object) { + ListOperationsRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.ListOperationsRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.ListOperationsRequest(); if (object.name != null) message.name = String(object.name); @@ -32191,7 +35144,7 @@ this.operations = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -32267,9 +35220,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListOperationsResponse.decode = function decode(reader, length, error) { + ListOperationsResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.ListOperationsResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -32279,7 +35236,7 @@ case 1: { if (!(message.operations && message.operations.length)) message.operations = []; - message.operations.push($root.google.longrunning.Operation.decode(reader, reader.uint32())); + message.operations.push($root.google.longrunning.Operation.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -32287,7 +35244,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -32318,14 +35275,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListOperationsResponse.verify = function verify(message) { + ListOperationsResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.operations != null && message.hasOwnProperty("operations")) { if (!Array.isArray(message.operations)) return "operations: array expected"; for (var i = 0; i < message.operations.length; ++i) { - var error = $root.google.longrunning.Operation.verify(message.operations[i]); + var error = $root.google.longrunning.Operation.verify(message.operations[i], long + 1); if (error) return "operations." + error; } @@ -32344,9 +35305,13 @@ * @param {Object.} object Plain object * @returns {google.longrunning.ListOperationsResponse} ListOperationsResponse */ - ListOperationsResponse.fromObject = function fromObject(object) { + ListOperationsResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.ListOperationsResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.ListOperationsResponse(); if (object.operations) { if (!Array.isArray(object.operations)) @@ -32355,7 +35320,7 @@ for (var i = 0; i < object.operations.length; ++i) { if (typeof object.operations[i] !== "object") throw TypeError(".google.longrunning.ListOperationsResponse.operations: object expected"); - message.operations[i] = $root.google.longrunning.Operation.fromObject(object.operations[i]); + message.operations[i] = $root.google.longrunning.Operation.fromObject(object.operations[i], long + 1); } } if (object.nextPageToken != null) @@ -32439,7 +35404,7 @@ function CancelOperationRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -32504,9 +35469,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CancelOperationRequest.decode = function decode(reader, length, error) { + CancelOperationRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.CancelOperationRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -32518,7 +35487,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -32549,9 +35518,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CancelOperationRequest.verify = function verify(message) { + CancelOperationRequest.verify = function verify(message, long) { if (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"; @@ -32566,9 +35539,13 @@ * @param {Object.} object Plain object * @returns {google.longrunning.CancelOperationRequest} CancelOperationRequest */ - CancelOperationRequest.fromObject = function fromObject(object) { + CancelOperationRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.CancelOperationRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.CancelOperationRequest(); if (object.name != null) message.name = String(object.name); @@ -32644,7 +35621,7 @@ function DeleteOperationRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -32709,9 +35686,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DeleteOperationRequest.decode = function decode(reader, length, error) { + DeleteOperationRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.DeleteOperationRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -32723,7 +35704,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -32754,9 +35735,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DeleteOperationRequest.verify = function verify(message) { + DeleteOperationRequest.verify = function verify(message, long) { if (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"; @@ -32771,9 +35756,13 @@ * @param {Object.} object Plain object * @returns {google.longrunning.DeleteOperationRequest} DeleteOperationRequest */ - DeleteOperationRequest.fromObject = function fromObject(object) { + DeleteOperationRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.DeleteOperationRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.DeleteOperationRequest(); if (object.name != null) message.name = String(object.name); @@ -32850,7 +35839,7 @@ function WaitOperationRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -32925,9 +35914,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - WaitOperationRequest.decode = function decode(reader, length, error) { + WaitOperationRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.WaitOperationRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -32939,11 +35932,11 @@ break; } case 2: { - message.timeout = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.timeout = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -32974,14 +35967,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - WaitOperationRequest.verify = function verify(message) { + WaitOperationRequest.verify = function verify(message, long) { if (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.timeout != null && message.hasOwnProperty("timeout")) { - var error = $root.google.protobuf.Duration.verify(message.timeout); + var error = $root.google.protobuf.Duration.verify(message.timeout, long + 1); if (error) return "timeout." + error; } @@ -32996,16 +35993,20 @@ * @param {Object.} object Plain object * @returns {google.longrunning.WaitOperationRequest} WaitOperationRequest */ - WaitOperationRequest.fromObject = function fromObject(object) { + WaitOperationRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.WaitOperationRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.WaitOperationRequest(); if (object.name != null) message.name = String(object.name); if (object.timeout != null) { if (typeof object.timeout !== "object") throw TypeError(".google.longrunning.WaitOperationRequest.timeout: object expected"); - message.timeout = $root.google.protobuf.Duration.fromObject(object.timeout); + message.timeout = $root.google.protobuf.Duration.fromObject(object.timeout, long + 1); } return message; }; @@ -33084,7 +36085,7 @@ function OperationInfo(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -33159,9 +36160,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - OperationInfo.decode = function decode(reader, length, error) { + OperationInfo.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.longrunning.OperationInfo(); while (reader.pos < end) { var tag = reader.uint32(); @@ -33177,7 +36182,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -33208,9 +36213,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - OperationInfo.verify = function verify(message) { + OperationInfo.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.responseType != null && message.hasOwnProperty("responseType")) if (!$util.isString(message.responseType)) return "responseType: string expected"; @@ -33228,9 +36237,13 @@ * @param {Object.} object Plain object * @returns {google.longrunning.OperationInfo} OperationInfo */ - OperationInfo.fromObject = function fromObject(object) { + OperationInfo.fromObject = function fromObject(object, long) { if (object instanceof $root.google.longrunning.OperationInfo) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.longrunning.OperationInfo(); if (object.responseType != null) message.responseType = String(object.responseType); @@ -33327,7 +36340,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]]; } @@ -33413,9 +36426,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(); @@ -33433,11 +36450,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; } } @@ -33468,9 +36485,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"; @@ -33481,7 +36502,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; } @@ -33497,9 +36518,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; @@ -33512,7 +36537,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; @@ -33612,7 +36637,7 @@ function Date(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -33697,9 +36722,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Date.decode = function decode(reader, length, error) { + Date.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 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.Date(); while (reader.pos < end) { var tag = reader.uint32(); @@ -33719,7 +36748,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -33750,9 +36779,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Date.verify = function verify(message) { + Date.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.year != null && message.hasOwnProperty("year")) if (!$util.isInteger(message.year)) return "year: integer expected"; @@ -33773,9 +36806,13 @@ * @param {Object.} object Plain object * @returns {google.type.Date} Date */ - Date.fromObject = function fromObject(object) { + Date.fromObject = function fromObject(object, long) { if (object instanceof $root.google.type.Date) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.type.Date(); if (object.year != null) message.year = object.year | 0; @@ -33870,7 +36907,7 @@ function DateTime(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -34029,9 +37066,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DateTime.decode = function decode(reader, length, error) { + DateTime.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 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.DateTime(); while (reader.pos < end) { var tag = reader.uint32(); @@ -34067,15 +37108,15 @@ break; } case 8: { - message.utcOffset = $root.google.protobuf.Duration.decode(reader, reader.uint32()); + message.utcOffset = $root.google.protobuf.Duration.decode(reader, reader.uint32(), undefined, long + 1); break; } case 9: { - message.timeZone = $root.google.type.TimeZone.decode(reader, reader.uint32()); + message.timeZone = $root.google.type.TimeZone.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -34106,9 +37147,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DateTime.verify = function verify(message) { + DateTime.verify = function verify(message, 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.year != null && message.hasOwnProperty("year")) if (!$util.isInteger(message.year)) @@ -34134,7 +37179,7 @@ if (message.utcOffset != null && message.hasOwnProperty("utcOffset")) { properties.timeOffset = 1; { - var error = $root.google.protobuf.Duration.verify(message.utcOffset); + var error = $root.google.protobuf.Duration.verify(message.utcOffset, long + 1); if (error) return "utcOffset." + error; } @@ -34144,7 +37189,7 @@ return "timeOffset: multiple values"; properties.timeOffset = 1; { - var error = $root.google.type.TimeZone.verify(message.timeZone); + var error = $root.google.type.TimeZone.verify(message.timeZone, long + 1); if (error) return "timeZone." + error; } @@ -34160,9 +37205,13 @@ * @param {Object.} object Plain object * @returns {google.type.DateTime} DateTime */ - DateTime.fromObject = function fromObject(object) { + DateTime.fromObject = function fromObject(object, long) { if (object instanceof $root.google.type.DateTime) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.type.DateTime(); if (object.year != null) message.year = object.year | 0; @@ -34181,12 +37230,12 @@ if (object.utcOffset != null) { if (typeof object.utcOffset !== "object") throw TypeError(".google.type.DateTime.utcOffset: object expected"); - message.utcOffset = $root.google.protobuf.Duration.fromObject(object.utcOffset); + message.utcOffset = $root.google.protobuf.Duration.fromObject(object.utcOffset, long + 1); } if (object.timeZone != null) { if (typeof object.timeZone !== "object") throw TypeError(".google.type.DateTime.timeZone: object expected"); - message.timeZone = $root.google.type.TimeZone.fromObject(object.timeZone); + message.timeZone = $root.google.type.TimeZone.fromObject(object.timeZone, long + 1); } return message; }; @@ -34290,7 +37339,7 @@ function TimeZone(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -34365,9 +37414,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - TimeZone.decode = function decode(reader, length, error) { + TimeZone.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 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.TimeZone(); while (reader.pos < end) { var tag = reader.uint32(); @@ -34383,7 +37436,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -34414,9 +37467,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - TimeZone.verify = function verify(message) { + TimeZone.verify = function verify(message, long) { if (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.isString(message.id)) return "id: string expected"; @@ -34434,9 +37491,13 @@ * @param {Object.} object Plain object * @returns {google.type.TimeZone} TimeZone */ - TimeZone.fromObject = function fromObject(object) { + TimeZone.fromObject = function fromObject(object, long) { if (object instanceof $root.google.type.TimeZone) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.type.TimeZone(); if (object.id != null) message.id = String(object.id); diff --git a/packages/google-cloud-storageinsights/protos/protos.json b/packages/google-cloud-storageinsights/protos/protos.json index 849d9a93908a..90c1f289f02c 100644 --- a/packages/google-cloud-storageinsights/protos/protos.json +++ b/packages/google-cloud-storageinsights/protos/protos.json @@ -1424,8 +1424,7 @@ "java_multiple_files": true, "java_outer_classname": "ResourceProto", "java_package": "com.google.api", - "objc_class_prefix": "GAPI", - "cc_enable_arenas": true + "objc_class_prefix": "GAPI" }, "nested": { "http": { @@ -1549,6 +1548,10 @@ "rule": "repeated", "type": "ClientLibraryDestination", "id": 2 + }, + "selectiveGapicGeneration": { + "type": "SelectiveGapicGeneration", + "id": 3 } } }, @@ -1689,6 +1692,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 + } + } } } }, @@ -1746,6 +1771,11 @@ "common": { "type": "CommonLanguageSettings", "id": 1 + }, + "renamedServices": { + "keyType": "string", + "type": "string", + "id": 2 } } }, @@ -1807,6 +1837,19 @@ "PACKAGE_MANAGER": 20 } }, + "SelectiveGapicGeneration": { + "fields": { + "methods": { + "rule": "repeated", + "type": "string", + "id": 1 + }, + "generateOmittedAsInternal": { + "type": "bool", + "id": 2 + } + } + }, "LaunchStage": { "values": { "LAUNCH_STAGE_UNSPECIFIED": 0, @@ -1939,12 +1982,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, @@ -1983,6 +2033,11 @@ "type": "int32", "id": 11 }, + "optionDependency": { + "rule": "repeated", + "type": "string", + "id": 15 + }, "messageType": { "rule": "repeated", "type": "DescriptorProto", @@ -2071,6 +2126,10 @@ "rule": "repeated", "type": "string", "id": 10 + }, + "visibility": { + "type": "SymbolVisibility", + "id": 11 } }, "nested": { @@ -2296,6 +2355,10 @@ "rule": "repeated", "type": "string", "id": 5 + }, + "visibility": { + "type": "SymbolVisibility", + "id": 6 } }, "nested": { @@ -2346,7 +2409,14 @@ "type": "ServiceOptions", "id": 3 } - } + }, + "reserved": [ + [ + 4, + 4 + ], + "stream" + ] }, "MethodDescriptorProto": { "edition": "proto2", @@ -2510,6 +2580,7 @@ 42, 42 ], + "php_generic_services", [ 38, 38 @@ -2645,7 +2716,8 @@ "type": "bool", "id": 10, "options": { - "default": false + "default": false, + "deprecated": true } }, "debugRedact": { @@ -2673,6 +2745,10 @@ "type": "FeatureSet", "id": 21 }, + "featureSupport": { + "type": "FeatureSupport", + "id": 22 + }, "uninterpretedOption": { "rule": "repeated", "type": "UninterpretedOption", @@ -2742,6 +2818,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 + } + } } } }, @@ -2830,6 +2926,10 @@ "default": false } }, + "featureSupport": { + "type": "FieldOptions.FeatureSupport", + "id": 4 + }, "uninterpretedOption": { "rule": "repeated", "type": "UninterpretedOption", @@ -2972,6 +3072,7 @@ "options": { "retention": "RETENTION_RUNTIME", "targets": "TARGET_TYPE_FILE", + "feature_support.edition_introduced": "EDITION_2023", "edition_defaults.edition": "EDITION_2023", "edition_defaults.value": "EXPLICIT" } @@ -2982,6 +3083,7 @@ "options": { "retention": "RETENTION_RUNTIME", "targets": "TARGET_TYPE_FILE", + "feature_support.edition_introduced": "EDITION_2023", "edition_defaults.edition": "EDITION_PROTO3", "edition_defaults.value": "OPEN" } @@ -2992,6 +3094,7 @@ "options": { "retention": "RETENTION_RUNTIME", "targets": "TARGET_TYPE_FILE", + "feature_support.edition_introduced": "EDITION_2023", "edition_defaults.edition": "EDITION_PROTO3", "edition_defaults.value": "PACKED" } @@ -3002,6 +3105,7 @@ "options": { "retention": "RETENTION_RUNTIME", "targets": "TARGET_TYPE_FILE", + "feature_support.edition_introduced": "EDITION_2023", "edition_defaults.edition": "EDITION_PROTO3", "edition_defaults.value": "VERIFY" } @@ -3012,7 +3116,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" } }, @@ -3022,27 +3127,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, @@ -3087,7 +3203,13 @@ "UTF8_VALIDATION_UNKNOWN": 0, "VERIFY": 2, "NONE": 3 - } + }, + "reserved": [ + [ + 1, + 1 + ] + ] }, "MessageEncoding": { "values": { @@ -3102,6 +3224,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 + } + } + } } } }, @@ -3129,11 +3278,26 @@ "type": "Edition", "id": 3 }, - "features": { + "overridableFeatures": { "type": "FeatureSet", - "id": 2 + "id": 4 + }, + "fixedFeatures": { + "type": "FeatureSet", + "id": 5 } - } + }, + "reserved": [ + [ + 1, + 1 + ], + [ + 2, + 2 + ], + "features" + ] } } }, @@ -3146,6 +3310,12 @@ "id": 1 } }, + "extensions": [ + [ + 536000000, + 536000000 + ] + ], "nested": { "Location": { "fields": { @@ -3231,6 +3401,14 @@ } } }, + "SymbolVisibility": { + "edition": "proto2", + "values": { + "VISIBILITY_UNSET": 0, + "VISIBILITY_LOCAL": 1, + "VISIBILITY_EXPORT": 2 + } + }, "Duration": { "fields": { "seconds": { @@ -3289,6 +3467,7 @@ "java_multiple_files": true, "java_outer_classname": "OperationsProto", "java_package": "com.google.longrunning", + "objc_class_prefix": "GLRUN", "php_namespace": "Google\\LongRunning" }, "nested": { diff --git a/packages/google-cloud-storageinsights/src/v1/index.ts b/packages/google-cloud-storageinsights/src/v1/index.ts index 353f1ebdb1ff..52a810a5ceb2 100644 --- a/packages/google-cloud-storageinsights/src/v1/index.ts +++ b/packages/google-cloud-storageinsights/src/v1/index.ts @@ -16,4 +16,4 @@ // ** https://github.com/googleapis/gapic-generator-typescript ** // ** All changes to this file may be overwritten. ** -export {StorageInsightsClient} from './storage_insights_client'; +export { StorageInsightsClient } from './storage_insights_client'; diff --git a/packages/google-cloud-storageinsights/src/v1/storage_insights_client.ts b/packages/google-cloud-storageinsights/src/v1/storage_insights_client.ts index 782ee6643c27..4b6c700d94c2 100644 --- a/packages/google-cloud-storageinsights/src/v1/storage_insights_client.ts +++ b/packages/google-cloud-storageinsights/src/v1/storage_insights_client.ts @@ -18,11 +18,22 @@ /* global window */ import type * as gax from 'google-gax'; -import type {Callback, CallOptions, Descriptors, ClientOptions, GrpcClientOptions, LROperation, PaginationCallback, GaxCall, LocationsClient, LocationProtos} from 'google-gax'; -import {Transform} from 'stream'; +import type { + Callback, + CallOptions, + Descriptors, + ClientOptions, + GrpcClientOptions, + LROperation, + 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 @@ -44,7 +55,7 @@ export class StorageInsightsClient { 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('storageinsights'); @@ -57,11 +68,11 @@ export class StorageInsightsClient { batching: {}, }; warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; + innerApiCalls: { [name: string]: Function }; locationsClient: LocationsClient; - pathTemplates: {[name: string]: gax.PathTemplate}; + pathTemplates: { [name: string]: gax.PathTemplate }; operationsClient: gax.OperationsClient; - storageInsightsStub?: Promise<{[name: string]: Function}>; + storageInsightsStub?: Promise<{ [name: string]: Function }>; /** * Construct an instance of StorageInsightsClient. @@ -102,21 +113,42 @@ export class StorageInsightsClient { * const client = new StorageInsightsClient({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 StorageInsightsClient; - 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 = 'storageinsights.' + 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; @@ -141,7 +173,7 @@ export class StorageInsightsClient { 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; @@ -155,15 +187,11 @@ export class StorageInsightsClient { } 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 { @@ -185,19 +213,19 @@ export class StorageInsightsClient { // Create useful helper objects for these. this.pathTemplates = { datasetConfigPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/datasetConfigs/{dataset_config}' + 'projects/{project}/locations/{location}/datasetConfigs/{dataset_config}', ), locationPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}' + 'projects/{project}/locations/{location}', ), projectPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}' + 'projects/{project}', ), reportConfigPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/reportConfigs/{report_config}' + 'projects/{project}/locations/{location}/reportConfigs/{report_config}', ), reportDetailPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/reportConfigs/{report_config}/reportDetails/{report_detail}' + 'projects/{project}/locations/{location}/reportConfigs/{report_config}/reportDetails/{report_detail}', ), }; @@ -205,12 +233,21 @@ export class StorageInsightsClient { // (e.g. 50 results at a time, with tokens to get subsequent // pages). Denote the keys used for pagination and results. this.descriptors.page = { - listReportConfigs: - new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'reportConfigs'), - listReportDetails: - new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'reportDetails'), - listDatasetConfigs: - new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'datasetConfigs') + listReportConfigs: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'reportConfigs', + ), + listReportDetails: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'reportDetails', + ), + listDatasetConfigs: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'datasetConfigs', + ), }; const protoFilesRoot = this._gaxModule.protobufFromJSON(jsonProtos); @@ -219,61 +256,107 @@ export class StorageInsightsClient { // rather than holding a request open. const lroOptions: GrpcClientOptions = { auth: this.auth, - grpc: 'grpc' in this._gaxGrpc ? this._gaxGrpc.grpc : undefined + grpc: 'grpc' in this._gaxGrpc ? this._gaxGrpc.grpc : undefined, }; if (opts.fallback) { lroOptions.protoJson = protoFilesRoot; - lroOptions.httpRules = [{selector: 'google.cloud.location.Locations.GetLocation',get: '/v1/{name=projects/*/locations/*}',},{selector: 'google.cloud.location.Locations.ListLocations',get: '/v1/{name=projects/*}/locations',},{selector: 'google.longrunning.Operations.CancelOperation',post: '/v1/{name=projects/*/locations/*/operations/*}:cancel',body: '*',},{selector: 'google.longrunning.Operations.DeleteOperation',delete: '/v1/{name=projects/*/locations/*/operations/*}',},{selector: 'google.longrunning.Operations.GetOperation',get: '/v1/{name=projects/*/locations/*/operations/*}',},{selector: 'google.longrunning.Operations.ListOperations',get: '/v1/{name=projects/*/locations/*}/operations',}]; + lroOptions.httpRules = [ + { + selector: 'google.cloud.location.Locations.GetLocation', + get: '/v1/{name=projects/*/locations/*}', + }, + { + selector: 'google.cloud.location.Locations.ListLocations', + get: '/v1/{name=projects/*}/locations', + }, + { + selector: 'google.longrunning.Operations.CancelOperation', + post: '/v1/{name=projects/*/locations/*/operations/*}:cancel', + body: '*', + }, + { + selector: 'google.longrunning.Operations.DeleteOperation', + delete: '/v1/{name=projects/*/locations/*/operations/*}', + }, + { + selector: 'google.longrunning.Operations.GetOperation', + get: '/v1/{name=projects/*/locations/*/operations/*}', + }, + { + selector: 'google.longrunning.Operations.ListOperations', + get: '/v1/{name=projects/*/locations/*}/operations', + }, + ]; } - this.operationsClient = this._gaxModule.lro(lroOptions).operationsClient(opts); + this.operationsClient = this._gaxModule + .lro(lroOptions) + .operationsClient(opts); const createDatasetConfigResponse = protoFilesRoot.lookup( - '.google.cloud.storageinsights.v1.DatasetConfig') as gax.protobuf.Type; + '.google.cloud.storageinsights.v1.DatasetConfig', + ) as gax.protobuf.Type; const createDatasetConfigMetadata = protoFilesRoot.lookup( - '.google.cloud.storageinsights.v1.OperationMetadata') as gax.protobuf.Type; + '.google.cloud.storageinsights.v1.OperationMetadata', + ) as gax.protobuf.Type; const updateDatasetConfigResponse = protoFilesRoot.lookup( - '.google.cloud.storageinsights.v1.DatasetConfig') as gax.protobuf.Type; + '.google.cloud.storageinsights.v1.DatasetConfig', + ) as gax.protobuf.Type; const updateDatasetConfigMetadata = protoFilesRoot.lookup( - '.google.cloud.storageinsights.v1.OperationMetadata') as gax.protobuf.Type; + '.google.cloud.storageinsights.v1.OperationMetadata', + ) as gax.protobuf.Type; const deleteDatasetConfigResponse = protoFilesRoot.lookup( - '.google.protobuf.Empty') as gax.protobuf.Type; + '.google.protobuf.Empty', + ) as gax.protobuf.Type; const deleteDatasetConfigMetadata = protoFilesRoot.lookup( - '.google.cloud.storageinsights.v1.OperationMetadata') as gax.protobuf.Type; + '.google.cloud.storageinsights.v1.OperationMetadata', + ) as gax.protobuf.Type; const linkDatasetResponse = protoFilesRoot.lookup( - '.google.cloud.storageinsights.v1.LinkDatasetResponse') as gax.protobuf.Type; + '.google.cloud.storageinsights.v1.LinkDatasetResponse', + ) as gax.protobuf.Type; const linkDatasetMetadata = protoFilesRoot.lookup( - '.google.cloud.storageinsights.v1.OperationMetadata') as gax.protobuf.Type; + '.google.cloud.storageinsights.v1.OperationMetadata', + ) as gax.protobuf.Type; const unlinkDatasetResponse = protoFilesRoot.lookup( - '.google.protobuf.Empty') as gax.protobuf.Type; + '.google.protobuf.Empty', + ) as gax.protobuf.Type; const unlinkDatasetMetadata = protoFilesRoot.lookup( - '.google.cloud.storageinsights.v1.OperationMetadata') as gax.protobuf.Type; + '.google.cloud.storageinsights.v1.OperationMetadata', + ) as gax.protobuf.Type; this.descriptors.longrunning = { createDatasetConfig: new this._gaxModule.LongrunningDescriptor( this.operationsClient, createDatasetConfigResponse.decode.bind(createDatasetConfigResponse), - createDatasetConfigMetadata.decode.bind(createDatasetConfigMetadata)), + createDatasetConfigMetadata.decode.bind(createDatasetConfigMetadata), + ), updateDatasetConfig: new this._gaxModule.LongrunningDescriptor( this.operationsClient, updateDatasetConfigResponse.decode.bind(updateDatasetConfigResponse), - updateDatasetConfigMetadata.decode.bind(updateDatasetConfigMetadata)), + updateDatasetConfigMetadata.decode.bind(updateDatasetConfigMetadata), + ), deleteDatasetConfig: new this._gaxModule.LongrunningDescriptor( this.operationsClient, deleteDatasetConfigResponse.decode.bind(deleteDatasetConfigResponse), - deleteDatasetConfigMetadata.decode.bind(deleteDatasetConfigMetadata)), + deleteDatasetConfigMetadata.decode.bind(deleteDatasetConfigMetadata), + ), linkDataset: new this._gaxModule.LongrunningDescriptor( this.operationsClient, linkDatasetResponse.decode.bind(linkDatasetResponse), - linkDatasetMetadata.decode.bind(linkDatasetMetadata)), + linkDatasetMetadata.decode.bind(linkDatasetMetadata), + ), unlinkDataset: new this._gaxModule.LongrunningDescriptor( this.operationsClient, unlinkDatasetResponse.decode.bind(unlinkDatasetResponse), - unlinkDatasetMetadata.decode.bind(unlinkDatasetMetadata)) + unlinkDatasetMetadata.decode.bind(unlinkDatasetMetadata), + ), }; // Put together the default options sent with requests. this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.storageinsights.v1.StorageInsights', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + 'google.cloud.storageinsights.v1.StorageInsights', + 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 @@ -304,28 +387,48 @@ export class StorageInsightsClient { // Put together the "service stub" for // google.cloud.storageinsights.v1.StorageInsights. this.storageInsightsStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.storageinsights.v1.StorageInsights') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._opts.fallback + ? (this._protos as protobuf.Root).lookupService( + 'google.cloud.storageinsights.v1.StorageInsights', + ) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._protos as any).google.cloud.storageinsights.v1.StorageInsights, - 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 storageInsightsStubMethods = - ['listReportConfigs', 'getReportConfig', 'createReportConfig', 'updateReportConfig', 'deleteReportConfig', 'listReportDetails', 'getReportDetail', 'listDatasetConfigs', 'getDatasetConfig', 'createDatasetConfig', 'updateDatasetConfig', 'deleteDatasetConfig', 'linkDataset', 'unlinkDataset']; + const storageInsightsStubMethods = [ + 'listReportConfigs', + 'getReportConfig', + 'createReportConfig', + 'updateReportConfig', + 'deleteReportConfig', + 'listReportDetails', + 'getReportDetail', + 'listDatasetConfigs', + 'getDatasetConfig', + 'createDatasetConfig', + 'updateDatasetConfig', + 'deleteDatasetConfig', + 'linkDataset', + 'unlinkDataset', + ]; for (const methodName of storageInsightsStubMethods) { const callPromise = this.storageInsightsStub.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] || @@ -335,7 +438,7 @@ export class StorageInsightsClient { callPromise, this._defaults[methodName], descriptor, - this._opts.fallback + this._opts.fallback, ); this.innerApiCalls[methodName] = apiCall; @@ -350,8 +453,14 @@ export class StorageInsightsClient { * @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 'storageinsights.googleapis.com'; } @@ -362,8 +471,14 @@ export class StorageInsightsClient { * @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 'storageinsights.googleapis.com'; } @@ -394,9 +509,7 @@ export class StorageInsightsClient { * @returns {string[]} List of default scopes. */ static get scopes() { - return [ - 'https://www.googleapis.com/auth/cloud-platform' - ]; + return ['https://www.googleapis.com/auth/cloud-platform']; } getProjectId(): Promise; @@ -405,8 +518,9 @@ export class StorageInsightsClient { * 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; @@ -417,1294 +531,1923 @@ export class StorageInsightsClient { // ------------------- // -- Service calls -- // ------------------- -/** - * Gets details of a single ReportConfig. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. Name of the resource - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.storageinsights.v1.ReportConfig|ReportConfig}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/storage_insights.get_report_config.js - * region_tag:storageinsights_v1_generated_StorageInsights_GetReportConfig_async - */ + /** + * Gets details of a single ReportConfig. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Name of the resource + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.storageinsights.v1.ReportConfig|ReportConfig}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/storage_insights.get_report_config.js + * region_tag:storageinsights_v1_generated_StorageInsights_GetReportConfig_async + */ getReportConfig( - request?: protos.google.cloud.storageinsights.v1.IGetReportConfigRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.IGetReportConfigRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.storageinsights.v1.IGetReportConfigRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.storageinsights.v1.IReportConfig, + ( + | protos.google.cloud.storageinsights.v1.IGetReportConfigRequest + | undefined + ), + {} | undefined, + ] + >; getReportConfig( - request: protos.google.cloud.storageinsights.v1.IGetReportConfigRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.IGetReportConfigRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storageinsights.v1.IGetReportConfigRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.storageinsights.v1.IReportConfig, + | protos.google.cloud.storageinsights.v1.IGetReportConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getReportConfig( - request: protos.google.cloud.storageinsights.v1.IGetReportConfigRequest, - callback: Callback< - protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.IGetReportConfigRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storageinsights.v1.IGetReportConfigRequest, + callback: Callback< + protos.google.cloud.storageinsights.v1.IReportConfig, + | protos.google.cloud.storageinsights.v1.IGetReportConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getReportConfig( - request?: protos.google.cloud.storageinsights.v1.IGetReportConfigRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.IGetReportConfigRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.storageinsights.v1.IGetReportConfigRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.IGetReportConfigRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.IGetReportConfigRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.storageinsights.v1.IGetReportConfigRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.storageinsights.v1.IReportConfig, + | protos.google.cloud.storageinsights.v1.IGetReportConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.storageinsights.v1.IReportConfig, + ( + | protos.google.cloud.storageinsights.v1.IGetReportConfigRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('getReportConfig request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.IGetReportConfigRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.storageinsights.v1.IReportConfig, + | protos.google.cloud.storageinsights.v1.IGetReportConfigRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('getReportConfig response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.getReportConfig(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.IGetReportConfigRequest|undefined, - {}|undefined - ]) => { - this._log.info('getReportConfig response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .getReportConfig(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.storageinsights.v1.IReportConfig, + ( + | protos.google.cloud.storageinsights.v1.IGetReportConfigRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('getReportConfig response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails 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 ReportConfig in a given project and location. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Value for parent. - * @param {google.cloud.storageinsights.v1.ReportConfig} request.reportConfig - * Required. The resource being created - * @param {string} [request.requestId] - * Optional. An optional request ID to identify requests. Specify a unique - * request ID so that if you must retry your request, the server will know to - * ignore the request if it has already been completed. The server will - * guarantee that for at least 60 minutes since the first request. - * - * For example, consider a situation where you make an initial request and - * the request times out. If you make the request again with the same request - * ID, the server can check if original operation with the same request ID - * was received, and if so, will ignore the second request. This prevents - * clients from accidentally creating duplicate commitments. - * - * The request ID must be a valid UUID with the exception that zero UUID is - * not supported (00000000-0000-0000-0000-000000000000). - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.storageinsights.v1.ReportConfig|ReportConfig}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/storage_insights.create_report_config.js - * region_tag:storageinsights_v1_generated_StorageInsights_CreateReportConfig_async - */ + /** + * Creates a new ReportConfig in a given project and location. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Value for parent. + * @param {google.cloud.storageinsights.v1.ReportConfig} request.reportConfig + * Required. The resource being created + * @param {string} [request.requestId] + * Optional. An optional request ID to identify requests. Specify a unique + * request ID so that if you must retry your request, the server will know to + * ignore the request if it has already been completed. The server will + * guarantee that for at least 60 minutes since the first request. + * + * For example, consider a situation where you make an initial request and + * the request times out. If you make the request again with the same request + * ID, the server can check if original operation with the same request ID + * was received, and if so, will ignore the second request. This prevents + * clients from accidentally creating duplicate commitments. + * + * The request ID must be a valid UUID with the exception that zero UUID is + * not supported (00000000-0000-0000-0000-000000000000). + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.storageinsights.v1.ReportConfig|ReportConfig}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/storage_insights.create_report_config.js + * region_tag:storageinsights_v1_generated_StorageInsights_CreateReportConfig_async + */ createReportConfig( - request?: protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.storageinsights.v1.IReportConfig, + ( + | protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest + | undefined + ), + {} | undefined, + ] + >; createReportConfig( - request: protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.storageinsights.v1.IReportConfig, + | protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): void; createReportConfig( - request: protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest, - callback: Callback< - protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest, + callback: Callback< + protos.google.cloud.storageinsights.v1.IReportConfig, + | protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): void; createReportConfig( - request?: protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.storageinsights.v1.IReportConfig, + | protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.storageinsights.v1.IReportConfig, + ( + | protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('createReportConfig request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.storageinsights.v1.IReportConfig, + | protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('createReportConfig response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.createReportConfig(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest|undefined, - {}|undefined - ]) => { - this._log.info('createReportConfig response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .createReportConfig(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.storageinsights.v1.IReportConfig, + ( + | protos.google.cloud.storageinsights.v1.ICreateReportConfigRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('createReportConfig response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails 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 parameters of a single ReportConfig. - * - * @param {Object} request - * The request object that will be sent. - * @param {google.protobuf.FieldMask} request.updateMask - * Required. Field mask is used to specify the fields to be overwritten in the - * ReportConfig resource by the update. - * The fields specified in the update_mask are relative to the resource, not - * the full request. A field will be overwritten if it is in the mask. If the - * user does not provide a mask then all fields will be overwritten. - * @param {google.cloud.storageinsights.v1.ReportConfig} request.reportConfig - * Required. The resource being updated - * @param {string} [request.requestId] - * Optional. An optional request ID to identify requests. Specify a unique - * request ID so that if you must retry your request, the server will know to - * ignore the request if it has already been completed. The server will - * guarantee that for at least 60 minutes since the first request. - * - * For example, consider a situation where you make an initial request and - * the request times out. If you make the request again with the same request - * ID, the server can check if original operation with the same request ID - * was received, and if so, will ignore the second request. This prevents - * clients from accidentally creating duplicate commitments. - * - * The request ID must be a valid UUID with the exception that zero UUID is - * not supported (00000000-0000-0000-0000-000000000000). - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.storageinsights.v1.ReportConfig|ReportConfig}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/storage_insights.update_report_config.js - * region_tag:storageinsights_v1_generated_StorageInsights_UpdateReportConfig_async - */ + /** + * Updates the parameters of a single ReportConfig. + * + * @param {Object} request + * The request object that will be sent. + * @param {google.protobuf.FieldMask} request.updateMask + * Required. Field mask is used to specify the fields to be overwritten in the + * ReportConfig resource by the update. + * The fields specified in the update_mask are relative to the resource, not + * the full request. A field will be overwritten if it is in the mask. If the + * user does not provide a mask then all fields will be overwritten. + * @param {google.cloud.storageinsights.v1.ReportConfig} request.reportConfig + * Required. The resource being updated + * @param {string} [request.requestId] + * Optional. An optional request ID to identify requests. Specify a unique + * request ID so that if you must retry your request, the server will know to + * ignore the request if it has already been completed. The server will + * guarantee that for at least 60 minutes since the first request. + * + * For example, consider a situation where you make an initial request and + * the request times out. If you make the request again with the same request + * ID, the server can check if original operation with the same request ID + * was received, and if so, will ignore the second request. This prevents + * clients from accidentally creating duplicate commitments. + * + * The request ID must be a valid UUID with the exception that zero UUID is + * not supported (00000000-0000-0000-0000-000000000000). + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.storageinsights.v1.ReportConfig|ReportConfig}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/storage_insights.update_report_config.js + * region_tag:storageinsights_v1_generated_StorageInsights_UpdateReportConfig_async + */ updateReportConfig( - request?: protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.storageinsights.v1.IReportConfig, + ( + | protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest + | undefined + ), + {} | undefined, + ] + >; updateReportConfig( - request: protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.storageinsights.v1.IReportConfig, + | protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): void; updateReportConfig( - request: protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest, - callback: Callback< - protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest, + callback: Callback< + protos.google.cloud.storageinsights.v1.IReportConfig, + | protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): void; updateReportConfig( - request?: protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.storageinsights.v1.IReportConfig, + | protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.storageinsights.v1.IReportConfig, + ( + | protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'report_config.name': request.reportConfig!.name ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + 'report_config.name': request.reportConfig!.name ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); this._log.info('updateReportConfig request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.storageinsights.v1.IReportConfig, + | protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('updateReportConfig response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.updateReportConfig(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.storageinsights.v1.IReportConfig, - protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest|undefined, - {}|undefined - ]) => { - this._log.info('updateReportConfig response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .updateReportConfig(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.storageinsights.v1.IReportConfig, + ( + | protos.google.cloud.storageinsights.v1.IUpdateReportConfigRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('updateReportConfig response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails 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 single ReportConfig. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. Name of the resource - * @param {boolean} [request.force] - * Optional. If set, all ReportDetails for this ReportConfig will be deleted. - * @param {string} [request.requestId] - * Optional. An optional request ID to identify requests. Specify a unique - * request ID so that if you must retry your request, the server will know to - * ignore the request if it has already been completed. The server will - * guarantee that for at least 60 minutes after the first request. - * - * For example, consider a situation where you make an initial request and - * the request times out. If you make the request again with the same request - * ID, the server can check if original operation with the same request ID - * was received, and if so, will ignore the second request. This prevents - * clients from accidentally creating duplicate commitments. - * - * The request ID must be a valid UUID with the exception that zero UUID is - * not supported (00000000-0000-0000-0000-000000000000). - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for 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/storage_insights.delete_report_config.js - * region_tag:storageinsights_v1_generated_StorageInsights_DeleteReportConfig_async - */ + /** + * Deletes a single ReportConfig. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Name of the resource + * @param {boolean} [request.force] + * Optional. If set, all ReportDetails for this ReportConfig will be deleted. + * @param {string} [request.requestId] + * Optional. An optional request ID to identify requests. Specify a unique + * request ID so that if you must retry your request, the server will know to + * ignore the request if it has already been completed. The server will + * guarantee that for at least 60 minutes after the first request. + * + * For example, consider a situation where you make an initial request and + * the request times out. If you make the request again with the same request + * ID, the server can check if original operation with the same request ID + * was received, and if so, will ignore the second request. This prevents + * clients from accidentally creating duplicate commitments. + * + * The request ID must be a valid UUID with the exception that zero UUID is + * not supported (00000000-0000-0000-0000-000000000000). + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for 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/storage_insights.delete_report_config.js + * region_tag:storageinsights_v1_generated_StorageInsights_DeleteReportConfig_async + */ deleteReportConfig( - request?: protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest, - options?: CallOptions): - Promise<[ - protos.google.protobuf.IEmpty, - protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.protobuf.IEmpty, + ( + | protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest + | undefined + ), + {} | undefined, + ] + >; deleteReportConfig( - request: protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest, - options: CallOptions, - callback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest, + options: CallOptions, + callback: Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): void; deleteReportConfig( - request: protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest, - callback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest, + callback: Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): void; deleteReportConfig( - request?: protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.protobuf.IEmpty, - protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.protobuf.IEmpty, - protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.protobuf.IEmpty, + ( + | protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('deleteReportConfig request %j', request); - const wrappedCallback: Callback< - protos.google.protobuf.IEmpty, - protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.protobuf.IEmpty, + | protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('deleteReportConfig response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.deleteReportConfig(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.protobuf.IEmpty, - protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest|undefined, - {}|undefined - ]) => { - this._log.info('deleteReportConfig response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .deleteReportConfig(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.protobuf.IEmpty, + ( + | protos.google.cloud.storageinsights.v1.IDeleteReportConfigRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('deleteReportConfig response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails 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 details of a single ReportDetail. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. Name of the resource - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.storageinsights.v1.ReportDetail|ReportDetail}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/storage_insights.get_report_detail.js - * region_tag:storageinsights_v1_generated_StorageInsights_GetReportDetail_async - */ + /** + * Gets details of a single ReportDetail. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Name of the resource + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.storageinsights.v1.ReportDetail|ReportDetail}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/storage_insights.get_report_detail.js + * region_tag:storageinsights_v1_generated_StorageInsights_GetReportDetail_async + */ getReportDetail( - request?: protos.google.cloud.storageinsights.v1.IGetReportDetailRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.storageinsights.v1.IReportDetail, - protos.google.cloud.storageinsights.v1.IGetReportDetailRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.storageinsights.v1.IGetReportDetailRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.storageinsights.v1.IReportDetail, + ( + | protos.google.cloud.storageinsights.v1.IGetReportDetailRequest + | undefined + ), + {} | undefined, + ] + >; getReportDetail( - request: protos.google.cloud.storageinsights.v1.IGetReportDetailRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.storageinsights.v1.IReportDetail, - protos.google.cloud.storageinsights.v1.IGetReportDetailRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storageinsights.v1.IGetReportDetailRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.storageinsights.v1.IReportDetail, + | protos.google.cloud.storageinsights.v1.IGetReportDetailRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getReportDetail( - request: protos.google.cloud.storageinsights.v1.IGetReportDetailRequest, - callback: Callback< - protos.google.cloud.storageinsights.v1.IReportDetail, - protos.google.cloud.storageinsights.v1.IGetReportDetailRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storageinsights.v1.IGetReportDetailRequest, + callback: Callback< + protos.google.cloud.storageinsights.v1.IReportDetail, + | protos.google.cloud.storageinsights.v1.IGetReportDetailRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getReportDetail( - request?: protos.google.cloud.storageinsights.v1.IGetReportDetailRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.storageinsights.v1.IReportDetail, - protos.google.cloud.storageinsights.v1.IGetReportDetailRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.storageinsights.v1.IGetReportDetailRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.storageinsights.v1.IReportDetail, - protos.google.cloud.storageinsights.v1.IGetReportDetailRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.storageinsights.v1.IReportDetail, - protos.google.cloud.storageinsights.v1.IGetReportDetailRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.storageinsights.v1.IGetReportDetailRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.storageinsights.v1.IReportDetail, + | protos.google.cloud.storageinsights.v1.IGetReportDetailRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.storageinsights.v1.IReportDetail, + ( + | protos.google.cloud.storageinsights.v1.IGetReportDetailRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('getReportDetail request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.storageinsights.v1.IReportDetail, - protos.google.cloud.storageinsights.v1.IGetReportDetailRequest|null|undefined, - {}|null|undefined>|undefined = callback - ? (error, response, options, rawResponse) => { + const wrappedCallback: + | Callback< + protos.google.cloud.storageinsights.v1.IReportDetail, + | protos.google.cloud.storageinsights.v1.IGetReportDetailRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback + ? (error, response, options, rawResponse) => { this._log.info('getReportDetail response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.getReportDetail(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.storageinsights.v1.IReportDetail, - protos.google.cloud.storageinsights.v1.IGetReportDetailRequest|undefined, - {}|undefined - ]) => { - this._log.info('getReportDetail response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .getReportDetail(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.storageinsights.v1.IReportDetail, + ( + | protos.google.cloud.storageinsights.v1.IGetReportDetailRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('getReportDetail response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails 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 the dataset configuration in a given project for a given location. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. Name of the resource - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing {@link protos.google.cloud.storageinsights.v1.DatasetConfig|DatasetConfig}. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } - * for more details and examples. - * @example include:samples/generated/v1/storage_insights.get_dataset_config.js - * region_tag:storageinsights_v1_generated_StorageInsights_GetDatasetConfig_async - */ + /** + * Gets the dataset configuration in a given project for a given location. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Name of the resource + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing {@link protos.google.cloud.storageinsights.v1.DatasetConfig|DatasetConfig}. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } + * for more details and examples. + * @example include:samples/generated/v1/storage_insights.get_dataset_config.js + * region_tag:storageinsights_v1_generated_StorageInsights_GetDatasetConfig_async + */ getDatasetConfig( - request?: protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.storageinsights.v1.IDatasetConfig, - protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest|undefined, {}|undefined - ]>; + request?: protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.storageinsights.v1.IDatasetConfig, + ( + | protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest + | undefined + ), + {} | undefined, + ] + >; getDatasetConfig( - request: protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.storageinsights.v1.IDatasetConfig, - protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + | protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getDatasetConfig( - request: protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest, - callback: Callback< - protos.google.cloud.storageinsights.v1.IDatasetConfig, - protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest, + callback: Callback< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + | protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): void; getDatasetConfig( - request?: protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.storageinsights.v1.IDatasetConfig, - protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< + request?: protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest, + optionsOrCallback?: + | CallOptions + | Callback< protos.google.cloud.storageinsights.v1.IDatasetConfig, - protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.storageinsights.v1.IDatasetConfig, - protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest|undefined, {}|undefined - ]>|void { + | protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest + | null + | undefined, + {} | null | undefined + >, + callback?: Callback< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + | protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest + | null + | undefined, + {} | null | undefined + >, + ): Promise< + [ + protos.google.cloud.storageinsights.v1.IDatasetConfig, + ( + | protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest + | undefined + ), + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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('getDatasetConfig request %j', request); - const wrappedCallback: Callback< - protos.google.cloud.storageinsights.v1.IDatasetConfig, - protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + | protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest + | null + | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, options, rawResponse) => { this._log.info('getDatasetConfig response %j', response); callback!(error, response, options, rawResponse); // We verified callback above. } : undefined; - return this.innerApiCalls.getDatasetConfig(request, options, wrappedCallback) - ?.then(([response, options, rawResponse]: [ - protos.google.cloud.storageinsights.v1.IDatasetConfig, - protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest|undefined, - {}|undefined - ]) => { - this._log.info('getDatasetConfig response %j', response); - return [response, options, rawResponse]; - }).catch((error: any) => { - if (error && 'statusDetails' in error && error.statusDetails instanceof Array) { - const protos = this._gaxModule.protobuf.Root.fromJSON(jsonProtos) as unknown as gax.protobuf.Type; - error.statusDetails = decodeAnyProtosInArray(error.statusDetails, protos); + return this.innerApiCalls + .getDatasetConfig(request, options, wrappedCallback) + ?.then( + ([response, options, rawResponse]: [ + protos.google.cloud.storageinsights.v1.IDatasetConfig, + ( + | protos.google.cloud.storageinsights.v1.IGetDatasetConfigRequest + | undefined + ), + {} | undefined, + ]) => { + this._log.info('getDatasetConfig response %j', response); + return [response, options, rawResponse]; + }, + ) + .catch((error: any) => { + if ( + error && + 'statusDetails' in error && + error.statusDetails 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 dataset configuration in a given project for a given location. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Value for parent. - * @param {string} request.datasetConfigId - * Required. ID of the requesting object. - * If auto-generating ID is enabled on the server-side, remove this field and - * `dataset_config_id` from the method_signature of Create RPC - * Note: The value should not contain any hyphens. - * @param {google.cloud.storageinsights.v1.DatasetConfig} request.datasetConfig - * Required. The resource being created - * @param {string} [request.requestId] - * Optional. A unique identifier for your request. - * Specify the request ID if you need to retry the request. - * If you retry the request with the same ID within 60 minutes, the server - * ignores the request if it has already completed the original request. - * - * For example, if your initial request times out and you retry the request - * using the same request ID, the server recognizes the original request and - * does not process the new request. - * - * The request ID must be a valid UUID and cannot be a zero UUID - * (00000000-0000-0000-0000-000000000000). - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v1/storage_insights.create_dataset_config.js - * region_tag:storageinsights_v1_generated_StorageInsights_CreateDatasetConfig_async - */ + /** + * Creates a dataset configuration in a given project for a given location. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Value for parent. + * @param {string} request.datasetConfigId + * Required. ID of the requesting object. + * If auto-generating ID is enabled on the server-side, remove this field and + * `dataset_config_id` from the method_signature of Create RPC + * Note: The value should not contain any hyphens. + * @param {google.cloud.storageinsights.v1.DatasetConfig} request.datasetConfig + * Required. The resource being created + * @param {string} [request.requestId] + * Optional. A unique identifier for your request. + * Specify the request ID if you need to retry the request. + * If you retry the request with the same ID within 60 minutes, the server + * ignores the request if it has already completed the original request. + * + * For example, if your initial request times out and you retry the request + * using the same request ID, the server recognizes the original request and + * does not process the new request. + * + * The request ID must be a valid UUID and cannot be a zero UUID + * (00000000-0000-0000-0000-000000000000). + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1/storage_insights.create_dataset_config.js + * region_tag:storageinsights_v1_generated_StorageInsights_CreateDatasetConfig_async + */ createDatasetConfig( - request?: protos.google.cloud.storageinsights.v1.ICreateDatasetConfigRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; + request?: protos.google.cloud.storageinsights.v1.ICreateDatasetConfigRequest, + options?: CallOptions, + ): Promise< + [ + LROperation< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; createDatasetConfig( - request: protos.google.cloud.storageinsights.v1.ICreateDatasetConfigRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storageinsights.v1.ICreateDatasetConfigRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; createDatasetConfig( - request: protos.google.cloud.storageinsights.v1.ICreateDatasetConfigRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storageinsights.v1.ICreateDatasetConfigRequest, + callback: Callback< + LROperation< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; createDatasetConfig( - request?: protos.google.cloud.storageinsights.v1.ICreateDatasetConfigRequest, - optionsOrCallback?: CallOptions|Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>, - callback?: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>|void { + request?: protos.google.cloud.storageinsights.v1.ICreateDatasetConfigRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + LROperation< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + LROperation< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, rawResponse, _) => { this._log.info('createDatasetConfig response %j', rawResponse); callback!(error, response, rawResponse, _); // We verified callback above. } : undefined; this._log.info('createDatasetConfig request %j', request); - return this.innerApiCalls.createDatasetConfig(request, options, wrappedCallback) - ?.then(([response, rawResponse, _]: [ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]) => { - this._log.info('createDatasetConfig response %j', rawResponse); - return [response, rawResponse, _]; - }); + return this.innerApiCalls + .createDatasetConfig(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('createDatasetConfig response %j', rawResponse); + return [response, rawResponse, _]; + }, + ); } -/** - * Check the status of the long running operation returned by `createDatasetConfig()`. - * @param {String} name - * The operation name that will be passed. - * @returns {Promise} - The promise which resolves to an object. - * The decoded operation object has result and metadata field to get information from. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v1/storage_insights.create_dataset_config.js - * region_tag:storageinsights_v1_generated_StorageInsights_CreateDatasetConfig_async - */ - async checkCreateDatasetConfigProgress(name: string): Promise>{ + /** + * Check the status of the long running operation returned by `createDatasetConfig()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1/storage_insights.create_dataset_config.js + * region_tag:storageinsights_v1_generated_StorageInsights_CreateDatasetConfig_async + */ + async checkCreateDatasetConfigProgress( + name: string, + ): Promise< + LROperation< + protos.google.cloud.storageinsights.v1.DatasetConfig, + protos.google.cloud.storageinsights.v1.OperationMetadata + > + > { this._log.info('createDatasetConfig long-running'); - const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest({name}); + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + { name }, + ); const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.createDatasetConfig, this._gaxModule.createDefaultBackoffSettings()); - return decodeOperation as LROperation; + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.createDatasetConfig, + this._gaxModule.createDefaultBackoffSettings(), + ); + return decodeOperation as LROperation< + protos.google.cloud.storageinsights.v1.DatasetConfig, + protos.google.cloud.storageinsights.v1.OperationMetadata + >; } -/** - * Updates a dataset configuration in a given project for a given location. - * - * @param {Object} request - * The request object that will be sent. - * @param {google.protobuf.FieldMask} request.updateMask - * Required. Field mask is used to specify the fields to be overwritten in the - * `DatasetConfig` resource by the update. - * The fields specified in the `update_mask` are relative to the resource, not - * the full request. A field is overwritten if it is in the mask. If the - * user does not provide a mask then it returns an "Invalid Argument" error. - * @param {google.cloud.storageinsights.v1.DatasetConfig} request.datasetConfig - * Required. The resource being updated - * @param {string} [request.requestId] - * Optional. A unique identifier for your request. - * Specify the request ID if you need to retry the request. - * If you retry the request with the same ID within 60 minutes, the server - * ignores the request if it has already completed the original request. - * - * For example, if your initial request times out and you retry the request - * using the same request ID, the server recognizes the original request and - * does not process the new request. - * - * The request ID must be a valid UUID and cannot be a zero UUID - * (00000000-0000-0000-0000-000000000000). - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v1/storage_insights.update_dataset_config.js - * region_tag:storageinsights_v1_generated_StorageInsights_UpdateDatasetConfig_async - */ + /** + * Updates a dataset configuration in a given project for a given location. + * + * @param {Object} request + * The request object that will be sent. + * @param {google.protobuf.FieldMask} request.updateMask + * Required. Field mask is used to specify the fields to be overwritten in the + * `DatasetConfig` resource by the update. + * The fields specified in the `update_mask` are relative to the resource, not + * the full request. A field is overwritten if it is in the mask. If the + * user does not provide a mask then it returns an "Invalid Argument" error. + * @param {google.cloud.storageinsights.v1.DatasetConfig} request.datasetConfig + * Required. The resource being updated + * @param {string} [request.requestId] + * Optional. A unique identifier for your request. + * Specify the request ID if you need to retry the request. + * If you retry the request with the same ID within 60 minutes, the server + * ignores the request if it has already completed the original request. + * + * For example, if your initial request times out and you retry the request + * using the same request ID, the server recognizes the original request and + * does not process the new request. + * + * The request ID must be a valid UUID and cannot be a zero UUID + * (00000000-0000-0000-0000-000000000000). + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1/storage_insights.update_dataset_config.js + * region_tag:storageinsights_v1_generated_StorageInsights_UpdateDatasetConfig_async + */ updateDatasetConfig( - request?: protos.google.cloud.storageinsights.v1.IUpdateDatasetConfigRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; + request?: protos.google.cloud.storageinsights.v1.IUpdateDatasetConfigRequest, + options?: CallOptions, + ): Promise< + [ + LROperation< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; updateDatasetConfig( - request: protos.google.cloud.storageinsights.v1.IUpdateDatasetConfigRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storageinsights.v1.IUpdateDatasetConfigRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; updateDatasetConfig( - request: protos.google.cloud.storageinsights.v1.IUpdateDatasetConfigRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storageinsights.v1.IUpdateDatasetConfigRequest, + callback: Callback< + LROperation< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; updateDatasetConfig( - request?: protos.google.cloud.storageinsights.v1.IUpdateDatasetConfigRequest, - optionsOrCallback?: CallOptions|Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>, - callback?: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>|void { + request?: protos.google.cloud.storageinsights.v1.IUpdateDatasetConfigRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + LROperation< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as CallOptions; } options = options || {}; options.otherArgs = options.otherArgs || {}; options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = this._gaxModule.routingHeader.fromParams({ - 'dataset_config.name': request.datasetConfig!.name ?? '', + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + 'dataset_config.name': request.datasetConfig!.name ?? '', + }); + this.initialize().catch((err) => { + throw err; }); - this.initialize().catch(err => {throw err}); - const wrappedCallback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + LROperation< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, rawResponse, _) => { this._log.info('updateDatasetConfig response %j', rawResponse); callback!(error, response, rawResponse, _); // We verified callback above. } : undefined; this._log.info('updateDatasetConfig request %j', request); - return this.innerApiCalls.updateDatasetConfig(request, options, wrappedCallback) - ?.then(([response, rawResponse, _]: [ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]) => { - this._log.info('updateDatasetConfig response %j', rawResponse); - return [response, rawResponse, _]; - }); + return this.innerApiCalls + .updateDatasetConfig(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('updateDatasetConfig response %j', rawResponse); + return [response, rawResponse, _]; + }, + ); } -/** - * Check the status of the long running operation returned by `updateDatasetConfig()`. - * @param {String} name - * The operation name that will be passed. - * @returns {Promise} - The promise which resolves to an object. - * The decoded operation object has result and metadata field to get information from. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v1/storage_insights.update_dataset_config.js - * region_tag:storageinsights_v1_generated_StorageInsights_UpdateDatasetConfig_async - */ - async checkUpdateDatasetConfigProgress(name: string): Promise>{ + /** + * Check the status of the long running operation returned by `updateDatasetConfig()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1/storage_insights.update_dataset_config.js + * region_tag:storageinsights_v1_generated_StorageInsights_UpdateDatasetConfig_async + */ + async checkUpdateDatasetConfigProgress( + name: string, + ): Promise< + LROperation< + protos.google.cloud.storageinsights.v1.DatasetConfig, + protos.google.cloud.storageinsights.v1.OperationMetadata + > + > { this._log.info('updateDatasetConfig long-running'); - const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest({name}); + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + { name }, + ); const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.updateDatasetConfig, this._gaxModule.createDefaultBackoffSettings()); - return decodeOperation as LROperation; + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.updateDatasetConfig, + this._gaxModule.createDefaultBackoffSettings(), + ); + return decodeOperation as LROperation< + protos.google.cloud.storageinsights.v1.DatasetConfig, + protos.google.cloud.storageinsights.v1.OperationMetadata + >; } -/** - * Deletes a dataset configuration in a given project for a given location. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. Name of the resource - * @param {string} [request.requestId] - * Optional. A unique identifier for your request. - * Specify the request ID if you need to retry the request. - * If you retry the request with the same ID within 60 minutes, the server - * ignores the request if it has already completed the original request. - * - * For example, if your initial request times out and you retry the request - * using the same request ID, the server recognizes the original request and - * does not process the new request. - * - * The request ID must be a valid UUID and cannot be a zero UUID - * (00000000-0000-0000-0000-000000000000). - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v1/storage_insights.delete_dataset_config.js - * region_tag:storageinsights_v1_generated_StorageInsights_DeleteDatasetConfig_async - */ + /** + * Deletes a dataset configuration in a given project for a given location. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Name of the resource + * @param {string} [request.requestId] + * Optional. A unique identifier for your request. + * Specify the request ID if you need to retry the request. + * If you retry the request with the same ID within 60 minutes, the server + * ignores the request if it has already completed the original request. + * + * For example, if your initial request times out and you retry the request + * using the same request ID, the server recognizes the original request and + * does not process the new request. + * + * The request ID must be a valid UUID and cannot be a zero UUID + * (00000000-0000-0000-0000-000000000000). + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1/storage_insights.delete_dataset_config.js + * region_tag:storageinsights_v1_generated_StorageInsights_DeleteDatasetConfig_async + */ deleteDatasetConfig( - request?: protos.google.cloud.storageinsights.v1.IDeleteDatasetConfigRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; + request?: protos.google.cloud.storageinsights.v1.IDeleteDatasetConfigRequest, + options?: CallOptions, + ): Promise< + [ + LROperation< + protos.google.protobuf.IEmpty, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; deleteDatasetConfig( - request: protos.google.cloud.storageinsights.v1.IDeleteDatasetConfigRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storageinsights.v1.IDeleteDatasetConfigRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.protobuf.IEmpty, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; deleteDatasetConfig( - request: protos.google.cloud.storageinsights.v1.IDeleteDatasetConfigRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storageinsights.v1.IDeleteDatasetConfigRequest, + callback: Callback< + LROperation< + protos.google.protobuf.IEmpty, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; deleteDatasetConfig( - request?: protos.google.cloud.storageinsights.v1.IDeleteDatasetConfigRequest, - optionsOrCallback?: CallOptions|Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>, - callback?: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>|void { + request?: protos.google.cloud.storageinsights.v1.IDeleteDatasetConfigRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.protobuf.IEmpty, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.protobuf.IEmpty, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + LROperation< + protos.google.protobuf.IEmpty, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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}); - const wrappedCallback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + LROperation< + protos.google.protobuf.IEmpty, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, rawResponse, _) => { this._log.info('deleteDatasetConfig response %j', rawResponse); callback!(error, response, rawResponse, _); // We verified callback above. } : undefined; this._log.info('deleteDatasetConfig request %j', request); - return this.innerApiCalls.deleteDatasetConfig(request, options, wrappedCallback) - ?.then(([response, rawResponse, _]: [ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]) => { - this._log.info('deleteDatasetConfig response %j', rawResponse); - return [response, rawResponse, _]; - }); + return this.innerApiCalls + .deleteDatasetConfig(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.protobuf.IEmpty, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('deleteDatasetConfig response %j', rawResponse); + return [response, rawResponse, _]; + }, + ); } -/** - * Check the status of the long running operation returned by `deleteDatasetConfig()`. - * @param {String} name - * The operation name that will be passed. - * @returns {Promise} - The promise which resolves to an object. - * The decoded operation object has result and metadata field to get information from. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v1/storage_insights.delete_dataset_config.js - * region_tag:storageinsights_v1_generated_StorageInsights_DeleteDatasetConfig_async - */ - async checkDeleteDatasetConfigProgress(name: string): Promise>{ + /** + * Check the status of the long running operation returned by `deleteDatasetConfig()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1/storage_insights.delete_dataset_config.js + * region_tag:storageinsights_v1_generated_StorageInsights_DeleteDatasetConfig_async + */ + async checkDeleteDatasetConfigProgress( + name: string, + ): Promise< + LROperation< + protos.google.protobuf.Empty, + protos.google.cloud.storageinsights.v1.OperationMetadata + > + > { this._log.info('deleteDatasetConfig long-running'); - const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest({name}); + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + { name }, + ); const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.deleteDatasetConfig, this._gaxModule.createDefaultBackoffSettings()); - return decodeOperation as LROperation; + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.deleteDatasetConfig, + this._gaxModule.createDefaultBackoffSettings(), + ); + return decodeOperation as LROperation< + protos.google.protobuf.Empty, + protos.google.cloud.storageinsights.v1.OperationMetadata + >; } -/** - * Links a dataset to BigQuery in a given project for a given location. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. Name of the resource - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v1/storage_insights.link_dataset.js - * region_tag:storageinsights_v1_generated_StorageInsights_LinkDataset_async - */ + /** + * Links a dataset to BigQuery in a given project for a given location. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Name of the resource + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1/storage_insights.link_dataset.js + * region_tag:storageinsights_v1_generated_StorageInsights_LinkDataset_async + */ linkDataset( - request?: protos.google.cloud.storageinsights.v1.ILinkDatasetRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; + request?: protos.google.cloud.storageinsights.v1.ILinkDatasetRequest, + options?: CallOptions, + ): Promise< + [ + LROperation< + protos.google.cloud.storageinsights.v1.ILinkDatasetResponse, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; linkDataset( - request: protos.google.cloud.storageinsights.v1.ILinkDatasetRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storageinsights.v1.ILinkDatasetRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.cloud.storageinsights.v1.ILinkDatasetResponse, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; linkDataset( - request: protos.google.cloud.storageinsights.v1.ILinkDatasetRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storageinsights.v1.ILinkDatasetRequest, + callback: Callback< + LROperation< + protos.google.cloud.storageinsights.v1.ILinkDatasetResponse, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; linkDataset( - request?: protos.google.cloud.storageinsights.v1.ILinkDatasetRequest, - optionsOrCallback?: CallOptions|Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>, - callback?: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>|void { + request?: protos.google.cloud.storageinsights.v1.ILinkDatasetRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.cloud.storageinsights.v1.ILinkDatasetResponse, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.cloud.storageinsights.v1.ILinkDatasetResponse, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + LROperation< + protos.google.cloud.storageinsights.v1.ILinkDatasetResponse, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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}); - const wrappedCallback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + LROperation< + protos.google.cloud.storageinsights.v1.ILinkDatasetResponse, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, rawResponse, _) => { this._log.info('linkDataset response %j', rawResponse); callback!(error, response, rawResponse, _); // We verified callback above. } : undefined; this._log.info('linkDataset request %j', request); - return this.innerApiCalls.linkDataset(request, options, wrappedCallback) - ?.then(([response, rawResponse, _]: [ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]) => { - this._log.info('linkDataset response %j', rawResponse); - return [response, rawResponse, _]; - }); + return this.innerApiCalls + .linkDataset(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.cloud.storageinsights.v1.ILinkDatasetResponse, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('linkDataset response %j', rawResponse); + return [response, rawResponse, _]; + }, + ); } -/** - * Check the status of the long running operation returned by `linkDataset()`. - * @param {String} name - * The operation name that will be passed. - * @returns {Promise} - The promise which resolves to an object. - * The decoded operation object has result and metadata field to get information from. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v1/storage_insights.link_dataset.js - * region_tag:storageinsights_v1_generated_StorageInsights_LinkDataset_async - */ - async checkLinkDatasetProgress(name: string): Promise>{ + /** + * Check the status of the long running operation returned by `linkDataset()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1/storage_insights.link_dataset.js + * region_tag:storageinsights_v1_generated_StorageInsights_LinkDataset_async + */ + async checkLinkDatasetProgress( + name: string, + ): Promise< + LROperation< + protos.google.cloud.storageinsights.v1.LinkDatasetResponse, + protos.google.cloud.storageinsights.v1.OperationMetadata + > + > { this._log.info('linkDataset long-running'); - const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest({name}); + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + { name }, + ); const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.linkDataset, this._gaxModule.createDefaultBackoffSettings()); - return decodeOperation as LROperation; + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.linkDataset, + this._gaxModule.createDefaultBackoffSettings(), + ); + return decodeOperation as LROperation< + protos.google.cloud.storageinsights.v1.LinkDatasetResponse, + protos.google.cloud.storageinsights.v1.OperationMetadata + >; } -/** - * Unlinks a dataset from BigQuery in a given project - * for a given location. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. Name of the resource - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v1/storage_insights.unlink_dataset.js - * region_tag:storageinsights_v1_generated_StorageInsights_UnlinkDataset_async - */ + /** + * Unlinks a dataset from BigQuery in a given project + * for a given location. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. Name of the resource + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1/storage_insights.unlink_dataset.js + * region_tag:storageinsights_v1_generated_StorageInsights_UnlinkDataset_async + */ unlinkDataset( - request?: protos.google.cloud.storageinsights.v1.IUnlinkDatasetRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; + request?: protos.google.cloud.storageinsights.v1.IUnlinkDatasetRequest, + options?: CallOptions, + ): Promise< + [ + LROperation< + protos.google.protobuf.IEmpty, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + >; unlinkDataset( - request: protos.google.cloud.storageinsights.v1.IUnlinkDatasetRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storageinsights.v1.IUnlinkDatasetRequest, + options: CallOptions, + callback: Callback< + LROperation< + protos.google.protobuf.IEmpty, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; unlinkDataset( - request: protos.google.cloud.storageinsights.v1.IUnlinkDatasetRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; + request: protos.google.cloud.storageinsights.v1.IUnlinkDatasetRequest, + callback: Callback< + LROperation< + protos.google.protobuf.IEmpty, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): void; unlinkDataset( - request?: protos.google.cloud.storageinsights.v1.IUnlinkDatasetRequest, - optionsOrCallback?: CallOptions|Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>, - callback?: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>|void { + request?: protos.google.cloud.storageinsights.v1.IUnlinkDatasetRequest, + optionsOrCallback?: + | CallOptions + | Callback< + LROperation< + protos.google.protobuf.IEmpty, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + callback?: Callback< + LROperation< + protos.google.protobuf.IEmpty, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + >, + ): Promise< + [ + LROperation< + protos.google.protobuf.IEmpty, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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}); - const wrappedCallback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>|undefined = callback + const wrappedCallback: + | Callback< + LROperation< + protos.google.protobuf.IEmpty, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | null | undefined, + {} | null | undefined + > + | undefined = callback ? (error, response, rawResponse, _) => { this._log.info('unlinkDataset response %j', rawResponse); callback!(error, response, rawResponse, _); // We verified callback above. } : undefined; this._log.info('unlinkDataset request %j', request); - return this.innerApiCalls.unlinkDataset(request, options, wrappedCallback) - ?.then(([response, rawResponse, _]: [ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]) => { - this._log.info('unlinkDataset response %j', rawResponse); - return [response, rawResponse, _]; - }); + return this.innerApiCalls + .unlinkDataset(request, options, wrappedCallback) + ?.then( + ([response, rawResponse, _]: [ + LROperation< + protos.google.protobuf.IEmpty, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >, + protos.google.longrunning.IOperation | undefined, + {} | undefined, + ]) => { + this._log.info('unlinkDataset response %j', rawResponse); + return [response, rawResponse, _]; + }, + ); } -/** - * Check the status of the long running operation returned by `unlinkDataset()`. - * @param {String} name - * The operation name that will be passed. - * @returns {Promise} - The promise which resolves to an object. - * The decoded operation object has result and metadata field to get information from. - * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } - * for more details and examples. - * @example include:samples/generated/v1/storage_insights.unlink_dataset.js - * region_tag:storageinsights_v1_generated_StorageInsights_UnlinkDataset_async - */ - async checkUnlinkDatasetProgress(name: string): Promise>{ + /** + * Check the status of the long running operation returned by `unlinkDataset()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1/storage_insights.unlink_dataset.js + * region_tag:storageinsights_v1_generated_StorageInsights_UnlinkDataset_async + */ + async checkUnlinkDatasetProgress( + name: string, + ): Promise< + LROperation< + protos.google.protobuf.Empty, + protos.google.cloud.storageinsights.v1.OperationMetadata + > + > { this._log.info('unlinkDataset long-running'); - const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest({name}); + const request = + new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest( + { name }, + ); const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.unlinkDataset, this._gaxModule.createDefaultBackoffSettings()); - return decodeOperation as LROperation; + const decodeOperation = new this._gaxModule.Operation( + operation, + this.descriptors.longrunning.unlinkDataset, + this._gaxModule.createDefaultBackoffSettings(), + ); + return decodeOperation as LROperation< + protos.google.protobuf.Empty, + protos.google.cloud.storageinsights.v1.OperationMetadata + >; } - /** - * Lists ReportConfigs in a given project and location. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Parent value for ListReportConfigsRequest - * @param {number} request.pageSize - * Requested page size. Server may return fewer items than requested. - * If unspecified, server will pick an appropriate default. - * @param {string} request.pageToken - * A token identifying a page of results the server should return. - * @param {string} request.filter - * Filtering results - * @param {string} request.orderBy - * Hint for how to order the results - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.storageinsights.v1.ReportConfig|ReportConfig}. - * 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 `listReportConfigsAsync()` - * 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 ReportConfigs in a given project and location. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Parent value for ListReportConfigsRequest + * @param {number} request.pageSize + * Requested page size. Server may return fewer items than requested. + * If unspecified, server will pick an appropriate default. + * @param {string} request.pageToken + * A token identifying a page of results the server should return. + * @param {string} request.filter + * Filtering results + * @param {string} request.orderBy + * Hint for how to order the results + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.storageinsights.v1.ReportConfig|ReportConfig}. + * 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 `listReportConfigsAsync()` + * 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. + */ listReportConfigs( - request?: protos.google.cloud.storageinsights.v1.IListReportConfigsRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.storageinsights.v1.IReportConfig[], - protos.google.cloud.storageinsights.v1.IListReportConfigsRequest|null, - protos.google.cloud.storageinsights.v1.IListReportConfigsResponse - ]>; + request?: protos.google.cloud.storageinsights.v1.IListReportConfigsRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.storageinsights.v1.IReportConfig[], + protos.google.cloud.storageinsights.v1.IListReportConfigsRequest | null, + protos.google.cloud.storageinsights.v1.IListReportConfigsResponse, + ] + >; listReportConfigs( - request: protos.google.cloud.storageinsights.v1.IListReportConfigsRequest, - options: CallOptions, - callback: PaginationCallback< - protos.google.cloud.storageinsights.v1.IListReportConfigsRequest, - protos.google.cloud.storageinsights.v1.IListReportConfigsResponse|null|undefined, - protos.google.cloud.storageinsights.v1.IReportConfig>): void; + request: protos.google.cloud.storageinsights.v1.IListReportConfigsRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.storageinsights.v1.IListReportConfigsRequest, + | protos.google.cloud.storageinsights.v1.IListReportConfigsResponse + | null + | undefined, + protos.google.cloud.storageinsights.v1.IReportConfig + >, + ): void; listReportConfigs( - request: protos.google.cloud.storageinsights.v1.IListReportConfigsRequest, - callback: PaginationCallback< - protos.google.cloud.storageinsights.v1.IListReportConfigsRequest, - protos.google.cloud.storageinsights.v1.IListReportConfigsResponse|null|undefined, - protos.google.cloud.storageinsights.v1.IReportConfig>): void; + request: protos.google.cloud.storageinsights.v1.IListReportConfigsRequest, + callback: PaginationCallback< + protos.google.cloud.storageinsights.v1.IListReportConfigsRequest, + | protos.google.cloud.storageinsights.v1.IListReportConfigsResponse + | null + | undefined, + protos.google.cloud.storageinsights.v1.IReportConfig + >, + ): void; listReportConfigs( - request?: protos.google.cloud.storageinsights.v1.IListReportConfigsRequest, - optionsOrCallback?: CallOptions|PaginationCallback< - protos.google.cloud.storageinsights.v1.IListReportConfigsRequest, - protos.google.cloud.storageinsights.v1.IListReportConfigsResponse|null|undefined, - protos.google.cloud.storageinsights.v1.IReportConfig>, - callback?: PaginationCallback< + request?: protos.google.cloud.storageinsights.v1.IListReportConfigsRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< protos.google.cloud.storageinsights.v1.IListReportConfigsRequest, - protos.google.cloud.storageinsights.v1.IListReportConfigsResponse|null|undefined, - protos.google.cloud.storageinsights.v1.IReportConfig>): - Promise<[ - protos.google.cloud.storageinsights.v1.IReportConfig[], - protos.google.cloud.storageinsights.v1.IListReportConfigsRequest|null, - protos.google.cloud.storageinsights.v1.IListReportConfigsResponse - ]>|void { + | protos.google.cloud.storageinsights.v1.IListReportConfigsResponse + | null + | undefined, + protos.google.cloud.storageinsights.v1.IReportConfig + >, + callback?: PaginationCallback< + protos.google.cloud.storageinsights.v1.IListReportConfigsRequest, + | protos.google.cloud.storageinsights.v1.IListReportConfigsResponse + | null + | undefined, + protos.google.cloud.storageinsights.v1.IReportConfig + >, + ): Promise< + [ + protos.google.cloud.storageinsights.v1.IReportConfig[], + protos.google.cloud.storageinsights.v1.IListReportConfigsRequest | null, + protos.google.cloud.storageinsights.v1.IListReportConfigsResponse, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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.storageinsights.v1.IListReportConfigsRequest, - protos.google.cloud.storageinsights.v1.IListReportConfigsResponse|null|undefined, - protos.google.cloud.storageinsights.v1.IReportConfig>|undefined = callback + const wrappedCallback: + | PaginationCallback< + protos.google.cloud.storageinsights.v1.IListReportConfigsRequest, + | protos.google.cloud.storageinsights.v1.IListReportConfigsResponse + | null + | undefined, + protos.google.cloud.storageinsights.v1.IReportConfig + > + | undefined = callback ? (error, values, nextPageRequest, rawResponse) => { this._log.info('listReportConfigs values %j', values); callback!(error, values, nextPageRequest, rawResponse); // We verified callback above. @@ -1713,204 +2456,233 @@ export class StorageInsightsClient { this._log.info('listReportConfigs request %j', request); return this.innerApiCalls .listReportConfigs(request, options, wrappedCallback) - ?.then(([response, input, output]: [ - protos.google.cloud.storageinsights.v1.IReportConfig[], - protos.google.cloud.storageinsights.v1.IListReportConfigsRequest|null, - protos.google.cloud.storageinsights.v1.IListReportConfigsResponse - ]) => { - this._log.info('listReportConfigs values %j', response); - return [response, input, output]; - }); + ?.then( + ([response, input, output]: [ + protos.google.cloud.storageinsights.v1.IReportConfig[], + protos.google.cloud.storageinsights.v1.IListReportConfigsRequest | null, + protos.google.cloud.storageinsights.v1.IListReportConfigsResponse, + ]) => { + this._log.info('listReportConfigs values %j', response); + return [response, input, output]; + }, + ); } -/** - * Equivalent to `listReportConfigs`, but returns a NodeJS Stream object. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Parent value for ListReportConfigsRequest - * @param {number} request.pageSize - * Requested page size. Server may return fewer items than requested. - * If unspecified, server will pick an appropriate default. - * @param {string} request.pageToken - * A token identifying a page of results the server should return. - * @param {string} request.filter - * Filtering results - * @param {string} request.orderBy - * Hint for how to order the results - * @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.storageinsights.v1.ReportConfig|ReportConfig} 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 `listReportConfigsAsync()` - * 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 `listReportConfigs`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Parent value for ListReportConfigsRequest + * @param {number} request.pageSize + * Requested page size. Server may return fewer items than requested. + * If unspecified, server will pick an appropriate default. + * @param {string} request.pageToken + * A token identifying a page of results the server should return. + * @param {string} request.filter + * Filtering results + * @param {string} request.orderBy + * Hint for how to order the results + * @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.storageinsights.v1.ReportConfig|ReportConfig} 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 `listReportConfigsAsync()` + * 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. + */ listReportConfigsStream( - request?: protos.google.cloud.storageinsights.v1.IListReportConfigsRequest, - options?: CallOptions): - Transform{ + request?: protos.google.cloud.storageinsights.v1.IListReportConfigsRequest, + 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['listReportConfigs']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listReportConfigs stream %j', request); return this.descriptors.page.listReportConfigs.createStream( this.innerApiCalls.listReportConfigs as GaxCall, request, - callSettings + callSettings, ); } -/** - * Equivalent to `listReportConfigs`, 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. Parent value for ListReportConfigsRequest - * @param {number} request.pageSize - * Requested page size. Server may return fewer items than requested. - * If unspecified, server will pick an appropriate default. - * @param {string} request.pageToken - * A token identifying a page of results the server should return. - * @param {string} request.filter - * Filtering results - * @param {string} request.orderBy - * Hint for how to order the results - * @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.storageinsights.v1.ReportConfig|ReportConfig}. 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/storage_insights.list_report_configs.js - * region_tag:storageinsights_v1_generated_StorageInsights_ListReportConfigs_async - */ + /** + * Equivalent to `listReportConfigs`, 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. Parent value for ListReportConfigsRequest + * @param {number} request.pageSize + * Requested page size. Server may return fewer items than requested. + * If unspecified, server will pick an appropriate default. + * @param {string} request.pageToken + * A token identifying a page of results the server should return. + * @param {string} request.filter + * Filtering results + * @param {string} request.orderBy + * Hint for how to order the results + * @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.storageinsights.v1.ReportConfig|ReportConfig}. 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/storage_insights.list_report_configs.js + * region_tag:storageinsights_v1_generated_StorageInsights_ListReportConfigs_async + */ listReportConfigsAsync( - request?: protos.google.cloud.storageinsights.v1.IListReportConfigsRequest, - options?: CallOptions): - AsyncIterable{ + request?: protos.google.cloud.storageinsights.v1.IListReportConfigsRequest, + 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['listReportConfigs']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listReportConfigs iterate %j', request); return this.descriptors.page.listReportConfigs.asyncIterate( this.innerApiCalls['listReportConfigs'] as GaxCall, request as {}, - callSettings + callSettings, ) as AsyncIterable; } - /** - * Lists ReportDetails in a given project and location. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Parent value for ListReportDetailsRequest - * @param {number} request.pageSize - * Requested page size. Server may return fewer items than requested. - * If unspecified, server will pick an appropriate default. - * @param {string} request.pageToken - * A token identifying a page of results the server should return. - * @param {string} request.filter - * Filtering results - * @param {string} request.orderBy - * Hint for how to order the results - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.storageinsights.v1.ReportDetail|ReportDetail}. - * 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 `listReportDetailsAsync()` - * 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 ReportDetails in a given project and location. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Parent value for ListReportDetailsRequest + * @param {number} request.pageSize + * Requested page size. Server may return fewer items than requested. + * If unspecified, server will pick an appropriate default. + * @param {string} request.pageToken + * A token identifying a page of results the server should return. + * @param {string} request.filter + * Filtering results + * @param {string} request.orderBy + * Hint for how to order the results + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.storageinsights.v1.ReportDetail|ReportDetail}. + * 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 `listReportDetailsAsync()` + * 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. + */ listReportDetails( - request?: protos.google.cloud.storageinsights.v1.IListReportDetailsRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.storageinsights.v1.IReportDetail[], - protos.google.cloud.storageinsights.v1.IListReportDetailsRequest|null, - protos.google.cloud.storageinsights.v1.IListReportDetailsResponse - ]>; + request?: protos.google.cloud.storageinsights.v1.IListReportDetailsRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.storageinsights.v1.IReportDetail[], + protos.google.cloud.storageinsights.v1.IListReportDetailsRequest | null, + protos.google.cloud.storageinsights.v1.IListReportDetailsResponse, + ] + >; listReportDetails( - request: protos.google.cloud.storageinsights.v1.IListReportDetailsRequest, - options: CallOptions, - callback: PaginationCallback< - protos.google.cloud.storageinsights.v1.IListReportDetailsRequest, - protos.google.cloud.storageinsights.v1.IListReportDetailsResponse|null|undefined, - protos.google.cloud.storageinsights.v1.IReportDetail>): void; + request: protos.google.cloud.storageinsights.v1.IListReportDetailsRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.storageinsights.v1.IListReportDetailsRequest, + | protos.google.cloud.storageinsights.v1.IListReportDetailsResponse + | null + | undefined, + protos.google.cloud.storageinsights.v1.IReportDetail + >, + ): void; listReportDetails( - request: protos.google.cloud.storageinsights.v1.IListReportDetailsRequest, - callback: PaginationCallback< - protos.google.cloud.storageinsights.v1.IListReportDetailsRequest, - protos.google.cloud.storageinsights.v1.IListReportDetailsResponse|null|undefined, - protos.google.cloud.storageinsights.v1.IReportDetail>): void; + request: protos.google.cloud.storageinsights.v1.IListReportDetailsRequest, + callback: PaginationCallback< + protos.google.cloud.storageinsights.v1.IListReportDetailsRequest, + | protos.google.cloud.storageinsights.v1.IListReportDetailsResponse + | null + | undefined, + protos.google.cloud.storageinsights.v1.IReportDetail + >, + ): void; listReportDetails( - request?: protos.google.cloud.storageinsights.v1.IListReportDetailsRequest, - optionsOrCallback?: CallOptions|PaginationCallback< - protos.google.cloud.storageinsights.v1.IListReportDetailsRequest, - protos.google.cloud.storageinsights.v1.IListReportDetailsResponse|null|undefined, - protos.google.cloud.storageinsights.v1.IReportDetail>, - callback?: PaginationCallback< + request?: protos.google.cloud.storageinsights.v1.IListReportDetailsRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< protos.google.cloud.storageinsights.v1.IListReportDetailsRequest, - protos.google.cloud.storageinsights.v1.IListReportDetailsResponse|null|undefined, - protos.google.cloud.storageinsights.v1.IReportDetail>): - Promise<[ - protos.google.cloud.storageinsights.v1.IReportDetail[], - protos.google.cloud.storageinsights.v1.IListReportDetailsRequest|null, - protos.google.cloud.storageinsights.v1.IListReportDetailsResponse - ]>|void { + | protos.google.cloud.storageinsights.v1.IListReportDetailsResponse + | null + | undefined, + protos.google.cloud.storageinsights.v1.IReportDetail + >, + callback?: PaginationCallback< + protos.google.cloud.storageinsights.v1.IListReportDetailsRequest, + | protos.google.cloud.storageinsights.v1.IListReportDetailsResponse + | null + | undefined, + protos.google.cloud.storageinsights.v1.IReportDetail + >, + ): Promise< + [ + protos.google.cloud.storageinsights.v1.IReportDetail[], + protos.google.cloud.storageinsights.v1.IListReportDetailsRequest | null, + protos.google.cloud.storageinsights.v1.IListReportDetailsResponse, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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.storageinsights.v1.IListReportDetailsRequest, - protos.google.cloud.storageinsights.v1.IListReportDetailsResponse|null|undefined, - protos.google.cloud.storageinsights.v1.IReportDetail>|undefined = callback + const wrappedCallback: + | PaginationCallback< + protos.google.cloud.storageinsights.v1.IListReportDetailsRequest, + | protos.google.cloud.storageinsights.v1.IListReportDetailsResponse + | null + | undefined, + protos.google.cloud.storageinsights.v1.IReportDetail + > + | undefined = callback ? (error, values, nextPageRequest, rawResponse) => { this._log.info('listReportDetails values %j', values); callback!(error, values, nextPageRequest, rawResponse); // We verified callback above. @@ -1919,204 +2691,233 @@ export class StorageInsightsClient { this._log.info('listReportDetails request %j', request); return this.innerApiCalls .listReportDetails(request, options, wrappedCallback) - ?.then(([response, input, output]: [ - protos.google.cloud.storageinsights.v1.IReportDetail[], - protos.google.cloud.storageinsights.v1.IListReportDetailsRequest|null, - protos.google.cloud.storageinsights.v1.IListReportDetailsResponse - ]) => { - this._log.info('listReportDetails values %j', response); - return [response, input, output]; - }); + ?.then( + ([response, input, output]: [ + protos.google.cloud.storageinsights.v1.IReportDetail[], + protos.google.cloud.storageinsights.v1.IListReportDetailsRequest | null, + protos.google.cloud.storageinsights.v1.IListReportDetailsResponse, + ]) => { + this._log.info('listReportDetails values %j', response); + return [response, input, output]; + }, + ); } -/** - * Equivalent to `listReportDetails`, but returns a NodeJS Stream object. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Parent value for ListReportDetailsRequest - * @param {number} request.pageSize - * Requested page size. Server may return fewer items than requested. - * If unspecified, server will pick an appropriate default. - * @param {string} request.pageToken - * A token identifying a page of results the server should return. - * @param {string} request.filter - * Filtering results - * @param {string} request.orderBy - * Hint for how to order the results - * @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.storageinsights.v1.ReportDetail|ReportDetail} 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 `listReportDetailsAsync()` - * 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 `listReportDetails`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Parent value for ListReportDetailsRequest + * @param {number} request.pageSize + * Requested page size. Server may return fewer items than requested. + * If unspecified, server will pick an appropriate default. + * @param {string} request.pageToken + * A token identifying a page of results the server should return. + * @param {string} request.filter + * Filtering results + * @param {string} request.orderBy + * Hint for how to order the results + * @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.storageinsights.v1.ReportDetail|ReportDetail} 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 `listReportDetailsAsync()` + * 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. + */ listReportDetailsStream( - request?: protos.google.cloud.storageinsights.v1.IListReportDetailsRequest, - options?: CallOptions): - Transform{ + request?: protos.google.cloud.storageinsights.v1.IListReportDetailsRequest, + 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['listReportDetails']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listReportDetails stream %j', request); return this.descriptors.page.listReportDetails.createStream( this.innerApiCalls.listReportDetails as GaxCall, request, - callSettings + callSettings, ); } -/** - * Equivalent to `listReportDetails`, 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. Parent value for ListReportDetailsRequest - * @param {number} request.pageSize - * Requested page size. Server may return fewer items than requested. - * If unspecified, server will pick an appropriate default. - * @param {string} request.pageToken - * A token identifying a page of results the server should return. - * @param {string} request.filter - * Filtering results - * @param {string} request.orderBy - * Hint for how to order the results - * @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.storageinsights.v1.ReportDetail|ReportDetail}. 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/storage_insights.list_report_details.js - * region_tag:storageinsights_v1_generated_StorageInsights_ListReportDetails_async - */ + /** + * Equivalent to `listReportDetails`, 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. Parent value for ListReportDetailsRequest + * @param {number} request.pageSize + * Requested page size. Server may return fewer items than requested. + * If unspecified, server will pick an appropriate default. + * @param {string} request.pageToken + * A token identifying a page of results the server should return. + * @param {string} request.filter + * Filtering results + * @param {string} request.orderBy + * Hint for how to order the results + * @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.storageinsights.v1.ReportDetail|ReportDetail}. 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/storage_insights.list_report_details.js + * region_tag:storageinsights_v1_generated_StorageInsights_ListReportDetails_async + */ listReportDetailsAsync( - request?: protos.google.cloud.storageinsights.v1.IListReportDetailsRequest, - options?: CallOptions): - AsyncIterable{ + request?: protos.google.cloud.storageinsights.v1.IListReportDetailsRequest, + 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['listReportDetails']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listReportDetails iterate %j', request); return this.descriptors.page.listReportDetails.asyncIterate( this.innerApiCalls['listReportDetails'] as GaxCall, request as {}, - callSettings + callSettings, ) as AsyncIterable; } - /** - * Lists the dataset configurations in a given project for a given location. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Parent value for ListDatasetConfigsRequest - * @param {number} request.pageSize - * Requested page size. Server might return fewer items than requested. - * If unspecified, server picks an appropriate default. - * @param {string} request.pageToken - * A token identifying a page of results the server should return. - * @param {string} request.filter - * Filtering results - * @param {string} request.orderBy - * Hint for how to order the results - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.storageinsights.v1.DatasetConfig|DatasetConfig}. - * 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 `listDatasetConfigsAsync()` - * 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 the dataset configurations in a given project for a given location. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Parent value for ListDatasetConfigsRequest + * @param {number} request.pageSize + * Requested page size. Server might return fewer items than requested. + * If unspecified, server picks an appropriate default. + * @param {string} request.pageToken + * A token identifying a page of results the server should return. + * @param {string} request.filter + * Filtering results + * @param {string} request.orderBy + * Hint for how to order the results + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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.storageinsights.v1.DatasetConfig|DatasetConfig}. + * 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 `listDatasetConfigsAsync()` + * 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. + */ listDatasetConfigs( - request?: protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.storageinsights.v1.IDatasetConfig[], - protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest|null, - protos.google.cloud.storageinsights.v1.IListDatasetConfigsResponse - ]>; + request?: protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest, + options?: CallOptions, + ): Promise< + [ + protos.google.cloud.storageinsights.v1.IDatasetConfig[], + protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest | null, + protos.google.cloud.storageinsights.v1.IListDatasetConfigsResponse, + ] + >; listDatasetConfigs( - request: protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest, - options: CallOptions, - callback: PaginationCallback< - protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest, - protos.google.cloud.storageinsights.v1.IListDatasetConfigsResponse|null|undefined, - protos.google.cloud.storageinsights.v1.IDatasetConfig>): void; + request: protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest, + | protos.google.cloud.storageinsights.v1.IListDatasetConfigsResponse + | null + | undefined, + protos.google.cloud.storageinsights.v1.IDatasetConfig + >, + ): void; listDatasetConfigs( - request: protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest, - callback: PaginationCallback< - protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest, - protos.google.cloud.storageinsights.v1.IListDatasetConfigsResponse|null|undefined, - protos.google.cloud.storageinsights.v1.IDatasetConfig>): void; + request: protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest, + callback: PaginationCallback< + protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest, + | protos.google.cloud.storageinsights.v1.IListDatasetConfigsResponse + | null + | undefined, + protos.google.cloud.storageinsights.v1.IDatasetConfig + >, + ): void; listDatasetConfigs( - request?: protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest, - optionsOrCallback?: CallOptions|PaginationCallback< - protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest, - protos.google.cloud.storageinsights.v1.IListDatasetConfigsResponse|null|undefined, - protos.google.cloud.storageinsights.v1.IDatasetConfig>, - callback?: PaginationCallback< + request?: protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest, - protos.google.cloud.storageinsights.v1.IListDatasetConfigsResponse|null|undefined, - protos.google.cloud.storageinsights.v1.IDatasetConfig>): - Promise<[ - protos.google.cloud.storageinsights.v1.IDatasetConfig[], - protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest|null, - protos.google.cloud.storageinsights.v1.IListDatasetConfigsResponse - ]>|void { + | protos.google.cloud.storageinsights.v1.IListDatasetConfigsResponse + | null + | undefined, + protos.google.cloud.storageinsights.v1.IDatasetConfig + >, + callback?: PaginationCallback< + protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest, + | protos.google.cloud.storageinsights.v1.IListDatasetConfigsResponse + | null + | undefined, + protos.google.cloud.storageinsights.v1.IDatasetConfig + >, + ): Promise< + [ + protos.google.cloud.storageinsights.v1.IDatasetConfig[], + protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest | null, + protos.google.cloud.storageinsights.v1.IListDatasetConfigsResponse, + ] + > | void { request = request || {}; let options: CallOptions; if (typeof optionsOrCallback === 'function' && callback === undefined) { callback = optionsOrCallback; options = {}; - } - else { + } else { options = optionsOrCallback as 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.storageinsights.v1.IListDatasetConfigsRequest, - protos.google.cloud.storageinsights.v1.IListDatasetConfigsResponse|null|undefined, - protos.google.cloud.storageinsights.v1.IDatasetConfig>|undefined = callback + const wrappedCallback: + | PaginationCallback< + protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest, + | protos.google.cloud.storageinsights.v1.IListDatasetConfigsResponse + | null + | undefined, + protos.google.cloud.storageinsights.v1.IDatasetConfig + > + | undefined = callback ? (error, values, nextPageRequest, rawResponse) => { this._log.info('listDatasetConfigs values %j', values); callback!(error, values, nextPageRequest, rawResponse); // We verified callback above. @@ -2125,119 +2926,124 @@ export class StorageInsightsClient { this._log.info('listDatasetConfigs request %j', request); return this.innerApiCalls .listDatasetConfigs(request, options, wrappedCallback) - ?.then(([response, input, output]: [ - protos.google.cloud.storageinsights.v1.IDatasetConfig[], - protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest|null, - protos.google.cloud.storageinsights.v1.IListDatasetConfigsResponse - ]) => { - this._log.info('listDatasetConfigs values %j', response); - return [response, input, output]; - }); + ?.then( + ([response, input, output]: [ + protos.google.cloud.storageinsights.v1.IDatasetConfig[], + protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest | null, + protos.google.cloud.storageinsights.v1.IListDatasetConfigsResponse, + ]) => { + this._log.info('listDatasetConfigs values %j', response); + return [response, input, output]; + }, + ); } -/** - * Equivalent to `listDatasetConfigs`, but returns a NodeJS Stream object. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Parent value for ListDatasetConfigsRequest - * @param {number} request.pageSize - * Requested page size. Server might return fewer items than requested. - * If unspecified, server picks an appropriate default. - * @param {string} request.pageToken - * A token identifying a page of results the server should return. - * @param {string} request.filter - * Filtering results - * @param {string} request.orderBy - * Hint for how to order the results - * @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.storageinsights.v1.DatasetConfig|DatasetConfig} 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 `listDatasetConfigsAsync()` - * 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 `listDatasetConfigs`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Parent value for ListDatasetConfigsRequest + * @param {number} request.pageSize + * Requested page size. Server might return fewer items than requested. + * If unspecified, server picks an appropriate default. + * @param {string} request.pageToken + * A token identifying a page of results the server should return. + * @param {string} request.filter + * Filtering results + * @param {string} request.orderBy + * Hint for how to order the results + * @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.storageinsights.v1.DatasetConfig|DatasetConfig} 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 `listDatasetConfigsAsync()` + * 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. + */ listDatasetConfigsStream( - request?: protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest, - options?: CallOptions): - Transform{ + request?: protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest, + 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['listDatasetConfigs']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listDatasetConfigs stream %j', request); return this.descriptors.page.listDatasetConfigs.createStream( this.innerApiCalls.listDatasetConfigs as GaxCall, request, - callSettings + callSettings, ); } -/** - * Equivalent to `listDatasetConfigs`, 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. Parent value for ListDatasetConfigsRequest - * @param {number} request.pageSize - * Requested page size. Server might return fewer items than requested. - * If unspecified, server picks an appropriate default. - * @param {string} request.pageToken - * A token identifying a page of results the server should return. - * @param {string} request.filter - * Filtering results - * @param {string} request.orderBy - * Hint for how to order the results - * @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.storageinsights.v1.DatasetConfig|DatasetConfig}. 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/storage_insights.list_dataset_configs.js - * region_tag:storageinsights_v1_generated_StorageInsights_ListDatasetConfigs_async - */ + /** + * Equivalent to `listDatasetConfigs`, 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. Parent value for ListDatasetConfigsRequest + * @param {number} request.pageSize + * Requested page size. Server might return fewer items than requested. + * If unspecified, server picks an appropriate default. + * @param {string} request.pageToken + * A token identifying a page of results the server should return. + * @param {string} request.filter + * Filtering results + * @param {string} request.orderBy + * Hint for how to order the results + * @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.storageinsights.v1.DatasetConfig|DatasetConfig}. 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/storage_insights.list_dataset_configs.js + * region_tag:storageinsights_v1_generated_StorageInsights_ListDatasetConfigs_async + */ listDatasetConfigsAsync( - request?: protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest, - options?: CallOptions): - AsyncIterable{ + request?: protos.google.cloud.storageinsights.v1.IListDatasetConfigsRequest, + 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['listDatasetConfigs']; const callSettings = defaultCallSettings.merge(options); - this.initialize().catch(err => {throw err}); + this.initialize().catch((err) => { + throw err; + }); this._log.info('listDatasetConfigs iterate %j', request); return this.descriptors.page.listDatasetConfigs.asyncIterate( this.innerApiCalls['listDatasetConfigs'] as GaxCall, request as {}, - callSettings + callSettings, ) as AsyncIterable; } -/** + + /** * Gets information about a location. * * @param {Object} request @@ -2272,12 +3078,11 @@ export class StorageInsightsClient { | 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. @@ -2310,12 +3115,12 @@ export class StorageInsightsClient { */ listLocationsAsync( request: LocationProtos.google.cloud.location.IListLocationsRequest, - options?: CallOptions + options?: CallOptions, ): AsyncIterable { return this.locationsClient.listLocationsAsync(request, options); } -/** + /** * Gets the latest state of a long-running operation. Clients can use this * method to poll the operation result at intervals as recommended by the API * service. @@ -2358,22 +3163,22 @@ export class StorageInsightsClient { protos.google.longrunning.Operation, protos.google.longrunning.GetOperationRequest, {} | null | undefined - > + >, ): Promise<[protos.google.longrunning.Operation]> { - let options: gax.CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as gax.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 ?? '', - }); + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.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 ?? '', + }); return this.operationsClient.getOperation(request, options, callback); } /** @@ -2408,15 +3213,15 @@ export class StorageInsightsClient { */ listOperationsAsync( request: protos.google.longrunning.ListOperationsRequest, - options?: gax.CallOptions + options?: gax.CallOptions, ): AsyncIterable { - 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 = 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 ?? '', + }); return this.operationsClient.listOperationsAsync(request, options); } /** @@ -2450,7 +3255,7 @@ export class StorageInsightsClient { * await client.cancelOperation({name: ''}); * ``` */ - cancelOperation( + cancelOperation( request: protos.google.longrunning.CancelOperationRequest, optionsOrCallback?: | gax.CallOptions @@ -2463,25 +3268,24 @@ export class StorageInsightsClient { protos.google.longrunning.CancelOperationRequest, protos.google.protobuf.Empty, {} | undefined | null - > + >, ): Promise { - let options: gax.CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as gax.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 ?? '', - }); + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.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 ?? '', + }); return this.operationsClient.cancelOperation(request, options, callback); } - /** * Deletes a long-running operation. This method indicates that the client is * no longer interested in the operation result. It does not cancel the @@ -2520,22 +3324,22 @@ export class StorageInsightsClient { protos.google.protobuf.Empty, protos.google.longrunning.DeleteOperationRequest, {} | null | undefined - > + >, ): Promise { - let options: gax.CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } else { - options = optionsOrCallback as gax.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 ?? '', - }); + let options: gax.CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as gax.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 ?? '', + }); return this.operationsClient.deleteOperation(request, options, callback); } @@ -2551,7 +3355,7 @@ export class StorageInsightsClient { * @param {string} dataset_config * @returns {string} Resource name string. */ - datasetConfigPath(project:string,location:string,datasetConfig:string) { + datasetConfigPath(project: string, location: string, datasetConfig: string) { return this.pathTemplates.datasetConfigPathTemplate.render({ project: project, location: location, @@ -2567,7 +3371,8 @@ export class StorageInsightsClient { * @returns {string} A string representing the project. */ matchProjectFromDatasetConfigName(datasetConfigName: string) { - return this.pathTemplates.datasetConfigPathTemplate.match(datasetConfigName).project; + return this.pathTemplates.datasetConfigPathTemplate.match(datasetConfigName) + .project; } /** @@ -2578,7 +3383,8 @@ export class StorageInsightsClient { * @returns {string} A string representing the location. */ matchLocationFromDatasetConfigName(datasetConfigName: string) { - return this.pathTemplates.datasetConfigPathTemplate.match(datasetConfigName).location; + return this.pathTemplates.datasetConfigPathTemplate.match(datasetConfigName) + .location; } /** @@ -2589,7 +3395,8 @@ export class StorageInsightsClient { * @returns {string} A string representing the dataset_config. */ matchDatasetConfigFromDatasetConfigName(datasetConfigName: string) { - return this.pathTemplates.datasetConfigPathTemplate.match(datasetConfigName).dataset_config; + return this.pathTemplates.datasetConfigPathTemplate.match(datasetConfigName) + .dataset_config; } /** @@ -2599,7 +3406,7 @@ export class StorageInsightsClient { * @param {string} location * @returns {string} Resource name string. */ - locationPath(project:string,location:string) { + locationPath(project: string, location: string) { return this.pathTemplates.locationPathTemplate.render({ project: project, location: location, @@ -2634,7 +3441,7 @@ export class StorageInsightsClient { * @param {string} project * @returns {string} Resource name string. */ - projectPath(project:string) { + projectPath(project: string) { return this.pathTemplates.projectPathTemplate.render({ project: project, }); @@ -2659,7 +3466,7 @@ export class StorageInsightsClient { * @param {string} report_config * @returns {string} Resource name string. */ - reportConfigPath(project:string,location:string,reportConfig:string) { + reportConfigPath(project: string, location: string, reportConfig: string) { return this.pathTemplates.reportConfigPathTemplate.render({ project: project, location: location, @@ -2675,7 +3482,8 @@ export class StorageInsightsClient { * @returns {string} A string representing the project. */ matchProjectFromReportConfigName(reportConfigName: string) { - return this.pathTemplates.reportConfigPathTemplate.match(reportConfigName).project; + return this.pathTemplates.reportConfigPathTemplate.match(reportConfigName) + .project; } /** @@ -2686,7 +3494,8 @@ export class StorageInsightsClient { * @returns {string} A string representing the location. */ matchLocationFromReportConfigName(reportConfigName: string) { - return this.pathTemplates.reportConfigPathTemplate.match(reportConfigName).location; + return this.pathTemplates.reportConfigPathTemplate.match(reportConfigName) + .location; } /** @@ -2697,7 +3506,8 @@ export class StorageInsightsClient { * @returns {string} A string representing the report_config. */ matchReportConfigFromReportConfigName(reportConfigName: string) { - return this.pathTemplates.reportConfigPathTemplate.match(reportConfigName).report_config; + return this.pathTemplates.reportConfigPathTemplate.match(reportConfigName) + .report_config; } /** @@ -2709,7 +3519,12 @@ export class StorageInsightsClient { * @param {string} report_detail * @returns {string} Resource name string. */ - reportDetailPath(project:string,location:string,reportConfig:string,reportDetail:string) { + reportDetailPath( + project: string, + location: string, + reportConfig: string, + reportDetail: string, + ) { return this.pathTemplates.reportDetailPathTemplate.render({ project: project, location: location, @@ -2726,7 +3541,8 @@ export class StorageInsightsClient { * @returns {string} A string representing the project. */ matchProjectFromReportDetailName(reportDetailName: string) { - return this.pathTemplates.reportDetailPathTemplate.match(reportDetailName).project; + return this.pathTemplates.reportDetailPathTemplate.match(reportDetailName) + .project; } /** @@ -2737,7 +3553,8 @@ export class StorageInsightsClient { * @returns {string} A string representing the location. */ matchLocationFromReportDetailName(reportDetailName: string) { - return this.pathTemplates.reportDetailPathTemplate.match(reportDetailName).location; + return this.pathTemplates.reportDetailPathTemplate.match(reportDetailName) + .location; } /** @@ -2748,7 +3565,8 @@ export class StorageInsightsClient { * @returns {string} A string representing the report_config. */ matchReportConfigFromReportDetailName(reportDetailName: string) { - return this.pathTemplates.reportDetailPathTemplate.match(reportDetailName).report_config; + return this.pathTemplates.reportDetailPathTemplate.match(reportDetailName) + .report_config; } /** @@ -2759,7 +3577,8 @@ export class StorageInsightsClient { * @returns {string} A string representing the report_detail. */ matchReportDetailFromReportDetailName(reportDetailName: string) { - return this.pathTemplates.reportDetailPathTemplate.match(reportDetailName).report_detail; + return this.pathTemplates.reportDetailPathTemplate.match(reportDetailName) + .report_detail; } /** @@ -2770,14 +3589,16 @@ export class StorageInsightsClient { */ close(): Promise { if (this.storageInsightsStub && !this._terminated) { - return this.storageInsightsStub.then(stub => { + return this.storageInsightsStub.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; + }); void this.operationsClient.close(); }); } return Promise.resolve(); } -} \ No newline at end of file +} diff --git a/packages/google-cloud-storageinsights/system-test/fixtures/sample/src/index.ts b/packages/google-cloud-storageinsights/system-test/fixtures/sample/src/index.ts index e9aa57d01b2b..03648d3aad96 100644 --- a/packages/google-cloud-storageinsights/system-test/fixtures/sample/src/index.ts +++ b/packages/google-cloud-storageinsights/system-test/fixtures/sample/src/index.ts @@ -16,7 +16,7 @@ // ** https://github.com/googleapis/gapic-generator-typescript ** // ** All changes to this file may be overwritten. ** -import {StorageInsightsClient} from '@google-cloud/storageinsights'; +import { StorageInsightsClient } from '@google-cloud/storageinsights'; // check that the client class type name can be used function doStuffWithStorageInsightsClient(client: StorageInsightsClient) { diff --git a/packages/google-cloud-storageinsights/system-test/install.ts b/packages/google-cloud-storageinsights/system-test/install.ts index f66069aa3940..ccf167042d2e 100644 --- a/packages/google-cloud-storageinsights/system-test/install.ts +++ b/packages/google-cloud-storageinsights/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-storageinsights/test/gapic_storage_insights_v1.ts b/packages/google-cloud-storageinsights/test/gapic_storage_insights_v1.ts index af5e6b7fd6ad..e4fd7c8bf548 100644 --- a/packages/google-cloud-storageinsights/test/gapic_storage_insights_v1.ts +++ b/packages/google-cloud-storageinsights/test/gapic_storage_insights_v1.ts @@ -19,3058 +19,3910 @@ 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 storageinsightsModule from '../src'; -import {PassThrough} from 'stream'; +import { PassThrough } from 'stream'; -import {protobuf, LROperation, operationsProtos, LocationProtos} from 'google-gax'; +import { + protobuf, + LROperation, + operationsProtos, + 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 stubLongRunningCall(response?: ResponseType, callError?: Error, lroError?: Error) { - const innerStub = lroError ? sinon.stub().rejects(lroError) : sinon.stub().resolves([response]); - const mockOperation = { - promise: innerStub, - }; - return callError ? sinon.stub().rejects(callError) : sinon.stub().resolves([mockOperation]); +function stubLongRunningCall( + response?: ResponseType, + callError?: Error, + lroError?: Error, +) { + const innerStub = lroError + ? sinon.stub().rejects(lroError) + : sinon.stub().resolves([response]); + const mockOperation = { + promise: innerStub, + }; + return callError + ? sinon.stub().rejects(callError) + : sinon.stub().resolves([mockOperation]); } -function stubLongRunningCallWithCallback(response?: ResponseType, callError?: Error, lroError?: Error) { - const innerStub = lroError ? sinon.stub().rejects(lroError) : sinon.stub().resolves([response]); - const mockOperation = { - promise: innerStub, - }; - return callError ? sinon.stub().callsArgWith(2, callError) : sinon.stub().callsArgWith(2, null, mockOperation); +function stubLongRunningCallWithCallback( + response?: ResponseType, + callError?: Error, + lroError?: Error, +) { + const innerStub = lroError + ? sinon.stub().rejects(lroError) + : sinon.stub().resolves([response]); + const mockOperation = { + promise: innerStub, + }; + return callError + ? sinon.stub().callsArgWith(2, callError) + : sinon.stub().callsArgWith(2, null, mockOperation); } -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.StorageInsightsClient', () => { - describe('Common methods', () => { - it('has apiEndpoint', () => { - const client = new storageinsightsModule.v1.StorageInsightsClient(); - const apiEndpoint = client.apiEndpoint; - assert.strictEqual(apiEndpoint, 'storageinsights.googleapis.com'); - }); - - it('has universeDomain', () => { - const client = new storageinsightsModule.v1.StorageInsightsClient(); - 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 = storageinsightsModule.v1.StorageInsightsClient.servicePath; - assert.strictEqual(servicePath, 'storageinsights.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - - it('throws DeprecationWarning if static apiEndpoint is used', () => { - const stub = sinon.stub(process, 'emitWarning'); - const apiEndpoint = storageinsightsModule.v1.StorageInsightsClient.apiEndpoint; - assert.strictEqual(apiEndpoint, 'storageinsights.googleapis.com'); - assert(stub.called); - stub.restore(); - }); - } - it('sets apiEndpoint according to universe domain camelCase', () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({universeDomain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'storageinsights.example.com'); - }); - - it('sets apiEndpoint according to universe domain snakeCase', () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({universe_domain: 'example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'storageinsights.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 storageinsightsModule.v1.StorageInsightsClient(); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'storageinsights.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 storageinsightsModule.v1.StorageInsightsClient({universeDomain: 'configured.example.com'}); - const servicePath = client.apiEndpoint; - assert.strictEqual(servicePath, 'storageinsights.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 storageinsightsModule.v1.StorageInsightsClient({universe_domain: 'example.com', universeDomain: 'example.net'}); }); - }); - - it('has port', () => { - const port = storageinsightsModule.v1.StorageInsightsClient.port; - assert(port); - assert(typeof port === 'number'); - }); - - it('should create a client with no option', () => { - const client = new storageinsightsModule.v1.StorageInsightsClient(); - assert(client); - }); - - it('should create a client with gRPC fallback', () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - fallback: true, - }); - assert(client); - }); - - it('has initialize method and supports deferred initialization', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.storageInsightsStub, undefined); - await client.initialize(); - assert(client.storageInsightsStub); - }); - - it('has close method for the initialized client', done => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize().catch(err => {throw err}); - assert(client.storageInsightsStub); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); - - it('has close method for the non-initialized client', done => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.storageInsightsStub, undefined); - client.close().then(() => { - done(); - }).catch(err => {throw err}); - }); + describe('Common methods', () => { + it('has apiEndpoint', () => { + const client = new storageinsightsModule.v1.StorageInsightsClient(); + const apiEndpoint = client.apiEndpoint; + assert.strictEqual(apiEndpoint, 'storageinsights.googleapis.com'); + }); - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new storageinsightsModule.v1.StorageInsightsClient({ - 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 universeDomain', () => { + const client = new storageinsightsModule.v1.StorageInsightsClient(); + const universeDomain = client.universeDomain; + assert.strictEqual(universeDomain, 'googleapis.com'); + }); - it('has getProjectId method with callback', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new storageinsightsModule.v1.StorageInsightsClient({ - 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); - }); + if ( + typeof process === 'object' && + typeof process.emitWarning === 'function' + ) { + it('throws DeprecationWarning if static servicePath is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const servicePath = + storageinsightsModule.v1.StorageInsightsClient.servicePath; + assert.strictEqual(servicePath, 'storageinsights.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + + it('throws DeprecationWarning if static apiEndpoint is used', () => { + const stub = sinon.stub(process, 'emitWarning'); + const apiEndpoint = + storageinsightsModule.v1.StorageInsightsClient.apiEndpoint; + assert.strictEqual(apiEndpoint, 'storageinsights.googleapis.com'); + assert(stub.called); + stub.restore(); + }); + } + it('sets apiEndpoint according to universe domain camelCase', () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + universeDomain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'storageinsights.example.com'); }); - describe('getReportConfig', () => { - it('invokes getReportConfig without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.GetReportConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.GetReportConfigRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ReportConfig() - ); - client.innerApiCalls.getReportConfig = stubSimpleCall(expectedResponse); - const [response] = await client.getReportConfig(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getReportConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getReportConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('sets apiEndpoint according to universe domain snakeCase', () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + universe_domain: 'example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'storageinsights.example.com'); + }); - it('invokes getReportConfig without error using callback', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.GetReportConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.GetReportConfigRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ReportConfig() - ); - client.innerApiCalls.getReportConfig = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getReportConfig( - request, - (err?: Error|null, result?: protos.google.cloud.storageinsights.v1.IReportConfig|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getReportConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getReportConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + 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 storageinsightsModule.v1.StorageInsightsClient(); + const servicePath = client.apiEndpoint; + assert.strictEqual(servicePath, 'storageinsights.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 storageinsightsModule.v1.StorageInsightsClient({ + universeDomain: 'configured.example.com', + }); + const servicePath = client.apiEndpoint; + assert.strictEqual( + servicePath, + 'storageinsights.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 storageinsightsModule.v1.StorageInsightsClient({ + universe_domain: 'example.com', + universeDomain: 'example.net', }); + }); + }); - it('invokes getReportConfig with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.GetReportConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.GetReportConfigRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.getReportConfig = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getReportConfig(request), expectedError); - const actualRequest = (client.innerApiCalls.getReportConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getReportConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('has port', () => { + const port = storageinsightsModule.v1.StorageInsightsClient.port; + assert(port); + assert(typeof port === 'number'); + }); - it('invokes getReportConfig with closed client', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.GetReportConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.GetReportConfigRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.getReportConfig(request), expectedError); - }); + it('should create a client with no option', () => { + const client = new storageinsightsModule.v1.StorageInsightsClient(); + assert(client); }); - describe('createReportConfig', () => { - it('invokes createReportConfig without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.CreateReportConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.CreateReportConfigRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ReportConfig() - ); - client.innerApiCalls.createReportConfig = stubSimpleCall(expectedResponse); - const [response] = await client.createReportConfig(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createReportConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createReportConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('should create a client with gRPC fallback', () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + fallback: true, + }); + assert(client); + }); - it('invokes createReportConfig without error using callback', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.CreateReportConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.CreateReportConfigRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ReportConfig() - ); - client.innerApiCalls.createReportConfig = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.createReportConfig( - request, - (err?: Error|null, result?: protos.google.cloud.storageinsights.v1.IReportConfig|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createReportConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createReportConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('has initialize method and supports deferred initialization', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.storageInsightsStub, undefined); + await client.initialize(); + assert(client.storageInsightsStub); + }); - it('invokes createReportConfig with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.CreateReportConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.CreateReportConfigRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.createReportConfig = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.createReportConfig(request), expectedError); - const actualRequest = (client.innerApiCalls.createReportConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createReportConfig 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 storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + client.initialize().catch((err) => { + throw err; + }); + assert(client.storageInsightsStub); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); + }); - it('invokes createReportConfig with closed client', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.CreateReportConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.CreateReportConfigRequest', ['parent']); - request.parent = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.createReportConfig(request), expectedError); + it('has close method for the non-initialized client', (done) => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + assert.strictEqual(client.storageInsightsStub, undefined); + client + .close() + .then(() => { + done(); + }) + .catch((err) => { + throw err; }); }); - describe('updateReportConfig', () => { - it('invokes updateReportConfig without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.UpdateReportConfigRequest() - ); - request.reportConfig ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.UpdateReportConfigRequest', ['reportConfig', 'name']); - request.reportConfig.name = defaultValue1; - const expectedHeaderRequestParams = `report_config.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ReportConfig() - ); - client.innerApiCalls.updateReportConfig = stubSimpleCall(expectedResponse); - const [response] = await client.updateReportConfig(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updateReportConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateReportConfig 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 storageinsightsModule.v1.StorageInsightsClient({ + 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 updateReportConfig without error using callback', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.UpdateReportConfigRequest() - ); - request.reportConfig ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.UpdateReportConfigRequest', ['reportConfig', 'name']); - request.reportConfig.name = defaultValue1; - const expectedHeaderRequestParams = `report_config.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ReportConfig() - ); - client.innerApiCalls.updateReportConfig = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.updateReportConfig( - request, - (err?: Error|null, result?: protos.google.cloud.storageinsights.v1.IReportConfig|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updateReportConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateReportConfig 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 storageinsightsModule.v1.StorageInsightsClient({ + 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('getReportConfig', () => { + it('invokes getReportConfig without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.GetReportConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.GetReportConfigRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportConfig(), + ); + client.innerApiCalls.getReportConfig = stubSimpleCall(expectedResponse); + const [response] = await client.getReportConfig(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getReportConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getReportConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updateReportConfig with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.UpdateReportConfigRequest() - ); - request.reportConfig ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.UpdateReportConfigRequest', ['reportConfig', 'name']); - request.reportConfig.name = defaultValue1; - const expectedHeaderRequestParams = `report_config.name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.updateReportConfig = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.updateReportConfig(request), expectedError); - const actualRequest = (client.innerApiCalls.updateReportConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateReportConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getReportConfig without error using callback', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.GetReportConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.GetReportConfigRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportConfig(), + ); + client.innerApiCalls.getReportConfig = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getReportConfig( + request, + ( + err?: Error | null, + result?: protos.google.cloud.storageinsights.v1.IReportConfig | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getReportConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getReportConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updateReportConfig with closed client', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.UpdateReportConfigRequest() - ); - request.reportConfig ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.UpdateReportConfigRequest', ['reportConfig', 'name']); - request.reportConfig.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.updateReportConfig(request), expectedError); - }); + it('invokes getReportConfig with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.GetReportConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.GetReportConfigRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getReportConfig = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.getReportConfig(request), expectedError); + const actualRequest = ( + client.innerApiCalls.getReportConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getReportConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('deleteReportConfig', () => { - it('invokes deleteReportConfig without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.DeleteReportConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.DeleteReportConfigRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.innerApiCalls.deleteReportConfig = stubSimpleCall(expectedResponse); - const [response] = await client.deleteReportConfig(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.deleteReportConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteReportConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getReportConfig with closed client', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.GetReportConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.GetReportConfigRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.getReportConfig(request), expectedError); + }); + }); + + describe('createReportConfig', () => { + it('invokes createReportConfig without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.CreateReportConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.CreateReportConfigRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportConfig(), + ); + client.innerApiCalls.createReportConfig = + stubSimpleCall(expectedResponse); + const [response] = await client.createReportConfig(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createReportConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createReportConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deleteReportConfig without error using callback', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.DeleteReportConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.DeleteReportConfigRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.innerApiCalls.deleteReportConfig = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.deleteReportConfig( - 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.deleteReportConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteReportConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createReportConfig without error using callback', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.CreateReportConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.CreateReportConfigRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportConfig(), + ); + client.innerApiCalls.createReportConfig = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.createReportConfig( + request, + ( + err?: Error | null, + result?: protos.google.cloud.storageinsights.v1.IReportConfig | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createReportConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createReportConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deleteReportConfig with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.DeleteReportConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.DeleteReportConfigRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.deleteReportConfig = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.deleteReportConfig(request), expectedError); - const actualRequest = (client.innerApiCalls.deleteReportConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteReportConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createReportConfig with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.CreateReportConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.CreateReportConfigRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.createReportConfig = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.createReportConfig(request), expectedError); + const actualRequest = ( + client.innerApiCalls.createReportConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createReportConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deleteReportConfig with closed client', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.DeleteReportConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.DeleteReportConfigRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.deleteReportConfig(request), expectedError); - }); + it('invokes createReportConfig with closed client', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.CreateReportConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.CreateReportConfigRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.createReportConfig(request), expectedError); + }); + }); + + describe('updateReportConfig', () => { + it('invokes updateReportConfig without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.UpdateReportConfigRequest(), + ); + request.reportConfig ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.UpdateReportConfigRequest', + ['reportConfig', 'name'], + ); + request.reportConfig.name = defaultValue1; + const expectedHeaderRequestParams = `report_config.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportConfig(), + ); + client.innerApiCalls.updateReportConfig = + stubSimpleCall(expectedResponse); + const [response] = await client.updateReportConfig(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updateReportConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateReportConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('getReportDetail', () => { - it('invokes getReportDetail without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.GetReportDetailRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.GetReportDetailRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ReportDetail() - ); - client.innerApiCalls.getReportDetail = stubSimpleCall(expectedResponse); - const [response] = await client.getReportDetail(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getReportDetail as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getReportDetail as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes updateReportConfig without error using callback', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.UpdateReportConfigRequest(), + ); + request.reportConfig ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.UpdateReportConfigRequest', + ['reportConfig', 'name'], + ); + request.reportConfig.name = defaultValue1; + const expectedHeaderRequestParams = `report_config.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportConfig(), + ); + client.innerApiCalls.updateReportConfig = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.updateReportConfig( + request, + ( + err?: Error | null, + result?: protos.google.cloud.storageinsights.v1.IReportConfig | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updateReportConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateReportConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getReportDetail without error using callback', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.GetReportDetailRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.GetReportDetailRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ReportDetail() - ); - client.innerApiCalls.getReportDetail = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getReportDetail( - request, - (err?: Error|null, result?: protos.google.cloud.storageinsights.v1.IReportDetail|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getReportDetail as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getReportDetail as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes updateReportConfig with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.UpdateReportConfigRequest(), + ); + request.reportConfig ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.UpdateReportConfigRequest', + ['reportConfig', 'name'], + ); + request.reportConfig.name = defaultValue1; + const expectedHeaderRequestParams = `report_config.name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.updateReportConfig = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.updateReportConfig(request), expectedError); + const actualRequest = ( + client.innerApiCalls.updateReportConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateReportConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getReportDetail with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.GetReportDetailRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.GetReportDetailRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.getReportDetail = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getReportDetail(request), expectedError); - const actualRequest = (client.innerApiCalls.getReportDetail as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getReportDetail as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes updateReportConfig with closed client', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.UpdateReportConfigRequest(), + ); + request.reportConfig ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.UpdateReportConfigRequest', + ['reportConfig', 'name'], + ); + request.reportConfig.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.updateReportConfig(request), expectedError); + }); + }); + + describe('deleteReportConfig', () => { + it('invokes deleteReportConfig without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.DeleteReportConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.DeleteReportConfigRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.innerApiCalls.deleteReportConfig = + stubSimpleCall(expectedResponse); + const [response] = await client.deleteReportConfig(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.deleteReportConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteReportConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getReportDetail with closed client', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.GetReportDetailRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.GetReportDetailRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.getReportDetail(request), expectedError); - }); + it('invokes deleteReportConfig without error using callback', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.DeleteReportConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.DeleteReportConfigRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.innerApiCalls.deleteReportConfig = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.deleteReportConfig( + 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.deleteReportConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteReportConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('getDatasetConfig', () => { - it('invokes getDatasetConfig without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.GetDatasetConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.GetDatasetConfigRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.DatasetConfig() - ); - client.innerApiCalls.getDatasetConfig = stubSimpleCall(expectedResponse); - const [response] = await client.getDatasetConfig(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getDatasetConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getDatasetConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes deleteReportConfig with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.DeleteReportConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.DeleteReportConfigRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.deleteReportConfig = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.deleteReportConfig(request), expectedError); + const actualRequest = ( + client.innerApiCalls.deleteReportConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteReportConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getDatasetConfig without error using callback', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.GetDatasetConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.GetDatasetConfigRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.DatasetConfig() - ); - client.innerApiCalls.getDatasetConfig = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getDatasetConfig( - request, - (err?: Error|null, result?: protos.google.cloud.storageinsights.v1.IDatasetConfig|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.getDatasetConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getDatasetConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes deleteReportConfig with closed client', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.DeleteReportConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.DeleteReportConfigRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.deleteReportConfig(request), expectedError); + }); + }); + + describe('getReportDetail', () => { + it('invokes getReportDetail without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.GetReportDetailRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.GetReportDetailRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportDetail(), + ); + client.innerApiCalls.getReportDetail = stubSimpleCall(expectedResponse); + const [response] = await client.getReportDetail(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getReportDetail as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getReportDetail as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getDatasetConfig with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.GetDatasetConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.GetDatasetConfigRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.getDatasetConfig = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getDatasetConfig(request), expectedError); - const actualRequest = (client.innerApiCalls.getDatasetConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.getDatasetConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getReportDetail without error using callback', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.GetReportDetailRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.GetReportDetailRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportDetail(), + ); + client.innerApiCalls.getReportDetail = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getReportDetail( + request, + ( + err?: Error | null, + result?: protos.google.cloud.storageinsights.v1.IReportDetail | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getReportDetail as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getReportDetail as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes getDatasetConfig with closed client', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.GetDatasetConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.GetDatasetConfigRequest', ['name']); - request.name = defaultValue1; - const expectedError = new Error('The client has already been closed.'); - client.close().catch(err => {throw err}); - await assert.rejects(client.getDatasetConfig(request), expectedError); - }); + it('invokes getReportDetail with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.GetReportDetailRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.GetReportDetailRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getReportDetail = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.getReportDetail(request), expectedError); + const actualRequest = ( + client.innerApiCalls.getReportDetail as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getReportDetail as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('createDatasetConfig', () => { - it('invokes createDatasetConfig without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.CreateDatasetConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.CreateDatasetConfigRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.createDatasetConfig = stubLongRunningCall(expectedResponse); - const [operation] = await client.createDatasetConfig(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createDatasetConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createDatasetConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getReportDetail with closed client', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.GetReportDetailRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.GetReportDetailRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.getReportDetail(request), expectedError); + }); + }); + + describe('getDatasetConfig', () => { + it('invokes getDatasetConfig without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.GetDatasetConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.GetDatasetConfigRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.DatasetConfig(), + ); + client.innerApiCalls.getDatasetConfig = stubSimpleCall(expectedResponse); + const [response] = await client.getDatasetConfig(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getDatasetConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getDatasetConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes createDatasetConfig without error using callback', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.CreateDatasetConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.CreateDatasetConfigRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.createDatasetConfig = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.createDatasetConfig( - request, - (err?: Error|null, - result?: LROperation|null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const operation = await promise as LROperation; - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.createDatasetConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createDatasetConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getDatasetConfig without error using callback', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.GetDatasetConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.GetDatasetConfigRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.DatasetConfig(), + ); + client.innerApiCalls.getDatasetConfig = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getDatasetConfig( + request, + ( + err?: Error | null, + result?: protos.google.cloud.storageinsights.v1.IDatasetConfig | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.getDatasetConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getDatasetConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes createDatasetConfig with call error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.CreateDatasetConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.CreateDatasetConfigRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.createDatasetConfig = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.createDatasetConfig(request), expectedError); - const actualRequest = (client.innerApiCalls.createDatasetConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createDatasetConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getDatasetConfig with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.GetDatasetConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.GetDatasetConfigRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.getDatasetConfig = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.getDatasetConfig(request), expectedError); + const actualRequest = ( + client.innerApiCalls.getDatasetConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.getDatasetConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes createDatasetConfig with LRO error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.CreateDatasetConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.CreateDatasetConfigRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.createDatasetConfig = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.createDatasetConfig(request); - await assert.rejects(operation.promise(), expectedError); - const actualRequest = (client.innerApiCalls.createDatasetConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.createDatasetConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes getDatasetConfig with closed client', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.GetDatasetConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.GetDatasetConfigRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close().catch((err) => { + throw err; + }); + await assert.rejects(client.getDatasetConfig(request), expectedError); + }); + }); + + describe('createDatasetConfig', () => { + it('invokes createDatasetConfig without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.CreateDatasetConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.CreateDatasetConfigRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.createDatasetConfig = + stubLongRunningCall(expectedResponse); + const [operation] = await client.createDatasetConfig(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createDatasetConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createDatasetConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkCreateDatasetConfigProgress without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - expectedResponse.name = 'test'; - expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; - expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')} - - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const decodedOperation = await client.checkCreateDatasetConfigProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); + it('invokes createDatasetConfig without error using callback', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.CreateDatasetConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.CreateDatasetConfigRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.createDatasetConfig = + stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.createDatasetConfig( + request, + ( + err?: Error | null, + result?: LROperation< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + protos.google.cloud.storageinsights.v1.IOperationMetadata + > | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const operation = (await promise) as LROperation< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >; + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.createDatasetConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createDatasetConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkCreateDatasetConfigProgress with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkCreateDatasetConfigProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); + it('invokes createDatasetConfig with call error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.CreateDatasetConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.CreateDatasetConfigRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.createDatasetConfig = stubLongRunningCall( + undefined, + expectedError, + ); + await assert.rejects(client.createDatasetConfig(request), expectedError); + const actualRequest = ( + client.innerApiCalls.createDatasetConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createDatasetConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('updateDatasetConfig', () => { - it('invokes updateDatasetConfig without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.UpdateDatasetConfigRequest() - ); - request.datasetConfig ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.UpdateDatasetConfigRequest', ['datasetConfig', 'name']); - request.datasetConfig.name = defaultValue1; - const expectedHeaderRequestParams = `dataset_config.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.updateDatasetConfig = stubLongRunningCall(expectedResponse); - const [operation] = await client.updateDatasetConfig(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updateDatasetConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateDatasetConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes createDatasetConfig with LRO error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.CreateDatasetConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.CreateDatasetConfigRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.createDatasetConfig = stubLongRunningCall( + undefined, + undefined, + expectedError, + ); + const [operation] = await client.createDatasetConfig(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.createDatasetConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.createDatasetConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updateDatasetConfig without error using callback', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.UpdateDatasetConfigRequest() - ); - request.datasetConfig ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.UpdateDatasetConfigRequest', ['datasetConfig', 'name']); - request.datasetConfig.name = defaultValue1; - const expectedHeaderRequestParams = `dataset_config.name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.updateDatasetConfig = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.updateDatasetConfig( - request, - (err?: Error|null, - result?: LROperation|null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const operation = await promise as LROperation; - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.updateDatasetConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateDatasetConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes checkCreateDatasetConfigProgress without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + expectedResponse.name = 'test'; + expectedResponse.response = { type_url: 'url', value: Buffer.from('') }; + expectedResponse.metadata = { type_url: 'url', value: Buffer.from('') }; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkCreateDatasetConfigProgress( + expectedResponse.name, + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); - it('invokes updateDatasetConfig with call error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.UpdateDatasetConfigRequest() - ); - request.datasetConfig ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.UpdateDatasetConfigRequest', ['datasetConfig', 'name']); - request.datasetConfig.name = defaultValue1; - const expectedHeaderRequestParams = `dataset_config.name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.updateDatasetConfig = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.updateDatasetConfig(request), expectedError); - const actualRequest = (client.innerApiCalls.updateDatasetConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateDatasetConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes checkCreateDatasetConfigProgress with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.checkCreateDatasetConfigProgress(''), + expectedError, + ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + }); + + describe('updateDatasetConfig', () => { + it('invokes updateDatasetConfig without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.UpdateDatasetConfigRequest(), + ); + request.datasetConfig ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.UpdateDatasetConfigRequest', + ['datasetConfig', 'name'], + ); + request.datasetConfig.name = defaultValue1; + const expectedHeaderRequestParams = `dataset_config.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.updateDatasetConfig = + stubLongRunningCall(expectedResponse); + const [operation] = await client.updateDatasetConfig(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updateDatasetConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateDatasetConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes updateDatasetConfig with LRO error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.UpdateDatasetConfigRequest() - ); - request.datasetConfig ??= {}; - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.UpdateDatasetConfigRequest', ['datasetConfig', 'name']); - request.datasetConfig.name = defaultValue1; - const expectedHeaderRequestParams = `dataset_config.name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.updateDatasetConfig = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.updateDatasetConfig(request); - await assert.rejects(operation.promise(), expectedError); - const actualRequest = (client.innerApiCalls.updateDatasetConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.updateDatasetConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes updateDatasetConfig without error using callback', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.UpdateDatasetConfigRequest(), + ); + request.datasetConfig ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.UpdateDatasetConfigRequest', + ['datasetConfig', 'name'], + ); + request.datasetConfig.name = defaultValue1; + const expectedHeaderRequestParams = `dataset_config.name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.updateDatasetConfig = + stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.updateDatasetConfig( + request, + ( + err?: Error | null, + result?: LROperation< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + protos.google.cloud.storageinsights.v1.IOperationMetadata + > | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const operation = (await promise) as LROperation< + protos.google.cloud.storageinsights.v1.IDatasetConfig, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >; + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.updateDatasetConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateDatasetConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkUpdateDatasetConfigProgress without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - expectedResponse.name = 'test'; - expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; - expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')} - - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const decodedOperation = await client.checkUpdateDatasetConfigProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); + it('invokes updateDatasetConfig with call error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.UpdateDatasetConfigRequest(), + ); + request.datasetConfig ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.UpdateDatasetConfigRequest', + ['datasetConfig', 'name'], + ); + request.datasetConfig.name = defaultValue1; + const expectedHeaderRequestParams = `dataset_config.name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.updateDatasetConfig = stubLongRunningCall( + undefined, + expectedError, + ); + await assert.rejects(client.updateDatasetConfig(request), expectedError); + const actualRequest = ( + client.innerApiCalls.updateDatasetConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateDatasetConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkUpdateDatasetConfigProgress with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkUpdateDatasetConfigProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); + it('invokes updateDatasetConfig with LRO error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.UpdateDatasetConfigRequest(), + ); + request.datasetConfig ??= {}; + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.UpdateDatasetConfigRequest', + ['datasetConfig', 'name'], + ); + request.datasetConfig.name = defaultValue1; + const expectedHeaderRequestParams = `dataset_config.name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.updateDatasetConfig = stubLongRunningCall( + undefined, + undefined, + expectedError, + ); + const [operation] = await client.updateDatasetConfig(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.updateDatasetConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.updateDatasetConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('deleteDatasetConfig', () => { - it('invokes deleteDatasetConfig without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.DeleteDatasetConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.DeleteDatasetConfigRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.deleteDatasetConfig = stubLongRunningCall(expectedResponse); - const [operation] = await client.deleteDatasetConfig(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.deleteDatasetConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteDatasetConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes checkUpdateDatasetConfigProgress without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + expectedResponse.name = 'test'; + expectedResponse.response = { type_url: 'url', value: Buffer.from('') }; + expectedResponse.metadata = { type_url: 'url', value: Buffer.from('') }; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkUpdateDatasetConfigProgress( + expectedResponse.name, + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); - it('invokes deleteDatasetConfig without error using callback', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.DeleteDatasetConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.DeleteDatasetConfigRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.deleteDatasetConfig = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.deleteDatasetConfig( - request, - (err?: Error|null, - result?: LROperation|null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const operation = await promise as LROperation; - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.deleteDatasetConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteDatasetConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes checkUpdateDatasetConfigProgress with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.checkUpdateDatasetConfigProgress(''), + expectedError, + ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + }); + + describe('deleteDatasetConfig', () => { + it('invokes deleteDatasetConfig without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.DeleteDatasetConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.DeleteDatasetConfigRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.deleteDatasetConfig = + stubLongRunningCall(expectedResponse); + const [operation] = await client.deleteDatasetConfig(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.deleteDatasetConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteDatasetConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deleteDatasetConfig with call error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.DeleteDatasetConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.DeleteDatasetConfigRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.deleteDatasetConfig = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.deleteDatasetConfig(request), expectedError); - const actualRequest = (client.innerApiCalls.deleteDatasetConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteDatasetConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes deleteDatasetConfig without error using callback', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.DeleteDatasetConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.DeleteDatasetConfigRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.deleteDatasetConfig = + stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.deleteDatasetConfig( + request, + ( + err?: Error | null, + result?: LROperation< + protos.google.protobuf.IEmpty, + protos.google.cloud.storageinsights.v1.IOperationMetadata + > | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const operation = (await promise) as LROperation< + protos.google.protobuf.IEmpty, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >; + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.deleteDatasetConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteDatasetConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes deleteDatasetConfig with LRO error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.DeleteDatasetConfigRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.DeleteDatasetConfigRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.deleteDatasetConfig = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.deleteDatasetConfig(request); - await assert.rejects(operation.promise(), expectedError); - const actualRequest = (client.innerApiCalls.deleteDatasetConfig as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.deleteDatasetConfig as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes deleteDatasetConfig with call error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.DeleteDatasetConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.DeleteDatasetConfigRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.deleteDatasetConfig = stubLongRunningCall( + undefined, + expectedError, + ); + await assert.rejects(client.deleteDatasetConfig(request), expectedError); + const actualRequest = ( + client.innerApiCalls.deleteDatasetConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteDatasetConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkDeleteDatasetConfigProgress without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - expectedResponse.name = 'test'; - expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; - expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')} - - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const decodedOperation = await client.checkDeleteDatasetConfigProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); + it('invokes deleteDatasetConfig with LRO error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.DeleteDatasetConfigRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.DeleteDatasetConfigRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.deleteDatasetConfig = stubLongRunningCall( + undefined, + undefined, + expectedError, + ); + const [operation] = await client.deleteDatasetConfig(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.deleteDatasetConfig as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.deleteDatasetConfig as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkDeleteDatasetConfigProgress with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkDeleteDatasetConfigProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); + it('invokes checkDeleteDatasetConfigProgress without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + expectedResponse.name = 'test'; + expectedResponse.response = { type_url: 'url', value: Buffer.from('') }; + expectedResponse.metadata = { type_url: 'url', value: Buffer.from('') }; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkDeleteDatasetConfigProgress( + expectedResponse.name, + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); }); - describe('linkDataset', () => { - it('invokes linkDataset without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.LinkDatasetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.LinkDatasetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.linkDataset = stubLongRunningCall(expectedResponse); - const [operation] = await client.linkDataset(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.linkDataset as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.linkDataset as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes checkDeleteDatasetConfigProgress with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.checkDeleteDatasetConfigProgress(''), + expectedError, + ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + }); + + describe('linkDataset', () => { + it('invokes linkDataset without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.LinkDatasetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.LinkDatasetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.linkDataset = stubLongRunningCall(expectedResponse); + const [operation] = await client.linkDataset(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.linkDataset as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.linkDataset as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes linkDataset without error using callback', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.LinkDatasetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.LinkDatasetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.linkDataset = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.linkDataset( - request, - (err?: Error|null, - result?: LROperation|null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const operation = await promise as LROperation; - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.linkDataset as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.linkDataset as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes linkDataset without error using callback', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.LinkDatasetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.LinkDatasetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.linkDataset = + stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.linkDataset( + request, + ( + err?: Error | null, + result?: LROperation< + protos.google.cloud.storageinsights.v1.ILinkDatasetResponse, + protos.google.cloud.storageinsights.v1.IOperationMetadata + > | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const operation = (await promise) as LROperation< + protos.google.cloud.storageinsights.v1.ILinkDatasetResponse, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >; + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.linkDataset as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.linkDataset as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes linkDataset with call error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.LinkDatasetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.LinkDatasetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.linkDataset = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.linkDataset(request), expectedError); - const actualRequest = (client.innerApiCalls.linkDataset as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.linkDataset as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes linkDataset with call error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.LinkDatasetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.LinkDatasetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.linkDataset = stubLongRunningCall( + undefined, + expectedError, + ); + await assert.rejects(client.linkDataset(request), expectedError); + const actualRequest = ( + client.innerApiCalls.linkDataset as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.linkDataset as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes linkDataset with LRO error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.LinkDatasetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.LinkDatasetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.linkDataset = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.linkDataset(request); - await assert.rejects(operation.promise(), expectedError); - const actualRequest = (client.innerApiCalls.linkDataset as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.linkDataset as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes linkDataset with LRO error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.LinkDatasetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.LinkDatasetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.linkDataset = stubLongRunningCall( + undefined, + undefined, + expectedError, + ); + const [operation] = await client.linkDataset(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.linkDataset as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.linkDataset as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkLinkDatasetProgress without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - expectedResponse.name = 'test'; - expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; - expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')} - - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const decodedOperation = await client.checkLinkDatasetProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); + it('invokes checkLinkDatasetProgress without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + expectedResponse.name = 'test'; + expectedResponse.response = { type_url: 'url', value: Buffer.from('') }; + expectedResponse.metadata = { type_url: 'url', value: Buffer.from('') }; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkLinkDatasetProgress( + expectedResponse.name, + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); - it('invokes checkLinkDatasetProgress with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkLinkDatasetProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); + it('invokes checkLinkDatasetProgress with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.checkLinkDatasetProgress(''), expectedError); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + }); + + describe('unlinkDataset', () => { + it('invokes unlinkDataset without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.UnlinkDatasetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.UnlinkDatasetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.unlinkDataset = + stubLongRunningCall(expectedResponse); + const [operation] = await client.unlinkDataset(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.unlinkDataset as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.unlinkDataset as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('unlinkDataset', () => { - it('invokes unlinkDataset without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.UnlinkDatasetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.UnlinkDatasetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.unlinkDataset = stubLongRunningCall(expectedResponse); - const [operation] = await client.unlinkDataset(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.unlinkDataset as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.unlinkDataset as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes unlinkDataset without error using callback', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.UnlinkDatasetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.UnlinkDatasetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation(), + ); + client.innerApiCalls.unlinkDataset = + stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.unlinkDataset( + request, + ( + err?: Error | null, + result?: LROperation< + protos.google.protobuf.IEmpty, + protos.google.cloud.storageinsights.v1.IOperationMetadata + > | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const operation = (await promise) as LROperation< + protos.google.protobuf.IEmpty, + protos.google.cloud.storageinsights.v1.IOperationMetadata + >; + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.unlinkDataset as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.unlinkDataset as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes unlinkDataset without error using callback', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.UnlinkDatasetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.UnlinkDatasetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedResponse = generateSampleMessage( - new protos.google.longrunning.Operation() - ); - client.innerApiCalls.unlinkDataset = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.unlinkDataset( - request, - (err?: Error|null, - result?: LROperation|null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const operation = await promise as LROperation; - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.unlinkDataset as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.unlinkDataset as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes unlinkDataset with call error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.UnlinkDatasetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.UnlinkDatasetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.unlinkDataset = stubLongRunningCall( + undefined, + expectedError, + ); + await assert.rejects(client.unlinkDataset(request), expectedError); + const actualRequest = ( + client.innerApiCalls.unlinkDataset as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.unlinkDataset as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes unlinkDataset with call error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.UnlinkDatasetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.UnlinkDatasetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.unlinkDataset = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.unlinkDataset(request), expectedError); - const actualRequest = (client.innerApiCalls.unlinkDataset as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.unlinkDataset as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes unlinkDataset with LRO error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.UnlinkDatasetRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.UnlinkDatasetRequest', + ['name'], + ); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.unlinkDataset = stubLongRunningCall( + undefined, + undefined, + expectedError, + ); + const [operation] = await client.unlinkDataset(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = ( + client.innerApiCalls.unlinkDataset as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.unlinkDataset as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes unlinkDataset with LRO error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.UnlinkDatasetRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.UnlinkDatasetRequest', ['name']); - request.name = defaultValue1; - const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.unlinkDataset = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.unlinkDataset(request); - await assert.rejects(operation.promise(), expectedError); - const actualRequest = (client.innerApiCalls.unlinkDataset as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.unlinkDataset as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes checkUnlinkDatasetProgress without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + expectedResponse.name = 'test'; + expectedResponse.response = { type_url: 'url', value: Buffer.from('') }; + expectedResponse.metadata = { type_url: 'url', value: Buffer.from('') }; + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkUnlinkDatasetProgress( + expectedResponse.name, + ); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); - it('invokes checkUnlinkDatasetProgress without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - expectedResponse.name = 'test'; - expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; - expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')} - - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const decodedOperation = await client.checkUnlinkDatasetProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); + it('invokes checkUnlinkDatasetProgress with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects( + client.checkUnlinkDatasetProgress(''), + expectedError, + ); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + }); + + describe('listReportConfigs', () => { + it('invokes listReportConfigs without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ListReportConfigsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.ListReportConfigsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportConfig(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportConfig(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportConfig(), + ), + ]; + client.innerApiCalls.listReportConfigs = stubSimpleCall(expectedResponse); + const [response] = await client.listReportConfigs(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listReportConfigs as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listReportConfigs as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes checkUnlinkDatasetProgress with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkUnlinkDatasetProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); + it('invokes listReportConfigs without error using callback', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ListReportConfigsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.ListReportConfigsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportConfig(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportConfig(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportConfig(), + ), + ]; + client.innerApiCalls.listReportConfigs = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listReportConfigs( + request, + ( + err?: Error | null, + result?: + | protos.google.cloud.storageinsights.v1.IReportConfig[] + | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listReportConfigs as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listReportConfigs as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('listReportConfigs', () => { - it('invokes listReportConfigs without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ListReportConfigsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.ListReportConfigsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportConfig()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportConfig()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportConfig()), - ]; - client.innerApiCalls.listReportConfigs = stubSimpleCall(expectedResponse); - const [response] = await client.listReportConfigs(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listReportConfigs as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listReportConfigs as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listReportConfigs with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ListReportConfigsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.ListReportConfigsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listReportConfigs = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.listReportConfigs(request), expectedError); + const actualRequest = ( + client.innerApiCalls.listReportConfigs as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listReportConfigs as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes listReportConfigs without error using callback', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ListReportConfigsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.ListReportConfigsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportConfig()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportConfig()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportConfig()), - ]; - client.innerApiCalls.listReportConfigs = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listReportConfigs( - request, - (err?: Error|null, result?: protos.google.cloud.storageinsights.v1.IReportConfig[]|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listReportConfigs as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listReportConfigs as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listReportConfigsStream without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ListReportConfigsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.ListReportConfigsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportConfig(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportConfig(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportConfig(), + ), + ]; + client.descriptors.page.listReportConfigs.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.listReportConfigsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.storageinsights.v1.ReportConfig[] = + []; + stream.on( + 'data', + (response: protos.google.cloud.storageinsights.v1.ReportConfig) => { + 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.listReportConfigs.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listReportConfigs, request), + ); + assert( + (client.descriptors.page.listReportConfigs.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('invokes listReportConfigs with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ListReportConfigsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.ListReportConfigsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.listReportConfigs = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.listReportConfigs(request), expectedError); - const actualRequest = (client.innerApiCalls.listReportConfigs as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listReportConfigs as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listReportConfigsStream with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ListReportConfigsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.ListReportConfigsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listReportConfigs.createStream = + stubPageStreamingCall(undefined, expectedError); + const stream = client.listReportConfigsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.storageinsights.v1.ReportConfig[] = + []; + stream.on( + 'data', + (response: protos.google.cloud.storageinsights.v1.ReportConfig) => { + responses.push(response); + }, + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + assert( + (client.descriptors.page.listReportConfigs.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listReportConfigs, request), + ); + assert( + (client.descriptors.page.listReportConfigs.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('invokes listReportConfigsStream without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ListReportConfigsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.ListReportConfigsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportConfig()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportConfig()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportConfig()), - ]; - client.descriptors.page.listReportConfigs.createStream = stubPageStreamingCall(expectedResponse); - const stream = client.listReportConfigsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.storageinsights.v1.ReportConfig[] = []; - stream.on('data', (response: protos.google.cloud.storageinsights.v1.ReportConfig) => { - 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.listReportConfigs.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listReportConfigs, request)); - assert( - (client.descriptors.page.listReportConfigs.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('uses async iteration with listReportConfigs without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ListReportConfigsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.ListReportConfigsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportConfig(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportConfig(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportConfig(), + ), + ]; + client.descriptors.page.listReportConfigs.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.storageinsights.v1.IReportConfig[] = + []; + const iterable = client.listReportConfigsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.descriptors.page.listReportConfigs.asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + (client.descriptors.page.listReportConfigs.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('invokes listReportConfigsStream with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ListReportConfigsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.ListReportConfigsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listReportConfigs.createStream = stubPageStreamingCall(undefined, expectedError); - const stream = client.listReportConfigsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.storageinsights.v1.ReportConfig[] = []; - stream.on('data', (response: protos.google.cloud.storageinsights.v1.ReportConfig) => { - responses.push(response); - }); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - assert((client.descriptors.page.listReportConfigs.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listReportConfigs, request)); - assert( - (client.descriptors.page.listReportConfigs.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('uses async iteration with listReportConfigs with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ListReportConfigsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.ListReportConfigsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listReportConfigs.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listReportConfigsAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.storageinsights.v1.IReportConfig[] = + []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.descriptors.page.listReportConfigs.asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + (client.descriptors.page.listReportConfigs.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); + }); + + describe('listReportDetails', () => { + it('invokes listReportDetails without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ListReportDetailsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.ListReportDetailsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportDetail(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportDetail(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportDetail(), + ), + ]; + client.innerApiCalls.listReportDetails = stubSimpleCall(expectedResponse); + const [response] = await client.listReportDetails(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listReportDetails as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listReportDetails as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('uses async iteration with listReportConfigs without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ListReportConfigsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.ListReportConfigsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportConfig()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportConfig()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportConfig()), - ]; - client.descriptors.page.listReportConfigs.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: protos.google.cloud.storageinsights.v1.IReportConfig[] = []; - const iterable = client.listReportConfigsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + it('invokes listReportDetails without error using callback', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ListReportDetailsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.ListReportDetailsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportDetail(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportDetail(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportDetail(), + ), + ]; + client.innerApiCalls.listReportDetails = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listReportDetails( + request, + ( + err?: Error | null, + result?: + | protos.google.cloud.storageinsights.v1.IReportDetail[] + | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.descriptors.page.listReportConfigs.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listReportConfigs.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - - it('uses async iteration with listReportConfigs with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ListReportConfigsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.ListReportConfigsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listReportConfigs.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listReportConfigsAsync(request); - await assert.rejects(async () => { - const responses: protos.google.cloud.storageinsights.v1.IReportConfig[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.descriptors.page.listReportConfigs.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listReportConfigs.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.listReportDetails as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listReportDetails as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('listReportDetails', () => { - it('invokes listReportDetails without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ListReportDetailsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.ListReportDetailsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportDetail()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportDetail()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportDetail()), - ]; - client.innerApiCalls.listReportDetails = stubSimpleCall(expectedResponse); - const [response] = await client.listReportDetails(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listReportDetails as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listReportDetails as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listReportDetails with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ListReportDetailsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.ListReportDetailsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listReportDetails = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.listReportDetails(request), expectedError); + const actualRequest = ( + client.innerApiCalls.listReportDetails as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listReportDetails as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes listReportDetails without error using callback', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ListReportDetailsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.ListReportDetailsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportDetail()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportDetail()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportDetail()), - ]; - client.innerApiCalls.listReportDetails = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listReportDetails( - request, - (err?: Error|null, result?: protos.google.cloud.storageinsights.v1.IReportDetail[]|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listReportDetails as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listReportDetails as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listReportDetailsStream without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ListReportDetailsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.ListReportDetailsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportDetail(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportDetail(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportDetail(), + ), + ]; + client.descriptors.page.listReportDetails.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.listReportDetailsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.storageinsights.v1.ReportDetail[] = + []; + stream.on( + 'data', + (response: protos.google.cloud.storageinsights.v1.ReportDetail) => { + 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.listReportDetails.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listReportDetails, request), + ); + assert( + (client.descriptors.page.listReportDetails.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('invokes listReportDetails with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ListReportDetailsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.ListReportDetailsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.listReportDetails = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.listReportDetails(request), expectedError); - const actualRequest = (client.innerApiCalls.listReportDetails as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listReportDetails as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listReportDetailsStream with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ListReportDetailsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.ListReportDetailsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listReportDetails.createStream = + stubPageStreamingCall(undefined, expectedError); + const stream = client.listReportDetailsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.storageinsights.v1.ReportDetail[] = + []; + stream.on( + 'data', + (response: protos.google.cloud.storageinsights.v1.ReportDetail) => { + responses.push(response); + }, + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + assert( + (client.descriptors.page.listReportDetails.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listReportDetails, request), + ); + assert( + (client.descriptors.page.listReportDetails.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('invokes listReportDetailsStream without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ListReportDetailsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.ListReportDetailsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportDetail()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportDetail()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportDetail()), - ]; - client.descriptors.page.listReportDetails.createStream = stubPageStreamingCall(expectedResponse); - const stream = client.listReportDetailsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.storageinsights.v1.ReportDetail[] = []; - stream.on('data', (response: protos.google.cloud.storageinsights.v1.ReportDetail) => { - 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.listReportDetails.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listReportDetails, request)); - assert( - (client.descriptors.page.listReportDetails.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('uses async iteration with listReportDetails without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ListReportDetailsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.ListReportDetailsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportDetail(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportDetail(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ReportDetail(), + ), + ]; + client.descriptors.page.listReportDetails.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.storageinsights.v1.IReportDetail[] = + []; + const iterable = client.listReportDetailsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.descriptors.page.listReportDetails.asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + (client.descriptors.page.listReportDetails.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('invokes listReportDetailsStream with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ListReportDetailsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.ListReportDetailsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listReportDetails.createStream = stubPageStreamingCall(undefined, expectedError); - const stream = client.listReportDetailsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.storageinsights.v1.ReportDetail[] = []; - stream.on('data', (response: protos.google.cloud.storageinsights.v1.ReportDetail) => { - responses.push(response); - }); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - assert((client.descriptors.page.listReportDetails.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listReportDetails, request)); - assert( - (client.descriptors.page.listReportDetails.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('uses async iteration with listReportDetails with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ListReportDetailsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.ListReportDetailsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listReportDetails.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listReportDetailsAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.storageinsights.v1.IReportDetail[] = + []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.descriptors.page.listReportDetails.asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + (client.descriptors.page.listReportDetails.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); + }); + + describe('listDatasetConfigs', () => { + it('invokes listDatasetConfigs without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ListDatasetConfigsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.ListDatasetConfigsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.DatasetConfig(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.DatasetConfig(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.DatasetConfig(), + ), + ]; + client.innerApiCalls.listDatasetConfigs = + stubSimpleCall(expectedResponse); + const [response] = await client.listDatasetConfigs(request); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.listDatasetConfigs as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listDatasetConfigs as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('uses async iteration with listReportDetails without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ListReportDetailsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.ListReportDetailsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportDetail()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportDetail()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.ReportDetail()), - ]; - client.descriptors.page.listReportDetails.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: protos.google.cloud.storageinsights.v1.IReportDetail[] = []; - const iterable = client.listReportDetailsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); + it('invokes listDatasetConfigs without error using callback', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ListDatasetConfigsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.ListDatasetConfigsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.DatasetConfig(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.DatasetConfig(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.DatasetConfig(), + ), + ]; + client.innerApiCalls.listDatasetConfigs = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listDatasetConfigs( + request, + ( + err?: Error | null, + result?: + | protos.google.cloud.storageinsights.v1.IDatasetConfig[] + | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.descriptors.page.listReportDetails.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listReportDetails.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); - - it('uses async iteration with listReportDetails with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ListReportDetailsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.ListReportDetailsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listReportDetails.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listReportDetailsAsync(request); - await assert.rejects(async () => { - const responses: protos.google.cloud.storageinsights.v1.IReportDetail[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.descriptors.page.listReportDetails.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listReportDetails.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.listDatasetConfigs as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listDatasetConfigs as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); }); - describe('listDatasetConfigs', () => { - it('invokes listDatasetConfigs without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ListDatasetConfigsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.ListDatasetConfigsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.storageinsights.v1.DatasetConfig()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.DatasetConfig()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.DatasetConfig()), - ]; - client.innerApiCalls.listDatasetConfigs = stubSimpleCall(expectedResponse); - const [response] = await client.listDatasetConfigs(request); - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listDatasetConfigs as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listDatasetConfigs as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listDatasetConfigs without error using callback', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ListDatasetConfigsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.ListDatasetConfigsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`;const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.storageinsights.v1.DatasetConfig()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.DatasetConfig()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.DatasetConfig()), - ]; - client.innerApiCalls.listDatasetConfigs = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listDatasetConfigs( - request, - (err?: Error|null, result?: protos.google.cloud.storageinsights.v1.IDatasetConfig[]|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - const actualRequest = (client.innerApiCalls.listDatasetConfigs as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listDatasetConfigs as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); - - it('invokes listDatasetConfigs with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ListDatasetConfigsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.ListDatasetConfigsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.innerApiCalls.listDatasetConfigs = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.listDatasetConfigs(request), expectedError); - const actualRequest = (client.innerApiCalls.listDatasetConfigs as SinonStub) - .getCall(0).args[0]; - assert.deepStrictEqual(actualRequest, request); - const actualHeaderRequestParams = (client.innerApiCalls.listDatasetConfigs as SinonStub) - .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; - assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); - }); + it('invokes listDatasetConfigs with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ListDatasetConfigsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.ListDatasetConfigsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.innerApiCalls.listDatasetConfigs = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(client.listDatasetConfigs(request), expectedError); + const actualRequest = ( + client.innerApiCalls.listDatasetConfigs as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.listDatasetConfigs as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); - it('invokes listDatasetConfigsStream without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ListDatasetConfigsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.ListDatasetConfigsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.storageinsights.v1.DatasetConfig()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.DatasetConfig()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.DatasetConfig()), - ]; - client.descriptors.page.listDatasetConfigs.createStream = stubPageStreamingCall(expectedResponse); - const stream = client.listDatasetConfigsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.storageinsights.v1.DatasetConfig[] = []; - stream.on('data', (response: protos.google.cloud.storageinsights.v1.DatasetConfig) => { - 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.listDatasetConfigs.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listDatasetConfigs, request)); - assert( - (client.descriptors.page.listDatasetConfigs.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('invokes listDatasetConfigsStream without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ListDatasetConfigsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.ListDatasetConfigsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.DatasetConfig(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.DatasetConfig(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.DatasetConfig(), + ), + ]; + client.descriptors.page.listDatasetConfigs.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.listDatasetConfigsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.storageinsights.v1.DatasetConfig[] = + []; + stream.on( + 'data', + (response: protos.google.cloud.storageinsights.v1.DatasetConfig) => { + 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.listDatasetConfigs.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listDatasetConfigs, request), + ); + assert( + (client.descriptors.page.listDatasetConfigs.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('invokes listDatasetConfigsStream with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ListDatasetConfigsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.ListDatasetConfigsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listDatasetConfigs.createStream = stubPageStreamingCall(undefined, expectedError); - const stream = client.listDatasetConfigsStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.storageinsights.v1.DatasetConfig[] = []; - stream.on('data', (response: protos.google.cloud.storageinsights.v1.DatasetConfig) => { - responses.push(response); - }); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - assert((client.descriptors.page.listDatasetConfigs.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listDatasetConfigs, request)); - assert( - (client.descriptors.page.listDatasetConfigs.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('invokes listDatasetConfigsStream with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ListDatasetConfigsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.ListDatasetConfigsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listDatasetConfigs.createStream = + stubPageStreamingCall(undefined, expectedError); + const stream = client.listDatasetConfigsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.storageinsights.v1.DatasetConfig[] = + []; + stream.on( + 'data', + (response: protos.google.cloud.storageinsights.v1.DatasetConfig) => { + responses.push(response); + }, + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + assert( + (client.descriptors.page.listDatasetConfigs.createStream as SinonStub) + .getCall(0) + .calledWith(client.innerApiCalls.listDatasetConfigs, request), + ); + assert( + (client.descriptors.page.listDatasetConfigs.createStream as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('uses async iteration with listDatasetConfigs without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ListDatasetConfigsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.ListDatasetConfigsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.storageinsights.v1.DatasetConfig()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.DatasetConfig()), - generateSampleMessage(new protos.google.cloud.storageinsights.v1.DatasetConfig()), - ]; - client.descriptors.page.listDatasetConfigs.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: protos.google.cloud.storageinsights.v1.IDatasetConfig[] = []; - const iterable = client.listDatasetConfigsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.descriptors.page.listDatasetConfigs.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listDatasetConfigs.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('uses async iteration with listDatasetConfigs without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ListDatasetConfigsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.ListDatasetConfigsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.DatasetConfig(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.DatasetConfig(), + ), + generateSampleMessage( + new protos.google.cloud.storageinsights.v1.DatasetConfig(), + ), + ]; + client.descriptors.page.listDatasetConfigs.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.storageinsights.v1.IDatasetConfig[] = + []; + const iterable = client.listDatasetConfigsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.descriptors.page.listDatasetConfigs.asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + (client.descriptors.page.listDatasetConfigs.asyncIterate as SinonStub) + .getCall(0) + .args[2].otherArgs.headers[ + 'x-goog-request-params' + ].includes(expectedHeaderRequestParams), + ); + }); - it('uses async iteration with listDatasetConfigs with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new protos.google.cloud.storageinsights.v1.ListDatasetConfigsRequest() - ); - const defaultValue1 = - getTypeDefaultValue('.google.cloud.storageinsights.v1.ListDatasetConfigsRequest', ['parent']); - request.parent = defaultValue1; - const expectedHeaderRequestParams = `parent=${defaultValue1 ?? '' }`; - const expectedError = new Error('expected'); - client.descriptors.page.listDatasetConfigs.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listDatasetConfigsAsync(request); - await assert.rejects(async () => { - const responses: protos.google.cloud.storageinsights.v1.IDatasetConfig[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.descriptors.page.listDatasetConfigs.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert( - (client.descriptors.page.listDatasetConfigs.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'].includes( - expectedHeaderRequestParams - ) - ); - }); + it('uses async iteration with listDatasetConfigs with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.storageinsights.v1.ListDatasetConfigsRequest(), + ); + const defaultValue1 = getTypeDefaultValue( + '.google.cloud.storageinsights.v1.ListDatasetConfigsRequest', + ['parent'], + ); + request.parent = defaultValue1; + const expectedHeaderRequestParams = `parent=${defaultValue1 ?? ''}`; + const expectedError = new Error('expected'); + client.descriptors.page.listDatasetConfigs.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listDatasetConfigsAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.storageinsights.v1.IDatasetConfig[] = + []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.descriptors.page.listDatasetConfigs.asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + assert( + (client.descriptors.page.listDatasetConfigs.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 storageinsightsModule.v1.StorageInsightsClient({ - 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 storageinsightsModule.v1.StorageInsightsClient({ - 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 storageinsightsModule.v1.StorageInsightsClient({ - 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 storageinsightsModule.v1.StorageInsightsClient({ + 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 storageinsightsModule.v1.StorageInsightsClient({ - 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 storageinsightsModule.v1.StorageInsightsClient({ + 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 storageinsightsModule.v1.StorageInsightsClient({ - 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('getOperation', () => { - it('invokes getOperation without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.GetOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - client.operationsClient.getOperation = stubSimpleCall(expectedResponse); - const response = await client.getOperation(request); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0).calledWith(request) - ); - }); - it('invokes getOperation without error using callback', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.GetOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new operationsProtos.google.longrunning.Operation() - ); - client.operationsClient.getOperation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.operationsClient.getOperation( - request, - undefined, - ( - err?: Error | null, - result?: operationsProtos.google.longrunning.Operation | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }).catch(err => {throw err}); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); - it('invokes getOperation with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.GetOperationRequest() - ); - const expectedError = new Error('expected'); - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(async () => {await client.getOperation(request)}, expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0).calledWith(request)); - }); + it('invokes getLocation with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + 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('cancelOperation', () => { - it('invokes cancelOperation without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.CancelOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.operationsClient.cancelOperation = stubSimpleCall(expectedResponse); - const response = await client.cancelOperation(request); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.operationsClient.cancelOperation as SinonStub) - .getCall(0).calledWith(request) - ); - }); - it('invokes cancelOperation without error using callback', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.CancelOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.operationsClient.cancelOperation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.operationsClient.cancelOperation( - request, - undefined, - ( - err?: Error | null, - result?: protos.google.protobuf.Empty | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }).catch(err => {throw err}); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.operationsClient.cancelOperation as SinonStub) - .getCall(0)); - }); - it('invokes cancelOperation with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.CancelOperationRequest() - ); - const expectedError = new Error('expected'); - client.operationsClient.cancelOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(async () => {await client.cancelOperation(request)}, expectedError); - assert((client.operationsClient.cancelOperation as SinonStub) - .getCall(0).calledWith(request)); - }); + }); + describe('listLocationsAsync', () => { + it('uses async iteration with listLocations without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + 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('deleteOperation', () => { - it('invokes deleteOperation without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.DeleteOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.operationsClient.deleteOperation = stubSimpleCall(expectedResponse); - const response = await client.deleteOperation(request); - assert.deepStrictEqual(response, [expectedResponse]); - assert((client.operationsClient.deleteOperation as SinonStub) - .getCall(0).calledWith(request) - ); - }); - it('invokes deleteOperation without error using callback', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.DeleteOperationRequest() - ); - const expectedResponse = generateSampleMessage( - new protos.google.protobuf.Empty() - ); - client.operationsClient.deleteOperation = sinon.stub().callsArgWith(2, null, expectedResponse); - const promise = new Promise((resolve, reject) => { - client.operationsClient.deleteOperation( - request, - undefined, - ( - err?: Error | null, - result?: protos.google.protobuf.Empty | null - ) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }).catch(err => {throw err}); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.operationsClient.deleteOperation as SinonStub) - .getCall(0)); - }); - it('invokes deleteOperation with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.DeleteOperationRequest() - ); - const expectedError = new Error('expected'); - client.operationsClient.deleteOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(async () => {await client.deleteOperation(request)}, expectedError); - assert((client.operationsClient.deleteOperation as SinonStub) - .getCall(0).calledWith(request)); - }); + it('uses async iteration with listLocations with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + 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('listOperationsAsync', () => { - it('uses async iteration with listOperations without error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsRequest() - ); - const expectedResponse = [ - generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsResponse() - ), - generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsResponse() - ), - generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsResponse() - ), - ]; - client.operationsClient.descriptor.listOperations.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: operationsProtos.google.longrunning.IOperation[] = []; - const iterable = client.operationsClient.listOperationsAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.operationsClient.descriptor.listOperations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - }); - it('uses async iteration with listOperations with error', async () => { - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - const request = generateSampleMessage( - new operationsProtos.google.longrunning.ListOperationsRequest() - ); - const expectedError = new Error('expected'); - client.operationsClient.descriptor.listOperations.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.operationsClient.listOperationsAsync(request); - await assert.rejects(async () => { - const responses: operationsProtos.google.longrunning.IOperation[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.operationsClient.descriptor.listOperations.asyncIterate as SinonStub) - .getCall(0).args[1], request); - }); + }); + describe('getOperation', () => { + it('invokes getOperation without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.GetOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const response = await client.getOperation(request); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.operationsClient.getOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + it('invokes getOperation without error using callback', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.GetOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation(), + ); + client.operationsClient.getOperation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.operationsClient + .getOperation( + request, + undefined, + ( + err?: Error | null, + result?: operationsProtos.google.longrunning.Operation | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ) + .catch((err) => { + throw err; + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + it('invokes getOperation with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.GetOperationRequest(), + ); + const expectedError = new Error('expected'); + client.operationsClient.getOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(async () => { + await client.getOperation(request); + }, expectedError); + assert( + (client.operationsClient.getOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + }); + describe('cancelOperation', () => { + it('invokes cancelOperation without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.CancelOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.operationsClient.cancelOperation = + stubSimpleCall(expectedResponse); + const response = await client.cancelOperation(request); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.operationsClient.cancelOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + it('invokes cancelOperation without error using callback', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.CancelOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.operationsClient.cancelOperation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.operationsClient + .cancelOperation( + request, + undefined, + ( + err?: Error | null, + result?: protos.google.protobuf.Empty | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ) + .catch((err) => { + throw err; + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.operationsClient.cancelOperation as SinonStub).getCall(0)); + }); + it('invokes cancelOperation with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.CancelOperationRequest(), + ); + const expectedError = new Error('expected'); + client.operationsClient.cancelOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(async () => { + await client.cancelOperation(request); + }, expectedError); + assert( + (client.operationsClient.cancelOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + }); + describe('deleteOperation', () => { + it('invokes deleteOperation without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.DeleteOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.operationsClient.deleteOperation = + stubSimpleCall(expectedResponse); + const response = await client.deleteOperation(request); + assert.deepStrictEqual(response, [expectedResponse]); + assert( + (client.operationsClient.deleteOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + it('invokes deleteOperation without error using callback', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.DeleteOperationRequest(), + ); + const expectedResponse = generateSampleMessage( + new protos.google.protobuf.Empty(), + ); + client.operationsClient.deleteOperation = sinon + .stub() + .callsArgWith(2, null, expectedResponse); + const promise = new Promise((resolve, reject) => { + client.operationsClient + .deleteOperation( + request, + undefined, + ( + err?: Error | null, + result?: protos.google.protobuf.Empty | null, + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, + ) + .catch((err) => { + throw err; + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.operationsClient.deleteOperation as SinonStub).getCall(0)); + }); + it('invokes deleteOperation with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.DeleteOperationRequest(), + ); + const expectedError = new Error('expected'); + client.operationsClient.deleteOperation = stubSimpleCall( + undefined, + expectedError, + ); + await assert.rejects(async () => { + await client.deleteOperation(request); + }, expectedError); + assert( + (client.operationsClient.deleteOperation as SinonStub) + .getCall(0) + .calledWith(request), + ); + }); + }); + describe('listOperationsAsync', () => { + it('uses async iteration with listOperations without error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsRequest(), + ); + const expectedResponse = [ + generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsResponse(), + ), + generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsResponse(), + ), + generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsResponse(), + ), + ]; + client.operationsClient.descriptor.listOperations.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: operationsProtos.google.longrunning.IOperation[] = []; + const iterable = client.operationsClient.listOperationsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.operationsClient.descriptor.listOperations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + }); + it('uses async iteration with listOperations with error', async () => { + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new operationsProtos.google.longrunning.ListOperationsRequest(), + ); + const expectedError = new Error('expected'); + client.operationsClient.descriptor.listOperations.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.operationsClient.listOperationsAsync(request); + await assert.rejects(async () => { + const responses: operationsProtos.google.longrunning.IOperation[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.operationsClient.descriptor.listOperations + .asyncIterate as SinonStub + ).getCall(0).args[1], + request, + ); + }); + }); + + describe('Path templates', () => { + describe('datasetConfig', async () => { + const fakePath = '/rendered/path/datasetConfig'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + dataset_config: 'datasetConfigValue', + }; + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.datasetConfigPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.datasetConfigPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('datasetConfigPath', () => { + const result = client.datasetConfigPath( + 'projectValue', + 'locationValue', + 'datasetConfigValue', + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.datasetConfigPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromDatasetConfigName', () => { + const result = client.matchProjectFromDatasetConfigName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.datasetConfigPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromDatasetConfigName', () => { + const result = client.matchLocationFromDatasetConfigName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.datasetConfigPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchDatasetConfigFromDatasetConfigName', () => { + const result = client.matchDatasetConfigFromDatasetConfigName(fakePath); + assert.strictEqual(result, 'datasetConfigValue'); + assert( + (client.pathTemplates.datasetConfigPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); - describe('Path templates', () => { - - describe('datasetConfig', async () => { - const fakePath = "/rendered/path/datasetConfig"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - dataset_config: "datasetConfigValue", - }; - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.datasetConfigPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.datasetConfigPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('datasetConfigPath', () => { - const result = client.datasetConfigPath("projectValue", "locationValue", "datasetConfigValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.datasetConfigPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromDatasetConfigName', () => { - const result = client.matchProjectFromDatasetConfigName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.datasetConfigPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromDatasetConfigName', () => { - const result = client.matchLocationFromDatasetConfigName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.datasetConfigPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchDatasetConfigFromDatasetConfigName', () => { - const result = client.matchDatasetConfigFromDatasetConfigName(fakePath); - assert.strictEqual(result, "datasetConfigValue"); - assert((client.pathTemplates.datasetConfigPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); - - describe('location', async () => { - const fakePath = "/rendered/path/location"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - }; - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.locationPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.locationPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('locationPath', () => { - const result = client.locationPath("projectValue", "locationValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.locationPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromLocationName', () => { - const result = client.matchProjectFromLocationName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.locationPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromLocationName', () => { - const result = client.matchLocationFromLocationName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.locationPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + describe('location', async () => { + const fakePath = '/rendered/path/location'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + }; + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.locationPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.locationPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('locationPath', () => { + const result = client.locationPath('projectValue', 'locationValue'); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.locationPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromLocationName', () => { + const result = client.matchProjectFromLocationName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.locationPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromLocationName', () => { + const result = client.matchLocationFromLocationName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.locationPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); - describe('project', async () => { - const fakePath = "/rendered/path/project"; - const expectedParameters = { - project: "projectValue", - }; - const client = new storageinsightsModule.v1.StorageInsightsClient({ - 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 storageinsightsModule.v1.StorageInsightsClient({ + 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('reportConfig', async () => { - const fakePath = "/rendered/path/reportConfig"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - report_config: "reportConfigValue", - }; - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.reportConfigPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.reportConfigPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('reportConfigPath', () => { - const result = client.reportConfigPath("projectValue", "locationValue", "reportConfigValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.reportConfigPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromReportConfigName', () => { - const result = client.matchProjectFromReportConfigName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.reportConfigPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromReportConfigName', () => { - const result = client.matchLocationFromReportConfigName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.reportConfigPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchReportConfigFromReportConfigName', () => { - const result = client.matchReportConfigFromReportConfigName(fakePath); - assert.strictEqual(result, "reportConfigValue"); - assert((client.pathTemplates.reportConfigPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + describe('reportConfig', async () => { + const fakePath = '/rendered/path/reportConfig'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + report_config: 'reportConfigValue', + }; + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.reportConfigPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.reportConfigPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('reportConfigPath', () => { + const result = client.reportConfigPath( + 'projectValue', + 'locationValue', + 'reportConfigValue', + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.reportConfigPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromReportConfigName', () => { + const result = client.matchProjectFromReportConfigName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.reportConfigPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromReportConfigName', () => { + const result = client.matchLocationFromReportConfigName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.reportConfigPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchReportConfigFromReportConfigName', () => { + const result = client.matchReportConfigFromReportConfigName(fakePath); + assert.strictEqual(result, 'reportConfigValue'); + assert( + (client.pathTemplates.reportConfigPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + }); - describe('reportDetail', async () => { - const fakePath = "/rendered/path/reportDetail"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - report_config: "reportConfigValue", - report_detail: "reportDetailValue", - }; - const client = new storageinsightsModule.v1.StorageInsightsClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - await client.initialize(); - client.pathTemplates.reportDetailPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.reportDetailPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('reportDetailPath', () => { - const result = client.reportDetailPath("projectValue", "locationValue", "reportConfigValue", "reportDetailValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.reportDetailPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromReportDetailName', () => { - const result = client.matchProjectFromReportDetailName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.reportDetailPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromReportDetailName', () => { - const result = client.matchLocationFromReportDetailName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.reportDetailPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchReportConfigFromReportDetailName', () => { - const result = client.matchReportConfigFromReportDetailName(fakePath); - assert.strictEqual(result, "reportConfigValue"); - assert((client.pathTemplates.reportDetailPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchReportDetailFromReportDetailName', () => { - const result = client.matchReportDetailFromReportDetailName(fakePath); - assert.strictEqual(result, "reportDetailValue"); - assert((client.pathTemplates.reportDetailPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); + describe('reportDetail', async () => { + const fakePath = '/rendered/path/reportDetail'; + const expectedParameters = { + project: 'projectValue', + location: 'locationValue', + report_config: 'reportConfigValue', + report_detail: 'reportDetailValue', + }; + const client = new storageinsightsModule.v1.StorageInsightsClient({ + credentials: { client_email: 'bogus', private_key: 'bogus' }, + projectId: 'bogus', + }); + await client.initialize(); + client.pathTemplates.reportDetailPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.reportDetailPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('reportDetailPath', () => { + const result = client.reportDetailPath( + 'projectValue', + 'locationValue', + 'reportConfigValue', + 'reportDetailValue', + ); + assert.strictEqual(result, fakePath); + assert( + (client.pathTemplates.reportDetailPathTemplate.render as SinonStub) + .getCall(-1) + .calledWith(expectedParameters), + ); + }); + + it('matchProjectFromReportDetailName', () => { + const result = client.matchProjectFromReportDetailName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + (client.pathTemplates.reportDetailPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchLocationFromReportDetailName', () => { + const result = client.matchLocationFromReportDetailName(fakePath); + assert.strictEqual(result, 'locationValue'); + assert( + (client.pathTemplates.reportDetailPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchReportConfigFromReportDetailName', () => { + const result = client.matchReportConfigFromReportDetailName(fakePath); + assert.strictEqual(result, 'reportConfigValue'); + assert( + (client.pathTemplates.reportDetailPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); + + it('matchReportDetailFromReportDetailName', () => { + const result = client.matchReportDetailFromReportDetailName(fakePath); + assert.strictEqual(result, 'reportDetailValue'); + assert( + (client.pathTemplates.reportDetailPathTemplate.match as SinonStub) + .getCall(-1) + .calledWith(fakePath), + ); + }); }); + }); }); diff --git a/packages/google-cloud-storageinsights/webpack.config.js b/packages/google-cloud-storageinsights/webpack.config.js index 867cbb1b8f32..451be2839455 100644 --- a/packages/google-cloud-storageinsights/webpack.config.js +++ b/packages/google-cloud-storageinsights/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. diff --git a/packages/google-cloud-support/README.md b/packages/google-cloud-support/README.md index 049b46a9bda0..c5cd64c83ee5 100644 --- a/packages/google-cloud-support/README.md +++ b/packages/google-cloud-support/README.md @@ -71,7 +71,6 @@ Samples are in the [`samples/`][homepage_samples] directory. Each sample's `READ | create comment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-support/samples/generated/v2/comment_service.create_comment.js) | | get comment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-support/samples/generated/v2/comment_service.get_comment.js) | | list comments | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-support/samples/generated/v2/comment_service.list_comments.js) | -| cloud | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-support/samples/generated/v2/snippet_metadata_google.cloud.support.v2.json) | | get attachment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-support/samples/generated/v2beta/case_attachment_service.get_attachment.js) | | list attachments | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-support/samples/generated/v2beta/case_attachment_service.list_attachments.js) | | close case | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-support/samples/generated/v2beta/case_service.close_case.js) | @@ -86,7 +85,6 @@ Samples are in the [`samples/`][homepage_samples] directory. Each sample's `READ | get comment | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-support/samples/generated/v2beta/comment_service.get_comment.js) | | list comments | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-support/samples/generated/v2beta/comment_service.list_comments.js) | | show feed | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-support/samples/generated/v2beta/feed_service.show_feed.js) | -| cloud | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-support/samples/generated/v2beta/snippet_metadata_google.cloud.support.v2beta.json) | ## Supported Node.js Versions diff --git a/packages/google-cloud-support/protos/protos.js b/packages/google-cloud-support/protos/protos.js index 70d8490a5ead..6ed53fafa25a 100644 --- a/packages/google-cloud-support/protos/protos.js +++ b/packages/google-cloud-support/protos/protos.js @@ -89,7 +89,7 @@ function Actor(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -184,9 +184,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Actor.decode = function decode(reader, length, error) { + Actor.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.Actor(); while (reader.pos < end) { var tag = reader.uint32(); @@ -210,7 +214,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -241,9 +245,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Actor.verify = function verify(message) { + Actor.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.displayName != null && message.hasOwnProperty("displayName")) if (!$util.isString(message.displayName)) return "displayName: string expected"; @@ -267,9 +275,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.Actor} Actor */ - Actor.fromObject = function fromObject(object) { + Actor.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.Actor) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.Actor(); if (object.displayName != null) message.displayName = String(object.displayName); @@ -366,7 +378,7 @@ function Attachment(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -481,9 +493,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Attachment.decode = function decode(reader, length, error) { + Attachment.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.Attachment(); while (reader.pos < end) { var tag = reader.uint32(); @@ -495,11 +511,11 @@ break; } case 2: { - 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 3: { - message.creator = $root.google.cloud.support.v2.Actor.decode(reader, reader.uint32()); + message.creator = $root.google.cloud.support.v2.Actor.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { @@ -515,7 +531,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -546,19 +562,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Attachment.verify = function verify(message) { + Attachment.verify = function verify(message, long) { if (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.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; } if (message.creator != null && message.hasOwnProperty("creator")) { - var error = $root.google.cloud.support.v2.Actor.verify(message.creator); + var error = $root.google.cloud.support.v2.Actor.verify(message.creator, long + 1); if (error) return "creator." + error; } @@ -582,21 +602,25 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.Attachment} Attachment */ - Attachment.fromObject = function fromObject(object) { + Attachment.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.Attachment) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.Attachment(); if (object.name != null) message.name = String(object.name); if (object.createTime != null) { if (typeof object.createTime !== "object") throw TypeError(".google.cloud.support.v2.Attachment.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.creator != null) { if (typeof object.creator !== "object") throw TypeError(".google.cloud.support.v2.Attachment.creator: object expected"); - message.creator = $root.google.cloud.support.v2.Actor.fromObject(object.creator); + message.creator = $root.google.cloud.support.v2.Actor.fromObject(object.creator, long + 1); } if (object.filename != null) message.filename = String(object.filename); @@ -809,7 +833,7 @@ function ListAttachmentsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -894,9 +918,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListAttachmentsRequest.decode = function decode(reader, length, error) { + ListAttachmentsRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.ListAttachmentsRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -916,7 +944,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -947,9 +975,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListAttachmentsRequest.verify = function verify(message) { + ListAttachmentsRequest.verify = function verify(message, long) { if (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"; @@ -970,9 +1002,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.ListAttachmentsRequest} ListAttachmentsRequest */ - ListAttachmentsRequest.fromObject = function fromObject(object) { + ListAttachmentsRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.ListAttachmentsRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.ListAttachmentsRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -1059,7 +1095,7 @@ function GetAttachmentRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -1124,9 +1160,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetAttachmentRequest.decode = function decode(reader, length, error) { + GetAttachmentRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.GetAttachmentRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -1138,7 +1178,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -1169,9 +1209,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetAttachmentRequest.verify = function verify(message) { + GetAttachmentRequest.verify = function verify(message, long) { if (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"; @@ -1186,9 +1230,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.GetAttachmentRequest} GetAttachmentRequest */ - GetAttachmentRequest.fromObject = function fromObject(object) { + GetAttachmentRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.GetAttachmentRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.GetAttachmentRequest(); if (object.name != null) message.name = String(object.name); @@ -1266,7 +1314,7 @@ this.attachments = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -1342,9 +1390,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListAttachmentsResponse.decode = function decode(reader, length, error) { + ListAttachmentsResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.ListAttachmentsResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -1354,7 +1406,7 @@ case 1: { if (!(message.attachments && message.attachments.length)) message.attachments = []; - message.attachments.push($root.google.cloud.support.v2.Attachment.decode(reader, reader.uint32())); + message.attachments.push($root.google.cloud.support.v2.Attachment.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -1362,7 +1414,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -1393,14 +1445,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListAttachmentsResponse.verify = function verify(message) { + ListAttachmentsResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.attachments != null && message.hasOwnProperty("attachments")) { if (!Array.isArray(message.attachments)) return "attachments: array expected"; for (var i = 0; i < message.attachments.length; ++i) { - var error = $root.google.cloud.support.v2.Attachment.verify(message.attachments[i]); + var error = $root.google.cloud.support.v2.Attachment.verify(message.attachments[i], long + 1); if (error) return "attachments." + error; } @@ -1419,9 +1475,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.ListAttachmentsResponse} ListAttachmentsResponse */ - ListAttachmentsResponse.fromObject = function fromObject(object) { + ListAttachmentsResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.ListAttachmentsResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.ListAttachmentsResponse(); if (object.attachments) { if (!Array.isArray(object.attachments)) @@ -1430,7 +1490,7 @@ for (var i = 0; i < object.attachments.length; ++i) { if (typeof object.attachments[i] !== "object") throw TypeError(".google.cloud.support.v2.ListAttachmentsResponse.attachments: object expected"); - message.attachments[i] = $root.google.cloud.support.v2.Attachment.fromObject(object.attachments[i]); + message.attachments[i] = $root.google.cloud.support.v2.Attachment.fromObject(object.attachments[i], long + 1); } } if (object.nextPageToken != null) @@ -1529,7 +1589,7 @@ this.subscriberEmailAddresses = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -1735,9 +1795,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Case.decode = function decode(reader, length, error) { + Case.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.Case(); while (reader.pos < end) { var tag = reader.uint32(); @@ -1757,7 +1821,7 @@ break; } case 4: { - message.classification = $root.google.cloud.support.v2.CaseClassification.decode(reader, reader.uint32()); + message.classification = $root.google.cloud.support.v2.CaseClassification.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { @@ -1775,15 +1839,15 @@ break; } case 13: { - 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 14: { - message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 15: { - message.creator = $root.google.cloud.support.v2.Actor.decode(reader, reader.uint32()); + message.creator = $root.google.cloud.support.v2.Actor.decode(reader, reader.uint32(), undefined, long + 1); break; } case 35: { @@ -1807,7 +1871,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -1838,9 +1902,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Case.verify = function verify(message) { + Case.verify = function verify(message, long) { if (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"; @@ -1851,7 +1919,7 @@ if (!$util.isString(message.description)) return "description: string expected"; if (message.classification != null && message.hasOwnProperty("classification")) { - var error = $root.google.cloud.support.v2.CaseClassification.verify(message.classification); + var error = $root.google.cloud.support.v2.CaseClassification.verify(message.classification, long + 1); if (error) return "classification." + error; } @@ -1878,17 +1946,17 @@ break; } 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; } if (message.updateTime != null && message.hasOwnProperty("updateTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.updateTime); + var error = $root.google.protobuf.Timestamp.verify(message.updateTime, long + 1); if (error) return "updateTime." + error; } if (message.creator != null && message.hasOwnProperty("creator")) { - var error = $root.google.cloud.support.v2.Actor.verify(message.creator); + var error = $root.google.cloud.support.v2.Actor.verify(message.creator, long + 1); if (error) return "creator." + error; } @@ -1927,9 +1995,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.Case} Case */ - Case.fromObject = function fromObject(object) { + Case.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.Case) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.Case(); if (object.name != null) message.name = String(object.name); @@ -1940,7 +2012,7 @@ if (object.classification != null) { if (typeof object.classification !== "object") throw TypeError(".google.cloud.support.v2.Case.classification: object expected"); - message.classification = $root.google.cloud.support.v2.CaseClassification.fromObject(object.classification); + message.classification = $root.google.cloud.support.v2.CaseClassification.fromObject(object.classification, long + 1); } if (object.timeZone != null) message.timeZone = String(object.timeZone); @@ -1986,17 +2058,17 @@ if (object.createTime != null) { if (typeof object.createTime !== "object") throw TypeError(".google.cloud.support.v2.Case.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.updateTime != null) { if (typeof object.updateTime !== "object") throw TypeError(".google.cloud.support.v2.Case.updateTime: object expected"); - message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime); + message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime, long + 1); } if (object.creator != null) { if (typeof object.creator !== "object") throw TypeError(".google.cloud.support.v2.Case.creator: object expected"); - message.creator = $root.google.cloud.support.v2.Actor.fromObject(object.creator); + message.creator = $root.google.cloud.support.v2.Actor.fromObject(object.creator, long + 1); } if (object.contactEmail != null) message.contactEmail = String(object.contactEmail); @@ -2202,7 +2274,7 @@ function CaseClassification(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -2277,9 +2349,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CaseClassification.decode = function decode(reader, length, error) { + CaseClassification.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.CaseClassification(); while (reader.pos < end) { var tag = reader.uint32(); @@ -2295,7 +2371,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -2326,9 +2402,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CaseClassification.verify = function verify(message) { + CaseClassification.verify = function verify(message, long) { if (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.isString(message.id)) return "id: string expected"; @@ -2346,9 +2426,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.CaseClassification} CaseClassification */ - CaseClassification.fromObject = function fromObject(object) { + CaseClassification.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.CaseClassification) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.CaseClassification(); if (object.id != null) message.id = String(object.id); @@ -2729,7 +2813,7 @@ function GetCaseRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -2794,9 +2878,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetCaseRequest.decode = function decode(reader, length, error) { + GetCaseRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.GetCaseRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -2808,7 +2896,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -2839,9 +2927,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetCaseRequest.verify = function verify(message) { + GetCaseRequest.verify = function verify(message, long) { if (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"; @@ -2856,9 +2948,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.GetCaseRequest} GetCaseRequest */ - GetCaseRequest.fromObject = function fromObject(object) { + GetCaseRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.GetCaseRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.GetCaseRequest(); if (object.name != null) message.name = String(object.name); @@ -2935,7 +3031,7 @@ function CreateCaseRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -3010,9 +3106,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CreateCaseRequest.decode = function decode(reader, length, error) { + CreateCaseRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.CreateCaseRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -3024,11 +3124,11 @@ break; } case 2: { - message["case"] = $root.google.cloud.support.v2.Case.decode(reader, reader.uint32()); + message["case"] = $root.google.cloud.support.v2.Case.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -3059,14 +3159,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CreateCaseRequest.verify = function verify(message) { + CreateCaseRequest.verify = function verify(message, long) { if (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["case"] != null && message.hasOwnProperty("case")) { - var error = $root.google.cloud.support.v2.Case.verify(message["case"]); + var error = $root.google.cloud.support.v2.Case.verify(message["case"], long + 1); if (error) return "case." + error; } @@ -3081,16 +3185,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.CreateCaseRequest} CreateCaseRequest */ - CreateCaseRequest.fromObject = function fromObject(object) { + CreateCaseRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.CreateCaseRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.CreateCaseRequest(); if (object.parent != null) message.parent = String(object.parent); if (object["case"] != null) { if (typeof object["case"] !== "object") throw TypeError(".google.cloud.support.v2.CreateCaseRequest.case: object expected"); - message["case"] = $root.google.cloud.support.v2.Case.fromObject(object["case"]); + message["case"] = $root.google.cloud.support.v2.Case.fromObject(object["case"], long + 1); } return message; }; @@ -3171,7 +3279,7 @@ function ListCasesRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -3266,9 +3374,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListCasesRequest.decode = function decode(reader, length, error) { + ListCasesRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.ListCasesRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -3292,7 +3404,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -3323,9 +3435,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListCasesRequest.verify = function verify(message) { + ListCasesRequest.verify = function verify(message, long) { if (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"; @@ -3349,9 +3465,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.ListCasesRequest} ListCasesRequest */ - ListCasesRequest.fromObject = function fromObject(object) { + ListCasesRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.ListCasesRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.ListCasesRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -3445,7 +3565,7 @@ this.cases = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -3521,9 +3641,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListCasesResponse.decode = function decode(reader, length, error) { + ListCasesResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.ListCasesResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -3533,7 +3657,7 @@ case 1: { if (!(message.cases && message.cases.length)) message.cases = []; - message.cases.push($root.google.cloud.support.v2.Case.decode(reader, reader.uint32())); + message.cases.push($root.google.cloud.support.v2.Case.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -3541,7 +3665,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -3572,14 +3696,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListCasesResponse.verify = function verify(message) { + ListCasesResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.cases != null && message.hasOwnProperty("cases")) { if (!Array.isArray(message.cases)) return "cases: array expected"; for (var i = 0; i < message.cases.length; ++i) { - var error = $root.google.cloud.support.v2.Case.verify(message.cases[i]); + var error = $root.google.cloud.support.v2.Case.verify(message.cases[i], long + 1); if (error) return "cases." + error; } @@ -3598,9 +3726,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.ListCasesResponse} ListCasesResponse */ - ListCasesResponse.fromObject = function fromObject(object) { + ListCasesResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.ListCasesResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.ListCasesResponse(); if (object.cases) { if (!Array.isArray(object.cases)) @@ -3609,7 +3741,7 @@ for (var i = 0; i < object.cases.length; ++i) { if (typeof object.cases[i] !== "object") throw TypeError(".google.cloud.support.v2.ListCasesResponse.cases: object expected"); - message.cases[i] = $root.google.cloud.support.v2.Case.fromObject(object.cases[i]); + message.cases[i] = $root.google.cloud.support.v2.Case.fromObject(object.cases[i], long + 1); } } if (object.nextPageToken != null) @@ -3696,7 +3828,7 @@ function SearchCasesRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -3791,9 +3923,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SearchCasesRequest.decode = function decode(reader, length, error) { + SearchCasesRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.SearchCasesRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -3817,7 +3953,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -3848,9 +3984,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SearchCasesRequest.verify = function verify(message) { + SearchCasesRequest.verify = function verify(message, long) { if (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"; @@ -3874,9 +4014,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.SearchCasesRequest} SearchCasesRequest */ - SearchCasesRequest.fromObject = function fromObject(object) { + SearchCasesRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.SearchCasesRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.SearchCasesRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -3970,7 +4114,7 @@ this.cases = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -4046,9 +4190,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SearchCasesResponse.decode = function decode(reader, length, error) { + SearchCasesResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.SearchCasesResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -4058,7 +4206,7 @@ case 1: { if (!(message.cases && message.cases.length)) message.cases = []; - message.cases.push($root.google.cloud.support.v2.Case.decode(reader, reader.uint32())); + message.cases.push($root.google.cloud.support.v2.Case.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -4066,7 +4214,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -4097,14 +4245,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SearchCasesResponse.verify = function verify(message) { + SearchCasesResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.cases != null && message.hasOwnProperty("cases")) { if (!Array.isArray(message.cases)) return "cases: array expected"; for (var i = 0; i < message.cases.length; ++i) { - var error = $root.google.cloud.support.v2.Case.verify(message.cases[i]); + var error = $root.google.cloud.support.v2.Case.verify(message.cases[i], long + 1); if (error) return "cases." + error; } @@ -4123,9 +4275,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.SearchCasesResponse} SearchCasesResponse */ - SearchCasesResponse.fromObject = function fromObject(object) { + SearchCasesResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.SearchCasesResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.SearchCasesResponse(); if (object.cases) { if (!Array.isArray(object.cases)) @@ -4134,7 +4290,7 @@ for (var i = 0; i < object.cases.length; ++i) { if (typeof object.cases[i] !== "object") throw TypeError(".google.cloud.support.v2.SearchCasesResponse.cases: object expected"); - message.cases[i] = $root.google.cloud.support.v2.Case.fromObject(object.cases[i]); + message.cases[i] = $root.google.cloud.support.v2.Case.fromObject(object.cases[i], long + 1); } } if (object.nextPageToken != null) @@ -4219,7 +4375,7 @@ function EscalateCaseRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -4294,9 +4450,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EscalateCaseRequest.decode = function decode(reader, length, error) { + EscalateCaseRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.EscalateCaseRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -4308,11 +4468,11 @@ break; } case 2: { - message.escalation = $root.google.cloud.support.v2.Escalation.decode(reader, reader.uint32()); + message.escalation = $root.google.cloud.support.v2.Escalation.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -4343,14 +4503,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - EscalateCaseRequest.verify = function verify(message) { + EscalateCaseRequest.verify = function verify(message, long) { if (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.escalation != null && message.hasOwnProperty("escalation")) { - var error = $root.google.cloud.support.v2.Escalation.verify(message.escalation); + var error = $root.google.cloud.support.v2.Escalation.verify(message.escalation, long + 1); if (error) return "escalation." + error; } @@ -4365,16 +4529,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.EscalateCaseRequest} EscalateCaseRequest */ - EscalateCaseRequest.fromObject = function fromObject(object) { + EscalateCaseRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.EscalateCaseRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.EscalateCaseRequest(); if (object.name != null) message.name = String(object.name); if (object.escalation != null) { if (typeof object.escalation !== "object") throw TypeError(".google.cloud.support.v2.EscalateCaseRequest.escalation: object expected"); - message.escalation = $root.google.cloud.support.v2.Escalation.fromObject(object.escalation); + message.escalation = $root.google.cloud.support.v2.Escalation.fromObject(object.escalation, long + 1); } return message; }; @@ -4453,7 +4621,7 @@ function UpdateCaseRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -4528,9 +4696,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UpdateCaseRequest.decode = function decode(reader, length, error) { + UpdateCaseRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.UpdateCaseRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -4538,15 +4710,15 @@ break; switch (tag >>> 3) { case 1: { - message["case"] = $root.google.cloud.support.v2.Case.decode(reader, reader.uint32()); + message["case"] = $root.google.cloud.support.v2.Case.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; } } @@ -4577,16 +4749,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UpdateCaseRequest.verify = function verify(message) { + UpdateCaseRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message["case"] != null && message.hasOwnProperty("case")) { - var error = $root.google.cloud.support.v2.Case.verify(message["case"]); + var error = $root.google.cloud.support.v2.Case.verify(message["case"], long + 1); if (error) return "case." + 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; } @@ -4601,19 +4777,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.UpdateCaseRequest} UpdateCaseRequest */ - UpdateCaseRequest.fromObject = function fromObject(object) { + UpdateCaseRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.UpdateCaseRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.UpdateCaseRequest(); if (object["case"] != null) { if (typeof object["case"] !== "object") throw TypeError(".google.cloud.support.v2.UpdateCaseRequest.case: object expected"); - message["case"] = $root.google.cloud.support.v2.Case.fromObject(object["case"]); + message["case"] = $root.google.cloud.support.v2.Case.fromObject(object["case"], long + 1); } if (object.updateMask != null) { if (typeof object.updateMask !== "object") throw TypeError(".google.cloud.support.v2.UpdateCaseRequest.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; }; @@ -4691,7 +4871,7 @@ function CloseCaseRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -4756,9 +4936,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CloseCaseRequest.decode = function decode(reader, length, error) { + CloseCaseRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.CloseCaseRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -4770,7 +4954,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -4801,9 +4985,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CloseCaseRequest.verify = function verify(message) { + CloseCaseRequest.verify = function verify(message, long) { if (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"; @@ -4818,9 +5006,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.CloseCaseRequest} CloseCaseRequest */ - CloseCaseRequest.fromObject = function fromObject(object) { + CloseCaseRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.CloseCaseRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.CloseCaseRequest(); if (object.name != null) message.name = String(object.name); @@ -4898,7 +5090,7 @@ function SearchCaseClassificationsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -4983,9 +5175,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SearchCaseClassificationsRequest.decode = function decode(reader, length, error) { + SearchCaseClassificationsRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.SearchCaseClassificationsRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -5005,7 +5201,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -5036,9 +5232,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SearchCaseClassificationsRequest.verify = function verify(message) { + SearchCaseClassificationsRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.query != null && message.hasOwnProperty("query")) if (!$util.isString(message.query)) return "query: string expected"; @@ -5059,9 +5259,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.SearchCaseClassificationsRequest} SearchCaseClassificationsRequest */ - SearchCaseClassificationsRequest.fromObject = function fromObject(object) { + SearchCaseClassificationsRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.SearchCaseClassificationsRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.SearchCaseClassificationsRequest(); if (object.query != null) message.query = String(object.query); @@ -5150,7 +5354,7 @@ this.caseClassifications = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -5226,9 +5430,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SearchCaseClassificationsResponse.decode = function decode(reader, length, error) { + SearchCaseClassificationsResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.SearchCaseClassificationsResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -5238,7 +5446,7 @@ case 1: { if (!(message.caseClassifications && message.caseClassifications.length)) message.caseClassifications = []; - message.caseClassifications.push($root.google.cloud.support.v2.CaseClassification.decode(reader, reader.uint32())); + message.caseClassifications.push($root.google.cloud.support.v2.CaseClassification.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -5246,7 +5454,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -5277,14 +5485,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SearchCaseClassificationsResponse.verify = function verify(message) { + SearchCaseClassificationsResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.caseClassifications != null && message.hasOwnProperty("caseClassifications")) { if (!Array.isArray(message.caseClassifications)) return "caseClassifications: array expected"; for (var i = 0; i < message.caseClassifications.length; ++i) { - var error = $root.google.cloud.support.v2.CaseClassification.verify(message.caseClassifications[i]); + var error = $root.google.cloud.support.v2.CaseClassification.verify(message.caseClassifications[i], long + 1); if (error) return "caseClassifications." + error; } @@ -5303,9 +5515,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.SearchCaseClassificationsResponse} SearchCaseClassificationsResponse */ - SearchCaseClassificationsResponse.fromObject = function fromObject(object) { + SearchCaseClassificationsResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.SearchCaseClassificationsResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.SearchCaseClassificationsResponse(); if (object.caseClassifications) { if (!Array.isArray(object.caseClassifications)) @@ -5314,7 +5530,7 @@ for (var i = 0; i < object.caseClassifications.length; ++i) { if (typeof object.caseClassifications[i] !== "object") throw TypeError(".google.cloud.support.v2.SearchCaseClassificationsResponse.caseClassifications: object expected"); - message.caseClassifications[i] = $root.google.cloud.support.v2.CaseClassification.fromObject(object.caseClassifications[i]); + message.caseClassifications[i] = $root.google.cloud.support.v2.CaseClassification.fromObject(object.caseClassifications[i], long + 1); } } if (object.nextPageToken != null) @@ -5399,7 +5615,7 @@ function Escalation(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -5474,9 +5690,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Escalation.decode = function decode(reader, length, error) { + Escalation.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.Escalation(); while (reader.pos < end) { var tag = reader.uint32(); @@ -5492,7 +5712,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -5523,9 +5743,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Escalation.verify = function verify(message) { + Escalation.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.reason != null && message.hasOwnProperty("reason")) switch (message.reason) { default: @@ -5550,9 +5774,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.Escalation} Escalation */ - Escalation.fromObject = function fromObject(object) { + Escalation.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.Escalation) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.Escalation(); switch (object.reason) { default: @@ -5678,7 +5906,7 @@ function Comment(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -5783,9 +6011,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Comment.decode = function decode(reader, length, error) { + Comment.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.Comment(); while (reader.pos < end) { var tag = reader.uint32(); @@ -5797,11 +6029,11 @@ break; } case 2: { - 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 3: { - message.creator = $root.google.cloud.support.v2.Actor.decode(reader, reader.uint32()); + message.creator = $root.google.cloud.support.v2.Actor.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { @@ -5813,7 +6045,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -5844,19 +6076,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Comment.verify = function verify(message) { + Comment.verify = function verify(message, long) { if (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.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; } if (message.creator != null && message.hasOwnProperty("creator")) { - var error = $root.google.cloud.support.v2.Actor.verify(message.creator); + var error = $root.google.cloud.support.v2.Actor.verify(message.creator, long + 1); if (error) return "creator." + error; } @@ -5877,21 +6113,25 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.Comment} Comment */ - Comment.fromObject = function fromObject(object) { + Comment.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.Comment) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.Comment(); if (object.name != null) message.name = String(object.name); if (object.createTime != null) { if (typeof object.createTime !== "object") throw TypeError(".google.cloud.support.v2.Comment.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.creator != null) { if (typeof object.creator !== "object") throw TypeError(".google.cloud.support.v2.Comment.creator: object expected"); - message.creator = $root.google.cloud.support.v2.Actor.fromObject(object.creator); + message.creator = $root.google.cloud.support.v2.Actor.fromObject(object.creator, long + 1); } if (object.body != null) message.body = String(object.body); @@ -6118,7 +6358,7 @@ function ListCommentsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -6203,9 +6443,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListCommentsRequest.decode = function decode(reader, length, error) { + ListCommentsRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.ListCommentsRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -6225,7 +6469,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -6256,9 +6500,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListCommentsRequest.verify = function verify(message) { + ListCommentsRequest.verify = function verify(message, long) { if (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"; @@ -6279,9 +6527,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.ListCommentsRequest} ListCommentsRequest */ - ListCommentsRequest.fromObject = function fromObject(object) { + ListCommentsRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.ListCommentsRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.ListCommentsRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -6370,7 +6622,7 @@ this.comments = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -6446,9 +6698,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListCommentsResponse.decode = function decode(reader, length, error) { + ListCommentsResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.ListCommentsResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -6458,7 +6714,7 @@ case 1: { if (!(message.comments && message.comments.length)) message.comments = []; - message.comments.push($root.google.cloud.support.v2.Comment.decode(reader, reader.uint32())); + message.comments.push($root.google.cloud.support.v2.Comment.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -6466,7 +6722,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -6497,14 +6753,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListCommentsResponse.verify = function verify(message) { + ListCommentsResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.comments != null && message.hasOwnProperty("comments")) { if (!Array.isArray(message.comments)) return "comments: array expected"; for (var i = 0; i < message.comments.length; ++i) { - var error = $root.google.cloud.support.v2.Comment.verify(message.comments[i]); + var error = $root.google.cloud.support.v2.Comment.verify(message.comments[i], long + 1); if (error) return "comments." + error; } @@ -6523,9 +6783,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.ListCommentsResponse} ListCommentsResponse */ - ListCommentsResponse.fromObject = function fromObject(object) { + ListCommentsResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.ListCommentsResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.ListCommentsResponse(); if (object.comments) { if (!Array.isArray(object.comments)) @@ -6534,7 +6798,7 @@ for (var i = 0; i < object.comments.length; ++i) { if (typeof object.comments[i] !== "object") throw TypeError(".google.cloud.support.v2.ListCommentsResponse.comments: object expected"); - message.comments[i] = $root.google.cloud.support.v2.Comment.fromObject(object.comments[i]); + message.comments[i] = $root.google.cloud.support.v2.Comment.fromObject(object.comments[i], long + 1); } } if (object.nextPageToken != null) @@ -6619,7 +6883,7 @@ function CreateCommentRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -6694,9 +6958,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CreateCommentRequest.decode = function decode(reader, length, error) { + CreateCommentRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.CreateCommentRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -6708,11 +6976,11 @@ break; } case 2: { - message.comment = $root.google.cloud.support.v2.Comment.decode(reader, reader.uint32()); + message.comment = $root.google.cloud.support.v2.Comment.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -6743,14 +7011,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CreateCommentRequest.verify = function verify(message) { + CreateCommentRequest.verify = function verify(message, long) { if (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.comment != null && message.hasOwnProperty("comment")) { - var error = $root.google.cloud.support.v2.Comment.verify(message.comment); + var error = $root.google.cloud.support.v2.Comment.verify(message.comment, long + 1); if (error) return "comment." + error; } @@ -6765,16 +7037,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.CreateCommentRequest} CreateCommentRequest */ - CreateCommentRequest.fromObject = function fromObject(object) { + CreateCommentRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.CreateCommentRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.CreateCommentRequest(); if (object.parent != null) message.parent = String(object.parent); if (object.comment != null) { if (typeof object.comment !== "object") throw TypeError(".google.cloud.support.v2.CreateCommentRequest.comment: object expected"); - message.comment = $root.google.cloud.support.v2.Comment.fromObject(object.comment); + message.comment = $root.google.cloud.support.v2.Comment.fromObject(object.comment, long + 1); } return message; }; @@ -6852,7 +7128,7 @@ function GetCommentRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -6917,9 +7193,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetCommentRequest.decode = function decode(reader, length, error) { + GetCommentRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2.GetCommentRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -6931,7 +7211,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -6962,9 +7242,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetCommentRequest.verify = function verify(message) { + GetCommentRequest.verify = function verify(message, long) { if (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"; @@ -6979,9 +7263,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2.GetCommentRequest} GetCommentRequest */ - GetCommentRequest.fromObject = function fromObject(object) { + GetCommentRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2.GetCommentRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2.GetCommentRequest(); if (object.name != null) message.name = String(object.name); @@ -7072,7 +7360,7 @@ function Actor(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -7167,9 +7455,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Actor.decode = function decode(reader, length, error) { + Actor.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.Actor(); while (reader.pos < end) { var tag = reader.uint32(); @@ -7193,7 +7485,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -7224,9 +7516,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Actor.verify = function verify(message) { + Actor.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.displayName != null && message.hasOwnProperty("displayName")) if (!$util.isString(message.displayName)) return "displayName: string expected"; @@ -7250,9 +7546,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.Actor} Actor */ - Actor.fromObject = function fromObject(object) { + Actor.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.Actor) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.Actor(); if (object.displayName != null) message.displayName = String(object.displayName); @@ -7349,7 +7649,7 @@ function Attachment(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -7464,9 +7764,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Attachment.decode = function decode(reader, length, error) { + Attachment.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.Attachment(); while (reader.pos < end) { var tag = reader.uint32(); @@ -7478,11 +7782,11 @@ break; } case 2: { - 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 3: { - message.creator = $root.google.cloud.support.v2beta.Actor.decode(reader, reader.uint32()); + message.creator = $root.google.cloud.support.v2beta.Actor.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { @@ -7498,7 +7802,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -7529,19 +7833,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Attachment.verify = function verify(message) { + Attachment.verify = function verify(message, long) { if (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.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; } if (message.creator != null && message.hasOwnProperty("creator")) { - var error = $root.google.cloud.support.v2beta.Actor.verify(message.creator); + var error = $root.google.cloud.support.v2beta.Actor.verify(message.creator, long + 1); if (error) return "creator." + error; } @@ -7565,21 +7873,25 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.Attachment} Attachment */ - Attachment.fromObject = function fromObject(object) { + Attachment.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.Attachment) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.Attachment(); if (object.name != null) message.name = String(object.name); if (object.createTime != null) { if (typeof object.createTime !== "object") throw TypeError(".google.cloud.support.v2beta.Attachment.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.creator != null) { if (typeof object.creator !== "object") throw TypeError(".google.cloud.support.v2beta.Attachment.creator: object expected"); - message.creator = $root.google.cloud.support.v2beta.Actor.fromObject(object.creator); + message.creator = $root.google.cloud.support.v2beta.Actor.fromObject(object.creator, long + 1); } if (object.filename != null) message.filename = String(object.filename); @@ -7792,7 +8104,7 @@ function ListAttachmentsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -7877,9 +8189,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListAttachmentsRequest.decode = function decode(reader, length, error) { + ListAttachmentsRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.ListAttachmentsRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -7899,7 +8215,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -7930,9 +8246,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListAttachmentsRequest.verify = function verify(message) { + ListAttachmentsRequest.verify = function verify(message, long) { if (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"; @@ -7953,9 +8273,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.ListAttachmentsRequest} ListAttachmentsRequest */ - ListAttachmentsRequest.fromObject = function fromObject(object) { + ListAttachmentsRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.ListAttachmentsRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.ListAttachmentsRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -8042,7 +8366,7 @@ function GetAttachmentRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -8107,9 +8431,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetAttachmentRequest.decode = function decode(reader, length, error) { + GetAttachmentRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.GetAttachmentRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -8121,7 +8449,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -8152,9 +8480,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetAttachmentRequest.verify = function verify(message) { + GetAttachmentRequest.verify = function verify(message, long) { if (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"; @@ -8169,9 +8501,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.GetAttachmentRequest} GetAttachmentRequest */ - GetAttachmentRequest.fromObject = function fromObject(object) { + GetAttachmentRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.GetAttachmentRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.GetAttachmentRequest(); if (object.name != null) message.name = String(object.name); @@ -8249,7 +8585,7 @@ this.attachments = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -8325,9 +8661,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListAttachmentsResponse.decode = function decode(reader, length, error) { + ListAttachmentsResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.ListAttachmentsResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -8337,7 +8677,7 @@ case 1: { if (!(message.attachments && message.attachments.length)) message.attachments = []; - message.attachments.push($root.google.cloud.support.v2beta.Attachment.decode(reader, reader.uint32())); + message.attachments.push($root.google.cloud.support.v2beta.Attachment.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -8345,7 +8685,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -8376,14 +8716,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListAttachmentsResponse.verify = function verify(message) { + ListAttachmentsResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.attachments != null && message.hasOwnProperty("attachments")) { if (!Array.isArray(message.attachments)) return "attachments: array expected"; for (var i = 0; i < message.attachments.length; ++i) { - var error = $root.google.cloud.support.v2beta.Attachment.verify(message.attachments[i]); + var error = $root.google.cloud.support.v2beta.Attachment.verify(message.attachments[i], long + 1); if (error) return "attachments." + error; } @@ -8402,9 +8746,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.ListAttachmentsResponse} ListAttachmentsResponse */ - ListAttachmentsResponse.fromObject = function fromObject(object) { + ListAttachmentsResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.ListAttachmentsResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.ListAttachmentsResponse(); if (object.attachments) { if (!Array.isArray(object.attachments)) @@ -8413,7 +8761,7 @@ for (var i = 0; i < object.attachments.length; ++i) { if (typeof object.attachments[i] !== "object") throw TypeError(".google.cloud.support.v2beta.ListAttachmentsResponse.attachments: object expected"); - message.attachments[i] = $root.google.cloud.support.v2beta.Attachment.fromObject(object.attachments[i]); + message.attachments[i] = $root.google.cloud.support.v2beta.Attachment.fromObject(object.attachments[i], long + 1); } } if (object.nextPageToken != null) @@ -8528,7 +8876,7 @@ this.subscriberEmailAddresses = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -8734,9 +9082,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Case.decode = function decode(reader, length, error) { + Case.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.Case(); while (reader.pos < end) { var tag = reader.uint32(); @@ -8756,7 +9108,7 @@ break; } case 4: { - message.classification = $root.google.cloud.support.v2beta.CaseClassification.decode(reader, reader.uint32()); + message.classification = $root.google.cloud.support.v2beta.CaseClassification.decode(reader, reader.uint32(), undefined, long + 1); break; } case 8: { @@ -8774,15 +9126,15 @@ break; } case 13: { - 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 14: { - message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } case 15: { - message.creator = $root.google.cloud.support.v2beta.Actor.decode(reader, reader.uint32()); + message.creator = $root.google.cloud.support.v2beta.Actor.decode(reader, reader.uint32(), undefined, long + 1); break; } case 35: { @@ -8806,7 +9158,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -8837,9 +9189,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Case.verify = function verify(message) { + Case.verify = function verify(message, long) { if (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"; @@ -8850,7 +9206,7 @@ if (!$util.isString(message.description)) return "description: string expected"; if (message.classification != null && message.hasOwnProperty("classification")) { - var error = $root.google.cloud.support.v2beta.CaseClassification.verify(message.classification); + var error = $root.google.cloud.support.v2beta.CaseClassification.verify(message.classification, long + 1); if (error) return "classification." + error; } @@ -8877,17 +9233,17 @@ break; } 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; } if (message.updateTime != null && message.hasOwnProperty("updateTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.updateTime); + var error = $root.google.protobuf.Timestamp.verify(message.updateTime, long + 1); if (error) return "updateTime." + error; } if (message.creator != null && message.hasOwnProperty("creator")) { - var error = $root.google.cloud.support.v2beta.Actor.verify(message.creator); + var error = $root.google.cloud.support.v2beta.Actor.verify(message.creator, long + 1); if (error) return "creator." + error; } @@ -8926,9 +9282,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.Case} Case */ - Case.fromObject = function fromObject(object) { + Case.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.Case) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.Case(); if (object.name != null) message.name = String(object.name); @@ -8939,7 +9299,7 @@ if (object.classification != null) { if (typeof object.classification !== "object") throw TypeError(".google.cloud.support.v2beta.Case.classification: object expected"); - message.classification = $root.google.cloud.support.v2beta.CaseClassification.fromObject(object.classification); + message.classification = $root.google.cloud.support.v2beta.CaseClassification.fromObject(object.classification, long + 1); } if (object.timeZone != null) message.timeZone = String(object.timeZone); @@ -8985,17 +9345,17 @@ if (object.createTime != null) { if (typeof object.createTime !== "object") throw TypeError(".google.cloud.support.v2beta.Case.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.updateTime != null) { if (typeof object.updateTime !== "object") throw TypeError(".google.cloud.support.v2beta.Case.updateTime: object expected"); - message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime); + message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime, long + 1); } if (object.creator != null) { if (typeof object.creator !== "object") throw TypeError(".google.cloud.support.v2beta.Case.creator: object expected"); - message.creator = $root.google.cloud.support.v2beta.Actor.fromObject(object.creator); + message.creator = $root.google.cloud.support.v2beta.Actor.fromObject(object.creator, long + 1); } if (object.contactEmail != null) message.contactEmail = String(object.contactEmail); @@ -9202,7 +9562,7 @@ function CaseClassification(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -9287,9 +9647,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CaseClassification.decode = function decode(reader, length, error) { + CaseClassification.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.CaseClassification(); while (reader.pos < end) { var tag = reader.uint32(); @@ -9305,11 +9669,11 @@ break; } case 10: { - message.product = $root.google.cloud.support.v2beta.Product.decode(reader, reader.uint32()); + message.product = $root.google.cloud.support.v2beta.Product.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -9340,9 +9704,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CaseClassification.verify = function verify(message) { + CaseClassification.verify = function verify(message, long) { if (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.isString(message.id)) return "id: string expected"; @@ -9350,7 +9718,7 @@ if (!$util.isString(message.displayName)) return "displayName: string expected"; if (message.product != null && message.hasOwnProperty("product")) { - var error = $root.google.cloud.support.v2beta.Product.verify(message.product); + var error = $root.google.cloud.support.v2beta.Product.verify(message.product, long + 1); if (error) return "product." + error; } @@ -9365,9 +9733,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.CaseClassification} CaseClassification */ - CaseClassification.fromObject = function fromObject(object) { + CaseClassification.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.CaseClassification) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.CaseClassification(); if (object.id != null) message.id = String(object.id); @@ -9376,7 +9748,7 @@ if (object.product != null) { if (typeof object.product !== "object") throw TypeError(".google.cloud.support.v2beta.CaseClassification.product: object expected"); - message.product = $root.google.cloud.support.v2beta.Product.fromObject(object.product); + message.product = $root.google.cloud.support.v2beta.Product.fromObject(object.product, long + 1); } return message; }; @@ -9457,7 +9829,7 @@ function Product(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -9522,9 +9894,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Product.decode = function decode(reader, length, error) { + Product.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.Product(); while (reader.pos < end) { var tag = reader.uint32(); @@ -9536,7 +9912,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -9567,9 +9943,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Product.verify = function verify(message) { + Product.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.productLine != null && message.hasOwnProperty("productLine")) switch (message.productLine) { default: @@ -9590,9 +9970,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.Product} Product */ - Product.fromObject = function fromObject(object) { + Product.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.Product) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.Product(); switch (object.productLine) { default: @@ -9985,7 +10369,7 @@ function GetCaseRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -10050,9 +10434,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetCaseRequest.decode = function decode(reader, length, error) { + GetCaseRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.GetCaseRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -10064,7 +10452,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -10095,9 +10483,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetCaseRequest.verify = function verify(message) { + GetCaseRequest.verify = function verify(message, long) { if (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"; @@ -10112,9 +10504,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.GetCaseRequest} GetCaseRequest */ - GetCaseRequest.fromObject = function fromObject(object) { + GetCaseRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.GetCaseRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.GetCaseRequest(); if (object.name != null) message.name = String(object.name); @@ -10191,7 +10587,7 @@ function CreateCaseRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -10266,9 +10662,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CreateCaseRequest.decode = function decode(reader, length, error) { + CreateCaseRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.CreateCaseRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -10280,11 +10680,11 @@ break; } case 2: { - message["case"] = $root.google.cloud.support.v2beta.Case.decode(reader, reader.uint32()); + message["case"] = $root.google.cloud.support.v2beta.Case.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -10315,14 +10715,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CreateCaseRequest.verify = function verify(message) { + CreateCaseRequest.verify = function verify(message, long) { if (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["case"] != null && message.hasOwnProperty("case")) { - var error = $root.google.cloud.support.v2beta.Case.verify(message["case"]); + var error = $root.google.cloud.support.v2beta.Case.verify(message["case"], long + 1); if (error) return "case." + error; } @@ -10337,16 +10741,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.CreateCaseRequest} CreateCaseRequest */ - CreateCaseRequest.fromObject = function fromObject(object) { + CreateCaseRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.CreateCaseRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.CreateCaseRequest(); if (object.parent != null) message.parent = String(object.parent); if (object["case"] != null) { if (typeof object["case"] !== "object") throw TypeError(".google.cloud.support.v2beta.CreateCaseRequest.case: object expected"); - message["case"] = $root.google.cloud.support.v2beta.Case.fromObject(object["case"]); + message["case"] = $root.google.cloud.support.v2beta.Case.fromObject(object["case"], long + 1); } return message; }; @@ -10428,7 +10836,7 @@ function ListCasesRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -10542,9 +10950,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListCasesRequest.decode = function decode(reader, length, error) { + ListCasesRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.ListCasesRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -10572,7 +10984,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -10603,9 +11015,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListCasesRequest.verify = function verify(message) { + ListCasesRequest.verify = function verify(message, 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.parent != null && message.hasOwnProperty("parent")) if (!$util.isString(message.parent)) @@ -10641,9 +11057,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.ListCasesRequest} ListCasesRequest */ - ListCasesRequest.fromObject = function fromObject(object) { + ListCasesRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.ListCasesRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.ListCasesRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -10762,7 +11182,7 @@ this.cases = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -10838,9 +11258,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListCasesResponse.decode = function decode(reader, length, error) { + ListCasesResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.ListCasesResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -10850,7 +11274,7 @@ case 1: { if (!(message.cases && message.cases.length)) message.cases = []; - message.cases.push($root.google.cloud.support.v2beta.Case.decode(reader, reader.uint32())); + message.cases.push($root.google.cloud.support.v2beta.Case.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -10858,7 +11282,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -10889,14 +11313,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListCasesResponse.verify = function verify(message) { + ListCasesResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.cases != null && message.hasOwnProperty("cases")) { if (!Array.isArray(message.cases)) return "cases: array expected"; for (var i = 0; i < message.cases.length; ++i) { - var error = $root.google.cloud.support.v2beta.Case.verify(message.cases[i]); + var error = $root.google.cloud.support.v2beta.Case.verify(message.cases[i], long + 1); if (error) return "cases." + error; } @@ -10915,9 +11343,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.ListCasesResponse} ListCasesResponse */ - ListCasesResponse.fromObject = function fromObject(object) { + ListCasesResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.ListCasesResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.ListCasesResponse(); if (object.cases) { if (!Array.isArray(object.cases)) @@ -10926,7 +11358,7 @@ for (var i = 0; i < object.cases.length; ++i) { if (typeof object.cases[i] !== "object") throw TypeError(".google.cloud.support.v2beta.ListCasesResponse.cases: object expected"); - message.cases[i] = $root.google.cloud.support.v2beta.Case.fromObject(object.cases[i]); + message.cases[i] = $root.google.cloud.support.v2beta.Case.fromObject(object.cases[i], long + 1); } } if (object.nextPageToken != null) @@ -11013,7 +11445,7 @@ function SearchCasesRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -11108,9 +11540,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SearchCasesRequest.decode = function decode(reader, length, error) { + SearchCasesRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.SearchCasesRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -11134,7 +11570,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -11165,9 +11601,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SearchCasesRequest.verify = function verify(message) { + SearchCasesRequest.verify = function verify(message, long) { if (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"; @@ -11191,9 +11631,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.SearchCasesRequest} SearchCasesRequest */ - SearchCasesRequest.fromObject = function fromObject(object) { + SearchCasesRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.SearchCasesRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.SearchCasesRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -11287,7 +11731,7 @@ this.cases = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -11363,9 +11807,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SearchCasesResponse.decode = function decode(reader, length, error) { + SearchCasesResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.SearchCasesResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -11375,7 +11823,7 @@ case 1: { if (!(message.cases && message.cases.length)) message.cases = []; - message.cases.push($root.google.cloud.support.v2beta.Case.decode(reader, reader.uint32())); + message.cases.push($root.google.cloud.support.v2beta.Case.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -11383,7 +11831,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -11414,14 +11862,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SearchCasesResponse.verify = function verify(message) { + SearchCasesResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.cases != null && message.hasOwnProperty("cases")) { if (!Array.isArray(message.cases)) return "cases: array expected"; for (var i = 0; i < message.cases.length; ++i) { - var error = $root.google.cloud.support.v2beta.Case.verify(message.cases[i]); + var error = $root.google.cloud.support.v2beta.Case.verify(message.cases[i], long + 1); if (error) return "cases." + error; } @@ -11440,9 +11892,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.SearchCasesResponse} SearchCasesResponse */ - SearchCasesResponse.fromObject = function fromObject(object) { + SearchCasesResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.SearchCasesResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.SearchCasesResponse(); if (object.cases) { if (!Array.isArray(object.cases)) @@ -11451,7 +11907,7 @@ for (var i = 0; i < object.cases.length; ++i) { if (typeof object.cases[i] !== "object") throw TypeError(".google.cloud.support.v2beta.SearchCasesResponse.cases: object expected"); - message.cases[i] = $root.google.cloud.support.v2beta.Case.fromObject(object.cases[i]); + message.cases[i] = $root.google.cloud.support.v2beta.Case.fromObject(object.cases[i], long + 1); } } if (object.nextPageToken != null) @@ -11536,7 +11992,7 @@ function EscalateCaseRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -11611,9 +12067,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EscalateCaseRequest.decode = function decode(reader, length, error) { + EscalateCaseRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.EscalateCaseRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -11625,11 +12085,11 @@ break; } case 2: { - message.escalation = $root.google.cloud.support.v2beta.Escalation.decode(reader, reader.uint32()); + message.escalation = $root.google.cloud.support.v2beta.Escalation.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -11660,14 +12120,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - EscalateCaseRequest.verify = function verify(message) { + EscalateCaseRequest.verify = function verify(message, long) { if (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.escalation != null && message.hasOwnProperty("escalation")) { - var error = $root.google.cloud.support.v2beta.Escalation.verify(message.escalation); + var error = $root.google.cloud.support.v2beta.Escalation.verify(message.escalation, long + 1); if (error) return "escalation." + error; } @@ -11682,16 +12146,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.EscalateCaseRequest} EscalateCaseRequest */ - EscalateCaseRequest.fromObject = function fromObject(object) { + EscalateCaseRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.EscalateCaseRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.EscalateCaseRequest(); if (object.name != null) message.name = String(object.name); if (object.escalation != null) { if (typeof object.escalation !== "object") throw TypeError(".google.cloud.support.v2beta.EscalateCaseRequest.escalation: object expected"); - message.escalation = $root.google.cloud.support.v2beta.Escalation.fromObject(object.escalation); + message.escalation = $root.google.cloud.support.v2beta.Escalation.fromObject(object.escalation, long + 1); } return message; }; @@ -11770,7 +12238,7 @@ function UpdateCaseRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -11845,9 +12313,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - UpdateCaseRequest.decode = function decode(reader, length, error) { + UpdateCaseRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.UpdateCaseRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -11855,15 +12327,15 @@ break; switch (tag >>> 3) { case 1: { - message["case"] = $root.google.cloud.support.v2beta.Case.decode(reader, reader.uint32()); + message["case"] = $root.google.cloud.support.v2beta.Case.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; } } @@ -11894,16 +12366,20 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - UpdateCaseRequest.verify = function verify(message) { + UpdateCaseRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message["case"] != null && message.hasOwnProperty("case")) { - var error = $root.google.cloud.support.v2beta.Case.verify(message["case"]); + var error = $root.google.cloud.support.v2beta.Case.verify(message["case"], long + 1); if (error) return "case." + 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; } @@ -11918,19 +12394,23 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.UpdateCaseRequest} UpdateCaseRequest */ - UpdateCaseRequest.fromObject = function fromObject(object) { + UpdateCaseRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.UpdateCaseRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.UpdateCaseRequest(); if (object["case"] != null) { if (typeof object["case"] !== "object") throw TypeError(".google.cloud.support.v2beta.UpdateCaseRequest.case: object expected"); - message["case"] = $root.google.cloud.support.v2beta.Case.fromObject(object["case"]); + message["case"] = $root.google.cloud.support.v2beta.Case.fromObject(object["case"], long + 1); } if (object.updateMask != null) { if (typeof object.updateMask !== "object") throw TypeError(".google.cloud.support.v2beta.UpdateCaseRequest.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; }; @@ -12008,7 +12488,7 @@ function CloseCaseRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -12073,9 +12553,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CloseCaseRequest.decode = function decode(reader, length, error) { + CloseCaseRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.CloseCaseRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -12087,7 +12571,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -12118,9 +12602,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CloseCaseRequest.verify = function verify(message) { + CloseCaseRequest.verify = function verify(message, long) { if (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"; @@ -12135,9 +12623,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.CloseCaseRequest} CloseCaseRequest */ - CloseCaseRequest.fromObject = function fromObject(object) { + CloseCaseRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.CloseCaseRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.CloseCaseRequest(); if (object.name != null) message.name = String(object.name); @@ -12216,7 +12708,7 @@ function SearchCaseClassificationsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -12311,9 +12803,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SearchCaseClassificationsRequest.decode = function decode(reader, length, error) { + SearchCaseClassificationsRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.SearchCaseClassificationsRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -12333,11 +12829,11 @@ break; } case 7: { - message.product = $root.google.cloud.support.v2beta.Product.decode(reader, reader.uint32()); + message.product = $root.google.cloud.support.v2beta.Product.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -12368,9 +12864,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SearchCaseClassificationsRequest.verify = function verify(message) { + SearchCaseClassificationsRequest.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.query != null && message.hasOwnProperty("query")) if (!$util.isString(message.query)) return "query: string expected"; @@ -12381,7 +12881,7 @@ if (!$util.isString(message.pageToken)) return "pageToken: string expected"; if (message.product != null && message.hasOwnProperty("product")) { - var error = $root.google.cloud.support.v2beta.Product.verify(message.product); + var error = $root.google.cloud.support.v2beta.Product.verify(message.product, long + 1); if (error) return "product." + error; } @@ -12396,9 +12896,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.SearchCaseClassificationsRequest} SearchCaseClassificationsRequest */ - SearchCaseClassificationsRequest.fromObject = function fromObject(object) { + SearchCaseClassificationsRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.SearchCaseClassificationsRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.SearchCaseClassificationsRequest(); if (object.query != null) message.query = String(object.query); @@ -12409,7 +12913,7 @@ if (object.product != null) { if (typeof object.product !== "object") throw TypeError(".google.cloud.support.v2beta.SearchCaseClassificationsRequest.product: object expected"); - message.product = $root.google.cloud.support.v2beta.Product.fromObject(object.product); + message.product = $root.google.cloud.support.v2beta.Product.fromObject(object.product, long + 1); } return message; }; @@ -12495,7 +12999,7 @@ this.caseClassifications = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -12571,9 +13075,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SearchCaseClassificationsResponse.decode = function decode(reader, length, error) { + SearchCaseClassificationsResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.SearchCaseClassificationsResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -12583,7 +13091,7 @@ case 1: { if (!(message.caseClassifications && message.caseClassifications.length)) message.caseClassifications = []; - message.caseClassifications.push($root.google.cloud.support.v2beta.CaseClassification.decode(reader, reader.uint32())); + message.caseClassifications.push($root.google.cloud.support.v2beta.CaseClassification.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -12591,7 +13099,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -12622,14 +13130,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SearchCaseClassificationsResponse.verify = function verify(message) { + SearchCaseClassificationsResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.caseClassifications != null && message.hasOwnProperty("caseClassifications")) { if (!Array.isArray(message.caseClassifications)) return "caseClassifications: array expected"; for (var i = 0; i < message.caseClassifications.length; ++i) { - var error = $root.google.cloud.support.v2beta.CaseClassification.verify(message.caseClassifications[i]); + var error = $root.google.cloud.support.v2beta.CaseClassification.verify(message.caseClassifications[i], long + 1); if (error) return "caseClassifications." + error; } @@ -12648,9 +13160,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.SearchCaseClassificationsResponse} SearchCaseClassificationsResponse */ - SearchCaseClassificationsResponse.fromObject = function fromObject(object) { + SearchCaseClassificationsResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.SearchCaseClassificationsResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.SearchCaseClassificationsResponse(); if (object.caseClassifications) { if (!Array.isArray(object.caseClassifications)) @@ -12659,7 +13175,7 @@ for (var i = 0; i < object.caseClassifications.length; ++i) { if (typeof object.caseClassifications[i] !== "object") throw TypeError(".google.cloud.support.v2beta.SearchCaseClassificationsResponse.caseClassifications: object expected"); - message.caseClassifications[i] = $root.google.cloud.support.v2beta.CaseClassification.fromObject(object.caseClassifications[i]); + message.caseClassifications[i] = $root.google.cloud.support.v2beta.CaseClassification.fromObject(object.caseClassifications[i], long + 1); } } if (object.nextPageToken != null) @@ -12744,7 +13260,7 @@ function Escalation(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -12819,9 +13335,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Escalation.decode = function decode(reader, length, error) { + Escalation.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.Escalation(); while (reader.pos < end) { var tag = reader.uint32(); @@ -12837,7 +13357,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -12868,9 +13388,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Escalation.verify = function verify(message) { + Escalation.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.reason != null && message.hasOwnProperty("reason")) switch (message.reason) { default: @@ -12895,9 +13419,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.Escalation} Escalation */ - Escalation.fromObject = function fromObject(object) { + Escalation.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.Escalation) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.Escalation(); switch (object.reason) { default: @@ -13023,7 +13551,7 @@ function Comment(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -13128,9 +13656,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Comment.decode = function decode(reader, length, error) { + Comment.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.Comment(); while (reader.pos < end) { var tag = reader.uint32(); @@ -13142,11 +13674,11 @@ break; } case 2: { - 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 3: { - message.creator = $root.google.cloud.support.v2beta.Actor.decode(reader, reader.uint32()); + message.creator = $root.google.cloud.support.v2beta.Actor.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { @@ -13158,7 +13690,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -13189,19 +13721,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Comment.verify = function verify(message) { + Comment.verify = function verify(message, long) { if (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.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; } if (message.creator != null && message.hasOwnProperty("creator")) { - var error = $root.google.cloud.support.v2beta.Actor.verify(message.creator); + var error = $root.google.cloud.support.v2beta.Actor.verify(message.creator, long + 1); if (error) return "creator." + error; } @@ -13222,21 +13758,25 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.Comment} Comment */ - Comment.fromObject = function fromObject(object) { + Comment.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.Comment) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.Comment(); if (object.name != null) message.name = String(object.name); if (object.createTime != null) { if (typeof object.createTime !== "object") throw TypeError(".google.cloud.support.v2beta.Comment.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.creator != null) { if (typeof object.creator !== "object") throw TypeError(".google.cloud.support.v2beta.Comment.creator: object expected"); - message.creator = $root.google.cloud.support.v2beta.Actor.fromObject(object.creator); + message.creator = $root.google.cloud.support.v2beta.Actor.fromObject(object.creator, long + 1); } if (object.body != null) message.body = String(object.body); @@ -13463,7 +14003,7 @@ function ListCommentsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -13548,9 +14088,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListCommentsRequest.decode = function decode(reader, length, error) { + ListCommentsRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.ListCommentsRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -13570,7 +14114,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -13601,9 +14145,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListCommentsRequest.verify = function verify(message) { + ListCommentsRequest.verify = function verify(message, long) { if (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"; @@ -13624,9 +14172,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.ListCommentsRequest} ListCommentsRequest */ - ListCommentsRequest.fromObject = function fromObject(object) { + ListCommentsRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.ListCommentsRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.ListCommentsRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -13715,7 +14267,7 @@ this.comments = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -13791,9 +14343,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ListCommentsResponse.decode = function decode(reader, length, error) { + ListCommentsResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.ListCommentsResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -13803,7 +14359,7 @@ case 1: { if (!(message.comments && message.comments.length)) message.comments = []; - message.comments.push($root.google.cloud.support.v2beta.Comment.decode(reader, reader.uint32())); + message.comments.push($root.google.cloud.support.v2beta.Comment.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -13811,7 +14367,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -13842,14 +14398,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ListCommentsResponse.verify = function verify(message) { + ListCommentsResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.comments != null && message.hasOwnProperty("comments")) { if (!Array.isArray(message.comments)) return "comments: array expected"; for (var i = 0; i < message.comments.length; ++i) { - var error = $root.google.cloud.support.v2beta.Comment.verify(message.comments[i]); + var error = $root.google.cloud.support.v2beta.Comment.verify(message.comments[i], long + 1); if (error) return "comments." + error; } @@ -13868,9 +14428,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.ListCommentsResponse} ListCommentsResponse */ - ListCommentsResponse.fromObject = function fromObject(object) { + ListCommentsResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.ListCommentsResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.ListCommentsResponse(); if (object.comments) { if (!Array.isArray(object.comments)) @@ -13879,7 +14443,7 @@ for (var i = 0; i < object.comments.length; ++i) { if (typeof object.comments[i] !== "object") throw TypeError(".google.cloud.support.v2beta.ListCommentsResponse.comments: object expected"); - message.comments[i] = $root.google.cloud.support.v2beta.Comment.fromObject(object.comments[i]); + message.comments[i] = $root.google.cloud.support.v2beta.Comment.fromObject(object.comments[i], long + 1); } } if (object.nextPageToken != null) @@ -13964,7 +14528,7 @@ function CreateCommentRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -14039,9 +14603,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - CreateCommentRequest.decode = function decode(reader, length, error) { + CreateCommentRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.CreateCommentRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -14053,11 +14621,11 @@ break; } case 2: { - message.comment = $root.google.cloud.support.v2beta.Comment.decode(reader, reader.uint32()); + message.comment = $root.google.cloud.support.v2beta.Comment.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -14088,14 +14656,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - CreateCommentRequest.verify = function verify(message) { + CreateCommentRequest.verify = function verify(message, long) { if (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.comment != null && message.hasOwnProperty("comment")) { - var error = $root.google.cloud.support.v2beta.Comment.verify(message.comment); + var error = $root.google.cloud.support.v2beta.Comment.verify(message.comment, long + 1); if (error) return "comment." + error; } @@ -14110,16 +14682,20 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.CreateCommentRequest} CreateCommentRequest */ - CreateCommentRequest.fromObject = function fromObject(object) { + CreateCommentRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.CreateCommentRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.CreateCommentRequest(); if (object.parent != null) message.parent = String(object.parent); if (object.comment != null) { if (typeof object.comment !== "object") throw TypeError(".google.cloud.support.v2beta.CreateCommentRequest.comment: object expected"); - message.comment = $root.google.cloud.support.v2beta.Comment.fromObject(object.comment); + message.comment = $root.google.cloud.support.v2beta.Comment.fromObject(object.comment, long + 1); } return message; }; @@ -14197,7 +14773,7 @@ function GetCommentRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -14262,9 +14838,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - GetCommentRequest.decode = function decode(reader, length, error) { + GetCommentRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.GetCommentRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -14276,7 +14856,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -14307,9 +14887,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - GetCommentRequest.verify = function verify(message) { + GetCommentRequest.verify = function verify(message, long) { if (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"; @@ -14324,9 +14908,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.GetCommentRequest} GetCommentRequest */ - GetCommentRequest.fromObject = function fromObject(object) { + GetCommentRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.GetCommentRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.GetCommentRequest(); if (object.name != null) message.name = String(object.name); @@ -14402,7 +14990,7 @@ function TextContent(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -14467,9 +15055,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - TextContent.decode = function decode(reader, length, error) { + TextContent.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.TextContent(); while (reader.pos < end) { var tag = reader.uint32(); @@ -14481,7 +15073,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -14512,9 +15104,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - TextContent.verify = function verify(message) { + TextContent.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.plainText != null && message.hasOwnProperty("plainText")) if (!$util.isString(message.plainText)) return "plainText: string expected"; @@ -14529,9 +15125,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.TextContent} TextContent */ - TextContent.fromObject = function fromObject(object) { + TextContent.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.TextContent) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.TextContent(); if (object.plainText != null) message.plainText = String(object.plainText); @@ -14615,7 +15215,7 @@ this.ccEmailAddresses = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -14742,9 +15342,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - EmailMessage.decode = function decode(reader, length, error) { + EmailMessage.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.EmailMessage(); while (reader.pos < end) { var tag = reader.uint32(); @@ -14756,11 +15360,11 @@ break; } case 2: { - 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 3: { - message.actor = $root.google.cloud.support.v2beta.Actor.decode(reader, reader.uint32()); + message.actor = $root.google.cloud.support.v2beta.Actor.decode(reader, reader.uint32(), undefined, long + 1); break; } case 4: { @@ -14780,11 +15384,11 @@ break; } case 8: { - message.bodyContent = $root.google.cloud.support.v2beta.TextContent.decode(reader, reader.uint32()); + message.bodyContent = $root.google.cloud.support.v2beta.TextContent.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -14815,19 +15419,23 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - EmailMessage.verify = function verify(message) { + EmailMessage.verify = function verify(message, long) { if (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.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; } if (message.actor != null && message.hasOwnProperty("actor")) { - var error = $root.google.cloud.support.v2beta.Actor.verify(message.actor); + var error = $root.google.cloud.support.v2beta.Actor.verify(message.actor, long + 1); if (error) return "actor." + error; } @@ -14849,7 +15457,7 @@ return "ccEmailAddresses: string[] expected"; } if (message.bodyContent != null && message.hasOwnProperty("bodyContent")) { - var error = $root.google.cloud.support.v2beta.TextContent.verify(message.bodyContent); + var error = $root.google.cloud.support.v2beta.TextContent.verify(message.bodyContent, long + 1); if (error) return "bodyContent." + error; } @@ -14864,21 +15472,25 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.EmailMessage} EmailMessage */ - EmailMessage.fromObject = function fromObject(object) { + EmailMessage.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.EmailMessage) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.EmailMessage(); if (object.name != null) message.name = String(object.name); if (object.createTime != null) { if (typeof object.createTime !== "object") throw TypeError(".google.cloud.support.v2beta.EmailMessage.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.actor != null) { if (typeof object.actor !== "object") throw TypeError(".google.cloud.support.v2beta.EmailMessage.actor: object expected"); - message.actor = $root.google.cloud.support.v2beta.Actor.fromObject(object.actor); + message.actor = $root.google.cloud.support.v2beta.Actor.fromObject(object.actor, long + 1); } if (object.subject != null) message.subject = String(object.subject); @@ -14899,7 +15511,7 @@ if (object.bodyContent != null) { if (typeof object.bodyContent !== "object") throw TypeError(".google.cloud.support.v2beta.EmailMessage.bodyContent: object expected"); - message.bodyContent = $root.google.cloud.support.v2beta.TextContent.fromObject(object.bodyContent); + message.bodyContent = $root.google.cloud.support.v2beta.TextContent.fromObject(object.bodyContent, long + 1); } return message; }; @@ -15004,7 +15616,7 @@ function FeedItem(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -15123,9 +15735,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - FeedItem.decode = function decode(reader, length, error) { + FeedItem.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.FeedItem(); while (reader.pos < end) { var tag = reader.uint32(); @@ -15133,27 +15749,27 @@ break; switch (tag >>> 3) { case 100: { - message.comment = $root.google.cloud.support.v2beta.Comment.decode(reader, reader.uint32()); + message.comment = $root.google.cloud.support.v2beta.Comment.decode(reader, reader.uint32(), undefined, long + 1); break; } case 101: { - message.attachment = $root.google.cloud.support.v2beta.Attachment.decode(reader, reader.uint32()); + message.attachment = $root.google.cloud.support.v2beta.Attachment.decode(reader, reader.uint32(), undefined, long + 1); break; } case 102: { - message.emailMessage = $root.google.cloud.support.v2beta.EmailMessage.decode(reader, reader.uint32()); + message.emailMessage = $root.google.cloud.support.v2beta.EmailMessage.decode(reader, reader.uint32(), undefined, long + 1); break; } case 103: { - message.deletedAttachment = $root.google.cloud.support.v2beta.Attachment.decode(reader, reader.uint32()); + message.deletedAttachment = $root.google.cloud.support.v2beta.Attachment.decode(reader, reader.uint32(), undefined, long + 1); break; } case 1: { - message.eventTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + message.eventTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32(), undefined, long + 1); break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -15184,14 +15800,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - FeedItem.verify = function verify(message) { + FeedItem.verify = function verify(message, 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.comment != null && message.hasOwnProperty("comment")) { properties.eventObject = 1; { - var error = $root.google.cloud.support.v2beta.Comment.verify(message.comment); + var error = $root.google.cloud.support.v2beta.Comment.verify(message.comment, long + 1); if (error) return "comment." + error; } @@ -15201,7 +15821,7 @@ return "eventObject: multiple values"; properties.eventObject = 1; { - var error = $root.google.cloud.support.v2beta.Attachment.verify(message.attachment); + var error = $root.google.cloud.support.v2beta.Attachment.verify(message.attachment, long + 1); if (error) return "attachment." + error; } @@ -15211,7 +15831,7 @@ return "eventObject: multiple values"; properties.eventObject = 1; { - var error = $root.google.cloud.support.v2beta.EmailMessage.verify(message.emailMessage); + var error = $root.google.cloud.support.v2beta.EmailMessage.verify(message.emailMessage, long + 1); if (error) return "emailMessage." + error; } @@ -15221,13 +15841,13 @@ return "eventObject: multiple values"; properties.eventObject = 1; { - var error = $root.google.cloud.support.v2beta.Attachment.verify(message.deletedAttachment); + var error = $root.google.cloud.support.v2beta.Attachment.verify(message.deletedAttachment, long + 1); if (error) return "deletedAttachment." + error; } } if (message.eventTime != null && message.hasOwnProperty("eventTime")) { - var error = $root.google.protobuf.Timestamp.verify(message.eventTime); + var error = $root.google.protobuf.Timestamp.verify(message.eventTime, long + 1); if (error) return "eventTime." + error; } @@ -15242,34 +15862,38 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.FeedItem} FeedItem */ - FeedItem.fromObject = function fromObject(object) { + FeedItem.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.FeedItem) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.FeedItem(); if (object.comment != null) { if (typeof object.comment !== "object") throw TypeError(".google.cloud.support.v2beta.FeedItem.comment: object expected"); - message.comment = $root.google.cloud.support.v2beta.Comment.fromObject(object.comment); + message.comment = $root.google.cloud.support.v2beta.Comment.fromObject(object.comment, long + 1); } if (object.attachment != null) { if (typeof object.attachment !== "object") throw TypeError(".google.cloud.support.v2beta.FeedItem.attachment: object expected"); - message.attachment = $root.google.cloud.support.v2beta.Attachment.fromObject(object.attachment); + message.attachment = $root.google.cloud.support.v2beta.Attachment.fromObject(object.attachment, long + 1); } if (object.emailMessage != null) { if (typeof object.emailMessage !== "object") throw TypeError(".google.cloud.support.v2beta.FeedItem.emailMessage: object expected"); - message.emailMessage = $root.google.cloud.support.v2beta.EmailMessage.fromObject(object.emailMessage); + message.emailMessage = $root.google.cloud.support.v2beta.EmailMessage.fromObject(object.emailMessage, long + 1); } if (object.deletedAttachment != null) { if (typeof object.deletedAttachment !== "object") throw TypeError(".google.cloud.support.v2beta.FeedItem.deletedAttachment: object expected"); - message.deletedAttachment = $root.google.cloud.support.v2beta.Attachment.fromObject(object.deletedAttachment); + message.deletedAttachment = $root.google.cloud.support.v2beta.Attachment.fromObject(object.deletedAttachment, long + 1); } if (object.eventTime != null) { if (typeof object.eventTime !== "object") throw TypeError(".google.cloud.support.v2beta.FeedItem.eventTime: object expected"); - message.eventTime = $root.google.protobuf.Timestamp.fromObject(object.eventTime); + message.eventTime = $root.google.protobuf.Timestamp.fromObject(object.eventTime, long + 1); } return message; }; @@ -15434,7 +16058,7 @@ function ShowFeedRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -15529,9 +16153,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ShowFeedRequest.decode = function decode(reader, length, error) { + ShowFeedRequest.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.ShowFeedRequest(); while (reader.pos < end) { var tag = reader.uint32(); @@ -15555,7 +16183,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -15586,9 +16214,13 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ShowFeedRequest.verify = function verify(message) { + ShowFeedRequest.verify = function verify(message, long) { if (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"; @@ -15612,9 +16244,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.ShowFeedRequest} ShowFeedRequest */ - ShowFeedRequest.fromObject = function fromObject(object) { + ShowFeedRequest.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.ShowFeedRequest) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.ShowFeedRequest(); if (object.parent != null) message.parent = String(object.parent); @@ -15708,7 +16344,7 @@ this.feedItems = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -15784,9 +16420,13 @@ * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ShowFeedResponse.decode = function decode(reader, length, error) { + ShowFeedResponse.decode = function decode(reader, length, error, long) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); + if (long === undefined) + long = 0; + if (long > $Reader.recursionLimit) + throw Error("maximum nesting depth exceeded"); var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.support.v2beta.ShowFeedResponse(); while (reader.pos < end) { var tag = reader.uint32(); @@ -15796,7 +16436,7 @@ case 1: { if (!(message.feedItems && message.feedItems.length)) message.feedItems = []; - message.feedItems.push($root.google.cloud.support.v2beta.FeedItem.decode(reader, reader.uint32())); + message.feedItems.push($root.google.cloud.support.v2beta.FeedItem.decode(reader, reader.uint32(), undefined, long + 1)); break; } case 2: { @@ -15804,7 +16444,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -15835,14 +16475,18 @@ * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ShowFeedResponse.verify = function verify(message) { + ShowFeedResponse.verify = function verify(message, long) { if (typeof message !== "object" || message === null) return "object expected"; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + return "maximum nesting depth exceeded"; if (message.feedItems != null && message.hasOwnProperty("feedItems")) { if (!Array.isArray(message.feedItems)) return "feedItems: array expected"; for (var i = 0; i < message.feedItems.length; ++i) { - var error = $root.google.cloud.support.v2beta.FeedItem.verify(message.feedItems[i]); + var error = $root.google.cloud.support.v2beta.FeedItem.verify(message.feedItems[i], long + 1); if (error) return "feedItems." + error; } @@ -15861,9 +16505,13 @@ * @param {Object.} object Plain object * @returns {google.cloud.support.v2beta.ShowFeedResponse} ShowFeedResponse */ - ShowFeedResponse.fromObject = function fromObject(object) { + ShowFeedResponse.fromObject = function fromObject(object, long) { if (object instanceof $root.google.cloud.support.v2beta.ShowFeedResponse) return object; + if (long === undefined) + long = 0; + if (long > $util.recursionLimit) + throw Error("maximum nesting depth exceeded"); var message = new $root.google.cloud.support.v2beta.ShowFeedResponse(); if (object.feedItems) { if (!Array.isArray(object.feedItems)) @@ -15872,7 +16520,7 @@ for (var i = 0; i < object.feedItems.length; ++i) { if (typeof object.feedItems[i] !== "object") throw TypeError(".google.cloud.support.v2beta.ShowFeedResponse.feedItems: object expected"); - message.feedItems[i] = $root.google.cloud.support.v2beta.FeedItem.fromObject(object.feedItems[i]); + message.feedItems[i] = $root.google.cloud.support.v2beta.FeedItem.fromObject(object.feedItems[i], long + 1); } } if (object.nextPageToken != null) @@ -16010,7 +16658,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]]; } @@ -16140,9 +16788,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(); @@ -16187,7 +16839,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -16218,9 +16870,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"; @@ -16272,9 +16928,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); @@ -16462,7 +17122,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]]; } @@ -16537,9 +17197,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(); @@ -16555,7 +17219,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -16586,9 +17250,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"; @@ -16606,9 +17274,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); @@ -16692,7 +17364,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]]; } @@ -16768,9 +17440,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(); @@ -16780,7 +17456,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: { @@ -16788,7 +17464,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -16819,14 +17495,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; } @@ -16845,9 +17525,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)) @@ -16856,7 +17540,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) @@ -16950,7 +17634,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]]; } @@ -17120,9 +17804,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(); @@ -17154,7 +17842,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: { @@ -17168,11 +17856,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; } } @@ -17203,9 +17891,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)) @@ -17248,7 +17940,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; } @@ -17263,7 +17955,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; } @@ -17279,9 +17971,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); @@ -17298,7 +17994,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); @@ -17311,7 +18007,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; @@ -17431,7 +18127,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]]; } @@ -17506,9 +18202,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(); @@ -17524,7 +18224,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -17555,9 +18255,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"; @@ -17575,9 +18279,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); @@ -17662,7 +18370,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]]; } @@ -17751,9 +18459,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(); @@ -17776,11 +18488,11 @@ break; } case 3: { - message.selectiveGapicGeneration = $root.google.api.SelectiveGapicGeneration.decode(reader, reader.uint32()); + 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; } } @@ -17811,9 +18523,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"; @@ -17831,7 +18547,7 @@ } } if (message.selectiveGapicGeneration != null && message.hasOwnProperty("selectiveGapicGeneration")) { - var error = $root.google.api.SelectiveGapicGeneration.verify(message.selectiveGapicGeneration); + var error = $root.google.api.SelectiveGapicGeneration.verify(message.selectiveGapicGeneration, long + 1); if (error) return "selectiveGapicGeneration." + error; } @@ -17846,9 +18562,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); @@ -17880,7 +18600,7 @@ 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); + message.selectiveGapicGeneration = $root.google.api.SelectiveGapicGeneration.fromObject(object.selectiveGapicGeneration, long + 1); } return message; }; @@ -17975,7 +18695,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]]; } @@ -18140,9 +18860,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(); @@ -18162,39 +18886,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; } } @@ -18225,9 +18949,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"; @@ -18249,42 +18977,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; } @@ -18299,9 +19027,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); @@ -18350,42 +19082,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; }; @@ -18503,7 +19235,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]]; } @@ -18671,9 +19403,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(); @@ -18683,7 +19419,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: { @@ -18719,7 +19455,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: { @@ -18731,7 +19467,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -18762,14 +19498,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; } @@ -18814,7 +19554,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; } @@ -18836,9 +19576,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)) @@ -18847,7 +19591,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) @@ -18914,7 +19658,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) @@ -19038,7 +19782,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]]; } @@ -19124,9 +19868,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(); @@ -19153,19 +19901,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; } } @@ -19196,9 +19946,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"; @@ -19211,7 +19965,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; } @@ -19226,9 +19980,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); @@ -19236,13 +19994,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; }; @@ -19271,8 +20032,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); @@ -19328,7 +20092,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]]; } @@ -19393,9 +20157,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(); @@ -19403,11 +20171,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; } } @@ -19438,11 +20206,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; } @@ -19457,14 +20229,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; }; @@ -19538,7 +20314,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]]; } @@ -19603,9 +20379,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(); @@ -19613,11 +20393,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; } } @@ -19648,11 +20428,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; } @@ -19667,14 +20451,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; }; @@ -19749,7 +20537,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]]; } @@ -19824,9 +20612,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(); @@ -19834,15 +20626,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()); + 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; } } @@ -19873,16 +20665,20 @@ * @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); + var error = $root.google.api.PythonSettings.ExperimentalFeatures.verify(message.experimentalFeatures, long + 1); if (error) return "experimentalFeatures." + error; } @@ -19897,19 +20693,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); + message.experimentalFeatures = $root.google.api.PythonSettings.ExperimentalFeatures.fromObject(object.experimentalFeatures, long + 1); } return message; }; @@ -19986,7 +20786,7 @@ function ExperimentalFeatures(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -20071,9 +20871,13 @@ * @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) { + 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(); @@ -20093,7 +20897,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -20124,9 +20928,13 @@ * @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) { + 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"; @@ -20147,9 +20955,13 @@ * @param {Object.} object Plain object * @returns {google.api.PythonSettings.ExperimentalFeatures} ExperimentalFeatures */ - ExperimentalFeatures.fromObject = function fromObject(object) { + 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); @@ -20239,7 +21051,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]]; } @@ -20304,9 +21116,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(); @@ -20314,11 +21130,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; } } @@ -20349,11 +21165,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; } @@ -20368,14 +21188,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; }; @@ -20459,7 +21283,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]]; } @@ -20579,9 +21403,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(); @@ -20589,7 +21417,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: { @@ -20608,10 +21436,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; } @@ -20631,10 +21461,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; } @@ -20657,7 +21489,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -20688,11 +21520,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; } @@ -20744,28 +21580,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)) @@ -20820,13 +21666,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 = []; @@ -20895,7 +21747,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]]; } @@ -20960,9 +21812,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(); @@ -20970,11 +21826,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; } } @@ -21005,11 +21861,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; } @@ -21024,14 +21884,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; }; @@ -21107,7 +21971,7 @@ 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]]; } @@ -21183,9 +22047,13 @@ * @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); + if (long === undefined) + long = 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(); @@ -21193,7 +22061,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: { @@ -21212,15 +22080,17 @@ 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; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -21251,11 +22121,15 @@ * @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; } @@ -21278,21 +22152,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) + 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; }; @@ -21319,8 +22200,11 @@ 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]]; + } } return object; }; @@ -21377,7 +22261,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]]; } @@ -21463,9 +22347,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(); @@ -21477,7 +22365,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: { @@ -21487,7 +22375,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -21518,14 +22406,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; } @@ -21547,16 +22439,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)) @@ -21648,7 +22544,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]]; } @@ -21743,9 +22639,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(); @@ -21753,7 +22653,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: { @@ -21761,15 +22661,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; } } @@ -21800,11 +22700,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; } @@ -21812,12 +22716,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; } @@ -21832,26 +22736,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; }; @@ -21982,7 +22890,7 @@ this.methods = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -22058,9 +22966,13 @@ * @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) { + 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(); @@ -22078,7 +22990,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -22109,9 +23021,13 @@ * @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) { + 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"; @@ -22133,9 +23049,13 @@ * @param {Object.} object Plain object * @returns {google.api.SelectiveGapicGeneration} SelectiveGapicGeneration */ - SelectiveGapicGeneration.fromObject = function fromObject(object) { + 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)) @@ -22264,7 +23184,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]]; } @@ -22330,9 +23250,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(); @@ -22342,11 +23266,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; } } @@ -22377,14 +23301,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; } @@ -22400,9 +23328,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)) @@ -22411,7 +23343,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; @@ -22544,7 +23476,7 @@ 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]]; } @@ -22747,9 +23679,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(); @@ -22801,33 +23737,33 @@ 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: { @@ -22839,7 +23775,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -22870,9 +23806,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"; @@ -22911,7 +23851,7 @@ 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; } @@ -22920,7 +23860,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; } @@ -22929,7 +23869,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; } @@ -22938,18 +23878,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; } @@ -22985,9 +23925,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); @@ -23028,7 +23972,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) { @@ -23038,7 +23982,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) { @@ -23048,7 +23992,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) { @@ -23058,18 +24002,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); @@ -23285,7 +24229,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]]; } @@ -23458,9 +24402,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(); @@ -23474,47 +24422,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: { @@ -23528,7 +24476,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -23559,9 +24507,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"; @@ -23569,7 +24521,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; } @@ -23578,7 +24530,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; } @@ -23587,7 +24539,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; } @@ -23596,7 +24548,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; } @@ -23605,7 +24557,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; } @@ -23614,13 +24566,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; } @@ -23628,7 +24580,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; } @@ -23660,9 +24612,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); @@ -23673,7 +24629,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) { @@ -23683,7 +24639,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) { @@ -23693,7 +24649,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) { @@ -23703,7 +24659,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) { @@ -23713,7 +24669,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) { @@ -23723,13 +24679,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)) @@ -23738,7 +24694,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) { @@ -23896,7 +24852,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]]; } @@ -23981,9 +24937,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(); @@ -23999,11 +24959,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; } } @@ -24034,9 +24994,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"; @@ -24044,7 +25008,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; } @@ -24059,9 +25023,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; @@ -24070,7 +25038,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; }; @@ -24152,7 +25120,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]]; } @@ -24227,9 +25195,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(); @@ -24245,7 +25217,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -24276,9 +25248,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"; @@ -24296,9 +25272,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; @@ -24388,7 +25368,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]]; } @@ -24485,9 +25465,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(); @@ -24497,17 +25481,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: { @@ -24515,7 +25499,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -24546,14 +25530,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; } @@ -24562,13 +25550,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; } @@ -24591,9 +25579,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)) @@ -24602,7 +25594,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) { @@ -24612,13 +25604,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": @@ -24727,7 +25719,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]]; } @@ -24832,9 +25824,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(); @@ -24862,7 +25858,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -24893,9 +25889,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"; @@ -24922,9 +25922,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; @@ -25048,7 +26052,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]]; } @@ -25213,9 +26217,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(); @@ -25259,7 +26267,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: { @@ -25267,7 +26275,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -25298,9 +26306,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"; @@ -25356,7 +26368,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; } @@ -25374,9 +26386,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); @@ -25495,7 +26511,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); @@ -25665,7 +26681,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]]; } @@ -25740,9 +26756,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(); @@ -25754,11 +26774,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; } } @@ -25789,14 +26809,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; } @@ -25811,16 +26835,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; }; @@ -25906,7 +26934,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]]; } @@ -26024,9 +27052,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(); @@ -26040,17 +27072,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: { @@ -26064,7 +27096,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -26095,9 +27127,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"; @@ -26105,13 +27141,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; } @@ -26119,7 +27155,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; } @@ -26151,9 +27187,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); @@ -26164,13 +27204,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)) @@ -26179,7 +27219,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) { @@ -26306,7 +27346,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]]; } @@ -26381,9 +27421,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(); @@ -26399,7 +27443,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -26430,9 +27474,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"; @@ -26450,9 +27498,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; @@ -26539,7 +27591,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]]; } @@ -26624,9 +27676,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(); @@ -26642,11 +27698,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; } } @@ -26677,9 +27733,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"; @@ -26687,7 +27747,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; } @@ -26702,9 +27762,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); @@ -26713,7 +27777,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; }; @@ -26797,7 +27861,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]]; } @@ -26883,9 +27947,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(); @@ -26899,15 +27967,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; } } @@ -26938,9 +28006,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"; @@ -26948,13 +28020,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; } @@ -26969,9 +28041,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); @@ -26982,13 +28058,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; }; @@ -27078,7 +28154,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]]; } @@ -27193,9 +28269,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(); @@ -27215,7 +28295,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: { @@ -27227,7 +28307,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -27258,9 +28338,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"; @@ -27271,7 +28355,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; } @@ -27292,9 +28376,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); @@ -27305,7 +28393,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); @@ -27422,7 +28510,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]]; } @@ -27699,9 +28787,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(); @@ -27785,23 +28877,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; } } @@ -27832,9 +28924,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"; @@ -27899,7 +28995,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; } @@ -27907,7 +29003,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; } @@ -27916,7 +29012,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; } @@ -27932,9 +29028,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); @@ -27995,7 +29095,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)) @@ -28004,7 +29104,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"]) { @@ -28014,7 +29114,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; @@ -28185,7 +29285,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]]; } @@ -28321,9 +29421,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(); @@ -28351,21 +29455,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; } } @@ -28396,9 +29500,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"; @@ -28415,7 +29523,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; } @@ -28423,13 +29531,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; } @@ -28444,9 +29552,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); @@ -28461,7 +29573,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)) @@ -28470,13 +29582,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; }; @@ -28595,7 +29707,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]]; } @@ -28814,9 +29926,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(); @@ -28873,21 +29989,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()); + 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: { @@ -28902,11 +30018,11 @@ 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; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -28937,9 +30053,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: @@ -29009,18 +30129,18 @@ 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); + var error = $root.google.protobuf.FieldOptions.FeatureSupport.verify(message.featureSupport, long + 1); if (error) return "featureSupport." + error; } @@ -29028,7 +30148,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; } @@ -29053,7 +30173,7 @@ } } 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; } @@ -29068,9 +30188,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: @@ -29204,18 +30328,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); + message.featureSupport = $root.google.protobuf.FieldOptions.FeatureSupport.fromObject(object.featureSupport, long + 1); } if (object.uninterpretedOption) { if (!Array.isArray(object.uninterpretedOption)) @@ -29224,7 +30348,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"]) { @@ -29279,7 +30403,7 @@ 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); } return message; }; @@ -29489,7 +30613,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]]; } @@ -29564,9 +30688,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(); @@ -29582,7 +30710,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -29613,9 +30741,13 @@ * @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: @@ -29648,9 +30780,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: @@ -29789,7 +30925,7 @@ function FeatureSupport(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -29884,9 +31020,13 @@ * @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) { + 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(); @@ -29910,7 +31050,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -29941,9 +31081,13 @@ * @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) { + 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: @@ -30012,9 +31156,13 @@ * @param {Object.} object Plain object * @returns {google.protobuf.FieldOptions.FeatureSupport} FeatureSupport */ - FeatureSupport.fromObject = function fromObject(object) { + 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: @@ -30273,7 +31421,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]]; } @@ -30349,9 +31497,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(); @@ -30359,17 +31511,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; } } @@ -30400,11 +31552,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; } @@ -30412,7 +31568,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; } @@ -30428,14 +31584,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)) @@ -30444,7 +31604,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; @@ -30531,7 +31691,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]]; } @@ -30637,9 +31797,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(); @@ -30659,17 +31823,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; } } @@ -30700,9 +31864,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"; @@ -30713,7 +31881,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; } @@ -30721,7 +31889,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; } @@ -30737,9 +31905,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); @@ -30750,7 +31922,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)) @@ -30759,7 +31931,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; @@ -30856,7 +32028,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]]; } @@ -30962,9 +32134,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(); @@ -30976,7 +32152,7 @@ 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: { @@ -30984,17 +32160,17 @@ break; } case 4: { - message.featureSupport = $root.google.protobuf.FieldOptions.FeatureSupport.decode(reader, reader.uint32()); + 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; } } @@ -31025,14 +32201,18 @@ * @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; } @@ -31040,7 +32220,7 @@ 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); + var error = $root.google.protobuf.FieldOptions.FeatureSupport.verify(message.featureSupport, long + 1); if (error) return "featureSupport." + error; } @@ -31048,7 +32228,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; } @@ -31064,23 +32244,27 @@ * @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); + message.featureSupport = $root.google.protobuf.FieldOptions.FeatureSupport.fromObject(object.featureSupport, long + 1); } if (object.uninterpretedOption) { if (!Array.isArray(object.uninterpretedOption)) @@ -31089,7 +32273,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; @@ -31187,7 +32371,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]]; } @@ -31303,9 +32487,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(); @@ -31313,7 +32501,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: { @@ -31323,7 +32511,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: { @@ -31339,7 +32527,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -31370,11 +32558,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; } @@ -31385,7 +32577,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; } @@ -31410,14 +32602,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); @@ -31428,7 +32624,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) @@ -31536,7 +32732,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]]; } @@ -31653,9 +32849,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(); @@ -31671,17 +32871,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: { @@ -31691,7 +32891,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -31722,9 +32922,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"; @@ -31738,7 +32942,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; } @@ -31746,13 +32950,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; } @@ -31774,9 +32978,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); @@ -31803,7 +33011,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)) @@ -31812,13 +33020,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"])) @@ -31946,7 +33154,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]]; } @@ -32072,9 +33280,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(); @@ -32084,7 +33296,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: { @@ -32112,7 +33324,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -32143,14 +33355,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; } @@ -32184,9 +33400,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)) @@ -32195,7 +33415,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) @@ -32340,7 +33560,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]]; } @@ -32413,9 +33633,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(); @@ -32431,7 +33655,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -32466,9 +33690,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") @@ -32484,9 +33712,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); @@ -32578,7 +33810,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]]; } @@ -32713,9 +33945,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(); @@ -32755,7 +33991,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -32786,9 +34022,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: @@ -32875,9 +34115,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: @@ -33255,7 +34499,7 @@ function VisibilityFeature(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) + if (properties[keys[i]] != null && keys[i] !== "__proto__") this[keys[i]] = properties[keys[i]]; } @@ -33310,9 +34554,13 @@ * @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) { + 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(); @@ -33320,7 +34568,7 @@ break; switch (tag >>> 3) { default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -33351,9 +34599,13 @@ * @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) { + 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; }; @@ -33365,9 +34617,13 @@ * @param {Object.} object Plain object * @returns {google.protobuf.FeatureSet.VisibilityFeature} VisibilityFeature */ - VisibilityFeature.fromObject = function fromObject(object) { + 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(); }; @@ -33459,7 +34715,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]]; } @@ -33545,9 +34801,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(); @@ -33557,7 +34817,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: { @@ -33569,7 +34829,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -33600,14 +34860,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; } @@ -33659,9 +34923,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)) @@ -33670,7 +34938,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) { @@ -33867,7 +35135,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]]; } @@ -33952,9 +35220,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(); @@ -33966,15 +35238,15 @@ break; } case 4: { - message.overridableFeatures = $root.google.protobuf.FeatureSet.decode(reader, reader.uint32()); + 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()); + 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; } } @@ -34005,9 +35277,13 @@ * @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: @@ -34027,12 +35303,12 @@ break; } if (message.overridableFeatures != null && message.hasOwnProperty("overridableFeatures")) { - var error = $root.google.protobuf.FeatureSet.verify(message.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); + var error = $root.google.protobuf.FeatureSet.verify(message.fixedFeatures, long + 1); if (error) return "fixedFeatures." + error; } @@ -34047,9 +35323,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: @@ -34110,12 +35390,12 @@ 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); + 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); + message.fixedFeatures = $root.google.protobuf.FeatureSet.fromObject(object.fixedFeatures, long + 1); } return message; }; @@ -34200,7 +35480,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]]; } @@ -34266,9 +35546,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(); @@ -34278,11 +35562,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; } } @@ -34313,14 +35597,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; } @@ -34336,9 +35624,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)) @@ -34347,7 +35639,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; @@ -34429,7 +35721,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]]; } @@ -34543,9 +35835,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(); @@ -34589,7 +35885,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -34620,9 +35916,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"; @@ -34661,9 +35961,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)) @@ -34790,7 +36094,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]]; } @@ -34856,9 +36160,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(); @@ -34868,11 +36176,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; } } @@ -34903,14 +36211,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; } @@ -34926,9 +36238,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)) @@ -34937,7 +36253,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; @@ -35017,7 +36333,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]]; } @@ -35126,9 +36442,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(); @@ -35163,7 +36483,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -35194,9 +36514,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"; @@ -35233,9 +36557,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)) @@ -35395,7 +36723,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]]; } @@ -35470,9 +36798,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(); @@ -35488,7 +36820,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -35519,9 +36851,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"; @@ -35539,9 +36875,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) @@ -35638,7 +36978,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]]; } @@ -35713,9 +37053,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(); @@ -35731,7 +37075,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -35762,9 +37106,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"; @@ -35782,9 +37130,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) @@ -35881,7 +37233,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]]; } @@ -35947,9 +37299,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(); @@ -35963,7 +37319,7 @@ break; } default: - reader.skipType(tag & 7); + reader.skipType(tag & 7, long); break; } } @@ -35994,9 +37350,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"; @@ -36015,9 +37375,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))