From 0136cb8a06fd82f258ac3eda414ec5e19355f039 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Fri, 24 Jun 2022 09:54:44 +0000 Subject: [PATCH 1/2] feat: support regapic LRO Use gapic-generator-typescript v2.15.1. PiperOrigin-RevId: 456946341 Source-Link: https://github.com/googleapis/googleapis/commit/88fd18d9d3b872b3d06a3d9392879f50b5bf3ce5 Source-Link: https://github.com/googleapis/googleapis-gen/commit/accfa371f667439313335c64042b063c1c53102e Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYWNjZmEzNzFmNjY3NDM5MzEzMzM1YzY0MDQyYjA2M2MxYzUzMTAyZSJ9 --- owl-bot-staging/v3/.eslintignore | 7 + owl-bot-staging/v3/.eslintrc.json | 3 + owl-bot-staging/v3/.gitignore | 14 + owl-bot-staging/v3/.jsdoc.js | 55 + owl-bot-staging/v3/.mocharc.js | 33 + owl-bot-staging/v3/.prettierrc.js | 22 + owl-bot-staging/v3/README.md | 1 + owl-bot-staging/v3/linkinator.config.json | 16 + owl-bot-staging/v3/package.json | 64 + .../translate/v3/translation_service.proto | 1462 ++++++++++++++ ..._metadata.google.cloud.translation.v3.json | 567 ++++++ ...lation_service.batch_translate_document.js | 120 ++ ...ranslation_service.batch_translate_text.js | 117 ++ .../v3/translation_service.create_glossary.js | 64 + .../v3/translation_service.delete_glossary.js | 59 + .../v3/translation_service.detect_language.js | 93 + .../v3/translation_service.get_glossary.js | 58 + ...slation_service.get_supported_languages.js | 83 + .../v3/translation_service.list_glossaries.js | 91 + .../translation_service.translate_document.js | 120 ++ .../v3/translation_service.translate_text.js | 123 ++ owl-bot-staging/v3/src/index.ts | 25 + owl-bot-staging/v3/src/v3/gapic_metadata.json | 127 ++ owl-bot-staging/v3/src/v3/index.ts | 19 + .../v3/src/v3/translation_service_client.ts | 1717 +++++++++++++++++ .../v3/translation_service_client_config.json | 76 + .../v3/translation_service_proto_list.json | 3 + .../system-test/fixtures/sample/src/index.js | 27 + .../system-test/fixtures/sample/src/index.ts | 32 + owl-bot-staging/v3/system-test/install.ts | 49 + .../v3/test/gapic_translation_service_v3.ts | 1569 +++++++++++++++ owl-bot-staging/v3/tsconfig.json | 19 + owl-bot-staging/v3/webpack.config.js | 64 + owl-bot-staging/v3beta1/.eslintignore | 7 + owl-bot-staging/v3beta1/.eslintrc.json | 3 + owl-bot-staging/v3beta1/.gitignore | 14 + owl-bot-staging/v3beta1/.jsdoc.js | 55 + owl-bot-staging/v3beta1/.mocharc.js | 33 + owl-bot-staging/v3beta1/.prettierrc.js | 22 + owl-bot-staging/v3beta1/README.md | 1 + .../v3beta1/linkinator.config.json | 16 + owl-bot-staging/v3beta1/package.json | 64 + .../v3beta1/translation_service.proto | 1450 ++++++++++++++ ...data.google.cloud.translation.v3beta1.json | 567 ++++++ ...lation_service.batch_translate_document.js | 120 ++ ...ranslation_service.batch_translate_text.js | 116 ++ .../translation_service.create_glossary.js | 64 + .../translation_service.delete_glossary.js | 59 + .../translation_service.detect_language.js | 92 + .../translation_service.get_glossary.js | 58 + ...slation_service.get_supported_languages.js | 83 + .../translation_service.list_glossaries.js | 91 + .../translation_service.translate_document.js | 119 ++ .../translation_service.translate_text.js | 122 ++ owl-bot-staging/v3beta1/src/index.ts | 25 + .../v3beta1/src/v3beta1/gapic_metadata.json | 127 ++ owl-bot-staging/v3beta1/src/v3beta1/index.ts | 19 + .../src/v3beta1/translation_service_client.ts | 1713 ++++++++++++++++ .../translation_service_client_config.json | 76 + .../translation_service_proto_list.json | 3 + .../system-test/fixtures/sample/src/index.js | 27 + .../system-test/fixtures/sample/src/index.ts | 32 + .../v3beta1/system-test/install.ts | 49 + .../test/gapic_translation_service_v3beta1.ts | 1569 +++++++++++++++ owl-bot-staging/v3beta1/tsconfig.json | 19 + owl-bot-staging/v3beta1/webpack.config.js | 64 + 66 files changed, 13778 insertions(+) create mode 100644 owl-bot-staging/v3/.eslintignore create mode 100644 owl-bot-staging/v3/.eslintrc.json create mode 100644 owl-bot-staging/v3/.gitignore create mode 100644 owl-bot-staging/v3/.jsdoc.js create mode 100644 owl-bot-staging/v3/.mocharc.js create mode 100644 owl-bot-staging/v3/.prettierrc.js create mode 100644 owl-bot-staging/v3/README.md create mode 100644 owl-bot-staging/v3/linkinator.config.json create mode 100644 owl-bot-staging/v3/package.json create mode 100644 owl-bot-staging/v3/protos/google/cloud/translate/v3/translation_service.proto create mode 100644 owl-bot-staging/v3/samples/generated/v3/snippet_metadata.google.cloud.translation.v3.json create mode 100644 owl-bot-staging/v3/samples/generated/v3/translation_service.batch_translate_document.js create mode 100644 owl-bot-staging/v3/samples/generated/v3/translation_service.batch_translate_text.js create mode 100644 owl-bot-staging/v3/samples/generated/v3/translation_service.create_glossary.js create mode 100644 owl-bot-staging/v3/samples/generated/v3/translation_service.delete_glossary.js create mode 100644 owl-bot-staging/v3/samples/generated/v3/translation_service.detect_language.js create mode 100644 owl-bot-staging/v3/samples/generated/v3/translation_service.get_glossary.js create mode 100644 owl-bot-staging/v3/samples/generated/v3/translation_service.get_supported_languages.js create mode 100644 owl-bot-staging/v3/samples/generated/v3/translation_service.list_glossaries.js create mode 100644 owl-bot-staging/v3/samples/generated/v3/translation_service.translate_document.js create mode 100644 owl-bot-staging/v3/samples/generated/v3/translation_service.translate_text.js create mode 100644 owl-bot-staging/v3/src/index.ts create mode 100644 owl-bot-staging/v3/src/v3/gapic_metadata.json create mode 100644 owl-bot-staging/v3/src/v3/index.ts create mode 100644 owl-bot-staging/v3/src/v3/translation_service_client.ts create mode 100644 owl-bot-staging/v3/src/v3/translation_service_client_config.json create mode 100644 owl-bot-staging/v3/src/v3/translation_service_proto_list.json create mode 100644 owl-bot-staging/v3/system-test/fixtures/sample/src/index.js create mode 100644 owl-bot-staging/v3/system-test/fixtures/sample/src/index.ts create mode 100644 owl-bot-staging/v3/system-test/install.ts create mode 100644 owl-bot-staging/v3/test/gapic_translation_service_v3.ts create mode 100644 owl-bot-staging/v3/tsconfig.json create mode 100644 owl-bot-staging/v3/webpack.config.js create mode 100644 owl-bot-staging/v3beta1/.eslintignore create mode 100644 owl-bot-staging/v3beta1/.eslintrc.json create mode 100644 owl-bot-staging/v3beta1/.gitignore create mode 100644 owl-bot-staging/v3beta1/.jsdoc.js create mode 100644 owl-bot-staging/v3beta1/.mocharc.js create mode 100644 owl-bot-staging/v3beta1/.prettierrc.js create mode 100644 owl-bot-staging/v3beta1/README.md create mode 100644 owl-bot-staging/v3beta1/linkinator.config.json create mode 100644 owl-bot-staging/v3beta1/package.json create mode 100644 owl-bot-staging/v3beta1/protos/google/cloud/translate/v3beta1/translation_service.proto create mode 100644 owl-bot-staging/v3beta1/samples/generated/v3beta1/snippet_metadata.google.cloud.translation.v3beta1.json create mode 100644 owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.batch_translate_document.js create mode 100644 owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.batch_translate_text.js create mode 100644 owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.create_glossary.js create mode 100644 owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.delete_glossary.js create mode 100644 owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.detect_language.js create mode 100644 owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.get_glossary.js create mode 100644 owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.get_supported_languages.js create mode 100644 owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.list_glossaries.js create mode 100644 owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.translate_document.js create mode 100644 owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.translate_text.js create mode 100644 owl-bot-staging/v3beta1/src/index.ts create mode 100644 owl-bot-staging/v3beta1/src/v3beta1/gapic_metadata.json create mode 100644 owl-bot-staging/v3beta1/src/v3beta1/index.ts create mode 100644 owl-bot-staging/v3beta1/src/v3beta1/translation_service_client.ts create mode 100644 owl-bot-staging/v3beta1/src/v3beta1/translation_service_client_config.json create mode 100644 owl-bot-staging/v3beta1/src/v3beta1/translation_service_proto_list.json create mode 100644 owl-bot-staging/v3beta1/system-test/fixtures/sample/src/index.js create mode 100644 owl-bot-staging/v3beta1/system-test/fixtures/sample/src/index.ts create mode 100644 owl-bot-staging/v3beta1/system-test/install.ts create mode 100644 owl-bot-staging/v3beta1/test/gapic_translation_service_v3beta1.ts create mode 100644 owl-bot-staging/v3beta1/tsconfig.json create mode 100644 owl-bot-staging/v3beta1/webpack.config.js diff --git a/owl-bot-staging/v3/.eslintignore b/owl-bot-staging/v3/.eslintignore new file mode 100644 index 00000000..cfc348ec --- /dev/null +++ b/owl-bot-staging/v3/.eslintignore @@ -0,0 +1,7 @@ +**/node_modules +**/.coverage +build/ +docs/ +protos/ +system-test/ +samples/generated/ diff --git a/owl-bot-staging/v3/.eslintrc.json b/owl-bot-staging/v3/.eslintrc.json new file mode 100644 index 00000000..78215349 --- /dev/null +++ b/owl-bot-staging/v3/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "./node_modules/gts" +} diff --git a/owl-bot-staging/v3/.gitignore b/owl-bot-staging/v3/.gitignore new file mode 100644 index 00000000..5d32b237 --- /dev/null +++ b/owl-bot-staging/v3/.gitignore @@ -0,0 +1,14 @@ +**/*.log +**/node_modules +.coverage +coverage +.nyc_output +docs/ +out/ +build/ +system-test/secrets.js +system-test/*key.json +*.lock +.DS_Store +package-lock.json +__pycache__ diff --git a/owl-bot-staging/v3/.jsdoc.js b/owl-bot-staging/v3/.jsdoc.js new file mode 100644 index 00000000..2f0f785e --- /dev/null +++ b/owl-bot-staging/v3/.jsdoc.js @@ -0,0 +1,55 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + +'use strict'; + +module.exports = { + opts: { + readme: './README.md', + package: './package.json', + template: './node_modules/jsdoc-fresh', + recurse: true, + verbose: true, + destination: './docs/' + }, + plugins: [ + 'plugins/markdown', + 'jsdoc-region-tag' + ], + source: { + excludePattern: '(^|\\/|\\\\)[._]', + include: [ + 'build/src', + 'protos' + ], + includePattern: '\\.js$' + }, + templates: { + copyright: 'Copyright 2022 Google LLC', + includeDate: false, + sourceFiles: false, + systemName: '@google-cloud/translate', + theme: 'lumen', + default: { + outputSourceFiles: false + } + }, + markdown: { + idInHeadings: true + } +}; diff --git a/owl-bot-staging/v3/.mocharc.js b/owl-bot-staging/v3/.mocharc.js new file mode 100644 index 00000000..481c522b --- /dev/null +++ b/owl-bot-staging/v3/.mocharc.js @@ -0,0 +1,33 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + +const config = { + "enable-source-maps": true, + "throw-deprecation": true, + "timeout": 10000 +} +if (process.env.MOCHA_THROW_DEPRECATION === 'false') { + delete config['throw-deprecation']; +} +if (process.env.MOCHA_REPORTER) { + config.reporter = process.env.MOCHA_REPORTER; +} +if (process.env.MOCHA_REPORTER_OUTPUT) { + config['reporter-option'] = `output=${process.env.MOCHA_REPORTER_OUTPUT}`; +} +module.exports = config diff --git a/owl-bot-staging/v3/.prettierrc.js b/owl-bot-staging/v3/.prettierrc.js new file mode 100644 index 00000000..494e1478 --- /dev/null +++ b/owl-bot-staging/v3/.prettierrc.js @@ -0,0 +1,22 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + +module.exports = { + ...require('gts/.prettierrc.json') +} diff --git a/owl-bot-staging/v3/README.md b/owl-bot-staging/v3/README.md new file mode 100644 index 00000000..93a92542 --- /dev/null +++ b/owl-bot-staging/v3/README.md @@ -0,0 +1 @@ +Translation: Nodejs Client diff --git a/owl-bot-staging/v3/linkinator.config.json b/owl-bot-staging/v3/linkinator.config.json new file mode 100644 index 00000000..befd23c8 --- /dev/null +++ b/owl-bot-staging/v3/linkinator.config.json @@ -0,0 +1,16 @@ +{ + "recurse": true, + "skip": [ + "https://codecov.io/gh/googleapis/", + "www.googleapis.com", + "img.shields.io", + "https://console.cloud.google.com/cloudshell", + "https://support.google.com" + ], + "silent": true, + "concurrency": 5, + "retry": true, + "retryErrors": true, + "retryErrorsCount": 5, + "retryErrorsJitter": 3000 +} diff --git a/owl-bot-staging/v3/package.json b/owl-bot-staging/v3/package.json new file mode 100644 index 00000000..91e27cd6 --- /dev/null +++ b/owl-bot-staging/v3/package.json @@ -0,0 +1,64 @@ +{ + "name": "@google-cloud/translate", + "version": "0.1.0", + "description": "Translation client for Node.js", + "repository": "googleapis/nodejs-translation", + "license": "Apache-2.0", + "author": "Google LLC", + "main": "build/src/index.js", + "files": [ + "build/src", + "build/protos" + ], + "keywords": [ + "google apis client", + "google api client", + "google apis", + "google api", + "google", + "google cloud platform", + "google cloud", + "cloud", + "google translation", + "translation", + "translation service" + ], + "scripts": { + "clean": "gts clean", + "compile": "tsc -p . && cp -r protos build/", + "compile-protos": "compileProtos src", + "docs": "jsdoc -c .jsdoc.js", + "predocs-test": "npm run docs", + "docs-test": "linkinator docs", + "fix": "gts fix", + "lint": "gts check", + "prepare": "npm run compile-protos && npm run compile", + "system-test": "c8 mocha build/system-test", + "test": "c8 mocha build/test" + }, + "dependencies": { + "google-gax": "^3.1.1" + }, + "devDependencies": { + "@types/mocha": "^9.1.0", + "@types/node": "^16.0.0", + "@types/sinon": "^10.0.8", + "c8": "^7.11.0", + "gts": "^3.1.0", + "jsdoc": "^3.6.7", + "jsdoc-fresh": "^1.1.1", + "jsdoc-region-tag": "^1.3.1", + "linkinator": "^3.0.0", + "mocha": "^9.1.4", + "null-loader": "^4.0.1", + "pack-n-play": "^1.0.0-2", + "sinon": "^13.0.0", + "ts-loader": "^9.2.6", + "typescript": "^4.5.5", + "webpack": "^5.67.0", + "webpack-cli": "^4.9.1" + }, + "engines": { + "node": ">=v12" + } +} diff --git a/owl-bot-staging/v3/protos/google/cloud/translate/v3/translation_service.proto b/owl-bot-staging/v3/protos/google/cloud/translate/v3/translation_service.proto new file mode 100644 index 00000000..9f770248 --- /dev/null +++ b/owl-bot-staging/v3/protos/google/cloud/translate/v3/translation_service.proto @@ -0,0 +1,1462 @@ +// 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. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.translation.v3; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Cloud.Translate.V3"; +option go_package = "google.golang.org/genproto/googleapis/cloud/translate/v3;translate"; +option java_multiple_files = true; +option java_outer_classname = "TranslationServiceProto"; +option java_package = "com.google.cloud.translate.v3"; +option php_namespace = "Google\\Cloud\\Translate\\V3"; +option ruby_package = "Google::Cloud::Translate::V3"; + +// Proto file for the Cloud Translation API (v3 GA). + +// Provides natural language translation operations. +service TranslationService { + option (google.api.default_host) = "translate.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform," + "https://www.googleapis.com/auth/cloud-translation"; + + // Translates input text and returns translated text. + rpc TranslateText(TranslateTextRequest) returns (TranslateTextResponse) { + option (google.api.http) = { + post: "/v3/{parent=projects/*/locations/*}:translateText" + body: "*" + additional_bindings { + post: "/v3/{parent=projects/*}:translateText" + body: "*" + } + }; + option (google.api.method_signature) = + "parent,target_language_code,contents"; + option (google.api.method_signature) = + "parent,model,mime_type,source_language_code,target_language_code,contents"; + } + + // Detects the language of text within a request. + rpc DetectLanguage(DetectLanguageRequest) returns (DetectLanguageResponse) { + option (google.api.http) = { + post: "/v3/{parent=projects/*/locations/*}:detectLanguage" + body: "*" + additional_bindings { + post: "/v3/{parent=projects/*}:detectLanguage" + body: "*" + } + }; + option (google.api.method_signature) = "parent,model,mime_type,content"; + } + + // Returns a list of supported languages for translation. + rpc GetSupportedLanguages(GetSupportedLanguagesRequest) + returns (SupportedLanguages) { + option (google.api.http) = { + get: "/v3/{parent=projects/*/locations/*}/supportedLanguages" + additional_bindings { get: "/v3/{parent=projects/*}/supportedLanguages" } + }; + option (google.api.method_signature) = "parent,model,display_language_code"; + } + + // Translates documents in synchronous mode. + rpc TranslateDocument(TranslateDocumentRequest) + returns (TranslateDocumentResponse) { + option (google.api.http) = { + post: "/v3/{parent=projects/*/locations/*}:translateDocument" + body: "*" + }; + } + + // Translates a large volume of text in asynchronous batch mode. + // This function provides real-time output as the inputs are being processed. + // If caller cancels a request, the partial results (for an input file, it's + // all or nothing) may still be available on the specified output location. + // + // This call returns immediately and you can + // use google.longrunning.Operation.name to poll the status of the call. + rpc BatchTranslateText(BatchTranslateTextRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v3/{parent=projects/*/locations/*}:batchTranslateText" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "BatchTranslateResponse" + metadata_type: "BatchTranslateMetadata" + }; + } + + // Translates a large volume of document in asynchronous batch mode. + // This function provides real-time output as the inputs are being processed. + // If caller cancels a request, the partial results (for an input file, it's + // all or nothing) may still be available on the specified output location. + // + // This call returns immediately and you can use + // google.longrunning.Operation.name to poll the status of the call. + rpc BatchTranslateDocument(BatchTranslateDocumentRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v3/{parent=projects/*/locations/*}:batchTranslateDocument" + body: "*" + }; + option (google.api.method_signature) = + "parent,source_language_code,target_language_codes,input_configs,output_config"; + option (google.longrunning.operation_info) = { + response_type: "BatchTranslateDocumentResponse" + metadata_type: "BatchTranslateDocumentMetadata" + }; + } + + // Creates a glossary and returns the long-running operation. Returns + // NOT_FOUND, if the project doesn't exist. + rpc CreateGlossary(CreateGlossaryRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v3/{parent=projects/*/locations/*}/glossaries" + body: "glossary" + }; + option (google.api.method_signature) = "parent,glossary"; + option (google.longrunning.operation_info) = { + response_type: "Glossary" + metadata_type: "CreateGlossaryMetadata" + }; + } + + // Lists glossaries in a project. Returns NOT_FOUND, if the project doesn't + // exist. + rpc ListGlossaries(ListGlossariesRequest) returns (ListGlossariesResponse) { + option (google.api.http) = { + get: "/v3/{parent=projects/*/locations/*}/glossaries" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets a glossary. Returns NOT_FOUND, if the glossary doesn't + // exist. + rpc GetGlossary(GetGlossaryRequest) returns (Glossary) { + option (google.api.http) = { + get: "/v3/{name=projects/*/locations/*/glossaries/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes a glossary, or cancels glossary construction + // if the glossary isn't created yet. + // Returns NOT_FOUND, if the glossary doesn't exist. + rpc DeleteGlossary(DeleteGlossaryRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v3/{name=projects/*/locations/*/glossaries/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "DeleteGlossaryResponse" + metadata_type: "DeleteGlossaryMetadata" + }; + } +} + +// Configures which glossary should be used for a specific target language, +// and defines options for applying that glossary. +message TranslateTextGlossaryConfig { + // Required. The `glossary` to be applied for this translation. + // + // The format depends on glossary: + // + // - User provided custom glossary: + // `projects/{project-number-or-id}/locations/{location-id}/glossaries/{glossary-id}` + string glossary = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Indicates match is case-insensitive. + // Default value is false if missing. + bool ignore_case = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// The request message for synchronous translation. +message TranslateTextRequest { + // Required. The content of the input in string format. + // We recommend the total content be less than 30k codepoints. The max length + // of this field is 1024. + // Use BatchTranslateText for larger text. + repeated string contents = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The format of the source text, for example, "text/html", + // "text/plain". If left blank, the MIME type defaults to "text/html". + string mime_type = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The BCP-47 language code of the input text if + // known, for example, "en-US" or "sr-Latn". Supported language codes are + // listed in Language Support. If the source language isn't specified, the API + // attempts to identify the source language automatically and returns the + // source language within the response. + string source_language_code = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The BCP-47 language code to use for translation of the input + // text, set to one of the language codes listed in Language Support. + string target_language_code = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. Project or location to make a call. Must refer to a caller's + // project. + // + // Format: `projects/{project-number-or-id}` or + // `projects/{project-number-or-id}/locations/{location-id}`. + // + // For global calls, use `projects/{project-number-or-id}/locations/global` or + // `projects/{project-number-or-id}`. + // + // Non-global location is required for requests using AutoML models or + // custom glossaries. + // + // Models and glossaries must be within the same region (have same + // location-id), otherwise an INVALID_ARGUMENT (400) error is returned. + string parent = 8 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. The `model` type requested for this translation. + // + // The format depends on model type: + // + // - AutoML Translation models: + // `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + // + // - General (built-in) models: + // `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + // + // + // For global (non-regionalized) requests, use `location-id` `global`. + // For example, + // `projects/{project-number-or-id}/locations/global/models/general/nmt`. + // + // If not provided, the default Google model (NMT) will be used. + string model = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Glossary to be applied. The glossary must be + // within the same region (have the same location-id) as the model, otherwise + // an INVALID_ARGUMENT (400) error is returned. + TranslateTextGlossaryConfig glossary_config = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The labels with user-defined metadata for the request. + // + // Label keys and values can be no longer than 63 characters + // (Unicode codepoints), can only contain lowercase letters, numeric + // characters, underscores and dashes. International characters are allowed. + // Label values are optional. Label keys must start with a letter. + // + // See https://cloud.google.com/translate/docs/advanced/labels for more + // information. + map labels = 10 [(google.api.field_behavior) = OPTIONAL]; +} + +message TranslateTextResponse { + // Text translation responses with no glossary applied. + // This field has the same length as + // [`contents`][google.cloud.translation.v3.TranslateTextRequest.contents]. + repeated Translation translations = 1; + + // Text translation responses if a glossary is provided in the request. + // This can be the same as + // [`translations`][google.cloud.translation.v3.TranslateTextResponse.translations] + // if no terms apply. This field has the same length as + // [`contents`][google.cloud.translation.v3.TranslateTextRequest.contents]. + repeated Translation glossary_translations = 3; +} + +// A single translation response. +message Translation { + // Text translated into the target language. + // If an error occurs during translation, this field might be excluded from + // the response. + string translated_text = 1; + + // Only present when `model` is present in the request. + // `model` here is normalized to have project number. + // + // For example: + // If the `model` requested in TranslationTextRequest is + // `projects/{project-id}/locations/{location-id}/models/general/nmt` then + // `model` here would be normalized to + // `projects/{project-number}/locations/{location-id}/models/general/nmt`. + string model = 2; + + // The BCP-47 language code of source text in the initial request, detected + // automatically, if no source language was passed within the initial + // request. If the source language was passed, auto-detection of the language + // does not occur and this field is empty. + string detected_language_code = 4; + + // The `glossary_config` used for this translation. + TranslateTextGlossaryConfig glossary_config = 3; +} + +// The request message for language detection. +message DetectLanguageRequest { + // Required. Project or location to make a call. Must refer to a caller's + // project. + // + // Format: `projects/{project-number-or-id}/locations/{location-id}` or + // `projects/{project-number-or-id}`. + // + // For global calls, use `projects/{project-number-or-id}/locations/global` or + // `projects/{project-number-or-id}`. + // + // Only models within the same region (has same location-id) can be used. + // Otherwise an INVALID_ARGUMENT (400) error is returned. + string parent = 5 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. The language detection model to be used. + // + // Format: + // `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/{model-id}` + // + // Only one language detection model is currently supported: + // `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/default`. + // + // If not specified, the default model is used. + string model = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The source of the document from which to detect the language. + oneof source { + // The content of the input stored as a string. + string content = 1; + } + + // Optional. The format of the source text, for example, "text/html", + // "text/plain". If left blank, the MIME type defaults to "text/html". + string mime_type = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The labels with user-defined metadata for the request. + // + // Label keys and values can be no longer than 63 characters + // (Unicode codepoints), can only contain lowercase letters, numeric + // characters, underscores and dashes. International characters are allowed. + // Label values are optional. Label keys must start with a letter. + // + // See https://cloud.google.com/translate/docs/advanced/labels for more + // information. + map labels = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response message for language detection. +message DetectedLanguage { + // The BCP-47 language code of source content in the request, detected + // automatically. + string language_code = 1; + + // The confidence of the detection result for this language. + float confidence = 2; +} + +// The response message for language detection. +message DetectLanguageResponse { + // The most probable language detected by the Translation API. For each + // request, the Translation API will always return only one result. + repeated DetectedLanguage languages = 1; +} + +// The request message for discovering supported languages. +message GetSupportedLanguagesRequest { + // Required. Project or location to make a call. Must refer to a caller's + // project. + // + // Format: `projects/{project-number-or-id}` or + // `projects/{project-number-or-id}/locations/{location-id}`. + // + // For global calls, use `projects/{project-number-or-id}/locations/global` or + // `projects/{project-number-or-id}`. + // + // Non-global location is required for AutoML models. + // + // Only models within the same region (have same location-id) can be used, + // otherwise an INVALID_ARGUMENT (400) error is returned. + string parent = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. The language to use to return localized, human readable names + // of supported languages. If missing, then display names are not returned + // in a response. + string display_language_code = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Get supported languages of this model. + // + // The format depends on model type: + // + // - AutoML Translation models: + // `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + // + // - General (built-in) models: + // `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + // + // + // Returns languages supported by the specified model. + // If missing, we get supported languages of Google general NMT model. + string model = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response message for discovering supported languages. +message SupportedLanguages { + // A list of supported language responses. This list contains an entry + // for each language the Translation API supports. + repeated SupportedLanguage languages = 1; +} + +// A single supported language response corresponds to information related +// to one supported language. +message SupportedLanguage { + // Supported language code, generally consisting of its ISO 639-1 + // identifier, for example, 'en', 'ja'. In certain cases, BCP-47 codes + // including language and region identifiers are returned (for example, + // 'zh-TW' and 'zh-CN') + string language_code = 1; + + // Human readable name of the language localized in the display language + // specified in the request. + string display_name = 2; + + // Can be used as source language. + bool support_source = 3; + + // Can be used as target language. + bool support_target = 4; +} + +// The Google Cloud Storage location for the input content. +message GcsSource { + // Required. Source data URI. For example, `gs://my_bucket/my_object`. + string input_uri = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Input configuration for BatchTranslateText request. +message InputConfig { + // Optional. Can be "text/plain" or "text/html". + // For `.tsv`, "text/html" is used if mime_type is missing. + // For `.html`, this field must be "text/html" or empty. + // For `.txt`, this field must be "text/plain" or empty. + string mime_type = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Specify the input. + oneof source { + // Required. Google Cloud Storage location for the source input. + // This can be a single file (for example, + // `gs://translation-test/input.tsv`) or a wildcard (for example, + // `gs://translation-test/*`). If a file extension is `.tsv`, it can + // contain either one or two columns. The first column (optional) is the id + // of the text request. If the first column is missing, we use the row + // number (0-based) from the input file as the ID in the output file. The + // second column is the actual text to be + // translated. We recommend each row be <= 10K Unicode codepoints, + // otherwise an error might be returned. + // Note that the input tsv must be RFC 4180 compliant. + // + // You could use https://github.com/Clever/csvlint to check potential + // formatting errors in your tsv file. + // csvlint --delimiter='\t' your_input_file.tsv + // + // The other supported file extensions are `.txt` or `.html`, which is + // treated as a single large chunk of text. + GcsSource gcs_source = 2; + } +} + +// The Google Cloud Storage location for the output content. +message GcsDestination { + // Required. The bucket used in 'output_uri_prefix' must exist and there must + // be no files under 'output_uri_prefix'. 'output_uri_prefix' must end with + // "/" and start with "gs://". One 'output_uri_prefix' can only be used by one + // batch translation job at a time. Otherwise an INVALID_ARGUMENT (400) error + // is returned. + string output_uri_prefix = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Output configuration for BatchTranslateText request. +message OutputConfig { + // Required. The destination of output. + oneof destination { + // Google Cloud Storage destination for output content. + // For every single input file (for example, gs://a/b/c.[extension]), we + // generate at most 2 * n output files. (n is the # of target_language_codes + // in the BatchTranslateTextRequest). + // + // Output files (tsv) generated are compliant with RFC 4180 except that + // record delimiters are '\n' instead of '\r\n'. We don't provide any way to + // change record delimiters. + // + // While the input files are being processed, we write/update an index file + // 'index.csv' under 'output_uri_prefix' (for example, + // gs://translation-test/index.csv) The index file is generated/updated as + // new files are being translated. The format is: + // + // input_file,target_language_code,translations_file,errors_file, + // glossary_translations_file,glossary_errors_file + // + // input_file is one file we matched using gcs_source.input_uri. + // target_language_code is provided in the request. + // translations_file contains the translations. (details provided below) + // errors_file contains the errors during processing of the file. (details + // below). Both translations_file and errors_file could be empty + // strings if we have no content to output. + // glossary_translations_file and glossary_errors_file are always empty + // strings if the input_file is tsv. They could also be empty if we have no + // content to output. + // + // Once a row is present in index.csv, the input/output matching never + // changes. Callers should also expect all the content in input_file are + // processed and ready to be consumed (that is, no partial output file is + // written). + // + // Since index.csv will be keeping updated during the process, please make + // sure there is no custom retention policy applied on the output bucket + // that may avoid file updating. + // (https://cloud.google.com/storage/docs/bucket-lock?hl=en#retention-policy) + // + // The format of translations_file (for target language code 'trg') is: + // gs://translation_test/a_b_c_'trg'_translations.[extension] + // + // If the input file extension is tsv, the output has the following + // columns: + // Column 1: ID of the request provided in the input, if it's not + // provided in the input, then the input row number is used (0-based). + // Column 2: source sentence. + // Column 3: translation without applying a glossary. Empty string if there + // is an error. + // Column 4 (only present if a glossary is provided in the request): + // translation after applying the glossary. Empty string if there is an + // error applying the glossary. Could be same string as column 3 if there is + // no glossary applied. + // + // If input file extension is a txt or html, the translation is directly + // written to the output file. If glossary is requested, a separate + // glossary_translations_file has format of + // gs://translation_test/a_b_c_'trg'_glossary_translations.[extension] + // + // The format of errors file (for target language code 'trg') is: + // gs://translation_test/a_b_c_'trg'_errors.[extension] + // + // If the input file extension is tsv, errors_file contains the following: + // Column 1: ID of the request provided in the input, if it's not + // provided in the input, then the input row number is used (0-based). + // Column 2: source sentence. + // Column 3: Error detail for the translation. Could be empty. + // Column 4 (only present if a glossary is provided in the request): + // Error when applying the glossary. + // + // If the input file extension is txt or html, glossary_error_file will be + // generated that contains error details. glossary_error_file has format of + // gs://translation_test/a_b_c_'trg'_glossary_errors.[extension] + GcsDestination gcs_destination = 1; + } +} + +// A document translation request input config. +message DocumentInputConfig { + // Specifies the source for the document's content. + // The input file size should be <= 20MB for + // - application/vnd.openxmlformats-officedocument.wordprocessingml.document + // - application/vnd.openxmlformats-officedocument.presentationml.presentation + // - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + // The input file size should be <= 20MB and the maximum page limit is 20 for + // - application/pdf + oneof source { + // Document's content represented as a stream of bytes. + bytes content = 1; + + // Google Cloud Storage location. This must be a single file. + // For example: gs://example_bucket/example_file.pdf + GcsSource gcs_source = 2; + } + + // Specifies the input document's mime_type. + // + // If not specified it will be determined using the file extension for + // gcs_source provided files. For a file provided through bytes content the + // mime_type must be provided. + // Currently supported mime types are: + // - application/pdf + // - application/vnd.openxmlformats-officedocument.wordprocessingml.document + // - application/vnd.openxmlformats-officedocument.presentationml.presentation + // - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + string mime_type = 4; +} + +// A document translation request output config. +message DocumentOutputConfig { + // A URI destination for the translated document. + // It is optional to provide a destination. If provided the results from + // TranslateDocument will be stored in the destination. + // Whether a destination is provided or not, the translated documents will be + // returned within TranslateDocumentResponse.document_translation and + // TranslateDocumentResponse.glossary_document_translation. + oneof destination { + // Optional. Google Cloud Storage destination for the translation output, + // e.g., `gs://my_bucket/my_directory/`. + // + // The destination directory provided does not have to be empty, but the + // bucket must exist. If a file with the same name as the output file + // already exists in the destination an error will be returned. + // + // For a DocumentInputConfig.contents provided document, the output file + // will have the name "output_[trg]_translations.[ext]", where + // - [trg] corresponds to the translated file's language code, + // - [ext] corresponds to the translated file's extension according to its + // mime type. + // + // + // For a DocumentInputConfig.gcs_uri provided document, the output file will + // have a name according to its URI. For example: an input file with URI: + // "gs://a/b/c.[extension]" stored in a gcs_destination bucket with name + // "my_bucket" will have an output URI: + // "gs://my_bucket/a_b_c_[trg]_translations.[ext]", where + // - [trg] corresponds to the translated file's language code, + // - [ext] corresponds to the translated file's extension according to its + // mime type. + // + // + // If the document was directly provided through the request, then the + // output document will have the format: + // "gs://my_bucket/translated_document_[trg]_translations.[ext], where + // - [trg] corresponds to the translated file's language code, + // - [ext] corresponds to the translated file's extension according to its + // mime type. + // + // If a glossary was provided, then the output URI for the glossary + // translation will be equal to the default output URI but have + // `glossary_translations` instead of `translations`. For the previous + // example, its glossary URI would be: + // "gs://my_bucket/a_b_c_[trg]_glossary_translations.[ext]". + // + // Thus the max number of output files will be 2 (Translated document, + // Glossary translated document). + // + // Callers should expect no partial outputs. If there is any error during + // document translation, no output will be stored in the Cloud Storage + // bucket. + GcsDestination gcs_destination = 1 [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. Specifies the translated document's mime_type. + // If not specified, the translated file's mime type will be the same as the + // input file's mime type. + // Currently only support the output mime type to be the same as input mime + // type. + // - application/pdf + // - application/vnd.openxmlformats-officedocument.wordprocessingml.document + // - application/vnd.openxmlformats-officedocument.presentationml.presentation + // - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + string mime_type = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// A document translation request. +message TranslateDocumentRequest { + // Required. Location to make a regional call. + // + // Format: `projects/{project-number-or-id}/locations/{location-id}`. + // + // For global calls, use `projects/{project-number-or-id}/locations/global` or + // `projects/{project-number-or-id}`. + // + // Non-global location is required for requests using AutoML models or custom + // glossaries. + // + // Models and glossaries must be within the same region (have the same + // location-id), otherwise an INVALID_ARGUMENT (400) error is returned. + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The BCP-47 language code of the input document if known, for + // example, "en-US" or "sr-Latn". Supported language codes are listed in + // Language Support. If the source language isn't specified, the API attempts + // to identify the source language automatically and returns the source + // language within the response. Source language must be specified if the + // request contains a glossary or a custom model. + string source_language_code = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The BCP-47 language code to use for translation of the input + // document, set to one of the language codes listed in Language Support. + string target_language_code = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Input configurations. + DocumentInputConfig document_input_config = 4 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Output configurations. + // Defines if the output file should be stored within Cloud Storage as well + // as the desired output format. If not provided the translated file will + // only be returned through a byte-stream and its output mime type will be + // the same as the input file's mime type. + DocumentOutputConfig document_output_config = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The `model` type requested for this translation. + // + // The format depends on model type: + // + // - AutoML Translation models: + // `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + // + // - General (built-in) models: + // `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + // + // + // If not provided, the default Google model (NMT) will be used for + // translation. + string model = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Glossary to be applied. The glossary must be within the same + // region (have the same location-id) as the model, otherwise an + // INVALID_ARGUMENT (400) error is returned. + TranslateTextGlossaryConfig glossary_config = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The labels with user-defined metadata for the request. + // + // Label keys and values can be no longer than 63 characters (Unicode + // codepoints), can only contain lowercase letters, numeric characters, + // underscores and dashes. International characters are allowed. Label values + // are optional. Label keys must start with a letter. + // + // See https://cloud.google.com/translate/docs/advanced/labels for more + // information. + map labels = 8 [(google.api.field_behavior) = OPTIONAL]; +} + +// A translated document message. +message DocumentTranslation { + // The array of translated documents. It is expected to be size 1 for now. We + // may produce multiple translated documents in the future for other type of + // file formats. + repeated bytes byte_stream_outputs = 1; + + // The translated document's mime type. + string mime_type = 2; + + // The detected language for the input document. + // If the user did not provide the source language for the input document, + // this field will have the language code automatically detected. If the + // source language was passed, auto-detection of the language does not occur + // and this field is empty. + string detected_language_code = 3; +} + +// A translated document response message. +message TranslateDocumentResponse { + // Translated document. + DocumentTranslation document_translation = 1; + + // The document's translation output if a glossary is provided in the request. + // This can be the same as [TranslateDocumentResponse.document_translation] + // if no glossary terms apply. + DocumentTranslation glossary_document_translation = 2; + + // Only present when 'model' is present in the request. + // 'model' is normalized to have a project number. + // + // For example: + // If the 'model' field in TranslateDocumentRequest is: + // `projects/{project-id}/locations/{location-id}/models/general/nmt` then + // `model` here would be normalized to + // `projects/{project-number}/locations/{location-id}/models/general/nmt`. + string model = 3; + + // The `glossary_config` used for this translation. + TranslateTextGlossaryConfig glossary_config = 4; +} + +// The batch translation request. +message BatchTranslateTextRequest { + // Required. Location to make a call. Must refer to a caller's project. + // + // Format: `projects/{project-number-or-id}/locations/{location-id}`. + // + // The `global` location is not supported for batch translation. + // + // Only AutoML Translation models or glossaries within the same region (have + // the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) + // error is returned. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. Source language code. + string source_language_code = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Specify up to 10 language codes here. + repeated string target_language_codes = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. The models to use for translation. Map's key is target language + // code. Map's value is model name. Value can be a built-in general model, + // or an AutoML Translation model. + // + // The value format depends on model type: + // + // - AutoML Translation models: + // `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + // + // - General (built-in) models: + // `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + // + // + // If the map is empty or a specific model is + // not requested for a language pair, then default google model (nmt) is used. + map models = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Input configurations. + // The total number of files matched should be <= 100. + // The total content size should be <= 100M Unicode codepoints. + // The files must use UTF-8 encoding. + repeated InputConfig input_configs = 5 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Output configuration. + // If 2 input configs match to the same file (that is, same input path), + // we don't generate output for duplicate inputs. + OutputConfig output_config = 6 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Glossaries to be applied for translation. + // It's keyed by target language code. + map glossaries = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The labels with user-defined metadata for the request. + // + // Label keys and values can be no longer than 63 characters + // (Unicode codepoints), can only contain lowercase letters, numeric + // characters, underscores and dashes. International characters are allowed. + // Label values are optional. Label keys must start with a letter. + // + // See https://cloud.google.com/translate/docs/advanced/labels for more + // information. + map labels = 9 [(google.api.field_behavior) = OPTIONAL]; +} + +// State metadata for the batch translation operation. +message BatchTranslateMetadata { + // State of the job. + enum State { + // Invalid. + STATE_UNSPECIFIED = 0; + + // Request is being processed. + RUNNING = 1; + + // The batch is processed, and at least one item was successfully + // processed. + SUCCEEDED = 2; + + // The batch is done and no item was successfully processed. + FAILED = 3; + + // Request is in the process of being canceled after caller invoked + // longrunning.Operations.CancelOperation on the request id. + CANCELLING = 4; + + // The batch is done after the user has called the + // longrunning.Operations.CancelOperation. Any records processed before the + // cancel command are output as specified in the request. + CANCELLED = 5; + } + + // The state of the operation. + State state = 1; + + // Number of successfully translated characters so far (Unicode codepoints). + int64 translated_characters = 2; + + // Number of characters that have failed to process so far (Unicode + // codepoints). + int64 failed_characters = 3; + + // Total number of characters (Unicode codepoints). + // This is the total number of codepoints from input files times the number of + // target languages and appears here shortly after the call is submitted. + int64 total_characters = 4; + + // Time when the operation was submitted. + google.protobuf.Timestamp submit_time = 5; +} + +// Stored in the +// [google.longrunning.Operation.response][google.longrunning.Operation.response] +// field returned by BatchTranslateText if at least one sentence is translated +// successfully. +message BatchTranslateResponse { + // Total number of characters (Unicode codepoints). + int64 total_characters = 1; + + // Number of successfully translated characters (Unicode codepoints). + int64 translated_characters = 2; + + // Number of characters that have failed to process (Unicode codepoints). + int64 failed_characters = 3; + + // Time when the operation was submitted. + google.protobuf.Timestamp submit_time = 4; + + // The time when the operation is finished and + // [google.longrunning.Operation.done][google.longrunning.Operation.done] is + // set to true. + google.protobuf.Timestamp end_time = 5; +} + +// Input configuration for glossaries. +message GlossaryInputConfig { + // Required. Specify the input. + oneof source { + // Required. Google Cloud Storage location of glossary data. + // File format is determined based on the filename extension. API returns + // [google.rpc.Code.INVALID_ARGUMENT] for unsupported URI-s and file + // formats. Wildcards are not allowed. This must be a single file in one of + // the following formats: + // + // For unidirectional glossaries: + // + // - TSV/CSV (`.tsv`/`.csv`): 2 column file, tab- or comma-separated. + // The first column is source text. The second column is target text. + // The file must not contain headers. That is, the first row is data, not + // column names. + // + // - TMX (`.tmx`): TMX file with parallel data defining source/target term + // pairs. + // + // For equivalent term sets glossaries: + // + // - CSV (`.csv`): Multi-column CSV file defining equivalent glossary terms + // in multiple languages. See documentation for more information - + // [glossaries](https://cloud.google.com/translate/docs/advanced/glossary). + GcsSource gcs_source = 1; + } +} + +// Represents a glossary built from user provided data. +message Glossary { + option (google.api.resource) = { + type: "translate.googleapis.com/Glossary" + pattern: "projects/{project}/locations/{location}/glossaries/{glossary}" + }; + + // Used with unidirectional glossaries. + message LanguageCodePair { + // Required. The BCP-47 language code of the input text, for example, + // "en-US". Expected to be an exact match for GlossaryTerm.language_code. + string source_language_code = 1; + + // Required. The BCP-47 language code for translation output, for example, + // "zh-CN". Expected to be an exact match for GlossaryTerm.language_code. + string target_language_code = 2; + } + + // Used with equivalent term set glossaries. + message LanguageCodesSet { + // The BCP-47 language code(s) for terms defined in the glossary. + // All entries are unique. The list contains at least two entries. + // Expected to be an exact match for GlossaryTerm.language_code. + repeated string language_codes = 1; + } + + // Required. The resource name of the glossary. Glossary names have the form + // `projects/{project-number-or-id}/locations/{location-id}/glossaries/{glossary-id}`. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Languages supported by the glossary. + oneof languages { + // Used with unidirectional glossaries. + LanguageCodePair language_pair = 3; + + // Used with equivalent term set glossaries. + LanguageCodesSet language_codes_set = 4; + } + + // Required. Provides examples to build the glossary from. + // Total glossary must not exceed 10M Unicode codepoints. + GlossaryInputConfig input_config = 5; + + // Output only. The number of entries defined in the glossary. + int32 entry_count = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. When CreateGlossary was called. + google.protobuf.Timestamp submit_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. When the glossary creation was finished. + google.protobuf.Timestamp end_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for CreateGlossary. +message CreateGlossaryRequest { + // Required. The project name. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The glossary to create. + Glossary glossary = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for GetGlossary. +message GetGlossaryRequest { + // Required. The name of the glossary to retrieve. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "translate.googleapis.com/Glossary" + } + ]; +} + +// Request message for DeleteGlossary. +message DeleteGlossaryRequest { + // Required. The name of the glossary to delete. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "translate.googleapis.com/Glossary" + } + ]; +} + +// Request message for ListGlossaries. +message ListGlossariesRequest { + // Required. The name of the project from which to list all of the glossaries. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. Requested page size. The server may return fewer glossaries than + // requested. If unspecified, the server picks an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + // Typically, this is the value of [ListGlossariesResponse.next_page_token] + // returned from the previous call to `ListGlossaries` method. + // The first page is returned if `page_token`is empty or missing. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filter specifying constraints of a list operation. + // Specify the constraint by the format of "key=value", where key must be + // "src" or "tgt", and the value must be a valid language code. + // For multiple restrictions, concatenate them by "AND" (uppercase only), + // such as: "src=en-US AND tgt=zh-CN". Notice that the exact match is used + // here, which means using 'en-US' and 'en' can lead to different results, + // which depends on the language code you used when you create the glossary. + // For the unidirectional glossaries, the "src" and "tgt" add restrictions + // on the source and target language code separately. + // For the equivalent term set glossaries, the "src" and/or "tgt" add + // restrictions on the term set. + // For example: "src=en-US AND tgt=zh-CN" will only pick the unidirectional + // glossaries which exactly match the source language code as "en-US" and the + // target language code "zh-CN", but all equivalent term set glossaries which + // contain "en-US" and "zh-CN" in their language set will be picked. + // If missing, no filtering is performed. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for ListGlossaries. +message ListGlossariesResponse { + // The list of glossaries for a project. + repeated Glossary glossaries = 1; + + // A token to retrieve a page of results. Pass this value in the + // [ListGlossariesRequest.page_token] field in the subsequent call to + // `ListGlossaries` method to retrieve the next page of results. + string next_page_token = 2; +} + +// Stored in the +// [google.longrunning.Operation.metadata][google.longrunning.Operation.metadata] +// field returned by CreateGlossary. +message CreateGlossaryMetadata { + // Enumerates the possible states that the creation request can be in. + enum State { + // Invalid. + STATE_UNSPECIFIED = 0; + + // Request is being processed. + RUNNING = 1; + + // The glossary was successfully created. + SUCCEEDED = 2; + + // Failed to create the glossary. + FAILED = 3; + + // Request is in the process of being canceled after caller invoked + // longrunning.Operations.CancelOperation on the request id. + CANCELLING = 4; + + // The glossary creation request was successfully canceled. + CANCELLED = 5; + } + + // The name of the glossary that is being created. + string name = 1; + + // The current state of the glossary creation operation. + State state = 2; + + // The time when the operation was submitted to the server. + google.protobuf.Timestamp submit_time = 3; +} + +// Stored in the +// [google.longrunning.Operation.metadata][google.longrunning.Operation.metadata] +// field returned by DeleteGlossary. +message DeleteGlossaryMetadata { + // Enumerates the possible states that the creation request can be in. + enum State { + // Invalid. + STATE_UNSPECIFIED = 0; + + // Request is being processed. + RUNNING = 1; + + // The glossary was successfully deleted. + SUCCEEDED = 2; + + // Failed to delete the glossary. + FAILED = 3; + + // Request is in the process of being canceled after caller invoked + // longrunning.Operations.CancelOperation on the request id. + CANCELLING = 4; + + // The glossary deletion request was successfully canceled. + CANCELLED = 5; + } + + // The name of the glossary that is being deleted. + string name = 1; + + // The current state of the glossary deletion operation. + State state = 2; + + // The time when the operation was submitted to the server. + google.protobuf.Timestamp submit_time = 3; +} + +// Stored in the +// [google.longrunning.Operation.response][google.longrunning.Operation.response] +// field returned by DeleteGlossary. +message DeleteGlossaryResponse { + // The name of the deleted glossary. + string name = 1; + + // The time when the operation was submitted to the server. + google.protobuf.Timestamp submit_time = 2; + + // The time when the glossary deletion is finished and + // [google.longrunning.Operation.done][google.longrunning.Operation.done] is + // set to true. + google.protobuf.Timestamp end_time = 3; +} + +// The BatchTranslateDocument request. +message BatchTranslateDocumentRequest { + // Required. Location to make a regional call. + // + // Format: `projects/{project-number-or-id}/locations/{location-id}`. + // + // The `global` location is not supported for batch translation. + // + // Only AutoML Translation models or glossaries within the same region (have + // the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) + // error is returned. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The BCP-47 language code of the input document if known, for + // example, "en-US" or "sr-Latn". Supported language codes are listed in + // Language Support (https://cloud.google.com/translate/docs/languages). + string source_language_code = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The BCP-47 language code to use for translation of the input + // document. Specify up to 10 language codes here. + repeated string target_language_codes = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Input configurations. + // The total number of files matched should be <= 100. + // The total content size to translate should be <= 100M Unicode codepoints. + // The files must use UTF-8 encoding. + repeated BatchDocumentInputConfig input_configs = 4 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Output configuration. + // If 2 input configs match to the same file (that is, same input path), + // we don't generate output for duplicate inputs. + BatchDocumentOutputConfig output_config = 5 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. The models to use for translation. Map's key is target language + // code. Map's value is the model name. Value can be a built-in general model, + // or an AutoML Translation model. + // + // The value format depends on model type: + // + // - AutoML Translation models: + // `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + // + // - General (built-in) models: + // `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + // + // + // If the map is empty or a specific model is + // not requested for a language pair, then default google model (nmt) is used. + map models = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Glossaries to be applied. It's keyed by target language code. + map glossaries = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. File format conversion map to be applied to all input files. + // Map's key is the original mime_type. Map's value is the target mime_type of + // translated documents. + // + // Supported file format conversion includes: + // - `application/pdf` to + // `application/vnd.openxmlformats-officedocument.wordprocessingml.document` + // + // If nothing specified, output files will be in the same format as the + // original file. + map format_conversions = 8 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Input configuration for BatchTranslateDocument request. +message BatchDocumentInputConfig { + // Specify the input. + oneof source { + // Google Cloud Storage location for the source input. + // This can be a single file (for example, + // `gs://translation-test/input.docx`) or a wildcard (for example, + // `gs://translation-test/*`). + // + // File mime type is determined based on extension. Supported mime type + // includes: + // - `pdf`, application/pdf + // - `docx`, + // application/vnd.openxmlformats-officedocument.wordprocessingml.document + // - `pptx`, + // application/vnd.openxmlformats-officedocument.presentationml.presentation + // - `xlsx`, + // application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + // + // The max file size to support for `.docx`, `.pptx` and `.xlsx` is 100MB. + // The max file size to support for `.pdf` is 1GB and the max page limit is + // 1000 pages. + // The max file size to support for all input documents is 1GB. + GcsSource gcs_source = 1; + } +} + +// Output configuration for BatchTranslateDocument request. +message BatchDocumentOutputConfig { + // The destination of output. The destination directory provided must exist + // and be empty. + oneof destination { + // Google Cloud Storage destination for output content. + // For every single input document (for example, gs://a/b/c.[extension]), we + // generate at most 2 * n output files. (n is the # of target_language_codes + // in the BatchTranslateDocumentRequest). + // + // While the input documents are being processed, we write/update an index + // file `index.csv` under `gcs_destination.output_uri_prefix` (for example, + // gs://translation_output/index.csv) The index file is generated/updated as + // new files are being translated. The format is: + // + // input_document,target_language_code,translation_output,error_output, + // glossary_translation_output,glossary_error_output + // + // `input_document` is one file we matched using gcs_source.input_uri. + // `target_language_code` is provided in the request. + // `translation_output` contains the translations. (details provided below) + // `error_output` contains the error message during processing of the file. + // Both translations_file and errors_file could be empty strings if we have + // no content to output. + // `glossary_translation_output` and `glossary_error_output` are the + // translated output/error when we apply glossaries. They could also be + // empty if we have no content to output. + // + // Once a row is present in index.csv, the input/output matching never + // changes. Callers should also expect all the content in input_file are + // processed and ready to be consumed (that is, no partial output file is + // written). + // + // Since index.csv will be keeping updated during the process, please make + // sure there is no custom retention policy applied on the output bucket + // that may avoid file updating. + // (https://cloud.google.com/storage/docs/bucket-lock?hl=en#retention-policy) + // + // The naming format of translation output files follows (for target + // language code [trg]): `translation_output`: + // gs://translation_output/a_b_c_[trg]_translation.[extension] + // `glossary_translation_output`: + // gs://translation_test/a_b_c_[trg]_glossary_translation.[extension] The + // output document will maintain the same file format as the input document. + // + // The naming format of error output files follows (for target language code + // [trg]): `error_output`: gs://translation_test/a_b_c_[trg]_errors.txt + // `glossary_error_output`: + // gs://translation_test/a_b_c_[trg]_glossary_translation.txt The error + // output is a txt file containing error details. + GcsDestination gcs_destination = 1; + } +} + +// Stored in the +// [google.longrunning.Operation.response][google.longrunning.Operation.response] +// field returned by BatchTranslateDocument if at least one document is +// translated successfully. +message BatchTranslateDocumentResponse { + // Total number of pages to translate in all documents. Documents without + // clear page definition (such as XLSX) are not counted. + int64 total_pages = 1; + + // Number of successfully translated pages in all documents. Documents without + // clear page definition (such as XLSX) are not counted. + int64 translated_pages = 2; + + // Number of pages that failed to process in all documents. Documents without + // clear page definition (such as XLSX) are not counted. + int64 failed_pages = 3; + + // Number of billable pages in documents with clear page definition (such as + // PDF, DOCX, PPTX) + int64 total_billable_pages = 4; + + // Total number of characters (Unicode codepoints) in all documents. + int64 total_characters = 5; + + // Number of successfully translated characters (Unicode codepoints) in all + // documents. + int64 translated_characters = 6; + + // Number of characters that have failed to process (Unicode codepoints) in + // all documents. + int64 failed_characters = 7; + + // Number of billable characters (Unicode codepoints) in documents without + // clear page definition, such as XLSX. + int64 total_billable_characters = 8; + + // Time when the operation was submitted. + google.protobuf.Timestamp submit_time = 9; + + // The time when the operation is finished and + // [google.longrunning.Operation.done][google.longrunning.Operation.done] is + // set to true. + google.protobuf.Timestamp end_time = 10; +} + +// State metadata for the batch translation operation. +message BatchTranslateDocumentMetadata { + // State of the job. + enum State { + // Invalid. + STATE_UNSPECIFIED = 0; + + // Request is being processed. + RUNNING = 1; + + // The batch is processed, and at least one item was successfully processed. + SUCCEEDED = 2; + + // The batch is done and no item was successfully processed. + FAILED = 3; + + // Request is in the process of being canceled after caller invoked + // longrunning.Operations.CancelOperation on the request id. + CANCELLING = 4; + + // The batch is done after the user has called the + // longrunning.Operations.CancelOperation. Any records processed before the + // cancel command are output as specified in the request. + CANCELLED = 5; + } + + // The state of the operation. + State state = 1; + + // Total number of pages to translate in all documents so far. Documents + // without clear page definition (such as XLSX) are not counted. + int64 total_pages = 2; + + // Number of successfully translated pages in all documents so far. Documents + // without clear page definition (such as XLSX) are not counted. + int64 translated_pages = 3; + + // Number of pages that failed to process in all documents so far. Documents + // without clear page definition (such as XLSX) are not counted. + int64 failed_pages = 4; + + // Number of billable pages in documents with clear page definition (such as + // PDF, DOCX, PPTX) so far. + int64 total_billable_pages = 5; + + // Total number of characters (Unicode codepoints) in all documents so far. + int64 total_characters = 6; + + // Number of successfully translated characters (Unicode codepoints) in all + // documents so far. + int64 translated_characters = 7; + + // Number of characters that have failed to process (Unicode codepoints) in + // all documents so far. + int64 failed_characters = 8; + + // Number of billable characters (Unicode codepoints) in documents without + // clear page definition (such as XLSX) so far. + int64 total_billable_characters = 9; + + // Time when the operation was submitted. + google.protobuf.Timestamp submit_time = 10; +} diff --git a/owl-bot-staging/v3/samples/generated/v3/snippet_metadata.google.cloud.translation.v3.json b/owl-bot-staging/v3/samples/generated/v3/snippet_metadata.google.cloud.translation.v3.json new file mode 100644 index 00000000..8a4e6dc8 --- /dev/null +++ b/owl-bot-staging/v3/samples/generated/v3/snippet_metadata.google.cloud.translation.v3.json @@ -0,0 +1,567 @@ +{ + "clientLibrary": { + "name": "nodejs-translation", + "version": "0.1.0", + "language": "TYPESCRIPT", + "apis": [ + { + "id": "google.cloud.translation.v3", + "version": "v3" + } + ] + }, + "snippets": [ + { + "regionTag": "translate_v3_generated_TranslationService_TranslateText_async", + "title": "TranslationService translateText Sample", + "origin": "API_DEFINITION", + "description": " Translates input text and returns translated text.", + "canonical": true, + "file": "translation_service.translate_text.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 115, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "TranslateText", + "fullName": "google.cloud.translation.v3.TranslationService.TranslateText", + "async": true, + "parameters": [ + { + "name": "contents", + "type": "TYPE_STRING[]" + }, + { + "name": "mime_type", + "type": "TYPE_STRING" + }, + { + "name": "source_language_code", + "type": "TYPE_STRING" + }, + { + "name": "target_language_code", + "type": "TYPE_STRING" + }, + { + "name": "parent", + "type": "TYPE_STRING" + }, + { + "name": "model", + "type": "TYPE_STRING" + }, + { + "name": "glossary_config", + "type": ".google.cloud.translation.v3.TranslateTextGlossaryConfig" + }, + { + "name": "labels", + "type": "TYPE_MESSAGE[]" + } + ], + "resultType": ".google.cloud.translation.v3.TranslateTextResponse", + "client": { + "shortName": "TranslationServiceClient", + "fullName": "google.cloud.translation.v3.TranslationServiceClient" + }, + "method": { + "shortName": "TranslateText", + "fullName": "google.cloud.translation.v3.TranslationService.TranslateText", + "service": { + "shortName": "TranslationService", + "fullName": "google.cloud.translation.v3.TranslationService" + } + } + } + }, + { + "regionTag": "translate_v3_generated_TranslationService_DetectLanguage_async", + "title": "TranslationService detectLanguage Sample", + "origin": "API_DEFINITION", + "description": " Detects the language of text within a request.", + "canonical": true, + "file": "translation_service.detect_language.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 85, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "DetectLanguage", + "fullName": "google.cloud.translation.v3.TranslationService.DetectLanguage", + "async": true, + "parameters": [ + { + "name": "parent", + "type": "TYPE_STRING" + }, + { + "name": "model", + "type": "TYPE_STRING" + }, + { + "name": "content", + "type": "TYPE_STRING" + }, + { + "name": "mime_type", + "type": "TYPE_STRING" + }, + { + "name": "labels", + "type": "TYPE_MESSAGE[]" + } + ], + "resultType": ".google.cloud.translation.v3.DetectLanguageResponse", + "client": { + "shortName": "TranslationServiceClient", + "fullName": "google.cloud.translation.v3.TranslationServiceClient" + }, + "method": { + "shortName": "DetectLanguage", + "fullName": "google.cloud.translation.v3.TranslationService.DetectLanguage", + "service": { + "shortName": "TranslationService", + "fullName": "google.cloud.translation.v3.TranslationService" + } + } + } + }, + { + "regionTag": "translate_v3_generated_TranslationService_GetSupportedLanguages_async", + "title": "TranslationService getSupportedLanguages Sample", + "origin": "API_DEFINITION", + "description": " Returns a list of supported languages for translation.", + "canonical": true, + "file": "translation_service.get_supported_languages.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 75, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "GetSupportedLanguages", + "fullName": "google.cloud.translation.v3.TranslationService.GetSupportedLanguages", + "async": true, + "parameters": [ + { + "name": "parent", + "type": "TYPE_STRING" + }, + { + "name": "display_language_code", + "type": "TYPE_STRING" + }, + { + "name": "model", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.cloud.translation.v3.SupportedLanguages", + "client": { + "shortName": "TranslationServiceClient", + "fullName": "google.cloud.translation.v3.TranslationServiceClient" + }, + "method": { + "shortName": "GetSupportedLanguages", + "fullName": "google.cloud.translation.v3.TranslationService.GetSupportedLanguages", + "service": { + "shortName": "TranslationService", + "fullName": "google.cloud.translation.v3.TranslationService" + } + } + } + }, + { + "regionTag": "translate_v3_generated_TranslationService_TranslateDocument_async", + "title": "TranslationService translateDocument Sample", + "origin": "API_DEFINITION", + "description": " Translates documents in synchronous mode.", + "canonical": true, + "file": "translation_service.translate_document.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 112, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "TranslateDocument", + "fullName": "google.cloud.translation.v3.TranslationService.TranslateDocument", + "async": true, + "parameters": [ + { + "name": "parent", + "type": "TYPE_STRING" + }, + { + "name": "source_language_code", + "type": "TYPE_STRING" + }, + { + "name": "target_language_code", + "type": "TYPE_STRING" + }, + { + "name": "document_input_config", + "type": ".google.cloud.translation.v3.DocumentInputConfig" + }, + { + "name": "document_output_config", + "type": ".google.cloud.translation.v3.DocumentOutputConfig" + }, + { + "name": "model", + "type": "TYPE_STRING" + }, + { + "name": "glossary_config", + "type": ".google.cloud.translation.v3.TranslateTextGlossaryConfig" + }, + { + "name": "labels", + "type": "TYPE_MESSAGE[]" + } + ], + "resultType": ".google.cloud.translation.v3.TranslateDocumentResponse", + "client": { + "shortName": "TranslationServiceClient", + "fullName": "google.cloud.translation.v3.TranslationServiceClient" + }, + "method": { + "shortName": "TranslateDocument", + "fullName": "google.cloud.translation.v3.TranslationService.TranslateDocument", + "service": { + "shortName": "TranslationService", + "fullName": "google.cloud.translation.v3.TranslationService" + } + } + } + }, + { + "regionTag": "translate_v3_generated_TranslationService_BatchTranslateText_async", + "title": "TranslationService batchTranslateText Sample", + "origin": "API_DEFINITION", + "description": " Translates a large volume of text in asynchronous batch mode. This function provides real-time output as the inputs are being processed. If caller cancels a request, the partial results (for an input file, it's all or nothing) may still be available on the specified output location. This call returns immediately and you can use google.longrunning.Operation.name to poll the status of the call.", + "canonical": true, + "file": "translation_service.batch_translate_text.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 109, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "BatchTranslateText", + "fullName": "google.cloud.translation.v3.TranslationService.BatchTranslateText", + "async": true, + "parameters": [ + { + "name": "parent", + "type": "TYPE_STRING" + }, + { + "name": "source_language_code", + "type": "TYPE_STRING" + }, + { + "name": "target_language_codes", + "type": "TYPE_STRING[]" + }, + { + "name": "models", + "type": "TYPE_MESSAGE[]" + }, + { + "name": "input_configs", + "type": "TYPE_MESSAGE[]" + }, + { + "name": "output_config", + "type": ".google.cloud.translation.v3.OutputConfig" + }, + { + "name": "glossaries", + "type": "TYPE_MESSAGE[]" + }, + { + "name": "labels", + "type": "TYPE_MESSAGE[]" + } + ], + "resultType": ".google.longrunning.Operation", + "client": { + "shortName": "TranslationServiceClient", + "fullName": "google.cloud.translation.v3.TranslationServiceClient" + }, + "method": { + "shortName": "BatchTranslateText", + "fullName": "google.cloud.translation.v3.TranslationService.BatchTranslateText", + "service": { + "shortName": "TranslationService", + "fullName": "google.cloud.translation.v3.TranslationService" + } + } + } + }, + { + "regionTag": "translate_v3_generated_TranslationService_BatchTranslateDocument_async", + "title": "TranslationService batchTranslateDocument Sample", + "origin": "API_DEFINITION", + "description": " Translates a large volume of document in asynchronous batch mode. This function provides real-time output as the inputs are being processed. If caller cancels a request, the partial results (for an input file, it's all or nothing) may still be available on the specified output location. This call returns immediately and you can use google.longrunning.Operation.name to poll the status of the call.", + "canonical": true, + "file": "translation_service.batch_translate_document.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 112, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "BatchTranslateDocument", + "fullName": "google.cloud.translation.v3.TranslationService.BatchTranslateDocument", + "async": true, + "parameters": [ + { + "name": "parent", + "type": "TYPE_STRING" + }, + { + "name": "source_language_code", + "type": "TYPE_STRING" + }, + { + "name": "target_language_codes", + "type": "TYPE_STRING[]" + }, + { + "name": "input_configs", + "type": "TYPE_MESSAGE[]" + }, + { + "name": "output_config", + "type": ".google.cloud.translation.v3.BatchDocumentOutputConfig" + }, + { + "name": "models", + "type": "TYPE_MESSAGE[]" + }, + { + "name": "glossaries", + "type": "TYPE_MESSAGE[]" + }, + { + "name": "format_conversions", + "type": "TYPE_MESSAGE[]" + } + ], + "resultType": ".google.longrunning.Operation", + "client": { + "shortName": "TranslationServiceClient", + "fullName": "google.cloud.translation.v3.TranslationServiceClient" + }, + "method": { + "shortName": "BatchTranslateDocument", + "fullName": "google.cloud.translation.v3.TranslationService.BatchTranslateDocument", + "service": { + "shortName": "TranslationService", + "fullName": "google.cloud.translation.v3.TranslationService" + } + } + } + }, + { + "regionTag": "translate_v3_generated_TranslationService_CreateGlossary_async", + "title": "TranslationService createGlossary Sample", + "origin": "API_DEFINITION", + "description": " Creates a glossary and returns the long-running operation. Returns NOT_FOUND, if the project doesn't exist.", + "canonical": true, + "file": "translation_service.create_glossary.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 56, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "CreateGlossary", + "fullName": "google.cloud.translation.v3.TranslationService.CreateGlossary", + "async": true, + "parameters": [ + { + "name": "parent", + "type": "TYPE_STRING" + }, + { + "name": "glossary", + "type": ".google.cloud.translation.v3.Glossary" + } + ], + "resultType": ".google.longrunning.Operation", + "client": { + "shortName": "TranslationServiceClient", + "fullName": "google.cloud.translation.v3.TranslationServiceClient" + }, + "method": { + "shortName": "CreateGlossary", + "fullName": "google.cloud.translation.v3.TranslationService.CreateGlossary", + "service": { + "shortName": "TranslationService", + "fullName": "google.cloud.translation.v3.TranslationService" + } + } + } + }, + { + "regionTag": "translate_v3_generated_TranslationService_ListGlossaries_async", + "title": "TranslationService listGlossaries Sample", + "origin": "API_DEFINITION", + "description": " Lists glossaries in a project. Returns NOT_FOUND, if the project doesn't exist.", + "canonical": true, + "file": "translation_service.list_glossaries.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 83, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "ListGlossaries", + "fullName": "google.cloud.translation.v3.TranslationService.ListGlossaries", + "async": true, + "parameters": [ + { + "name": "parent", + "type": "TYPE_STRING" + }, + { + "name": "page_size", + "type": "TYPE_INT32" + }, + { + "name": "page_token", + "type": "TYPE_STRING" + }, + { + "name": "filter", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.cloud.translation.v3.ListGlossariesResponse", + "client": { + "shortName": "TranslationServiceClient", + "fullName": "google.cloud.translation.v3.TranslationServiceClient" + }, + "method": { + "shortName": "ListGlossaries", + "fullName": "google.cloud.translation.v3.TranslationService.ListGlossaries", + "service": { + "shortName": "TranslationService", + "fullName": "google.cloud.translation.v3.TranslationService" + } + } + } + }, + { + "regionTag": "translate_v3_generated_TranslationService_GetGlossary_async", + "title": "TranslationService getGlossary Sample", + "origin": "API_DEFINITION", + "description": " Gets a glossary. Returns NOT_FOUND, if the glossary doesn't exist.", + "canonical": true, + "file": "translation_service.get_glossary.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 50, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "GetGlossary", + "fullName": "google.cloud.translation.v3.TranslationService.GetGlossary", + "async": true, + "parameters": [ + { + "name": "name", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.cloud.translation.v3.Glossary", + "client": { + "shortName": "TranslationServiceClient", + "fullName": "google.cloud.translation.v3.TranslationServiceClient" + }, + "method": { + "shortName": "GetGlossary", + "fullName": "google.cloud.translation.v3.TranslationService.GetGlossary", + "service": { + "shortName": "TranslationService", + "fullName": "google.cloud.translation.v3.TranslationService" + } + } + } + }, + { + "regionTag": "translate_v3_generated_TranslationService_DeleteGlossary_async", + "title": "TranslationService deleteGlossary Sample", + "origin": "API_DEFINITION", + "description": " Deletes a glossary, or cancels glossary construction if the glossary isn't created yet. Returns NOT_FOUND, if the glossary doesn't exist.", + "canonical": true, + "file": "translation_service.delete_glossary.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 51, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "DeleteGlossary", + "fullName": "google.cloud.translation.v3.TranslationService.DeleteGlossary", + "async": true, + "parameters": [ + { + "name": "name", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.longrunning.Operation", + "client": { + "shortName": "TranslationServiceClient", + "fullName": "google.cloud.translation.v3.TranslationServiceClient" + }, + "method": { + "shortName": "DeleteGlossary", + "fullName": "google.cloud.translation.v3.TranslationService.DeleteGlossary", + "service": { + "shortName": "TranslationService", + "fullName": "google.cloud.translation.v3.TranslationService" + } + } + } + } + ] +} diff --git a/owl-bot-staging/v3/samples/generated/v3/translation_service.batch_translate_document.js b/owl-bot-staging/v3/samples/generated/v3/translation_service.batch_translate_document.js new file mode 100644 index 00000000..337493ac --- /dev/null +++ b/owl-bot-staging/v3/samples/generated/v3/translation_service.batch_translate_document.js @@ -0,0 +1,120 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(parent, sourceLanguageCode, targetLanguageCodes, inputConfigs, outputConfig) { + // [START translate_v3_generated_TranslationService_BatchTranslateDocument_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. Location to make a regional call. + * Format: `projects/{project-number-or-id}/locations/{location-id}`. + * The `global` location is not supported for batch translation. + * Only AutoML Translation models or glossaries within the same region (have + * the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) + * error is returned. + */ + // const parent = 'abc123' + /** + * Required. The BCP-47 language code of the input document if known, for + * example, "en-US" or "sr-Latn". Supported language codes are listed in + * Language Support (https://cloud.google.com/translate/docs/languages). + */ + // const sourceLanguageCode = 'abc123' + /** + * Required. The BCP-47 language code to use for translation of the input + * document. Specify up to 10 language codes here. + */ + // const targetLanguageCodes = 'abc123' + /** + * Required. Input configurations. + * The total number of files matched should be <= 100. + * The total content size to translate should be <= 100M Unicode codepoints. + * The files must use UTF-8 encoding. + */ + // const inputConfigs = 1234 + /** + * Required. Output configuration. + * If 2 input configs match to the same file (that is, same input path), + * we don't generate output for duplicate inputs. + */ + // const outputConfig = {} + /** + * Optional. The models to use for translation. Map's key is target language + * code. Map's value is the model name. Value can be a built-in general model, + * or an AutoML Translation model. + * The value format depends on model type: + * - AutoML Translation models: + * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + * - General (built-in) models: + * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + * If the map is empty or a specific model is + * not requested for a language pair, then default google model (nmt) is used. + */ + // const models = 1234 + /** + * Optional. Glossaries to be applied. It's keyed by target language code. + */ + // const glossaries = 1234 + /** + * Optional. File format conversion map to be applied to all input files. + * Map's key is the original mime_type. Map's value is the target mime_type of + * translated documents. + * Supported file format conversion includes: + * - `application/pdf` to + * `application/vnd.openxmlformats-officedocument.wordprocessingml.document` + * If nothing specified, output files will be in the same format as the + * original file. + */ + // const formatConversions = 1234 + + // Imports the Translation library + const {TranslationServiceClient} = require('@google-cloud/translate').v3; + + // Instantiates a client + const translationClient = new TranslationServiceClient(); + + async function callBatchTranslateDocument() { + // Construct request + const request = { + parent, + sourceLanguageCode, + targetLanguageCodes, + inputConfigs, + outputConfig, + }; + + // Run request + const [operation] = await translationClient.batchTranslateDocument(request); + const [response] = await operation.promise(); + console.log(response); + } + + callBatchTranslateDocument(); + // [END translate_v3_generated_TranslationService_BatchTranslateDocument_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3/samples/generated/v3/translation_service.batch_translate_text.js b/owl-bot-staging/v3/samples/generated/v3/translation_service.batch_translate_text.js new file mode 100644 index 00000000..71e72d34 --- /dev/null +++ b/owl-bot-staging/v3/samples/generated/v3/translation_service.batch_translate_text.js @@ -0,0 +1,117 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(parent, sourceLanguageCode, targetLanguageCodes, inputConfigs, outputConfig) { + // [START translate_v3_generated_TranslationService_BatchTranslateText_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. Location to make a call. Must refer to a caller's project. + * Format: `projects/{project-number-or-id}/locations/{location-id}`. + * The `global` location is not supported for batch translation. + * Only AutoML Translation models or glossaries within the same region (have + * the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) + * error is returned. + */ + // const parent = 'abc123' + /** + * Required. Source language code. + */ + // const sourceLanguageCode = 'abc123' + /** + * Required. Specify up to 10 language codes here. + */ + // const targetLanguageCodes = 'abc123' + /** + * Optional. The models to use for translation. Map's key is target language + * code. Map's value is model name. Value can be a built-in general model, + * or an AutoML Translation model. + * The value format depends on model type: + * - AutoML Translation models: + * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + * - General (built-in) models: + * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + * If the map is empty or a specific model is + * not requested for a language pair, then default google model (nmt) is used. + */ + // const models = 1234 + /** + * Required. Input configurations. + * The total number of files matched should be <= 100. + * The total content size should be <= 100M Unicode codepoints. + * The files must use UTF-8 encoding. + */ + // const inputConfigs = 1234 + /** + * Required. Output configuration. + * If 2 input configs match to the same file (that is, same input path), + * we don't generate output for duplicate inputs. + */ + // const outputConfig = {} + /** + * Optional. Glossaries to be applied for translation. + * It's keyed by target language code. + */ + // const glossaries = 1234 + /** + * Optional. The labels with user-defined metadata for the request. + * Label keys and values can be no longer than 63 characters + * (Unicode codepoints), can only contain lowercase letters, numeric + * characters, underscores and dashes. International characters are allowed. + * Label values are optional. Label keys must start with a letter. + * See https://cloud.google.com/translate/docs/advanced/labels for more + * information. + */ + // const labels = 1234 + + // Imports the Translation library + const {TranslationServiceClient} = require('@google-cloud/translate').v3; + + // Instantiates a client + const translationClient = new TranslationServiceClient(); + + async function callBatchTranslateText() { + // Construct request + const request = { + parent, + sourceLanguageCode, + targetLanguageCodes, + inputConfigs, + outputConfig, + }; + + // Run request + const [operation] = await translationClient.batchTranslateText(request); + const [response] = await operation.promise(); + console.log(response); + } + + callBatchTranslateText(); + // [END translate_v3_generated_TranslationService_BatchTranslateText_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3/samples/generated/v3/translation_service.create_glossary.js b/owl-bot-staging/v3/samples/generated/v3/translation_service.create_glossary.js new file mode 100644 index 00000000..12f19003 --- /dev/null +++ b/owl-bot-staging/v3/samples/generated/v3/translation_service.create_glossary.js @@ -0,0 +1,64 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(parent, glossary) { + // [START translate_v3_generated_TranslationService_CreateGlossary_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The project name. + */ + // const parent = 'abc123' + /** + * Required. The glossary to create. + */ + // const glossary = {} + + // Imports the Translation library + const {TranslationServiceClient} = require('@google-cloud/translate').v3; + + // Instantiates a client + const translationClient = new TranslationServiceClient(); + + async function callCreateGlossary() { + // Construct request + const request = { + parent, + glossary, + }; + + // Run request + const [operation] = await translationClient.createGlossary(request); + const [response] = await operation.promise(); + console.log(response); + } + + callCreateGlossary(); + // [END translate_v3_generated_TranslationService_CreateGlossary_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3/samples/generated/v3/translation_service.delete_glossary.js b/owl-bot-staging/v3/samples/generated/v3/translation_service.delete_glossary.js new file mode 100644 index 00000000..10f634d3 --- /dev/null +++ b/owl-bot-staging/v3/samples/generated/v3/translation_service.delete_glossary.js @@ -0,0 +1,59 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(name) { + // [START translate_v3_generated_TranslationService_DeleteGlossary_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The name of the glossary to delete. + */ + // const name = 'abc123' + + // Imports the Translation library + const {TranslationServiceClient} = require('@google-cloud/translate').v3; + + // Instantiates a client + const translationClient = new TranslationServiceClient(); + + async function callDeleteGlossary() { + // Construct request + const request = { + name, + }; + + // Run request + const [operation] = await translationClient.deleteGlossary(request); + const [response] = await operation.promise(); + console.log(response); + } + + callDeleteGlossary(); + // [END translate_v3_generated_TranslationService_DeleteGlossary_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3/samples/generated/v3/translation_service.detect_language.js b/owl-bot-staging/v3/samples/generated/v3/translation_service.detect_language.js new file mode 100644 index 00000000..37287108 --- /dev/null +++ b/owl-bot-staging/v3/samples/generated/v3/translation_service.detect_language.js @@ -0,0 +1,93 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(parent) { + // [START translate_v3_generated_TranslationService_DetectLanguage_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. Project or location to make a call. Must refer to a caller's + * project. + * Format: `projects/{project-number-or-id}/locations/{location-id}` or + * `projects/{project-number-or-id}`. + * For global calls, use `projects/{project-number-or-id}/locations/global` or + * `projects/{project-number-or-id}`. + * Only models within the same region (has same location-id) can be used. + * Otherwise an INVALID_ARGUMENT (400) error is returned. + */ + // const parent = 'abc123' + /** + * Optional. The language detection model to be used. + * Format: + * `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/{model-id}` + * Only one language detection model is currently supported: + * `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/default`. + * If not specified, the default model is used. + */ + // const model = 'abc123' + /** + * The content of the input stored as a string. + */ + // const content = 'abc123' + /** + * Optional. The format of the source text, for example, "text/html", + * "text/plain". If left blank, the MIME type defaults to "text/html". + */ + // const mimeType = 'abc123' + /** + * Optional. The labels with user-defined metadata for the request. + * Label keys and values can be no longer than 63 characters + * (Unicode codepoints), can only contain lowercase letters, numeric + * characters, underscores and dashes. International characters are allowed. + * Label values are optional. Label keys must start with a letter. + * See https://cloud.google.com/translate/docs/advanced/labels for more + * information. + */ + // const labels = 1234 + + // Imports the Translation library + const {TranslationServiceClient} = require('@google-cloud/translate').v3; + + // Instantiates a client + const translationClient = new TranslationServiceClient(); + + async function callDetectLanguage() { + // Construct request + const request = { + parent, + }; + + // Run request + const response = await translationClient.detectLanguage(request); + console.log(response); + } + + callDetectLanguage(); + // [END translate_v3_generated_TranslationService_DetectLanguage_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3/samples/generated/v3/translation_service.get_glossary.js b/owl-bot-staging/v3/samples/generated/v3/translation_service.get_glossary.js new file mode 100644 index 00000000..ed5d7b43 --- /dev/null +++ b/owl-bot-staging/v3/samples/generated/v3/translation_service.get_glossary.js @@ -0,0 +1,58 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(name) { + // [START translate_v3_generated_TranslationService_GetGlossary_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The name of the glossary to retrieve. + */ + // const name = 'abc123' + + // Imports the Translation library + const {TranslationServiceClient} = require('@google-cloud/translate').v3; + + // Instantiates a client + const translationClient = new TranslationServiceClient(); + + async function callGetGlossary() { + // Construct request + const request = { + name, + }; + + // Run request + const response = await translationClient.getGlossary(request); + console.log(response); + } + + callGetGlossary(); + // [END translate_v3_generated_TranslationService_GetGlossary_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3/samples/generated/v3/translation_service.get_supported_languages.js b/owl-bot-staging/v3/samples/generated/v3/translation_service.get_supported_languages.js new file mode 100644 index 00000000..0a498bea --- /dev/null +++ b/owl-bot-staging/v3/samples/generated/v3/translation_service.get_supported_languages.js @@ -0,0 +1,83 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(parent) { + // [START translate_v3_generated_TranslationService_GetSupportedLanguages_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. Project or location to make a call. Must refer to a caller's + * project. + * Format: `projects/{project-number-or-id}` or + * `projects/{project-number-or-id}/locations/{location-id}`. + * For global calls, use `projects/{project-number-or-id}/locations/global` or + * `projects/{project-number-or-id}`. + * Non-global location is required for AutoML models. + * Only models within the same region (have same location-id) can be used, + * otherwise an INVALID_ARGUMENT (400) error is returned. + */ + // const parent = 'abc123' + /** + * Optional. The language to use to return localized, human readable names + * of supported languages. If missing, then display names are not returned + * in a response. + */ + // const displayLanguageCode = 'abc123' + /** + * Optional. Get supported languages of this model. + * The format depends on model type: + * - AutoML Translation models: + * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + * - General (built-in) models: + * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + * Returns languages supported by the specified model. + * If missing, we get supported languages of Google general NMT model. + */ + // const model = 'abc123' + + // Imports the Translation library + const {TranslationServiceClient} = require('@google-cloud/translate').v3; + + // Instantiates a client + const translationClient = new TranslationServiceClient(); + + async function callGetSupportedLanguages() { + // Construct request + const request = { + parent, + }; + + // Run request + const response = await translationClient.getSupportedLanguages(request); + console.log(response); + } + + callGetSupportedLanguages(); + // [END translate_v3_generated_TranslationService_GetSupportedLanguages_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3/samples/generated/v3/translation_service.list_glossaries.js b/owl-bot-staging/v3/samples/generated/v3/translation_service.list_glossaries.js new file mode 100644 index 00000000..0d085bc5 --- /dev/null +++ b/owl-bot-staging/v3/samples/generated/v3/translation_service.list_glossaries.js @@ -0,0 +1,91 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(parent) { + // [START translate_v3_generated_TranslationService_ListGlossaries_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The name of the project from which to list all of the glossaries. + */ + // const parent = 'abc123' + /** + * Optional. Requested page size. The server may return fewer glossaries than + * requested. If unspecified, the server picks an appropriate default. + */ + // const pageSize = 1234 + /** + * Optional. A token identifying a page of results the server should return. + * Typically, this is the value of ListGlossariesResponse.next_page_token + * returned from the previous call to `ListGlossaries` method. + * The first page is returned if `page_token`is empty or missing. + */ + // const pageToken = 'abc123' + /** + * Optional. Filter specifying constraints of a list operation. + * Specify the constraint by the format of "key=value", where key must be + * "src" or "tgt", and the value must be a valid language code. + * For multiple restrictions, concatenate them by "AND" (uppercase only), + * such as: "src=en-US AND tgt=zh-CN". Notice that the exact match is used + * here, which means using 'en-US' and 'en' can lead to different results, + * which depends on the language code you used when you create the glossary. + * For the unidirectional glossaries, the "src" and "tgt" add restrictions + * on the source and target language code separately. + * For the equivalent term set glossaries, the "src" and/or "tgt" add + * restrictions on the term set. + * For example: "src=en-US AND tgt=zh-CN" will only pick the unidirectional + * glossaries which exactly match the source language code as "en-US" and the + * target language code "zh-CN", but all equivalent term set glossaries which + * contain "en-US" and "zh-CN" in their language set will be picked. + * If missing, no filtering is performed. + */ + // const filter = 'abc123' + + // Imports the Translation library + const {TranslationServiceClient} = require('@google-cloud/translate').v3; + + // Instantiates a client + const translationClient = new TranslationServiceClient(); + + async function callListGlossaries() { + // Construct request + const request = { + parent, + }; + + // Run request + const iterable = await translationClient.listGlossariesAsync(request); + for await (const response of iterable) { + console.log(response); + } + } + + callListGlossaries(); + // [END translate_v3_generated_TranslationService_ListGlossaries_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3/samples/generated/v3/translation_service.translate_document.js b/owl-bot-staging/v3/samples/generated/v3/translation_service.translate_document.js new file mode 100644 index 00000000..993c4129 --- /dev/null +++ b/owl-bot-staging/v3/samples/generated/v3/translation_service.translate_document.js @@ -0,0 +1,120 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(parent, targetLanguageCode, documentInputConfig) { + // [START translate_v3_generated_TranslationService_TranslateDocument_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. Location to make a regional call. + * Format: `projects/{project-number-or-id}/locations/{location-id}`. + * For global calls, use `projects/{project-number-or-id}/locations/global` or + * `projects/{project-number-or-id}`. + * Non-global location is required for requests using AutoML models or custom + * glossaries. + * Models and glossaries must be within the same region (have the same + * location-id), otherwise an INVALID_ARGUMENT (400) error is returned. + */ + // const parent = 'abc123' + /** + * Optional. The BCP-47 language code of the input document if known, for + * example, "en-US" or "sr-Latn". Supported language codes are listed in + * Language Support. If the source language isn't specified, the API attempts + * to identify the source language automatically and returns the source + * language within the response. Source language must be specified if the + * request contains a glossary or a custom model. + */ + // const sourceLanguageCode = 'abc123' + /** + * Required. The BCP-47 language code to use for translation of the input + * document, set to one of the language codes listed in Language Support. + */ + // const targetLanguageCode = 'abc123' + /** + * Required. Input configurations. + */ + // const documentInputConfig = {} + /** + * Optional. Output configurations. + * Defines if the output file should be stored within Cloud Storage as well + * as the desired output format. If not provided the translated file will + * only be returned through a byte-stream and its output mime type will be + * the same as the input file's mime type. + */ + // const documentOutputConfig = {} + /** + * Optional. The `model` type requested for this translation. + * The format depends on model type: + * - AutoML Translation models: + * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + * - General (built-in) models: + * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + * If not provided, the default Google model (NMT) will be used for + * translation. + */ + // const model = 'abc123' + /** + * Optional. Glossary to be applied. The glossary must be within the same + * region (have the same location-id) as the model, otherwise an + * INVALID_ARGUMENT (400) error is returned. + */ + // const glossaryConfig = {} + /** + * Optional. The labels with user-defined metadata for the request. + * Label keys and values can be no longer than 63 characters (Unicode + * codepoints), can only contain lowercase letters, numeric characters, + * underscores and dashes. International characters are allowed. Label values + * are optional. Label keys must start with a letter. + * See https://cloud.google.com/translate/docs/advanced/labels for more + * information. + */ + // const labels = 1234 + + // Imports the Translation library + const {TranslationServiceClient} = require('@google-cloud/translate').v3; + + // Instantiates a client + const translationClient = new TranslationServiceClient(); + + async function callTranslateDocument() { + // Construct request + const request = { + parent, + targetLanguageCode, + documentInputConfig, + }; + + // Run request + const response = await translationClient.translateDocument(request); + console.log(response); + } + + callTranslateDocument(); + // [END translate_v3_generated_TranslationService_TranslateDocument_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3/samples/generated/v3/translation_service.translate_text.js b/owl-bot-staging/v3/samples/generated/v3/translation_service.translate_text.js new file mode 100644 index 00000000..6ec73656 --- /dev/null +++ b/owl-bot-staging/v3/samples/generated/v3/translation_service.translate_text.js @@ -0,0 +1,123 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(contents, targetLanguageCode, parent) { + // [START translate_v3_generated_TranslationService_TranslateText_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The content of the input in string format. + * We recommend the total content be less than 30k codepoints. The max length + * of this field is 1024. + * Use BatchTranslateText for larger text. + */ + // const contents = 'abc123' + /** + * Optional. The format of the source text, for example, "text/html", + * "text/plain". If left blank, the MIME type defaults to "text/html". + */ + // const mimeType = 'abc123' + /** + * Optional. The BCP-47 language code of the input text if + * known, for example, "en-US" or "sr-Latn". Supported language codes are + * listed in Language Support. If the source language isn't specified, the API + * attempts to identify the source language automatically and returns the + * source language within the response. + */ + // const sourceLanguageCode = 'abc123' + /** + * Required. The BCP-47 language code to use for translation of the input + * text, set to one of the language codes listed in Language Support. + */ + // const targetLanguageCode = 'abc123' + /** + * Required. Project or location to make a call. Must refer to a caller's + * project. + * Format: `projects/{project-number-or-id}` or + * `projects/{project-number-or-id}/locations/{location-id}`. + * For global calls, use `projects/{project-number-or-id}/locations/global` or + * `projects/{project-number-or-id}`. + * Non-global location is required for requests using AutoML models or + * custom glossaries. + * Models and glossaries must be within the same region (have same + * location-id), otherwise an INVALID_ARGUMENT (400) error is returned. + */ + // const parent = 'abc123' + /** + * Optional. The `model` type requested for this translation. + * The format depends on model type: + * - AutoML Translation models: + * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + * - General (built-in) models: + * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + * For global (non-regionalized) requests, use `location-id` `global`. + * For example, + * `projects/{project-number-or-id}/locations/global/models/general/nmt`. + * If not provided, the default Google model (NMT) will be used. + */ + // const model = 'abc123' + /** + * Optional. Glossary to be applied. The glossary must be + * within the same region (have the same location-id) as the model, otherwise + * an INVALID_ARGUMENT (400) error is returned. + */ + // const glossaryConfig = {} + /** + * Optional. The labels with user-defined metadata for the request. + * Label keys and values can be no longer than 63 characters + * (Unicode codepoints), can only contain lowercase letters, numeric + * characters, underscores and dashes. International characters are allowed. + * Label values are optional. Label keys must start with a letter. + * See https://cloud.google.com/translate/docs/advanced/labels for more + * information. + */ + // const labels = 1234 + + // Imports the Translation library + const {TranslationServiceClient} = require('@google-cloud/translate').v3; + + // Instantiates a client + const translationClient = new TranslationServiceClient(); + + async function callTranslateText() { + // Construct request + const request = { + contents, + targetLanguageCode, + parent, + }; + + // Run request + const response = await translationClient.translateText(request); + console.log(response); + } + + callTranslateText(); + // [END translate_v3_generated_TranslationService_TranslateText_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3/src/index.ts b/owl-bot-staging/v3/src/index.ts new file mode 100644 index 00000000..2ba23fc9 --- /dev/null +++ b/owl-bot-staging/v3/src/index.ts @@ -0,0 +1,25 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + +import * as v3 from './v3'; +const TranslationServiceClient = v3.TranslationServiceClient; +type TranslationServiceClient = v3.TranslationServiceClient; +export {v3, TranslationServiceClient}; +export default {v3, TranslationServiceClient}; +import * as protos from '../protos/protos'; +export {protos} diff --git a/owl-bot-staging/v3/src/v3/gapic_metadata.json b/owl-bot-staging/v3/src/v3/gapic_metadata.json new file mode 100644 index 00000000..6af9328f --- /dev/null +++ b/owl-bot-staging/v3/src/v3/gapic_metadata.json @@ -0,0 +1,127 @@ +{ + "schema": "1.0", + "comment": "This file maps proto services/RPCs to the corresponding library clients/methods", + "language": "typescript", + "protoPackage": "google.cloud.translation.v3", + "libraryPackage": "@google-cloud/translate", + "services": { + "TranslationService": { + "clients": { + "grpc": { + "libraryClient": "TranslationServiceClient", + "rpcs": { + "TranslateText": { + "methods": [ + "translateText" + ] + }, + "DetectLanguage": { + "methods": [ + "detectLanguage" + ] + }, + "GetSupportedLanguages": { + "methods": [ + "getSupportedLanguages" + ] + }, + "TranslateDocument": { + "methods": [ + "translateDocument" + ] + }, + "GetGlossary": { + "methods": [ + "getGlossary" + ] + }, + "BatchTranslateText": { + "methods": [ + "batchTranslateText" + ] + }, + "BatchTranslateDocument": { + "methods": [ + "batchTranslateDocument" + ] + }, + "CreateGlossary": { + "methods": [ + "createGlossary" + ] + }, + "DeleteGlossary": { + "methods": [ + "deleteGlossary" + ] + }, + "ListGlossaries": { + "methods": [ + "listGlossaries", + "listGlossariesStream", + "listGlossariesAsync" + ] + } + } + }, + "grpc-fallback": { + "libraryClient": "TranslationServiceClient", + "rpcs": { + "TranslateText": { + "methods": [ + "translateText" + ] + }, + "DetectLanguage": { + "methods": [ + "detectLanguage" + ] + }, + "GetSupportedLanguages": { + "methods": [ + "getSupportedLanguages" + ] + }, + "TranslateDocument": { + "methods": [ + "translateDocument" + ] + }, + "GetGlossary": { + "methods": [ + "getGlossary" + ] + }, + "BatchTranslateText": { + "methods": [ + "batchTranslateText" + ] + }, + "BatchTranslateDocument": { + "methods": [ + "batchTranslateDocument" + ] + }, + "CreateGlossary": { + "methods": [ + "createGlossary" + ] + }, + "DeleteGlossary": { + "methods": [ + "deleteGlossary" + ] + }, + "ListGlossaries": { + "methods": [ + "listGlossaries", + "listGlossariesStream", + "listGlossariesAsync" + ] + } + } + } + } + } + } +} diff --git a/owl-bot-staging/v3/src/v3/index.ts b/owl-bot-staging/v3/src/v3/index.ts new file mode 100644 index 00000000..46c99bab --- /dev/null +++ b/owl-bot-staging/v3/src/v3/index.ts @@ -0,0 +1,19 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + +export {TranslationServiceClient} from './translation_service_client'; diff --git a/owl-bot-staging/v3/src/v3/translation_service_client.ts b/owl-bot-staging/v3/src/v3/translation_service_client.ts new file mode 100644 index 00000000..c2c391a8 --- /dev/null +++ b/owl-bot-staging/v3/src/v3/translation_service_client.ts @@ -0,0 +1,1717 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + +/* global window */ +import * as gax from 'google-gax'; +import {Callback, CallOptions, Descriptors, ClientOptions, GrpcClientOptions, LROperation, PaginationCallback, GaxCall} from 'google-gax'; + +import { Transform } from 'stream'; +import { RequestType } from 'google-gax/build/src/apitypes'; +import * as protos from '../../protos/protos'; +import jsonProtos = require('../../protos/protos.json'); +/** + * Client JSON configuration object, loaded from + * `src/v3/translation_service_client_config.json`. + * This file defines retry strategy and timeouts for all API methods in this library. + */ +import * as gapicConfig from './translation_service_client_config.json'; +import { operationsProtos } from 'google-gax'; +const version = require('../../../package.json').version; + +/** + * Provides natural language translation operations. + * @class + * @memberof v3 + */ +export class TranslationServiceClient { + private _terminated = false; + private _opts: ClientOptions; + private _providedCustomServicePath: boolean; + private _gaxModule: typeof gax | typeof gax.fallback; + private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; + private _protos: {}; + private _defaults: {[method: string]: gax.CallSettings}; + auth: gax.GoogleAuth; + descriptors: Descriptors = { + page: {}, + stream: {}, + longrunning: {}, + batching: {}, + }; + warn: (code: string, message: string, warnType?: string) => void; + innerApiCalls: {[name: string]: Function}; + pathTemplates: {[name: string]: gax.PathTemplate}; + operationsClient: gax.OperationsClient; + translationServiceStub?: Promise<{[name: string]: Function}>; + + /** + * Construct an instance of TranslationServiceClient. + * + * @param {object} [options] - The configuration object. + * The options accepted by the constructor are described in detail + * in [this document](https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#creating-the-client-instance). + * The common options are: + * @param {object} [options.credentials] - Credentials object. + * @param {string} [options.credentials.client_email] + * @param {string} [options.credentials.private_key] + * @param {string} [options.email] - Account email address. Required when + * using a .pem or .p12 keyFilename. + * @param {string} [options.keyFilename] - Full path to the a .json, .pem, or + * .p12 key downloaded from the Google Developers Console. If you provide + * a path to a JSON file, the projectId option below is not necessary. + * NOTE: .pem and .p12 require you to specify options.email as well. + * @param {number} [options.port] - The port on which to connect to + * the remote host. + * @param {string} [options.projectId] - The project ID from the Google + * Developer's Console, e.g. 'grape-spaceship-123'. We will also check + * the environment variable GCLOUD_PROJECT for your project ID. If your + * app is running in an environment which supports + * {@link https://developers.google.com/identity/protocols/application-default-credentials Application Default Credentials}, + * your project ID will be detected automatically. + * @param {string} [options.apiEndpoint] - The domain name of the + * API remote host. + * @param {gax.ClientConfig} [options.clientConfig] - Client configuration override. + * Follows the structure of {@link gapicConfig}. + * @param {boolean | "rest"} [options.fallback] - Use HTTP fallback mode. + * Pass "rest" to use HTTP/1.1 REST API instead of gRPC. + * For more information, please check the + * {@link https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#http11-rest-api-mode documentation}. + */ + constructor(opts?: ClientOptions) { + // Ensure that options include all the required fields. + const staticMembers = this.constructor as typeof TranslationServiceClient; + const servicePath = opts?.servicePath || opts?.apiEndpoint || staticMembers.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); + + // If scopes are unset in options and we're connecting to a non-default endpoint, set scopes just in case. + if (servicePath !== staticMembers.servicePath && !('scopes' in opts)) { + opts['scopes'] = staticMembers.scopes; + } + + // Choose either gRPC or proto-over-HTTP implementation of google-gax. + this._gaxModule = opts.fallback ? gax.fallback : gax; + + // Create a `gaxGrpc` object, with any grpc-specific options sent to the client. + this._gaxGrpc = new this._gaxModule.GrpcClient(opts); + + // Save options to use in initialize() method. + this._opts = opts; + + // Save the auth object to the client, for use by other methods. + this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + + // Set useJWTAccessWithScope on the auth object. + this.auth.useJWTAccessWithScope = true; + + // Set defaultServicePath on the auth object. + this.auth.defaultServicePath = staticMembers.servicePath; + + // Set the default scopes in auth client if needed. + if (servicePath === staticMembers.servicePath) { + this.auth.defaultScopes = staticMembers.scopes; + } + + // Determine the client header string. + const clientHeader = [ + `gax/${this._gaxModule.version}`, + `gapic/${version}`, + ]; + if (typeof process !== 'undefined' && 'versions' in process) { + clientHeader.push(`gl-node/${process.versions.node}`); + } else { + clientHeader.push(`gl-web/${this._gaxModule.version}`); + } + if (!opts.fallback) { + clientHeader.push(`grpc/${this._gaxGrpc.grpcVersion}`); + } else if (opts.fallback === 'rest' ) { + clientHeader.push(`rest/${this._gaxGrpc.grpcVersion}`); + } + if (opts.libName && opts.libVersion) { + clientHeader.push(`${opts.libName}/${opts.libVersion}`); + } + // Load the applicable protos. + this._protos = this._gaxGrpc.loadProtoJSON(jsonProtos); + + // This API contains "path templates"; forward-slash-separated + // identifiers to uniquely identify resources within the API. + // Create useful helper objects for these. + this.pathTemplates = { + glossaryPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/locations/{location}/glossaries/{glossary}' + ), + locationPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/locations/{location}' + ), + }; + + // Some of the methods on this service return "paged" results, + // (e.g. 50 results at a time, with tokens to get subsequent + // pages). Denote the keys used for pagination and results. + this.descriptors.page = { + listGlossaries: + new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'glossaries') + }; + + const protoFilesRoot = this._gaxModule.protobuf.Root.fromJSON(jsonProtos); + // This API contains "long-running operations", which return a + // an Operation object that allows for tracking of the operation, + // rather than holding a request open. + const lroOptions: GrpcClientOptions = { + auth: this.auth, + grpc: 'grpc' in this._gaxGrpc ? this._gaxGrpc.grpc : undefined + }; + if (opts.fallback === 'rest') { + lroOptions.protoJson = protoFilesRoot; + lroOptions.httpRules = [{selector: 'google.cloud.location.Locations.GetLocation',get: '/v3/{name=projects/*/locations/*}',},{selector: 'google.cloud.location.Locations.ListLocations',get: '/v3/{name=projects/*}/locations',},{selector: 'google.longrunning.Operations.CancelOperation',post: '/v3/{name=projects/*/locations/*/operations/*}:cancel',body: '*',},{selector: 'google.longrunning.Operations.DeleteOperation',delete: '/v3/{name=projects/*/locations/*/operations/*}',},{selector: 'google.longrunning.Operations.GetOperation',get: '/v3/{name=projects/*/locations/*/operations/*}',},{selector: 'google.longrunning.Operations.ListOperations',get: '/v3/{name=projects/*/locations/*}/operations',},{selector: 'google.longrunning.Operations.WaitOperation',post: '/v3/{name=projects/*/locations/*/operations/*}:wait',body: '*',}]; + } + this.operationsClient = this._gaxModule.lro(lroOptions).operationsClient(opts); + const batchTranslateTextResponse = protoFilesRoot.lookup( + '.google.cloud.translation.v3.BatchTranslateResponse') as gax.protobuf.Type; + const batchTranslateTextMetadata = protoFilesRoot.lookup( + '.google.cloud.translation.v3.BatchTranslateMetadata') as gax.protobuf.Type; + const batchTranslateDocumentResponse = protoFilesRoot.lookup( + '.google.cloud.translation.v3.BatchTranslateDocumentResponse') as gax.protobuf.Type; + const batchTranslateDocumentMetadata = protoFilesRoot.lookup( + '.google.cloud.translation.v3.BatchTranslateDocumentMetadata') as gax.protobuf.Type; + const createGlossaryResponse = protoFilesRoot.lookup( + '.google.cloud.translation.v3.Glossary') as gax.protobuf.Type; + const createGlossaryMetadata = protoFilesRoot.lookup( + '.google.cloud.translation.v3.CreateGlossaryMetadata') as gax.protobuf.Type; + const deleteGlossaryResponse = protoFilesRoot.lookup( + '.google.cloud.translation.v3.DeleteGlossaryResponse') as gax.protobuf.Type; + const deleteGlossaryMetadata = protoFilesRoot.lookup( + '.google.cloud.translation.v3.DeleteGlossaryMetadata') as gax.protobuf.Type; + + this.descriptors.longrunning = { + batchTranslateText: new this._gaxModule.LongrunningDescriptor( + this.operationsClient, + batchTranslateTextResponse.decode.bind(batchTranslateTextResponse), + batchTranslateTextMetadata.decode.bind(batchTranslateTextMetadata)), + batchTranslateDocument: new this._gaxModule.LongrunningDescriptor( + this.operationsClient, + batchTranslateDocumentResponse.decode.bind(batchTranslateDocumentResponse), + batchTranslateDocumentMetadata.decode.bind(batchTranslateDocumentMetadata)), + createGlossary: new this._gaxModule.LongrunningDescriptor( + this.operationsClient, + createGlossaryResponse.decode.bind(createGlossaryResponse), + createGlossaryMetadata.decode.bind(createGlossaryMetadata)), + deleteGlossary: new this._gaxModule.LongrunningDescriptor( + this.operationsClient, + deleteGlossaryResponse.decode.bind(deleteGlossaryResponse), + deleteGlossaryMetadata.decode.bind(deleteGlossaryMetadata)) + }; + + // Put together the default options sent with requests. + this._defaults = this._gaxGrpc.constructSettings( + 'google.cloud.translation.v3.TranslationService', gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + + // Set up a dictionary of "inner API calls"; the core implementation + // of calling the API is handled in `google-gax`, with this code + // merely providing the destination and request information. + this.innerApiCalls = {}; + + // Add a warn function to the client constructor so it can be easily tested. + this.warn = gax.warn; + } + + /** + * Initialize the client. + * Performs asynchronous operations (such as authentication) and prepares the client. + * This function will be called automatically when any class method is called for the + * first time, but if you need to initialize it before calling an actual method, + * feel free to call initialize() directly. + * + * You can await on this method if you want to make sure the client is initialized. + * + * @returns {Promise} A promise that resolves to an authenticated service stub. + */ + initialize() { + // If the client stub promise is already initialized, return immediately. + if (this.translationServiceStub) { + return this.translationServiceStub; + } + + // Put together the "service stub" for + // google.cloud.translation.v3.TranslationService. + this.translationServiceStub = this._gaxGrpc.createStub( + this._opts.fallback ? + (this._protos as protobuf.Root).lookupService('google.cloud.translation.v3.TranslationService') : + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (this._protos as any).google.cloud.translation.v3.TranslationService, + 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 translationServiceStubMethods = + ['translateText', 'detectLanguage', 'getSupportedLanguages', 'translateDocument', 'batchTranslateText', 'batchTranslateDocument', 'createGlossary', 'listGlossaries', 'getGlossary', 'deleteGlossary']; + for (const methodName of translationServiceStubMethods) { + const callPromise = this.translationServiceStub.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) => () => { + throw err; + }); + + const descriptor = + this.descriptors.page[methodName] || + this.descriptors.longrunning[methodName] || + undefined; + const apiCall = this._gaxModule.createApiCall( + callPromise, + this._defaults[methodName], + descriptor + ); + + this.innerApiCalls[methodName] = apiCall; + } + + return this.translationServiceStub; + } + + /** + * The DNS address for this API service. + * @returns {string} The DNS address for this service. + */ + static get servicePath() { + return 'translate.googleapis.com'; + } + + /** + * The DNS address for this API service - same as servicePath(), + * exists for compatibility reasons. + * @returns {string} The DNS address for this service. + */ + static get apiEndpoint() { + return 'translate.googleapis.com'; + } + + /** + * The port for this API service. + * @returns {number} The default port for this service. + */ + static get port() { + return 443; + } + + /** + * The scopes needed to make gRPC calls for every method defined + * in this service. + * @returns {string[]} List of default scopes. + */ + static get scopes() { + return [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/cloud-translation' + ]; + } + + getProjectId(): Promise; + getProjectId(callback: Callback): void; + /** + * Return the project ID used by this class. + * @returns {Promise} A promise that resolves to string containing the project ID. + */ + getProjectId(callback?: Callback): + Promise|void { + if (callback) { + this.auth.getProjectId(callback); + return; + } + return this.auth.getProjectId(); + } + + // ------------------- + // -- Service calls -- + // ------------------- +/** + * Translates input text and returns translated text. + * + * @param {Object} request + * The request object that will be sent. + * @param {string[]} request.contents + * Required. The content of the input in string format. + * We recommend the total content be less than 30k codepoints. The max length + * of this field is 1024. + * Use BatchTranslateText for larger text. + * @param {string} [request.mimeType] + * Optional. The format of the source text, for example, "text/html", + * "text/plain". If left blank, the MIME type defaults to "text/html". + * @param {string} [request.sourceLanguageCode] + * Optional. The BCP-47 language code of the input text if + * known, for example, "en-US" or "sr-Latn". Supported language codes are + * listed in Language Support. If the source language isn't specified, the API + * attempts to identify the source language automatically and returns the + * source language within the response. + * @param {string} request.targetLanguageCode + * Required. The BCP-47 language code to use for translation of the input + * text, set to one of the language codes listed in Language Support. + * @param {string} request.parent + * Required. Project or location to make a call. Must refer to a caller's + * project. + * + * Format: `projects/{project-number-or-id}` or + * `projects/{project-number-or-id}/locations/{location-id}`. + * + * For global calls, use `projects/{project-number-or-id}/locations/global` or + * `projects/{project-number-or-id}`. + * + * Non-global location is required for requests using AutoML models or + * custom glossaries. + * + * Models and glossaries must be within the same region (have same + * location-id), otherwise an INVALID_ARGUMENT (400) error is returned. + * @param {string} [request.model] + * Optional. The `model` type requested for this translation. + * + * The format depends on model type: + * + * - AutoML Translation models: + * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + * + * - General (built-in) models: + * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + * + * + * For global (non-regionalized) requests, use `location-id` `global`. + * For example, + * `projects/{project-number-or-id}/locations/global/models/general/nmt`. + * + * If not provided, the default Google model (NMT) will be used. + * @param {google.cloud.translation.v3.TranslateTextGlossaryConfig} [request.glossaryConfig] + * Optional. Glossary to be applied. The glossary must be + * within the same region (have the same location-id) as the model, otherwise + * an INVALID_ARGUMENT (400) error is returned. + * @param {number[]} [request.labels] + * Optional. The labels with user-defined metadata for the request. + * + * Label keys and values can be no longer than 63 characters + * (Unicode codepoints), can only contain lowercase letters, numeric + * characters, underscores and dashes. International characters are allowed. + * Label values are optional. Label keys must start with a letter. + * + * See https://cloud.google.com/translate/docs/advanced/labels for more + * information. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing [TranslateTextResponse]{@link google.cloud.translation.v3.TranslateTextResponse}. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) + * for more details and examples. + * @example include:samples/generated/v3/translation_service.translate_text.js + * region_tag:translate_v3_generated_TranslationService_TranslateText_async + */ + translateText( + request?: protos.google.cloud.translation.v3.ITranslateTextRequest, + options?: CallOptions): + Promise<[ + protos.google.cloud.translation.v3.ITranslateTextResponse, + protos.google.cloud.translation.v3.ITranslateTextRequest|undefined, {}|undefined + ]>; + translateText( + request: protos.google.cloud.translation.v3.ITranslateTextRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.translation.v3.ITranslateTextResponse, + protos.google.cloud.translation.v3.ITranslateTextRequest|null|undefined, + {}|null|undefined>): void; + translateText( + request: protos.google.cloud.translation.v3.ITranslateTextRequest, + callback: Callback< + protos.google.cloud.translation.v3.ITranslateTextResponse, + protos.google.cloud.translation.v3.ITranslateTextRequest|null|undefined, + {}|null|undefined>): void; + translateText( + request?: protos.google.cloud.translation.v3.ITranslateTextRequest, + optionsOrCallback?: CallOptions|Callback< + protos.google.cloud.translation.v3.ITranslateTextResponse, + protos.google.cloud.translation.v3.ITranslateTextRequest|null|undefined, + {}|null|undefined>, + callback?: Callback< + protos.google.cloud.translation.v3.ITranslateTextResponse, + protos.google.cloud.translation.v3.ITranslateTextRequest|null|undefined, + {}|null|undefined>): + Promise<[ + protos.google.cloud.translation.v3.ITranslateTextResponse, + protos.google.cloud.translation.v3.ITranslateTextRequest|undefined, {}|undefined + ]>|void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'parent': request.parent || '', + }); + this.initialize(); + return this.innerApiCalls.translateText(request, options, callback); + } +/** + * Detects the language of text within a request. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Project or location to make a call. Must refer to a caller's + * project. + * + * Format: `projects/{project-number-or-id}/locations/{location-id}` or + * `projects/{project-number-or-id}`. + * + * For global calls, use `projects/{project-number-or-id}/locations/global` or + * `projects/{project-number-or-id}`. + * + * Only models within the same region (has same location-id) can be used. + * Otherwise an INVALID_ARGUMENT (400) error is returned. + * @param {string} [request.model] + * Optional. The language detection model to be used. + * + * Format: + * `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/{model-id}` + * + * Only one language detection model is currently supported: + * `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/default`. + * + * If not specified, the default model is used. + * @param {string} request.content + * The content of the input stored as a string. + * @param {string} [request.mimeType] + * Optional. The format of the source text, for example, "text/html", + * "text/plain". If left blank, the MIME type defaults to "text/html". + * @param {number[]} [request.labels] + * Optional. The labels with user-defined metadata for the request. + * + * Label keys and values can be no longer than 63 characters + * (Unicode codepoints), can only contain lowercase letters, numeric + * characters, underscores and dashes. International characters are allowed. + * Label values are optional. Label keys must start with a letter. + * + * See https://cloud.google.com/translate/docs/advanced/labels for more + * information. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing [DetectLanguageResponse]{@link google.cloud.translation.v3.DetectLanguageResponse}. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) + * for more details and examples. + * @example include:samples/generated/v3/translation_service.detect_language.js + * region_tag:translate_v3_generated_TranslationService_DetectLanguage_async + */ + detectLanguage( + request?: protos.google.cloud.translation.v3.IDetectLanguageRequest, + options?: CallOptions): + Promise<[ + protos.google.cloud.translation.v3.IDetectLanguageResponse, + protos.google.cloud.translation.v3.IDetectLanguageRequest|undefined, {}|undefined + ]>; + detectLanguage( + request: protos.google.cloud.translation.v3.IDetectLanguageRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.translation.v3.IDetectLanguageResponse, + protos.google.cloud.translation.v3.IDetectLanguageRequest|null|undefined, + {}|null|undefined>): void; + detectLanguage( + request: protos.google.cloud.translation.v3.IDetectLanguageRequest, + callback: Callback< + protos.google.cloud.translation.v3.IDetectLanguageResponse, + protos.google.cloud.translation.v3.IDetectLanguageRequest|null|undefined, + {}|null|undefined>): void; + detectLanguage( + request?: protos.google.cloud.translation.v3.IDetectLanguageRequest, + optionsOrCallback?: CallOptions|Callback< + protos.google.cloud.translation.v3.IDetectLanguageResponse, + protos.google.cloud.translation.v3.IDetectLanguageRequest|null|undefined, + {}|null|undefined>, + callback?: Callback< + protos.google.cloud.translation.v3.IDetectLanguageResponse, + protos.google.cloud.translation.v3.IDetectLanguageRequest|null|undefined, + {}|null|undefined>): + Promise<[ + protos.google.cloud.translation.v3.IDetectLanguageResponse, + protos.google.cloud.translation.v3.IDetectLanguageRequest|undefined, {}|undefined + ]>|void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'parent': request.parent || '', + }); + this.initialize(); + return this.innerApiCalls.detectLanguage(request, options, callback); + } +/** + * Returns a list of supported languages for translation. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Project or location to make a call. Must refer to a caller's + * project. + * + * Format: `projects/{project-number-or-id}` or + * `projects/{project-number-or-id}/locations/{location-id}`. + * + * For global calls, use `projects/{project-number-or-id}/locations/global` or + * `projects/{project-number-or-id}`. + * + * Non-global location is required for AutoML models. + * + * Only models within the same region (have same location-id) can be used, + * otherwise an INVALID_ARGUMENT (400) error is returned. + * @param {string} [request.displayLanguageCode] + * Optional. The language to use to return localized, human readable names + * of supported languages. If missing, then display names are not returned + * in a response. + * @param {string} [request.model] + * Optional. Get supported languages of this model. + * + * The format depends on model type: + * + * - AutoML Translation models: + * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + * + * - General (built-in) models: + * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + * + * + * Returns languages supported by the specified model. + * If missing, we get supported languages of Google general NMT model. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing [SupportedLanguages]{@link google.cloud.translation.v3.SupportedLanguages}. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) + * for more details and examples. + * @example include:samples/generated/v3/translation_service.get_supported_languages.js + * region_tag:translate_v3_generated_TranslationService_GetSupportedLanguages_async + */ + getSupportedLanguages( + request?: protos.google.cloud.translation.v3.IGetSupportedLanguagesRequest, + options?: CallOptions): + Promise<[ + protos.google.cloud.translation.v3.ISupportedLanguages, + protos.google.cloud.translation.v3.IGetSupportedLanguagesRequest|undefined, {}|undefined + ]>; + getSupportedLanguages( + request: protos.google.cloud.translation.v3.IGetSupportedLanguagesRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.translation.v3.ISupportedLanguages, + protos.google.cloud.translation.v3.IGetSupportedLanguagesRequest|null|undefined, + {}|null|undefined>): void; + getSupportedLanguages( + request: protos.google.cloud.translation.v3.IGetSupportedLanguagesRequest, + callback: Callback< + protos.google.cloud.translation.v3.ISupportedLanguages, + protos.google.cloud.translation.v3.IGetSupportedLanguagesRequest|null|undefined, + {}|null|undefined>): void; + getSupportedLanguages( + request?: protos.google.cloud.translation.v3.IGetSupportedLanguagesRequest, + optionsOrCallback?: CallOptions|Callback< + protos.google.cloud.translation.v3.ISupportedLanguages, + protos.google.cloud.translation.v3.IGetSupportedLanguagesRequest|null|undefined, + {}|null|undefined>, + callback?: Callback< + protos.google.cloud.translation.v3.ISupportedLanguages, + protos.google.cloud.translation.v3.IGetSupportedLanguagesRequest|null|undefined, + {}|null|undefined>): + Promise<[ + protos.google.cloud.translation.v3.ISupportedLanguages, + protos.google.cloud.translation.v3.IGetSupportedLanguagesRequest|undefined, {}|undefined + ]>|void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'parent': request.parent || '', + }); + this.initialize(); + return this.innerApiCalls.getSupportedLanguages(request, options, callback); + } +/** + * Translates documents in synchronous mode. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Location to make a regional call. + * + * Format: `projects/{project-number-or-id}/locations/{location-id}`. + * + * For global calls, use `projects/{project-number-or-id}/locations/global` or + * `projects/{project-number-or-id}`. + * + * Non-global location is required for requests using AutoML models or custom + * glossaries. + * + * Models and glossaries must be within the same region (have the same + * location-id), otherwise an INVALID_ARGUMENT (400) error is returned. + * @param {string} [request.sourceLanguageCode] + * Optional. The BCP-47 language code of the input document if known, for + * example, "en-US" or "sr-Latn". Supported language codes are listed in + * Language Support. If the source language isn't specified, the API attempts + * to identify the source language automatically and returns the source + * language within the response. Source language must be specified if the + * request contains a glossary or a custom model. + * @param {string} request.targetLanguageCode + * Required. The BCP-47 language code to use for translation of the input + * document, set to one of the language codes listed in Language Support. + * @param {google.cloud.translation.v3.DocumentInputConfig} request.documentInputConfig + * Required. Input configurations. + * @param {google.cloud.translation.v3.DocumentOutputConfig} [request.documentOutputConfig] + * Optional. Output configurations. + * Defines if the output file should be stored within Cloud Storage as well + * as the desired output format. If not provided the translated file will + * only be returned through a byte-stream and its output mime type will be + * the same as the input file's mime type. + * @param {string} [request.model] + * Optional. The `model` type requested for this translation. + * + * The format depends on model type: + * + * - AutoML Translation models: + * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + * + * - General (built-in) models: + * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + * + * + * If not provided, the default Google model (NMT) will be used for + * translation. + * @param {google.cloud.translation.v3.TranslateTextGlossaryConfig} [request.glossaryConfig] + * Optional. Glossary to be applied. The glossary must be within the same + * region (have the same location-id) as the model, otherwise an + * INVALID_ARGUMENT (400) error is returned. + * @param {number[]} [request.labels] + * Optional. The labels with user-defined metadata for the request. + * + * Label keys and values can be no longer than 63 characters (Unicode + * codepoints), can only contain lowercase letters, numeric characters, + * underscores and dashes. International characters are allowed. Label values + * are optional. Label keys must start with a letter. + * + * See https://cloud.google.com/translate/docs/advanced/labels for more + * information. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing [TranslateDocumentResponse]{@link google.cloud.translation.v3.TranslateDocumentResponse}. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) + * for more details and examples. + * @example include:samples/generated/v3/translation_service.translate_document.js + * region_tag:translate_v3_generated_TranslationService_TranslateDocument_async + */ + translateDocument( + request?: protos.google.cloud.translation.v3.ITranslateDocumentRequest, + options?: CallOptions): + Promise<[ + protos.google.cloud.translation.v3.ITranslateDocumentResponse, + protos.google.cloud.translation.v3.ITranslateDocumentRequest|undefined, {}|undefined + ]>; + translateDocument( + request: protos.google.cloud.translation.v3.ITranslateDocumentRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.translation.v3.ITranslateDocumentResponse, + protos.google.cloud.translation.v3.ITranslateDocumentRequest|null|undefined, + {}|null|undefined>): void; + translateDocument( + request: protos.google.cloud.translation.v3.ITranslateDocumentRequest, + callback: Callback< + protos.google.cloud.translation.v3.ITranslateDocumentResponse, + protos.google.cloud.translation.v3.ITranslateDocumentRequest|null|undefined, + {}|null|undefined>): void; + translateDocument( + request?: protos.google.cloud.translation.v3.ITranslateDocumentRequest, + optionsOrCallback?: CallOptions|Callback< + protos.google.cloud.translation.v3.ITranslateDocumentResponse, + protos.google.cloud.translation.v3.ITranslateDocumentRequest|null|undefined, + {}|null|undefined>, + callback?: Callback< + protos.google.cloud.translation.v3.ITranslateDocumentResponse, + protos.google.cloud.translation.v3.ITranslateDocumentRequest|null|undefined, + {}|null|undefined>): + Promise<[ + protos.google.cloud.translation.v3.ITranslateDocumentResponse, + protos.google.cloud.translation.v3.ITranslateDocumentRequest|undefined, {}|undefined + ]>|void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'parent': request.parent || '', + }); + this.initialize(); + return this.innerApiCalls.translateDocument(request, options, callback); + } +/** + * Gets a glossary. Returns NOT_FOUND, if the glossary doesn't + * exist. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the glossary to retrieve. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing [Glossary]{@link google.cloud.translation.v3.Glossary}. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) + * for more details and examples. + * @example include:samples/generated/v3/translation_service.get_glossary.js + * region_tag:translate_v3_generated_TranslationService_GetGlossary_async + */ + getGlossary( + request?: protos.google.cloud.translation.v3.IGetGlossaryRequest, + options?: CallOptions): + Promise<[ + protos.google.cloud.translation.v3.IGlossary, + protos.google.cloud.translation.v3.IGetGlossaryRequest|undefined, {}|undefined + ]>; + getGlossary( + request: protos.google.cloud.translation.v3.IGetGlossaryRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.translation.v3.IGlossary, + protos.google.cloud.translation.v3.IGetGlossaryRequest|null|undefined, + {}|null|undefined>): void; + getGlossary( + request: protos.google.cloud.translation.v3.IGetGlossaryRequest, + callback: Callback< + protos.google.cloud.translation.v3.IGlossary, + protos.google.cloud.translation.v3.IGetGlossaryRequest|null|undefined, + {}|null|undefined>): void; + getGlossary( + request?: protos.google.cloud.translation.v3.IGetGlossaryRequest, + optionsOrCallback?: CallOptions|Callback< + protos.google.cloud.translation.v3.IGlossary, + protos.google.cloud.translation.v3.IGetGlossaryRequest|null|undefined, + {}|null|undefined>, + callback?: Callback< + protos.google.cloud.translation.v3.IGlossary, + protos.google.cloud.translation.v3.IGetGlossaryRequest|null|undefined, + {}|null|undefined>): + Promise<[ + protos.google.cloud.translation.v3.IGlossary, + protos.google.cloud.translation.v3.IGetGlossaryRequest|undefined, {}|undefined + ]>|void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'name': request.name || '', + }); + this.initialize(); + return this.innerApiCalls.getGlossary(request, options, callback); + } + +/** + * Translates a large volume of text in asynchronous batch mode. + * This function provides real-time output as the inputs are being processed. + * If caller cancels a request, the partial results (for an input file, it's + * all or nothing) may still be available on the specified output location. + * + * This call returns immediately and you can + * use google.longrunning.Operation.name to poll the status of the call. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Location to make a call. Must refer to a caller's project. + * + * Format: `projects/{project-number-or-id}/locations/{location-id}`. + * + * The `global` location is not supported for batch translation. + * + * Only AutoML Translation models or glossaries within the same region (have + * the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) + * error is returned. + * @param {string} request.sourceLanguageCode + * Required. Source language code. + * @param {string[]} request.targetLanguageCodes + * Required. Specify up to 10 language codes here. + * @param {number[]} [request.models] + * Optional. The models to use for translation. Map's key is target language + * code. Map's value is model name. Value can be a built-in general model, + * or an AutoML Translation model. + * + * The value format depends on model type: + * + * - AutoML Translation models: + * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + * + * - General (built-in) models: + * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + * + * + * If the map is empty or a specific model is + * not requested for a language pair, then default google model (nmt) is used. + * @param {number[]} request.inputConfigs + * Required. Input configurations. + * The total number of files matched should be <= 100. + * The total content size should be <= 100M Unicode codepoints. + * The files must use UTF-8 encoding. + * @param {google.cloud.translation.v3.OutputConfig} request.outputConfig + * Required. Output configuration. + * If 2 input configs match to the same file (that is, same input path), + * we don't generate output for duplicate inputs. + * @param {number[]} [request.glossaries] + * Optional. Glossaries to be applied for translation. + * It's keyed by target language code. + * @param {number[]} [request.labels] + * Optional. The labels with user-defined metadata for the request. + * + * Label keys and values can be no longer than 63 characters + * (Unicode codepoints), can only contain lowercase letters, numeric + * characters, underscores and dashes. International characters are allowed. + * Label values are optional. Label keys must start with a letter. + * + * See https://cloud.google.com/translate/docs/advanced/labels for more + * information. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.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 + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) + * for more details and examples. + * @example include:samples/generated/v3/translation_service.batch_translate_text.js + * region_tag:translate_v3_generated_TranslationService_BatchTranslateText_async + */ + batchTranslateText( + request?: protos.google.cloud.translation.v3.IBatchTranslateTextRequest, + options?: CallOptions): + Promise<[ + LROperation, + protos.google.longrunning.IOperation|undefined, {}|undefined + ]>; + batchTranslateText( + request: protos.google.cloud.translation.v3.IBatchTranslateTextRequest, + options: CallOptions, + callback: Callback< + LROperation, + protos.google.longrunning.IOperation|null|undefined, + {}|null|undefined>): void; + batchTranslateText( + request: protos.google.cloud.translation.v3.IBatchTranslateTextRequest, + callback: Callback< + LROperation, + protos.google.longrunning.IOperation|null|undefined, + {}|null|undefined>): void; + batchTranslateText( + request?: protos.google.cloud.translation.v3.IBatchTranslateTextRequest, + 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 = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'parent': request.parent || '', + }); + this.initialize(); + return this.innerApiCalls.batchTranslateText(request, options, callback); + } +/** + * Check the status of the long running operation returned by `batchTranslateText()`. + * @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 + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) + * for more details and examples. + * @example include:samples/generated/v3/translation_service.batch_translate_text.js + * region_tag:translate_v3_generated_TranslationService_BatchTranslateText_async + */ + async checkBatchTranslateTextProgress(name: string): Promise>{ + const request = new operationsProtos.google.longrunning.GetOperationRequest({name}); + const [operation] = await this.operationsClient.getOperation(request); + const decodeOperation = new gax.Operation(operation, this.descriptors.longrunning.batchTranslateText, gax.createDefaultBackoffSettings()); + return decodeOperation as LROperation; + } +/** + * Translates a large volume of document in asynchronous batch mode. + * This function provides real-time output as the inputs are being processed. + * If caller cancels a request, the partial results (for an input file, it's + * all or nothing) may still be available on the specified output location. + * + * This call returns immediately and you can use + * google.longrunning.Operation.name to poll the status of the call. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Location to make a regional call. + * + * Format: `projects/{project-number-or-id}/locations/{location-id}`. + * + * The `global` location is not supported for batch translation. + * + * Only AutoML Translation models or glossaries within the same region (have + * the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) + * error is returned. + * @param {string} request.sourceLanguageCode + * Required. The BCP-47 language code of the input document if known, for + * example, "en-US" or "sr-Latn". Supported language codes are listed in + * Language Support (https://cloud.google.com/translate/docs/languages). + * @param {string[]} request.targetLanguageCodes + * Required. The BCP-47 language code to use for translation of the input + * document. Specify up to 10 language codes here. + * @param {number[]} request.inputConfigs + * Required. Input configurations. + * The total number of files matched should be <= 100. + * The total content size to translate should be <= 100M Unicode codepoints. + * The files must use UTF-8 encoding. + * @param {google.cloud.translation.v3.BatchDocumentOutputConfig} request.outputConfig + * Required. Output configuration. + * If 2 input configs match to the same file (that is, same input path), + * we don't generate output for duplicate inputs. + * @param {number[]} [request.models] + * Optional. The models to use for translation. Map's key is target language + * code. Map's value is the model name. Value can be a built-in general model, + * or an AutoML Translation model. + * + * The value format depends on model type: + * + * - AutoML Translation models: + * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + * + * - General (built-in) models: + * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + * + * + * If the map is empty or a specific model is + * not requested for a language pair, then default google model (nmt) is used. + * @param {number[]} [request.glossaries] + * Optional. Glossaries to be applied. It's keyed by target language code. + * @param {number[]} [request.formatConversions] + * Optional. File format conversion map to be applied to all input files. + * Map's key is the original mime_type. Map's value is the target mime_type of + * translated documents. + * + * Supported file format conversion includes: + * - `application/pdf` to + * `application/vnd.openxmlformats-officedocument.wordprocessingml.document` + * + * If nothing specified, output files will be in the same format as the + * original file. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.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 + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) + * for more details and examples. + * @example include:samples/generated/v3/translation_service.batch_translate_document.js + * region_tag:translate_v3_generated_TranslationService_BatchTranslateDocument_async + */ + batchTranslateDocument( + request?: protos.google.cloud.translation.v3.IBatchTranslateDocumentRequest, + options?: CallOptions): + Promise<[ + LROperation, + protos.google.longrunning.IOperation|undefined, {}|undefined + ]>; + batchTranslateDocument( + request: protos.google.cloud.translation.v3.IBatchTranslateDocumentRequest, + options: CallOptions, + callback: Callback< + LROperation, + protos.google.longrunning.IOperation|null|undefined, + {}|null|undefined>): void; + batchTranslateDocument( + request: protos.google.cloud.translation.v3.IBatchTranslateDocumentRequest, + callback: Callback< + LROperation, + protos.google.longrunning.IOperation|null|undefined, + {}|null|undefined>): void; + batchTranslateDocument( + request?: protos.google.cloud.translation.v3.IBatchTranslateDocumentRequest, + 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 = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'parent': request.parent || '', + }); + this.initialize(); + return this.innerApiCalls.batchTranslateDocument(request, options, callback); + } +/** + * Check the status of the long running operation returned by `batchTranslateDocument()`. + * @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 + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) + * for more details and examples. + * @example include:samples/generated/v3/translation_service.batch_translate_document.js + * region_tag:translate_v3_generated_TranslationService_BatchTranslateDocument_async + */ + async checkBatchTranslateDocumentProgress(name: string): Promise>{ + const request = new operationsProtos.google.longrunning.GetOperationRequest({name}); + const [operation] = await this.operationsClient.getOperation(request); + const decodeOperation = new gax.Operation(operation, this.descriptors.longrunning.batchTranslateDocument, gax.createDefaultBackoffSettings()); + return decodeOperation as LROperation; + } +/** + * Creates a glossary and returns the long-running operation. Returns + * NOT_FOUND, if the project doesn't exist. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The project name. + * @param {google.cloud.translation.v3.Glossary} request.glossary + * Required. The glossary 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 + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) + * for more details and examples. + * @example include:samples/generated/v3/translation_service.create_glossary.js + * region_tag:translate_v3_generated_TranslationService_CreateGlossary_async + */ + createGlossary( + request?: protos.google.cloud.translation.v3.ICreateGlossaryRequest, + options?: CallOptions): + Promise<[ + LROperation, + protos.google.longrunning.IOperation|undefined, {}|undefined + ]>; + createGlossary( + request: protos.google.cloud.translation.v3.ICreateGlossaryRequest, + options: CallOptions, + callback: Callback< + LROperation, + protos.google.longrunning.IOperation|null|undefined, + {}|null|undefined>): void; + createGlossary( + request: protos.google.cloud.translation.v3.ICreateGlossaryRequest, + callback: Callback< + LROperation, + protos.google.longrunning.IOperation|null|undefined, + {}|null|undefined>): void; + createGlossary( + request?: protos.google.cloud.translation.v3.ICreateGlossaryRequest, + 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 = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'parent': request.parent || '', + }); + this.initialize(); + return this.innerApiCalls.createGlossary(request, options, callback); + } +/** + * Check the status of the long running operation returned by `createGlossary()`. + * @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 + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) + * for more details and examples. + * @example include:samples/generated/v3/translation_service.create_glossary.js + * region_tag:translate_v3_generated_TranslationService_CreateGlossary_async + */ + async checkCreateGlossaryProgress(name: string): Promise>{ + const request = new operationsProtos.google.longrunning.GetOperationRequest({name}); + const [operation] = await this.operationsClient.getOperation(request); + const decodeOperation = new gax.Operation(operation, this.descriptors.longrunning.createGlossary, gax.createDefaultBackoffSettings()); + return decodeOperation as LROperation; + } +/** + * Deletes a glossary, or cancels glossary construction + * if the glossary isn't created yet. + * Returns NOT_FOUND, if the glossary doesn't exist. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the glossary to delete. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.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 + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) + * for more details and examples. + * @example include:samples/generated/v3/translation_service.delete_glossary.js + * region_tag:translate_v3_generated_TranslationService_DeleteGlossary_async + */ + deleteGlossary( + request?: protos.google.cloud.translation.v3.IDeleteGlossaryRequest, + options?: CallOptions): + Promise<[ + LROperation, + protos.google.longrunning.IOperation|undefined, {}|undefined + ]>; + deleteGlossary( + request: protos.google.cloud.translation.v3.IDeleteGlossaryRequest, + options: CallOptions, + callback: Callback< + LROperation, + protos.google.longrunning.IOperation|null|undefined, + {}|null|undefined>): void; + deleteGlossary( + request: protos.google.cloud.translation.v3.IDeleteGlossaryRequest, + callback: Callback< + LROperation, + protos.google.longrunning.IOperation|null|undefined, + {}|null|undefined>): void; + deleteGlossary( + request?: protos.google.cloud.translation.v3.IDeleteGlossaryRequest, + 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 = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'name': request.name || '', + }); + this.initialize(); + return this.innerApiCalls.deleteGlossary(request, options, callback); + } +/** + * Check the status of the long running operation returned by `deleteGlossary()`. + * @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 + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) + * for more details and examples. + * @example include:samples/generated/v3/translation_service.delete_glossary.js + * region_tag:translate_v3_generated_TranslationService_DeleteGlossary_async + */ + async checkDeleteGlossaryProgress(name: string): Promise>{ + const request = new operationsProtos.google.longrunning.GetOperationRequest({name}); + const [operation] = await this.operationsClient.getOperation(request); + const decodeOperation = new gax.Operation(operation, this.descriptors.longrunning.deleteGlossary, gax.createDefaultBackoffSettings()); + return decodeOperation as LROperation; + } + /** + * Lists glossaries in a project. Returns NOT_FOUND, if the project doesn't + * exist. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The name of the project from which to list all of the glossaries. + * @param {number} [request.pageSize] + * Optional. Requested page size. The server may return fewer glossaries than + * requested. If unspecified, the server picks an appropriate default. + * @param {string} [request.pageToken] + * Optional. A token identifying a page of results the server should return. + * Typically, this is the value of [ListGlossariesResponse.next_page_token] + * returned from the previous call to `ListGlossaries` method. + * The first page is returned if `page_token`is empty or missing. + * @param {string} [request.filter] + * Optional. Filter specifying constraints of a list operation. + * Specify the constraint by the format of "key=value", where key must be + * "src" or "tgt", and the value must be a valid language code. + * For multiple restrictions, concatenate them by "AND" (uppercase only), + * such as: "src=en-US AND tgt=zh-CN". Notice that the exact match is used + * here, which means using 'en-US' and 'en' can lead to different results, + * which depends on the language code you used when you create the glossary. + * For the unidirectional glossaries, the "src" and "tgt" add restrictions + * on the source and target language code separately. + * For the equivalent term set glossaries, the "src" and/or "tgt" add + * restrictions on the term set. + * For example: "src=en-US AND tgt=zh-CN" will only pick the unidirectional + * glossaries which exactly match the source language code as "en-US" and the + * target language code "zh-CN", but all equivalent term set glossaries which + * contain "en-US" and "zh-CN" in their language set will be picked. + * If missing, no filtering is performed. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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 [Glossary]{@link google.cloud.translation.v3.Glossary}. + * 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 `listGlossariesAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) + * for more details and examples. + */ + listGlossaries( + request?: protos.google.cloud.translation.v3.IListGlossariesRequest, + options?: CallOptions): + Promise<[ + protos.google.cloud.translation.v3.IGlossary[], + protos.google.cloud.translation.v3.IListGlossariesRequest|null, + protos.google.cloud.translation.v3.IListGlossariesResponse + ]>; + listGlossaries( + request: protos.google.cloud.translation.v3.IListGlossariesRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.translation.v3.IListGlossariesRequest, + protos.google.cloud.translation.v3.IListGlossariesResponse|null|undefined, + protos.google.cloud.translation.v3.IGlossary>): void; + listGlossaries( + request: protos.google.cloud.translation.v3.IListGlossariesRequest, + callback: PaginationCallback< + protos.google.cloud.translation.v3.IListGlossariesRequest, + protos.google.cloud.translation.v3.IListGlossariesResponse|null|undefined, + protos.google.cloud.translation.v3.IGlossary>): void; + listGlossaries( + request?: protos.google.cloud.translation.v3.IListGlossariesRequest, + optionsOrCallback?: CallOptions|PaginationCallback< + protos.google.cloud.translation.v3.IListGlossariesRequest, + protos.google.cloud.translation.v3.IListGlossariesResponse|null|undefined, + protos.google.cloud.translation.v3.IGlossary>, + callback?: PaginationCallback< + protos.google.cloud.translation.v3.IListGlossariesRequest, + protos.google.cloud.translation.v3.IListGlossariesResponse|null|undefined, + protos.google.cloud.translation.v3.IGlossary>): + Promise<[ + protos.google.cloud.translation.v3.IGlossary[], + protos.google.cloud.translation.v3.IListGlossariesRequest|null, + protos.google.cloud.translation.v3.IListGlossariesResponse + ]>|void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'parent': request.parent || '', + }); + this.initialize(); + return this.innerApiCalls.listGlossaries(request, options, callback); + } + +/** + * Equivalent to `method.name.toCamelCase()`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The name of the project from which to list all of the glossaries. + * @param {number} [request.pageSize] + * Optional. Requested page size. The server may return fewer glossaries than + * requested. If unspecified, the server picks an appropriate default. + * @param {string} [request.pageToken] + * Optional. A token identifying a page of results the server should return. + * Typically, this is the value of [ListGlossariesResponse.next_page_token] + * returned from the previous call to `ListGlossaries` method. + * The first page is returned if `page_token`is empty or missing. + * @param {string} [request.filter] + * Optional. Filter specifying constraints of a list operation. + * Specify the constraint by the format of "key=value", where key must be + * "src" or "tgt", and the value must be a valid language code. + * For multiple restrictions, concatenate them by "AND" (uppercase only), + * such as: "src=en-US AND tgt=zh-CN". Notice that the exact match is used + * here, which means using 'en-US' and 'en' can lead to different results, + * which depends on the language code you used when you create the glossary. + * For the unidirectional glossaries, the "src" and "tgt" add restrictions + * on the source and target language code separately. + * For the equivalent term set glossaries, the "src" and/or "tgt" add + * restrictions on the term set. + * For example: "src=en-US AND tgt=zh-CN" will only pick the unidirectional + * glossaries which exactly match the source language code as "en-US" and the + * target language code "zh-CN", but all equivalent term set glossaries which + * contain "en-US" and "zh-CN" in their language set will be picked. + * If missing, no filtering is performed. + * @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 [Glossary]{@link google.cloud.translation.v3.Glossary} 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 `listGlossariesAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) + * for more details and examples. + */ + listGlossariesStream( + request?: protos.google.cloud.translation.v3.IListGlossariesRequest, + options?: CallOptions): + Transform{ + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'parent': request.parent || '', + }); + const defaultCallSettings = this._defaults['listGlossaries']; + const callSettings = defaultCallSettings.merge(options); + this.initialize(); + return this.descriptors.page.listGlossaries.createStream( + this.innerApiCalls.listGlossaries as gax.GaxCall, + request, + callSettings + ); + } + +/** + * Equivalent to `listGlossaries`, 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 name of the project from which to list all of the glossaries. + * @param {number} [request.pageSize] + * Optional. Requested page size. The server may return fewer glossaries than + * requested. If unspecified, the server picks an appropriate default. + * @param {string} [request.pageToken] + * Optional. A token identifying a page of results the server should return. + * Typically, this is the value of [ListGlossariesResponse.next_page_token] + * returned from the previous call to `ListGlossaries` method. + * The first page is returned if `page_token`is empty or missing. + * @param {string} [request.filter] + * Optional. Filter specifying constraints of a list operation. + * Specify the constraint by the format of "key=value", where key must be + * "src" or "tgt", and the value must be a valid language code. + * For multiple restrictions, concatenate them by "AND" (uppercase only), + * such as: "src=en-US AND tgt=zh-CN". Notice that the exact match is used + * here, which means using 'en-US' and 'en' can lead to different results, + * which depends on the language code you used when you create the glossary. + * For the unidirectional glossaries, the "src" and "tgt" add restrictions + * on the source and target language code separately. + * For the equivalent term set glossaries, the "src" and/or "tgt" add + * restrictions on the term set. + * For example: "src=en-US AND tgt=zh-CN" will only pick the unidirectional + * glossaries which exactly match the source language code as "en-US" and the + * target language code "zh-CN", but all equivalent term set glossaries which + * contain "en-US" and "zh-CN" in their language set will be picked. + * If missing, no filtering is performed. + * @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 [async iteration](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols). + * When you iterate the returned iterable, each element will be an object representing + * [Glossary]{@link google.cloud.translation.v3.Glossary}. 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 + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) + * for more details and examples. + * @example include:samples/generated/v3/translation_service.list_glossaries.js + * region_tag:translate_v3_generated_TranslationService_ListGlossaries_async + */ + listGlossariesAsync( + request?: protos.google.cloud.translation.v3.IListGlossariesRequest, + options?: CallOptions): + AsyncIterable{ + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'parent': request.parent || '', + }); + const defaultCallSettings = this._defaults['listGlossaries']; + const callSettings = defaultCallSettings.merge(options); + this.initialize(); + return this.descriptors.page.listGlossaries.asyncIterate( + this.innerApiCalls['listGlossaries'] as GaxCall, + request as unknown as RequestType, + callSettings + ) as AsyncIterable; + } + // -------------------- + // -- Path templates -- + // -------------------- + + /** + * Return a fully-qualified glossary resource name string. + * + * @param {string} project + * @param {string} location + * @param {string} glossary + * @returns {string} Resource name string. + */ + glossaryPath(project:string,location:string,glossary:string) { + return this.pathTemplates.glossaryPathTemplate.render({ + project: project, + location: location, + glossary: glossary, + }); + } + + /** + * Parse the project from Glossary resource. + * + * @param {string} glossaryName + * A fully-qualified path representing Glossary resource. + * @returns {string} A string representing the project. + */ + matchProjectFromGlossaryName(glossaryName: string) { + return this.pathTemplates.glossaryPathTemplate.match(glossaryName).project; + } + + /** + * Parse the location from Glossary resource. + * + * @param {string} glossaryName + * A fully-qualified path representing Glossary resource. + * @returns {string} A string representing the location. + */ + matchLocationFromGlossaryName(glossaryName: string) { + return this.pathTemplates.glossaryPathTemplate.match(glossaryName).location; + } + + /** + * Parse the glossary from Glossary resource. + * + * @param {string} glossaryName + * A fully-qualified path representing Glossary resource. + * @returns {string} A string representing the glossary. + */ + matchGlossaryFromGlossaryName(glossaryName: string) { + return this.pathTemplates.glossaryPathTemplate.match(glossaryName).glossary; + } + + /** + * Return a fully-qualified location resource name string. + * + * @param {string} project + * @param {string} location + * @returns {string} Resource name string. + */ + locationPath(project:string,location:string) { + return this.pathTemplates.locationPathTemplate.render({ + project: project, + location: location, + }); + } + + /** + * Parse the project from Location resource. + * + * @param {string} locationName + * A fully-qualified path representing Location resource. + * @returns {string} A string representing the project. + */ + matchProjectFromLocationName(locationName: string) { + return this.pathTemplates.locationPathTemplate.match(locationName).project; + } + + /** + * Parse the location from Location resource. + * + * @param {string} locationName + * A fully-qualified path representing Location resource. + * @returns {string} A string representing the location. + */ + matchLocationFromLocationName(locationName: string) { + return this.pathTemplates.locationPathTemplate.match(locationName).location; + } + + /** + * Terminate the gRPC channel and close the client. + * + * The client will no longer be usable and all future behavior is undefined. + * @returns {Promise} A promise that resolves when the client is closed. + */ + close(): Promise { + if (this.translationServiceStub && !this._terminated) { + return this.translationServiceStub.then(stub => { + this._terminated = true; + stub.close(); + this.operationsClient.close(); + }); + } + return Promise.resolve(); + } +} diff --git a/owl-bot-staging/v3/src/v3/translation_service_client_config.json b/owl-bot-staging/v3/src/v3/translation_service_client_config.json new file mode 100644 index 00000000..d17bfe2c --- /dev/null +++ b/owl-bot-staging/v3/src/v3/translation_service_client_config.json @@ -0,0 +1,76 @@ +{ + "interfaces": { + "google.cloud.translation.v3.TranslationService": { + "retry_codes": { + "non_idempotent": [], + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 600000 + } + }, + "methods": { + "TranslateText": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "DetectLanguage": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "GetSupportedLanguages": { + "timeout_millis": 600000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "TranslateDocument": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "BatchTranslateText": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "BatchTranslateDocument": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "CreateGlossary": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "ListGlossaries": { + "timeout_millis": 600000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "GetGlossary": { + "timeout_millis": 600000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "DeleteGlossary": { + "timeout_millis": 600000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/owl-bot-staging/v3/src/v3/translation_service_proto_list.json b/owl-bot-staging/v3/src/v3/translation_service_proto_list.json new file mode 100644 index 00000000..21e41c10 --- /dev/null +++ b/owl-bot-staging/v3/src/v3/translation_service_proto_list.json @@ -0,0 +1,3 @@ +[ + "../../protos/google/cloud/translate/v3/translation_service.proto" +] diff --git a/owl-bot-staging/v3/system-test/fixtures/sample/src/index.js b/owl-bot-staging/v3/system-test/fixtures/sample/src/index.js new file mode 100644 index 00000000..ffce988e --- /dev/null +++ b/owl-bot-staging/v3/system-test/fixtures/sample/src/index.js @@ -0,0 +1,27 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + +/* eslint-disable node/no-missing-require, no-unused-vars */ +const translation = require('@google-cloud/translate'); + +function main() { + const translationServiceClient = new translation.TranslationServiceClient(); +} + +main(); diff --git a/owl-bot-staging/v3/system-test/fixtures/sample/src/index.ts b/owl-bot-staging/v3/system-test/fixtures/sample/src/index.ts new file mode 100644 index 00000000..38feffe8 --- /dev/null +++ b/owl-bot-staging/v3/system-test/fixtures/sample/src/index.ts @@ -0,0 +1,32 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + +import {TranslationServiceClient} from '@google-cloud/translate'; + +// check that the client class type name can be used +function doStuffWithTranslationServiceClient(client: TranslationServiceClient) { + client.close(); +} + +function main() { + // check that the client instance can be created + const translationServiceClient = new TranslationServiceClient(); + doStuffWithTranslationServiceClient(translationServiceClient); +} + +main(); diff --git a/owl-bot-staging/v3/system-test/install.ts b/owl-bot-staging/v3/system-test/install.ts new file mode 100644 index 00000000..8ec45222 --- /dev/null +++ b/owl-bot-staging/v3/system-test/install.ts @@ -0,0 +1,49 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + +import { packNTest } from 'pack-n-play'; +import { readFileSync } from 'fs'; +import { describe, it } from 'mocha'; + +describe('📦 pack-n-play test', () => { + + 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() + } + }; + await packNTest(options); + }); + + it('JavaScript code', async function() { + this.timeout(300000); + const options = { + packageDir: process.cwd(), + sample: { + description: 'JavaScript user can use the library', + ts: readFileSync('./system-test/fixtures/sample/src/index.js').toString() + } + }; + await packNTest(options); + }); + +}); diff --git a/owl-bot-staging/v3/test/gapic_translation_service_v3.ts b/owl-bot-staging/v3/test/gapic_translation_service_v3.ts new file mode 100644 index 00000000..06b2b498 --- /dev/null +++ b/owl-bot-staging/v3/test/gapic_translation_service_v3.ts @@ -0,0 +1,1569 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + +import * as protos from '../protos/protos'; +import * as assert from 'assert'; +import * as sinon from 'sinon'; +import {SinonStub} from 'sinon'; +import { describe, it } from 'mocha'; +import * as translationserviceModule from '../src'; + +import {PassThrough} from 'stream'; + +import {protobuf, LROperation, operationsProtos} from 'google-gax'; + +function generateSampleMessage(instance: T) { + const filledObject = (instance.constructor as typeof protobuf.Message) + .toObject(instance as protobuf.Message, {defaults: true}); + return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; +} + +function stubSimpleCall(response?: ResponseType, error?: Error) { + return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); +} + +function 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 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]); + } + } + 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(); }); + } + return sinon.stub().returns(mockStream); +} + +function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({done: true, value: undefined}); + } + return Promise.resolve({done: false, value: responses![counter++]}); + } + }; + } + }; + return sinon.stub().returns(asyncIterable); +} + +describe('v3.TranslationServiceClient', () => { + it('has servicePath', () => { + const servicePath = translationserviceModule.v3.TranslationServiceClient.servicePath; + assert(servicePath); + }); + + it('has apiEndpoint', () => { + const apiEndpoint = translationserviceModule.v3.TranslationServiceClient.apiEndpoint; + assert(apiEndpoint); + }); + + it('has port', () => { + const port = translationserviceModule.v3.TranslationServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); + + it('should create a client with no option', () => { + const client = new translationserviceModule.v3.TranslationServiceClient(); + assert(client); + }); + + it('should create a client with gRPC fallback', () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + fallback: true, + }); + assert(client); + }); + + it('has initialize method and supports deferred initialization', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + assert.strictEqual(client.translationServiceStub, undefined); + await client.initialize(); + assert(client.translationServiceStub); + }); + + it('has close method for the initialized client', done => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + assert(client.translationServiceStub); + client.close().then(() => { + done(); + }); + }); + + it('has close method for the non-initialized client', done => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + assert.strictEqual(client.translationServiceStub, undefined); + client.close().then(() => { + done(); + }); + }); + + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new translationserviceModule.v3.TranslationServiceClient({ + 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 translationserviceModule.v3.TranslationServiceClient({ + 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('translateText', () => { + it('invokes translateText without error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateTextRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateTextResponse()); + client.innerApiCalls.translateText = stubSimpleCall(expectedResponse); + const [response] = await client.translateText(request); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.translateText as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes translateText without error using callback', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateTextRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateTextResponse()); + client.innerApiCalls.translateText = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.translateText( + request, + (err?: Error|null, result?: protos.google.cloud.translation.v3.ITranslateTextResponse|null) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.translateText as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); + + it('invokes translateText with error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateTextRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.translateText = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.translateText(request), expectedError); + assert((client.innerApiCalls.translateText as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes translateText with closed client', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateTextRequest()); + request.parent = ''; + const expectedError = new Error('The client has already been closed.'); + client.close(); + await assert.rejects(client.translateText(request), expectedError); + }); + }); + + describe('detectLanguage', () => { + it('invokes detectLanguage without error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.DetectLanguageRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3.DetectLanguageResponse()); + client.innerApiCalls.detectLanguage = stubSimpleCall(expectedResponse); + const [response] = await client.detectLanguage(request); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.detectLanguage as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes detectLanguage without error using callback', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.DetectLanguageRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3.DetectLanguageResponse()); + client.innerApiCalls.detectLanguage = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.detectLanguage( + request, + (err?: Error|null, result?: protos.google.cloud.translation.v3.IDetectLanguageResponse|null) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.detectLanguage as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); + + it('invokes detectLanguage with error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.DetectLanguageRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.detectLanguage = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.detectLanguage(request), expectedError); + assert((client.innerApiCalls.detectLanguage as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes detectLanguage with closed client', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.DetectLanguageRequest()); + request.parent = ''; + const expectedError = new Error('The client has already been closed.'); + client.close(); + await assert.rejects(client.detectLanguage(request), expectedError); + }); + }); + + describe('getSupportedLanguages', () => { + it('invokes getSupportedLanguages without error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.GetSupportedLanguagesRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3.SupportedLanguages()); + client.innerApiCalls.getSupportedLanguages = stubSimpleCall(expectedResponse); + const [response] = await client.getSupportedLanguages(request); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.getSupportedLanguages as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes getSupportedLanguages without error using callback', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.GetSupportedLanguagesRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3.SupportedLanguages()); + client.innerApiCalls.getSupportedLanguages = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getSupportedLanguages( + request, + (err?: Error|null, result?: protos.google.cloud.translation.v3.ISupportedLanguages|null) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.getSupportedLanguages as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); + + it('invokes getSupportedLanguages with error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.GetSupportedLanguagesRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.getSupportedLanguages = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.getSupportedLanguages(request), expectedError); + assert((client.innerApiCalls.getSupportedLanguages as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes getSupportedLanguages with closed client', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.GetSupportedLanguagesRequest()); + request.parent = ''; + const expectedError = new Error('The client has already been closed.'); + client.close(); + await assert.rejects(client.getSupportedLanguages(request), expectedError); + }); + }); + + describe('translateDocument', () => { + it('invokes translateDocument without error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateDocumentRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateDocumentResponse()); + client.innerApiCalls.translateDocument = stubSimpleCall(expectedResponse); + const [response] = await client.translateDocument(request); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.translateDocument as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes translateDocument without error using callback', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateDocumentRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateDocumentResponse()); + client.innerApiCalls.translateDocument = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.translateDocument( + request, + (err?: Error|null, result?: protos.google.cloud.translation.v3.ITranslateDocumentResponse|null) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.translateDocument as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); + + it('invokes translateDocument with error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateDocumentRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.translateDocument = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.translateDocument(request), expectedError); + assert((client.innerApiCalls.translateDocument as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes translateDocument with closed client', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateDocumentRequest()); + request.parent = ''; + const expectedError = new Error('The client has already been closed.'); + client.close(); + await assert.rejects(client.translateDocument(request), expectedError); + }); + }); + + describe('getGlossary', () => { + it('invokes getGlossary without error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.GetGlossaryRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()); + client.innerApiCalls.getGlossary = stubSimpleCall(expectedResponse); + const [response] = await client.getGlossary(request); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.getGlossary as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes getGlossary without error using callback', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.GetGlossaryRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()); + client.innerApiCalls.getGlossary = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getGlossary( + request, + (err?: Error|null, result?: protos.google.cloud.translation.v3.IGlossary|null) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.getGlossary as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); + + it('invokes getGlossary with error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.GetGlossaryRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.getGlossary = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.getGlossary(request), expectedError); + assert((client.innerApiCalls.getGlossary as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes getGlossary with closed client', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.GetGlossaryRequest()); + request.name = ''; + const expectedError = new Error('The client has already been closed.'); + client.close(); + await assert.rejects(client.getGlossary(request), expectedError); + }); + }); + + describe('batchTranslateText', () => { + it('invokes batchTranslateText without error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.BatchTranslateTextRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); + client.innerApiCalls.batchTranslateText = stubLongRunningCall(expectedResponse); + const [operation] = await client.batchTranslateText(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.batchTranslateText as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes batchTranslateText without error using callback', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.BatchTranslateTextRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); + client.innerApiCalls.batchTranslateText = stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.batchTranslateText( + 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); + assert((client.innerApiCalls.batchTranslateText as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); + + it('invokes batchTranslateText with call error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.BatchTranslateTextRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.batchTranslateText = stubLongRunningCall(undefined, expectedError); + await assert.rejects(client.batchTranslateText(request), expectedError); + assert((client.innerApiCalls.batchTranslateText as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes batchTranslateText with LRO error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.BatchTranslateTextRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.batchTranslateText = stubLongRunningCall(undefined, undefined, expectedError); + const [operation] = await client.batchTranslateText(request); + await assert.rejects(operation.promise(), expectedError); + assert((client.innerApiCalls.batchTranslateText as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes checkBatchTranslateTextProgress without error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + 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.checkBatchTranslateTextProgress(expectedResponse.name); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + + it('invokes checkBatchTranslateTextProgress with error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.checkBatchTranslateTextProgress(''), expectedError); + assert((client.operationsClient.getOperation as SinonStub) + .getCall(0)); + }); + }); + + describe('batchTranslateDocument', () => { + it('invokes batchTranslateDocument without error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.BatchTranslateDocumentRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); + client.innerApiCalls.batchTranslateDocument = stubLongRunningCall(expectedResponse); + const [operation] = await client.batchTranslateDocument(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.batchTranslateDocument as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes batchTranslateDocument without error using callback', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.BatchTranslateDocumentRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); + client.innerApiCalls.batchTranslateDocument = stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.batchTranslateDocument( + 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); + assert((client.innerApiCalls.batchTranslateDocument as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); + + it('invokes batchTranslateDocument with call error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.BatchTranslateDocumentRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.batchTranslateDocument = stubLongRunningCall(undefined, expectedError); + await assert.rejects(client.batchTranslateDocument(request), expectedError); + assert((client.innerApiCalls.batchTranslateDocument as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes batchTranslateDocument with LRO error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.BatchTranslateDocumentRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.batchTranslateDocument = stubLongRunningCall(undefined, undefined, expectedError); + const [operation] = await client.batchTranslateDocument(request); + await assert.rejects(operation.promise(), expectedError); + assert((client.innerApiCalls.batchTranslateDocument as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes checkBatchTranslateDocumentProgress without error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + 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.checkBatchTranslateDocumentProgress(expectedResponse.name); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + + it('invokes checkBatchTranslateDocumentProgress with error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.checkBatchTranslateDocumentProgress(''), expectedError); + assert((client.operationsClient.getOperation as SinonStub) + .getCall(0)); + }); + }); + + describe('createGlossary', () => { + it('invokes createGlossary without error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.CreateGlossaryRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); + client.innerApiCalls.createGlossary = stubLongRunningCall(expectedResponse); + const [operation] = await client.createGlossary(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.createGlossary as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes createGlossary without error using callback', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.CreateGlossaryRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); + client.innerApiCalls.createGlossary = stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.createGlossary( + 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); + assert((client.innerApiCalls.createGlossary as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); + + it('invokes createGlossary with call error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.CreateGlossaryRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.createGlossary = stubLongRunningCall(undefined, expectedError); + await assert.rejects(client.createGlossary(request), expectedError); + assert((client.innerApiCalls.createGlossary as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes createGlossary with LRO error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.CreateGlossaryRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.createGlossary = stubLongRunningCall(undefined, undefined, expectedError); + const [operation] = await client.createGlossary(request); + await assert.rejects(operation.promise(), expectedError); + assert((client.innerApiCalls.createGlossary as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes checkCreateGlossaryProgress without error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + 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.checkCreateGlossaryProgress(expectedResponse.name); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + + it('invokes checkCreateGlossaryProgress with error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.checkCreateGlossaryProgress(''), expectedError); + assert((client.operationsClient.getOperation as SinonStub) + .getCall(0)); + }); + }); + + describe('deleteGlossary', () => { + it('invokes deleteGlossary without error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.DeleteGlossaryRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); + client.innerApiCalls.deleteGlossary = stubLongRunningCall(expectedResponse); + const [operation] = await client.deleteGlossary(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.deleteGlossary as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes deleteGlossary without error using callback', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.DeleteGlossaryRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); + client.innerApiCalls.deleteGlossary = stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.deleteGlossary( + 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); + assert((client.innerApiCalls.deleteGlossary as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); + + it('invokes deleteGlossary with call error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.DeleteGlossaryRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.deleteGlossary = stubLongRunningCall(undefined, expectedError); + await assert.rejects(client.deleteGlossary(request), expectedError); + assert((client.innerApiCalls.deleteGlossary as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes deleteGlossary with LRO error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.DeleteGlossaryRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.deleteGlossary = stubLongRunningCall(undefined, undefined, expectedError); + const [operation] = await client.deleteGlossary(request); + await assert.rejects(operation.promise(), expectedError); + assert((client.innerApiCalls.deleteGlossary as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes checkDeleteGlossaryProgress without error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + 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.checkDeleteGlossaryProgress(expectedResponse.name); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + + it('invokes checkDeleteGlossaryProgress with error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.checkDeleteGlossaryProgress(''), expectedError); + assert((client.operationsClient.getOperation as SinonStub) + .getCall(0)); + }); + }); + + describe('listGlossaries', () => { + it('invokes listGlossaries without error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.ListGlossariesRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), + generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), + generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), + ]; + client.innerApiCalls.listGlossaries = stubSimpleCall(expectedResponse); + const [response] = await client.listGlossaries(request); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.listGlossaries as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes listGlossaries without error using callback', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.ListGlossariesRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), + generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), + generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), + ]; + client.innerApiCalls.listGlossaries = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listGlossaries( + request, + (err?: Error|null, result?: protos.google.cloud.translation.v3.IGlossary[]|null) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.listGlossaries as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); + + it('invokes listGlossaries with error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.ListGlossariesRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.listGlossaries = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.listGlossaries(request), expectedError); + assert((client.innerApiCalls.listGlossaries as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes listGlossariesStream without error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.ListGlossariesRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), + generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), + generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), + ]; + client.descriptors.page.listGlossaries.createStream = stubPageStreamingCall(expectedResponse); + const stream = client.listGlossariesStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.translation.v3.Glossary[] = []; + stream.on('data', (response: protos.google.cloud.translation.v3.Glossary) => { + 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.listGlossaries.createStream as SinonStub) + .getCall(0).calledWith(client.innerApiCalls.listGlossaries, request)); + assert.strictEqual( + (client.descriptors.page.listGlossaries.createStream as SinonStub) + .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); + + it('invokes listGlossariesStream with error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.ListGlossariesRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedError = new Error('expected'); + client.descriptors.page.listGlossaries.createStream = stubPageStreamingCall(undefined, expectedError); + const stream = client.listGlossariesStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.translation.v3.Glossary[] = []; + stream.on('data', (response: protos.google.cloud.translation.v3.Glossary) => { + responses.push(response); + }); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + assert((client.descriptors.page.listGlossaries.createStream as SinonStub) + .getCall(0).calledWith(client.innerApiCalls.listGlossaries, request)); + assert.strictEqual( + (client.descriptors.page.listGlossaries.createStream as SinonStub) + .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); + + it('uses async iteration with listGlossaries without error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.ListGlossariesRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), + generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), + generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), + ]; + client.descriptors.page.listGlossaries.asyncIterate = stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.translation.v3.IGlossary[] = []; + const iterable = client.listGlossariesAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + (client.descriptors.page.listGlossaries.asyncIterate as SinonStub) + .getCall(0).args[1], request); + assert.strictEqual( + (client.descriptors.page.listGlossaries.asyncIterate as SinonStub) + .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); + + it('uses async iteration with listGlossaries with error', async () => { + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3.ListGlossariesRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent=";const expectedError = new Error('expected'); + client.descriptors.page.listGlossaries.asyncIterate = stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listGlossariesAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.translation.v3.IGlossary[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + (client.descriptors.page.listGlossaries.asyncIterate as SinonStub) + .getCall(0).args[1], request); + assert.strictEqual( + (client.descriptors.page.listGlossaries.asyncIterate as SinonStub) + .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); + }); + + describe('Path templates', () => { + + describe('glossary', () => { + const fakePath = "/rendered/path/glossary"; + const expectedParameters = { + project: "projectValue", + location: "locationValue", + glossary: "glossaryValue", + }; + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.glossaryPathTemplate.render = + sinon.stub().returns(fakePath); + client.pathTemplates.glossaryPathTemplate.match = + sinon.stub().returns(expectedParameters); + + it('glossaryPath', () => { + const result = client.glossaryPath("projectValue", "locationValue", "glossaryValue"); + assert.strictEqual(result, fakePath); + assert((client.pathTemplates.glossaryPathTemplate.render as SinonStub) + .getCall(-1).calledWith(expectedParameters)); + }); + + it('matchProjectFromGlossaryName', () => { + const result = client.matchProjectFromGlossaryName(fakePath); + assert.strictEqual(result, "projectValue"); + assert((client.pathTemplates.glossaryPathTemplate.match as SinonStub) + .getCall(-1).calledWith(fakePath)); + }); + + it('matchLocationFromGlossaryName', () => { + const result = client.matchLocationFromGlossaryName(fakePath); + assert.strictEqual(result, "locationValue"); + assert((client.pathTemplates.glossaryPathTemplate.match as SinonStub) + .getCall(-1).calledWith(fakePath)); + }); + + it('matchGlossaryFromGlossaryName', () => { + const result = client.matchGlossaryFromGlossaryName(fakePath); + assert.strictEqual(result, "glossaryValue"); + assert((client.pathTemplates.glossaryPathTemplate.match as SinonStub) + .getCall(-1).calledWith(fakePath)); + }); + }); + + describe('location', () => { + const fakePath = "/rendered/path/location"; + const expectedParameters = { + project: "projectValue", + location: "locationValue", + }; + const client = new translationserviceModule.v3.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + 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)); + }); + }); + }); +}); diff --git a/owl-bot-staging/v3/tsconfig.json b/owl-bot-staging/v3/tsconfig.json new file mode 100644 index 00000000..c78f1c88 --- /dev/null +++ b/owl-bot-staging/v3/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "./node_modules/gts/tsconfig-google.json", + "compilerOptions": { + "rootDir": ".", + "outDir": "build", + "resolveJsonModule": true, + "lib": [ + "es2018", + "dom" + ] + }, + "include": [ + "src/*.ts", + "src/**/*.ts", + "test/*.ts", + "test/**/*.ts", + "system-test/*.ts" + ] +} diff --git a/owl-bot-staging/v3/webpack.config.js b/owl-bot-staging/v3/webpack.config.js new file mode 100644 index 00000000..3504dead --- /dev/null +++ b/owl-bot-staging/v3/webpack.config.js @@ -0,0 +1,64 @@ +// 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. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +const path = require('path'); + +module.exports = { + entry: './src/index.ts', + output: { + library: 'TranslationService', + filename: './translation-service.js', + }, + node: { + child_process: 'empty', + fs: 'empty', + crypto: 'empty', + }, + resolve: { + alias: { + '../../../package.json': path.resolve(__dirname, 'package.json'), + }, + extensions: ['.js', '.json', '.ts'], + }, + module: { + rules: [ + { + test: /\.tsx?$/, + use: 'ts-loader', + exclude: /node_modules/ + }, + { + test: /node_modules[\\/]@grpc[\\/]grpc-js/, + use: 'null-loader' + }, + { + test: /node_modules[\\/]grpc/, + use: 'null-loader' + }, + { + test: /node_modules[\\/]retry-request/, + use: 'null-loader' + }, + { + test: /node_modules[\\/]https?-proxy-agent/, + use: 'null-loader' + }, + { + test: /node_modules[\\/]gtoken/, + use: 'null-loader' + }, + ], + }, + mode: 'production', +}; diff --git a/owl-bot-staging/v3beta1/.eslintignore b/owl-bot-staging/v3beta1/.eslintignore new file mode 100644 index 00000000..cfc348ec --- /dev/null +++ b/owl-bot-staging/v3beta1/.eslintignore @@ -0,0 +1,7 @@ +**/node_modules +**/.coverage +build/ +docs/ +protos/ +system-test/ +samples/generated/ diff --git a/owl-bot-staging/v3beta1/.eslintrc.json b/owl-bot-staging/v3beta1/.eslintrc.json new file mode 100644 index 00000000..78215349 --- /dev/null +++ b/owl-bot-staging/v3beta1/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "./node_modules/gts" +} diff --git a/owl-bot-staging/v3beta1/.gitignore b/owl-bot-staging/v3beta1/.gitignore new file mode 100644 index 00000000..5d32b237 --- /dev/null +++ b/owl-bot-staging/v3beta1/.gitignore @@ -0,0 +1,14 @@ +**/*.log +**/node_modules +.coverage +coverage +.nyc_output +docs/ +out/ +build/ +system-test/secrets.js +system-test/*key.json +*.lock +.DS_Store +package-lock.json +__pycache__ diff --git a/owl-bot-staging/v3beta1/.jsdoc.js b/owl-bot-staging/v3beta1/.jsdoc.js new file mode 100644 index 00000000..2f0f785e --- /dev/null +++ b/owl-bot-staging/v3beta1/.jsdoc.js @@ -0,0 +1,55 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + +'use strict'; + +module.exports = { + opts: { + readme: './README.md', + package: './package.json', + template: './node_modules/jsdoc-fresh', + recurse: true, + verbose: true, + destination: './docs/' + }, + plugins: [ + 'plugins/markdown', + 'jsdoc-region-tag' + ], + source: { + excludePattern: '(^|\\/|\\\\)[._]', + include: [ + 'build/src', + 'protos' + ], + includePattern: '\\.js$' + }, + templates: { + copyright: 'Copyright 2022 Google LLC', + includeDate: false, + sourceFiles: false, + systemName: '@google-cloud/translate', + theme: 'lumen', + default: { + outputSourceFiles: false + } + }, + markdown: { + idInHeadings: true + } +}; diff --git a/owl-bot-staging/v3beta1/.mocharc.js b/owl-bot-staging/v3beta1/.mocharc.js new file mode 100644 index 00000000..481c522b --- /dev/null +++ b/owl-bot-staging/v3beta1/.mocharc.js @@ -0,0 +1,33 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + +const config = { + "enable-source-maps": true, + "throw-deprecation": true, + "timeout": 10000 +} +if (process.env.MOCHA_THROW_DEPRECATION === 'false') { + delete config['throw-deprecation']; +} +if (process.env.MOCHA_REPORTER) { + config.reporter = process.env.MOCHA_REPORTER; +} +if (process.env.MOCHA_REPORTER_OUTPUT) { + config['reporter-option'] = `output=${process.env.MOCHA_REPORTER_OUTPUT}`; +} +module.exports = config diff --git a/owl-bot-staging/v3beta1/.prettierrc.js b/owl-bot-staging/v3beta1/.prettierrc.js new file mode 100644 index 00000000..494e1478 --- /dev/null +++ b/owl-bot-staging/v3beta1/.prettierrc.js @@ -0,0 +1,22 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + +module.exports = { + ...require('gts/.prettierrc.json') +} diff --git a/owl-bot-staging/v3beta1/README.md b/owl-bot-staging/v3beta1/README.md new file mode 100644 index 00000000..93a92542 --- /dev/null +++ b/owl-bot-staging/v3beta1/README.md @@ -0,0 +1 @@ +Translation: Nodejs Client diff --git a/owl-bot-staging/v3beta1/linkinator.config.json b/owl-bot-staging/v3beta1/linkinator.config.json new file mode 100644 index 00000000..befd23c8 --- /dev/null +++ b/owl-bot-staging/v3beta1/linkinator.config.json @@ -0,0 +1,16 @@ +{ + "recurse": true, + "skip": [ + "https://codecov.io/gh/googleapis/", + "www.googleapis.com", + "img.shields.io", + "https://console.cloud.google.com/cloudshell", + "https://support.google.com" + ], + "silent": true, + "concurrency": 5, + "retry": true, + "retryErrors": true, + "retryErrorsCount": 5, + "retryErrorsJitter": 3000 +} diff --git a/owl-bot-staging/v3beta1/package.json b/owl-bot-staging/v3beta1/package.json new file mode 100644 index 00000000..91e27cd6 --- /dev/null +++ b/owl-bot-staging/v3beta1/package.json @@ -0,0 +1,64 @@ +{ + "name": "@google-cloud/translate", + "version": "0.1.0", + "description": "Translation client for Node.js", + "repository": "googleapis/nodejs-translation", + "license": "Apache-2.0", + "author": "Google LLC", + "main": "build/src/index.js", + "files": [ + "build/src", + "build/protos" + ], + "keywords": [ + "google apis client", + "google api client", + "google apis", + "google api", + "google", + "google cloud platform", + "google cloud", + "cloud", + "google translation", + "translation", + "translation service" + ], + "scripts": { + "clean": "gts clean", + "compile": "tsc -p . && cp -r protos build/", + "compile-protos": "compileProtos src", + "docs": "jsdoc -c .jsdoc.js", + "predocs-test": "npm run docs", + "docs-test": "linkinator docs", + "fix": "gts fix", + "lint": "gts check", + "prepare": "npm run compile-protos && npm run compile", + "system-test": "c8 mocha build/system-test", + "test": "c8 mocha build/test" + }, + "dependencies": { + "google-gax": "^3.1.1" + }, + "devDependencies": { + "@types/mocha": "^9.1.0", + "@types/node": "^16.0.0", + "@types/sinon": "^10.0.8", + "c8": "^7.11.0", + "gts": "^3.1.0", + "jsdoc": "^3.6.7", + "jsdoc-fresh": "^1.1.1", + "jsdoc-region-tag": "^1.3.1", + "linkinator": "^3.0.0", + "mocha": "^9.1.4", + "null-loader": "^4.0.1", + "pack-n-play": "^1.0.0-2", + "sinon": "^13.0.0", + "ts-loader": "^9.2.6", + "typescript": "^4.5.5", + "webpack": "^5.67.0", + "webpack-cli": "^4.9.1" + }, + "engines": { + "node": ">=v12" + } +} diff --git a/owl-bot-staging/v3beta1/protos/google/cloud/translate/v3beta1/translation_service.proto b/owl-bot-staging/v3beta1/protos/google/cloud/translate/v3beta1/translation_service.proto new file mode 100644 index 00000000..362d3ef3 --- /dev/null +++ b/owl-bot-staging/v3beta1/protos/google/cloud/translate/v3beta1/translation_service.proto @@ -0,0 +1,1450 @@ +// 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. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.translation.v3beta1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Cloud.Translate.V3Beta1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/translate/v3beta1;translate"; +option java_multiple_files = true; +option java_outer_classname = "TranslationServiceProto"; +option java_package = "com.google.cloud.translate.v3beta1"; +option php_namespace = "Google\\Cloud\\Translate\\V3beta1"; +option ruby_package = "Google::Cloud::Translate::V3beta1"; + +// Proto file for the Cloud Translation API (v3beta1). + +// Provides natural language translation operations. +service TranslationService { + option (google.api.default_host) = "translate.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform," + "https://www.googleapis.com/auth/cloud-translation"; + + // Translates input text and returns translated text. + rpc TranslateText(TranslateTextRequest) returns (TranslateTextResponse) { + option (google.api.http) = { + post: "/v3beta1/{parent=projects/*/locations/*}:translateText" + body: "*" + additional_bindings { + post: "/v3beta1/{parent=projects/*}:translateText" + body: "*" + } + }; + } + + // Detects the language of text within a request. + rpc DetectLanguage(DetectLanguageRequest) returns (DetectLanguageResponse) { + option (google.api.http) = { + post: "/v3beta1/{parent=projects/*/locations/*}:detectLanguage" + body: "*" + additional_bindings { + post: "/v3beta1/{parent=projects/*}:detectLanguage" + body: "*" + } + }; + option (google.api.method_signature) = "parent,model,mime_type"; + } + + // Returns a list of supported languages for translation. + rpc GetSupportedLanguages(GetSupportedLanguagesRequest) + returns (SupportedLanguages) { + option (google.api.http) = { + get: "/v3beta1/{parent=projects/*/locations/*}/supportedLanguages" + additional_bindings { + get: "/v3beta1/{parent=projects/*}/supportedLanguages" + } + }; + option (google.api.method_signature) = "parent,display_language_code,model"; + } + + // Translates documents in synchronous mode. + rpc TranslateDocument(TranslateDocumentRequest) + returns (TranslateDocumentResponse) { + option (google.api.http) = { + post: "/v3beta1/{parent=projects/*/locations/*}:translateDocument" + body: "*" + }; + } + + // Translates a large volume of text in asynchronous batch mode. + // This function provides real-time output as the inputs are being processed. + // If caller cancels a request, the partial results (for an input file, it's + // all or nothing) may still be available on the specified output location. + // + // This call returns immediately and you can + // use google.longrunning.Operation.name to poll the status of the call. + rpc BatchTranslateText(BatchTranslateTextRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v3beta1/{parent=projects/*/locations/*}:batchTranslateText" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "BatchTranslateResponse" + metadata_type: "BatchTranslateMetadata" + }; + } + + // Translates a large volume of documents in asynchronous batch mode. + // This function provides real-time output as the inputs are being processed. + // If caller cancels a request, the partial results (for an input file, it's + // all or nothing) may still be available on the specified output location. + // + // This call returns immediately and you can use + // google.longrunning.Operation.name to poll the status of the call. + rpc BatchTranslateDocument(BatchTranslateDocumentRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v3beta1/{parent=projects/*/locations/*}:batchTranslateDocument" + body: "*" + }; + option (google.api.method_signature) = + "parent,source_language_code,target_language_codes,input_configs,output_config"; + option (google.longrunning.operation_info) = { + response_type: "BatchTranslateDocumentResponse" + metadata_type: "BatchTranslateDocumentMetadata" + }; + } + + // Creates a glossary and returns the long-running operation. Returns + // NOT_FOUND, if the project doesn't exist. + rpc CreateGlossary(CreateGlossaryRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v3beta1/{parent=projects/*/locations/*}/glossaries" + body: "glossary" + }; + option (google.api.method_signature) = "parent,glossary"; + option (google.longrunning.operation_info) = { + response_type: "Glossary" + metadata_type: "CreateGlossaryMetadata" + }; + } + + // Lists glossaries in a project. Returns NOT_FOUND, if the project doesn't + // exist. + rpc ListGlossaries(ListGlossariesRequest) returns (ListGlossariesResponse) { + option (google.api.http) = { + get: "/v3beta1/{parent=projects/*/locations/*}/glossaries" + }; + option (google.api.method_signature) = "parent,filter"; + } + + // Gets a glossary. Returns NOT_FOUND, if the glossary doesn't + // exist. + rpc GetGlossary(GetGlossaryRequest) returns (Glossary) { + option (google.api.http) = { + get: "/v3beta1/{name=projects/*/locations/*/glossaries/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes a glossary, or cancels glossary construction + // if the glossary isn't created yet. + // Returns NOT_FOUND, if the glossary doesn't exist. + rpc DeleteGlossary(DeleteGlossaryRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v3beta1/{name=projects/*/locations/*/glossaries/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "DeleteGlossaryResponse" + metadata_type: "DeleteGlossaryMetadata" + }; + } +} + +// Configures which glossary should be used for a specific target language, +// and defines options for applying that glossary. +message TranslateTextGlossaryConfig { + // Required. Specifies the glossary used for this translation. Use + // this format: projects/*/locations/*/glossaries/* + string glossary = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Indicates match is case-insensitive. + // Default value is false if missing. + bool ignore_case = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// The request message for synchronous translation. +message TranslateTextRequest { + // Required. The content of the input in string format. + // We recommend the total content be less than 30k codepoints. The max length + // of this field is 1024. + // Use BatchTranslateText for larger text. + repeated string contents = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The format of the source text, for example, "text/html", + // "text/plain". If left blank, the MIME type defaults to "text/html". + string mime_type = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The BCP-47 language code of the input text if + // known, for example, "en-US" or "sr-Latn". Supported language codes are + // listed in Language Support. If the source language isn't specified, the API + // attempts to identify the source language automatically and returns the + // source language within the response. + string source_language_code = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The BCP-47 language code to use for translation of the input + // text, set to one of the language codes listed in Language Support. + string target_language_code = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. Project or location to make a call. Must refer to a caller's + // project. + // + // Format: `projects/{project-number-or-id}` or + // `projects/{project-number-or-id}/locations/{location-id}`. + // + // For global calls, use `projects/{project-number-or-id}/locations/global` or + // `projects/{project-number-or-id}`. + // + // Non-global location is required for requests using AutoML models or + // custom glossaries. + // + // Models and glossaries must be within the same region (have same + // location-id), otherwise an INVALID_ARGUMENT (400) error is returned. + string parent = 8 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. The `model` type requested for this translation. + // + // The format depends on model type: + // + // - AutoML Translation models: + // `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + // + // - General (built-in) models: + // `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + // + // + // For global (non-regionalized) requests, use `location-id` `global`. + // For example, + // `projects/{project-number-or-id}/locations/global/models/general/nmt`. + // + // If not provided, the default Google model (NMT) will be used + string model = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Glossary to be applied. The glossary must be + // within the same region (have the same location-id) as the model, otherwise + // an INVALID_ARGUMENT (400) error is returned. + TranslateTextGlossaryConfig glossary_config = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The labels with user-defined metadata for the request. + // + // Label keys and values can be no longer than 63 characters + // (Unicode codepoints), can only contain lowercase letters, numeric + // characters, underscores and dashes. International characters are allowed. + // Label values are optional. Label keys must start with a letter. + // + // See https://cloud.google.com/translate/docs/labels for more information. + map labels = 10 [(google.api.field_behavior) = OPTIONAL]; +} + +message TranslateTextResponse { + // Text translation responses with no glossary applied. + // This field has the same length as + // [`contents`][google.cloud.translation.v3beta1.TranslateTextRequest.contents]. + repeated Translation translations = 1; + + // Text translation responses if a glossary is provided in the request. + // This can be the same as + // [`translations`][google.cloud.translation.v3beta1.TranslateTextResponse.translations] + // if no terms apply. This field has the same length as + // [`contents`][google.cloud.translation.v3beta1.TranslateTextRequest.contents]. + repeated Translation glossary_translations = 3; +} + +// A single translation response. +message Translation { + // Text translated into the target language. + // If an error occurs during translation, this field might be excluded from + // the response. + string translated_text = 1; + + // Only present when `model` is present in the request. + // `model` here is normalized to have project number. + // + // For example: + // If the `model` requested in TranslationTextRequest is + // `projects/{project-id}/locations/{location-id}/models/general/nmt` then + // `model` here would be normalized to + // `projects/{project-number}/locations/{location-id}/models/general/nmt`. + string model = 2; + + // The BCP-47 language code of source text in the initial request, detected + // automatically, if no source language was passed within the initial + // request. If the source language was passed, auto-detection of the language + // does not occur and this field is empty. + string detected_language_code = 4; + + // The `glossary_config` used for this translation. + TranslateTextGlossaryConfig glossary_config = 3; +} + +// The request message for language detection. +message DetectLanguageRequest { + // Required. Project or location to make a call. Must refer to a caller's + // project. + // + // Format: `projects/{project-number-or-id}/locations/{location-id}` or + // `projects/{project-number-or-id}`. + // + // For global calls, use `projects/{project-number-or-id}/locations/global` or + // `projects/{project-number-or-id}`. + // + // Only models within the same region (has same location-id) can be used. + // Otherwise an INVALID_ARGUMENT (400) error is returned. + string parent = 5 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. The language detection model to be used. + // + // Format: + // `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/{model-id}` + // + // Only one language detection model is currently supported: + // `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/default`. + // + // If not specified, the default model is used. + string model = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The source of the document from which to detect the language. + oneof source { + // The content of the input stored as a string. + string content = 1; + } + + // Optional. The format of the source text, for example, "text/html", + // "text/plain". If left blank, the MIME type defaults to "text/html". + string mime_type = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The labels with user-defined metadata for the request. + // + // Label keys and values can be no longer than 63 characters + // (Unicode codepoints), can only contain lowercase letters, numeric + // characters, underscores and dashes. International characters are allowed. + // Label values are optional. Label keys must start with a letter. + // + // See https://cloud.google.com/translate/docs/labels for more information. + map labels = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response message for language detection. +message DetectedLanguage { + // The BCP-47 language code of source content in the request, detected + // automatically. + string language_code = 1; + + // The confidence of the detection result for this language. + float confidence = 2; +} + +// The response message for language detection. +message DetectLanguageResponse { + // A list of detected languages sorted by detection confidence in descending + // order. The most probable language first. + repeated DetectedLanguage languages = 1; +} + +// The request message for discovering supported languages. +message GetSupportedLanguagesRequest { + // Required. Project or location to make a call. Must refer to a caller's + // project. + // + // Format: `projects/{project-number-or-id}` or + // `projects/{project-number-or-id}/locations/{location-id}`. + // + // For global calls, use `projects/{project-number-or-id}/locations/global` or + // `projects/{project-number-or-id}`. + // + // Non-global location is required for AutoML models. + // + // Only models within the same region (have same location-id) can be used, + // otherwise an INVALID_ARGUMENT (400) error is returned. + string parent = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. The language to use to return localized, human readable names + // of supported languages. If missing, then display names are not returned + // in a response. + string display_language_code = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Get supported languages of this model. + // + // The format depends on model type: + // + // - AutoML Translation models: + // `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + // + // - General (built-in) models: + // `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + // + // + // Returns languages supported by the specified model. + // If missing, we get supported languages of Google general NMT model. + string model = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response message for discovering supported languages. +message SupportedLanguages { + // A list of supported language responses. This list contains an entry + // for each language the Translation API supports. + repeated SupportedLanguage languages = 1; +} + +// A single supported language response corresponds to information related +// to one supported language. +message SupportedLanguage { + // Supported language code, generally consisting of its ISO 639-1 + // identifier, for example, 'en', 'ja'. In certain cases, BCP-47 codes + // including language and region identifiers are returned (for example, + // 'zh-TW' and 'zh-CN') + string language_code = 1; + + // Human readable name of the language localized in the display language + // specified in the request. + string display_name = 2; + + // Can be used as source language. + bool support_source = 3; + + // Can be used as target language. + bool support_target = 4; +} + +// The Google Cloud Storage location for the input content. +message GcsSource { + // Required. Source data URI. For example, `gs://my_bucket/my_object`. + string input_uri = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Input configuration for BatchTranslateText request. +message InputConfig { + // Optional. Can be "text/plain" or "text/html". + // For `.tsv`, "text/html" is used if mime_type is missing. + // For `.html`, this field must be "text/html" or empty. + // For `.txt`, this field must be "text/plain" or empty. + string mime_type = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Specify the input. + oneof source { + // Required. Google Cloud Storage location for the source input. + // This can be a single file (for example, + // `gs://translation-test/input.tsv`) or a wildcard (for example, + // `gs://translation-test/*`). If a file extension is `.tsv`, it can + // contain either one or two columns. The first column (optional) is the id + // of the text request. If the first column is missing, we use the row + // number (0-based) from the input file as the ID in the output file. The + // second column is the actual text to be + // translated. We recommend each row be <= 10K Unicode codepoints, + // otherwise an error might be returned. + // Note that the input tsv must be RFC 4180 compliant. + // + // You could use https://github.com/Clever/csvlint to check potential + // formatting errors in your tsv file. + // csvlint --delimiter='\t' your_input_file.tsv + // + // The other supported file extensions are `.txt` or `.html`, which is + // treated as a single large chunk of text. + GcsSource gcs_source = 2; + } +} + +// The Google Cloud Storage location for the output content. +message GcsDestination { + // Required. There must be no files under 'output_uri_prefix'. + // 'output_uri_prefix' must end with "/" and start with "gs://", otherwise an + // INVALID_ARGUMENT (400) error is returned. + string output_uri_prefix = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Output configuration for BatchTranslateText request. +message OutputConfig { + // Required. The destination of output. + oneof destination { + // Google Cloud Storage destination for output content. + // For every single input file (for example, gs://a/b/c.[extension]), we + // generate at most 2 * n output files. (n is the # of target_language_codes + // in the BatchTranslateTextRequest). + // + // Output files (tsv) generated are compliant with RFC 4180 except that + // record delimiters are '\n' instead of '\r\n'. We don't provide any way to + // change record delimiters. + // + // While the input files are being processed, we write/update an index file + // 'index.csv' under 'output_uri_prefix' (for example, + // gs://translation-test/index.csv) The index file is generated/updated as + // new files are being translated. The format is: + // + // input_file,target_language_code,translations_file,errors_file, + // glossary_translations_file,glossary_errors_file + // + // input_file is one file we matched using gcs_source.input_uri. + // target_language_code is provided in the request. + // translations_file contains the translations. (details provided below) + // errors_file contains the errors during processing of the file. (details + // below). Both translations_file and errors_file could be empty + // strings if we have no content to output. + // glossary_translations_file and glossary_errors_file are always empty + // strings if the input_file is tsv. They could also be empty if we have no + // content to output. + // + // Once a row is present in index.csv, the input/output matching never + // changes. Callers should also expect all the content in input_file are + // processed and ready to be consumed (that is, no partial output file is + // written). + // + // Since index.csv will be keeping updated during the process, please make + // sure there is no custom retention policy applied on the output bucket + // that may avoid file updating. + // (https://cloud.google.com/storage/docs/bucket-lock?hl=en#retention-policy) + // + // The format of translations_file (for target language code 'trg') is: + // gs://translation_test/a_b_c_'trg'_translations.[extension] + // + // If the input file extension is tsv, the output has the following + // columns: + // Column 1: ID of the request provided in the input, if it's not + // provided in the input, then the input row number is used (0-based). + // Column 2: source sentence. + // Column 3: translation without applying a glossary. Empty string if there + // is an error. + // Column 4 (only present if a glossary is provided in the request): + // translation after applying the glossary. Empty string if there is an + // error applying the glossary. Could be same string as column 3 if there is + // no glossary applied. + // + // If input file extension is a txt or html, the translation is directly + // written to the output file. If glossary is requested, a separate + // glossary_translations_file has format of + // gs://translation_test/a_b_c_'trg'_glossary_translations.[extension] + // + // The format of errors file (for target language code 'trg') is: + // gs://translation_test/a_b_c_'trg'_errors.[extension] + // + // If the input file extension is tsv, errors_file contains the following: + // Column 1: ID of the request provided in the input, if it's not + // provided in the input, then the input row number is used (0-based). + // Column 2: source sentence. + // Column 3: Error detail for the translation. Could be empty. + // Column 4 (only present if a glossary is provided in the request): + // Error when applying the glossary. + // + // If the input file extension is txt or html, glossary_error_file will be + // generated that contains error details. glossary_error_file has format of + // gs://translation_test/a_b_c_'trg'_glossary_errors.[extension] + GcsDestination gcs_destination = 1; + } +} + +// A document translation request input config. +message DocumentInputConfig { + // Specifies the source for the document's content. + // The input file size should be <= 20MB for + // - application/vnd.openxmlformats-officedocument.wordprocessingml.document + // - application/vnd.openxmlformats-officedocument.presentationml.presentation + // - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + // The input file size should be <= 20MB and the maximum page limit is 20 for + // - application/pdf + oneof source { + // Document's content represented as a stream of bytes. + bytes content = 1; + + // Google Cloud Storage location. This must be a single file. + // For example: gs://example_bucket/example_file.pdf + GcsSource gcs_source = 2; + } + + // Specifies the input document's mime_type. + // + // If not specified it will be determined using the file extension for + // gcs_source provided files. For a file provided through bytes content the + // mime_type must be provided. + // Currently supported mime types are: + // - application/pdf + // - application/vnd.openxmlformats-officedocument.wordprocessingml.document + // - application/vnd.openxmlformats-officedocument.presentationml.presentation + // - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + string mime_type = 4; +} + +// A document translation request output config. +message DocumentOutputConfig { + // A URI destination for the translated document. + // It is optional to provide a destination. If provided the results from + // TranslateDocument will be stored in the destination. + // Whether a destination is provided or not, the translated documents will be + // returned within TranslateDocumentResponse.document_translation and + // TranslateDocumentResponse.glossary_document_translation. + oneof destination { + // Optional. Google Cloud Storage destination for the translation output, + // e.g., `gs://my_bucket/my_directory/`. + // + // The destination directory provided does not have to be empty, but the + // bucket must exist. If a file with the same name as the output file + // already exists in the destination an error will be returned. + // + // For a DocumentInputConfig.contents provided document, the output file + // will have the name "output_[trg]_translations.[ext]", where + // - [trg] corresponds to the translated file's language code, + // - [ext] corresponds to the translated file's extension according to its + // mime type. + // + // + // For a DocumentInputConfig.gcs_uri provided document, the output file will + // have a name according to its URI. For example: an input file with URI: + // "gs://a/b/c.[extension]" stored in a gcs_destination bucket with name + // "my_bucket" will have an output URI: + // "gs://my_bucket/a_b_c_[trg]_translations.[ext]", where + // - [trg] corresponds to the translated file's language code, + // - [ext] corresponds to the translated file's extension according to its + // mime type. + // + // + // If the document was directly provided through the request, then the + // output document will have the format: + // "gs://my_bucket/translated_document_[trg]_translations.[ext], where + // - [trg] corresponds to the translated file's language code, + // - [ext] corresponds to the translated file's extension according to its + // mime type. + // + // If a glossary was provided, then the output URI for the glossary + // translation will be equal to the default output URI but have + // `glossary_translations` instead of `translations`. For the previous + // example, its glossary URI would be: + // "gs://my_bucket/a_b_c_[trg]_glossary_translations.[ext]". + // + // Thus the max number of output files will be 2 (Translated document, + // Glossary translated document). + // + // Callers should expect no partial outputs. If there is any error during + // document translation, no output will be stored in the Cloud Storage + // bucket. + GcsDestination gcs_destination = 1 [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. Specifies the translated document's mime_type. + // If not specified, the translated file's mime type will be the same as the + // input file's mime type. + // Currently only support the output mime type to be the same as input mime + // type. + // - application/pdf + // - application/vnd.openxmlformats-officedocument.wordprocessingml.document + // - application/vnd.openxmlformats-officedocument.presentationml.presentation + // - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + string mime_type = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// A document translation request. +message TranslateDocumentRequest { + // Required. Location to make a regional call. + // + // Format: `projects/{project-number-or-id}/locations/{location-id}`. + // + // For global calls, use `projects/{project-number-or-id}/locations/global`. + // + // Non-global location is required for requests using AutoML models or custom + // glossaries. + // + // Models and glossaries must be within the same region (have the same + // location-id), otherwise an INVALID_ARGUMENT (400) error is returned. + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The BCP-47 language code of the input document if known, for + // example, "en-US" or "sr-Latn". Supported language codes are listed in + // Language Support. If the source language isn't specified, the API attempts + // to identify the source language automatically and returns the source + // language within the response. Source language must be specified if the + // request contains a glossary or a custom model. + string source_language_code = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The BCP-47 language code to use for translation of the input + // document, set to one of the language codes listed in Language Support. + string target_language_code = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Input configurations. + DocumentInputConfig document_input_config = 4 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Output configurations. + // Defines if the output file should be stored within Cloud Storage as well + // as the desired output format. If not provided the translated file will + // only be returned through a byte-stream and its output mime type will be + // the same as the input file's mime type. + DocumentOutputConfig document_output_config = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The `model` type requested for this translation. + // + // The format depends on model type: + // + // - AutoML Translation models: + // `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + // + // - General (built-in) models: + // `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + // + // + // If not provided, the default Google model (NMT) will be used for + // translation. + string model = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Glossary to be applied. The glossary must be within the same + // region (have the same location-id) as the model, otherwise an + // INVALID_ARGUMENT (400) error is returned. + TranslateTextGlossaryConfig glossary_config = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The labels with user-defined metadata for the request. + // + // Label keys and values can be no longer than 63 characters (Unicode + // codepoints), can only contain lowercase letters, numeric characters, + // underscores and dashes. International characters are allowed. Label values + // are optional. Label keys must start with a letter. + // + // See https://cloud.google.com/translate/docs/advanced/labels for more + // information. + map labels = 8 [(google.api.field_behavior) = OPTIONAL]; +} + +// A translated document message. +message DocumentTranslation { + // The array of translated documents. It is expected to be size 1 for now. We + // may produce multiple translated documents in the future for other type of + // file formats. + repeated bytes byte_stream_outputs = 1; + + // The translated document's mime type. + string mime_type = 2; + + // The detected language for the input document. + // If the user did not provide the source language for the input document, + // this field will have the language code automatically detected. If the + // source language was passed, auto-detection of the language does not occur + // and this field is empty. + string detected_language_code = 3; +} + +// A translated document response message. +message TranslateDocumentResponse { + // Translated document. + DocumentTranslation document_translation = 1; + + // The document's translation output if a glossary is provided in the request. + // This can be the same as [TranslateDocumentResponse.document_translation] + // if no glossary terms apply. + DocumentTranslation glossary_document_translation = 2; + + // Only present when 'model' is present in the request. + // 'model' is normalized to have a project number. + // + // For example: + // If the 'model' field in TranslateDocumentRequest is: + // `projects/{project-id}/locations/{location-id}/models/general/nmt` then + // `model` here would be normalized to + // `projects/{project-number}/locations/{location-id}/models/general/nmt`. + string model = 3; + + // The `glossary_config` used for this translation. + TranslateTextGlossaryConfig glossary_config = 4; +} + +// The batch translation request. +message BatchTranslateTextRequest { + // Required. Location to make a call. Must refer to a caller's project. + // + // Format: `projects/{project-number-or-id}/locations/{location-id}`. + // + // The `global` location is not supported for batch translation. + // + // Only AutoML Translation models or glossaries within the same region (have + // the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) + // error is returned. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. Source language code. + string source_language_code = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Specify up to 10 language codes here. + repeated string target_language_codes = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. The models to use for translation. Map's key is target language + // code. Map's value is model name. Value can be a built-in general model, + // or an AutoML Translation model. + // + // The value format depends on model type: + // + // - AutoML Translation models: + // `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + // + // - General (built-in) models: + // `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + // + // + // If the map is empty or a specific model is + // not requested for a language pair, then default google model (nmt) is used. + map models = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Input configurations. + // The total number of files matched should be <= 100. + // The total content size should be <= 100M Unicode codepoints. + // The files must use UTF-8 encoding. + repeated InputConfig input_configs = 5 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Output configuration. + // If 2 input configs match to the same file (that is, same input path), + // we don't generate output for duplicate inputs. + OutputConfig output_config = 6 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Glossaries to be applied for translation. + // It's keyed by target language code. + map glossaries = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The labels with user-defined metadata for the request. + // + // Label keys and values can be no longer than 63 characters + // (Unicode codepoints), can only contain lowercase letters, numeric + // characters, underscores and dashes. International characters are allowed. + // Label values are optional. Label keys must start with a letter. + // + // See https://cloud.google.com/translate/docs/labels for more information. + map labels = 9 [(google.api.field_behavior) = OPTIONAL]; +} + +// State metadata for the batch translation operation. +message BatchTranslateMetadata { + // State of the job. + enum State { + // Invalid. + STATE_UNSPECIFIED = 0; + + // Request is being processed. + RUNNING = 1; + + // The batch is processed, and at least one item was successfully + // processed. + SUCCEEDED = 2; + + // The batch is done and no item was successfully processed. + FAILED = 3; + + // Request is in the process of being canceled after caller invoked + // longrunning.Operations.CancelOperation on the request id. + CANCELLING = 4; + + // The batch is done after the user has called the + // longrunning.Operations.CancelOperation. Any records processed before the + // cancel command are output as specified in the request. + CANCELLED = 5; + } + + // The state of the operation. + State state = 1; + + // Number of successfully translated characters so far (Unicode codepoints). + int64 translated_characters = 2; + + // Number of characters that have failed to process so far (Unicode + // codepoints). + int64 failed_characters = 3; + + // Total number of characters (Unicode codepoints). + // This is the total number of codepoints from input files times the number of + // target languages and appears here shortly after the call is submitted. + int64 total_characters = 4; + + // Time when the operation was submitted. + google.protobuf.Timestamp submit_time = 5; +} + +// Stored in the +// [google.longrunning.Operation.response][google.longrunning.Operation.response] +// field returned by BatchTranslateText if at least one sentence is translated +// successfully. +message BatchTranslateResponse { + // Total number of characters (Unicode codepoints). + int64 total_characters = 1; + + // Number of successfully translated characters (Unicode codepoints). + int64 translated_characters = 2; + + // Number of characters that have failed to process (Unicode codepoints). + int64 failed_characters = 3; + + // Time when the operation was submitted. + google.protobuf.Timestamp submit_time = 4; + + // The time when the operation is finished and + // [google.longrunning.Operation.done][google.longrunning.Operation.done] is + // set to true. + google.protobuf.Timestamp end_time = 5; +} + +// Input configuration for glossaries. +message GlossaryInputConfig { + // Required. Specify the input. + oneof source { + // Required. Google Cloud Storage location of glossary data. + // File format is determined based on the filename extension. API returns + // [google.rpc.Code.INVALID_ARGUMENT] for unsupported URI-s and file + // formats. Wildcards are not allowed. This must be a single file in one of + // the following formats: + // + // For unidirectional glossaries: + // + // - TSV/CSV (`.tsv`/`.csv`): 2 column file, tab- or comma-separated. + // The first column is source text. The second column is target text. + // The file must not contain headers. That is, the first row is data, not + // column names. + // + // - TMX (`.tmx`): TMX file with parallel data defining source/target term + // pairs. + // + // For equivalent term sets glossaries: + // + // - CSV (`.csv`): Multi-column CSV file defining equivalent glossary terms + // in multiple languages. The format is defined for Google Translation + // Toolkit and documented in [Use a + // glossary](https://support.google.com/translatortoolkit/answer/6306379?hl=en). + GcsSource gcs_source = 1; + } +} + +// Represents a glossary built from user provided data. +message Glossary { + option (google.api.resource) = { + type: "translate.googleapis.com/Glossary" + pattern: "projects/{project}/locations/{location}/glossaries/{glossary}" + }; + + // Used with unidirectional glossaries. + message LanguageCodePair { + // Required. The BCP-47 language code of the input text, for example, + // "en-US". Expected to be an exact match for GlossaryTerm.language_code. + string source_language_code = 1; + + // Required. The BCP-47 language code for translation output, for example, + // "zh-CN". Expected to be an exact match for GlossaryTerm.language_code. + string target_language_code = 2; + } + + // Used with equivalent term set glossaries. + message LanguageCodesSet { + // The BCP-47 language code(s) for terms defined in the glossary. + // All entries are unique. The list contains at least two entries. + // Expected to be an exact match for GlossaryTerm.language_code. + repeated string language_codes = 1; + } + + // Required. The resource name of the glossary. Glossary names have the form + // `projects/{project-number-or-id}/locations/{location-id}/glossaries/{glossary-id}`. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Languages supported by the glossary. + oneof languages { + // Used with unidirectional glossaries. + LanguageCodePair language_pair = 3; + + // Used with equivalent term set glossaries. + LanguageCodesSet language_codes_set = 4; + } + + // Required. Provides examples to build the glossary from. + // Total glossary must not exceed 10M Unicode codepoints. + GlossaryInputConfig input_config = 5; + + // Output only. The number of entries defined in the glossary. + int32 entry_count = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. When CreateGlossary was called. + google.protobuf.Timestamp submit_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. When the glossary creation was finished. + google.protobuf.Timestamp end_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for CreateGlossary. +message CreateGlossaryRequest { + // Required. The project name. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The glossary to create. + Glossary glossary = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for GetGlossary. +message GetGlossaryRequest { + // Required. The name of the glossary to retrieve. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "translate.googleapis.com/Glossary" + } + ]; +} + +// Request message for DeleteGlossary. +message DeleteGlossaryRequest { + // Required. The name of the glossary to delete. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "translate.googleapis.com/Glossary" + } + ]; +} + +// Request message for ListGlossaries. +message ListGlossariesRequest { + // Required. The name of the project from which to list all of the glossaries. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. Requested page size. The server may return fewer glossaries than + // requested. If unspecified, the server picks an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + // Typically, this is the value of [ListGlossariesResponse.next_page_token] + // returned from the previous call to `ListGlossaries` method. + // The first page is returned if `page_token`is empty or missing. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filter specifying constraints of a list operation. + // Specify the constraint by the format of "key=value", where key must be + // "src" or "tgt", and the value must be a valid language code. + // For multiple restrictions, concatenate them by "AND" (uppercase only), + // such as: "src=en-US AND tgt=zh-CN". Notice that the exact match is used + // here, which means using 'en-US' and 'en' can lead to different results, + // which depends on the language code you used when you create the glossary. + // For the unidirectional glossaries, the "src" and "tgt" add restrictions + // on the source and target language code separately. + // For the equivalent term set glossaries, the "src" and/or "tgt" add + // restrictions on the term set. + // For example: "src=en-US AND tgt=zh-CN" will only pick the unidirectional + // glossaries which exactly match the source language code as "en-US" and the + // target language code "zh-CN", but all equivalent term set glossaries which + // contain "en-US" and "zh-CN" in their language set will be picked. + // If missing, no filtering is performed. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for ListGlossaries. +message ListGlossariesResponse { + // The list of glossaries for a project. + repeated Glossary glossaries = 1; + + // A token to retrieve a page of results. Pass this value in the + // [ListGlossariesRequest.page_token] field in the subsequent call to + // `ListGlossaries` method to retrieve the next page of results. + string next_page_token = 2; +} + +// Stored in the +// [google.longrunning.Operation.metadata][google.longrunning.Operation.metadata] +// field returned by CreateGlossary. +message CreateGlossaryMetadata { + // Enumerates the possible states that the creation request can be in. + enum State { + // Invalid. + STATE_UNSPECIFIED = 0; + + // Request is being processed. + RUNNING = 1; + + // The glossary was successfully created. + SUCCEEDED = 2; + + // Failed to create the glossary. + FAILED = 3; + + // Request is in the process of being canceled after caller invoked + // longrunning.Operations.CancelOperation on the request id. + CANCELLING = 4; + + // The glossary creation request was successfully canceled. + CANCELLED = 5; + } + + // The name of the glossary that is being created. + string name = 1; + + // The current state of the glossary creation operation. + State state = 2; + + // The time when the operation was submitted to the server. + google.protobuf.Timestamp submit_time = 3; +} + +// Stored in the +// [google.longrunning.Operation.metadata][google.longrunning.Operation.metadata] +// field returned by DeleteGlossary. +message DeleteGlossaryMetadata { + // Enumerates the possible states that the creation request can be in. + enum State { + // Invalid. + STATE_UNSPECIFIED = 0; + + // Request is being processed. + RUNNING = 1; + + // The glossary was successfully deleted. + SUCCEEDED = 2; + + // Failed to delete the glossary. + FAILED = 3; + + // Request is in the process of being canceled after caller invoked + // longrunning.Operations.CancelOperation on the request id. + CANCELLING = 4; + + // The glossary deletion request was successfully canceled. + CANCELLED = 5; + } + + // The name of the glossary that is being deleted. + string name = 1; + + // The current state of the glossary deletion operation. + State state = 2; + + // The time when the operation was submitted to the server. + google.protobuf.Timestamp submit_time = 3; +} + +// Stored in the +// [google.longrunning.Operation.response][google.longrunning.Operation.response] +// field returned by DeleteGlossary. +message DeleteGlossaryResponse { + // The name of the deleted glossary. + string name = 1; + + // The time when the operation was submitted to the server. + google.protobuf.Timestamp submit_time = 2; + + // The time when the glossary deletion is finished and + // [google.longrunning.Operation.done][google.longrunning.Operation.done] is + // set to true. + google.protobuf.Timestamp end_time = 3; +} + +// The BatchTranslateDocument request. +message BatchTranslateDocumentRequest { + // Required. Location to make a regional call. + // + // Format: `projects/{project-number-or-id}/locations/{location-id}`. + // + // The `global` location is not supported for batch translation. + // + // Only AutoML Translation models or glossaries within the same region (have + // the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) + // error is returned. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The BCP-47 language code of the input document if known, for + // example, "en-US" or "sr-Latn". Supported language codes are listed in + // Language Support (https://cloud.google.com/translate/docs/languages). + string source_language_code = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The BCP-47 language code to use for translation of the input + // document. Specify up to 10 language codes here. + repeated string target_language_codes = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Input configurations. + // The total number of files matched should be <= 100. + // The total content size to translate should be <= 100M Unicode codepoints. + // The files must use UTF-8 encoding. + repeated BatchDocumentInputConfig input_configs = 4 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Output configuration. + // If 2 input configs match to the same file (that is, same input path), + // we don't generate output for duplicate inputs. + BatchDocumentOutputConfig output_config = 5 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. The models to use for translation. Map's key is target language + // code. Map's value is the model name. Value can be a built-in general model, + // or an AutoML Translation model. + // + // The value format depends on model type: + // + // - AutoML Translation models: + // `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + // + // - General (built-in) models: + // `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + // + // + // If the map is empty or a specific model is not requested for a language + // pair, then default google model (nmt) is used. + map models = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Glossaries to be applied. It's keyed by target language code. + map glossaries = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. File format conversion map to be applied to all input files. + // Map's key is the original mime_type. Map's value is the target mime_type of + // translated documents. + // + // Supported file format conversion includes: + // - `application/pdf` to + // `application/vnd.openxmlformats-officedocument.wordprocessingml.document` + // + // If nothing specified, output files will be in the same format as the + // original file. + map format_conversions = 8 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Input configuration for BatchTranslateDocument request. +message BatchDocumentInputConfig { + // Specify the input. + oneof source { + // Google Cloud Storage location for the source input. + // This can be a single file (for example, + // `gs://translation-test/input.docx`) or a wildcard (for example, + // `gs://translation-test/*`). + // + // File mime type is determined based on extension. Supported mime type + // includes: + // - `pdf`, application/pdf + // - `docx`, + // application/vnd.openxmlformats-officedocument.wordprocessingml.document + // - `pptx`, + // application/vnd.openxmlformats-officedocument.presentationml.presentation + // - `xlsx`, + // application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + // + // The max file size to support for `.docx`, `.pptx` and `.xlsx` is 100MB. + // The max file size to support for `.pdf` is 1GB and the max page limit is + // 1000 pages. + // The max file size to support for all input documents is 1GB. + GcsSource gcs_source = 1; + } +} + +// Output configuration for BatchTranslateDocument request. +message BatchDocumentOutputConfig { + // The destination of output. The destination directory provided must exist + // and be empty. + oneof destination { + // Google Cloud Storage destination for output content. + // For every single input document (for example, gs://a/b/c.[extension]), we + // generate at most 2 * n output files. (n is the # of target_language_codes + // in the BatchTranslateDocumentRequest). + // + // While the input documents are being processed, we write/update an index + // file `index.csv` under `gcs_destination.output_uri_prefix` (for example, + // gs://translation_output/index.csv) The index file is generated/updated as + // new files are being translated. The format is: + // + // input_document,target_language_code,translation_output,error_output, + // glossary_translation_output,glossary_error_output + // + // `input_document` is one file we matched using gcs_source.input_uri. + // `target_language_code` is provided in the request. + // `translation_output` contains the translations. (details provided below) + // `error_output` contains the error message during processing of the file. + // Both translations_file and errors_file could be empty strings if we have + // no content to output. + // `glossary_translation_output` and `glossary_error_output` are the + // translated output/error when we apply glossaries. They could also be + // empty if we have no content to output. + // + // Once a row is present in index.csv, the input/output matching never + // changes. Callers should also expect all the content in input_file are + // processed and ready to be consumed (that is, no partial output file is + // written). + // + // Since index.csv will be keeping updated during the process, please make + // sure there is no custom retention policy applied on the output bucket + // that may avoid file updating. + // (https://cloud.google.com/storage/docs/bucket-lock?hl=en#retention-policy) + // + // The naming format of translation output files follows (for target + // language code [trg]): `translation_output`: + // gs://translation_output/a_b_c_[trg]_translation.[extension] + // `glossary_translation_output`: + // gs://translation_test/a_b_c_[trg]_glossary_translation.[extension] The + // output document will maintain the same file format as the input document. + // + // The naming format of error output files follows (for target language code + // [trg]): `error_output`: gs://translation_test/a_b_c_[trg]_errors.txt + // `glossary_error_output`: + // gs://translation_test/a_b_c_[trg]_glossary_translation.txt The error + // output is a txt file containing error details. + GcsDestination gcs_destination = 1; + } +} + +// Stored in the +// [google.longrunning.Operation.response][google.longrunning.Operation.response] +// field returned by BatchTranslateDocument if at least one document is +// translated successfully. +message BatchTranslateDocumentResponse { + // Total number of pages to translate in all documents. Documents without + // clear page definition (such as XLSX) are not counted. + int64 total_pages = 1; + + // Number of successfully translated pages in all documents. Documents without + // clear page definition (such as XLSX) are not counted. + int64 translated_pages = 2; + + // Number of pages that failed to process in all documents. Documents without + // clear page definition (such as XLSX) are not counted. + int64 failed_pages = 3; + + // Number of billable pages in documents with clear page definition (such as + // PDF, DOCX, PPTX) + int64 total_billable_pages = 4; + + // Total number of characters (Unicode codepoints) in all documents. + int64 total_characters = 5; + + // Number of successfully translated characters (Unicode codepoints) in all + // documents. + int64 translated_characters = 6; + + // Number of characters that have failed to process (Unicode codepoints) in + // all documents. + int64 failed_characters = 7; + + // Number of billable characters (Unicode codepoints) in documents without + // clear page definition, such as XLSX. + int64 total_billable_characters = 8; + + // Time when the operation was submitted. + google.protobuf.Timestamp submit_time = 9; + + // The time when the operation is finished and + // [google.longrunning.Operation.done][google.longrunning.Operation.done] is + // set to true. + google.protobuf.Timestamp end_time = 10; +} + +// State metadata for the batch translation operation. +message BatchTranslateDocumentMetadata { + // State of the job. + enum State { + // Invalid. + STATE_UNSPECIFIED = 0; + + // Request is being processed. + RUNNING = 1; + + // The batch is processed, and at least one item was successfully processed. + SUCCEEDED = 2; + + // The batch is done and no item was successfully processed. + FAILED = 3; + + // Request is in the process of being canceled after caller invoked + // longrunning.Operations.CancelOperation on the request id. + CANCELLING = 4; + + // The batch is done after the user has called the + // longrunning.Operations.CancelOperation. Any records processed before the + // cancel command are output as specified in the request. + CANCELLED = 5; + } + + // The state of the operation. + State state = 1; + + // Total number of pages to translate in all documents so far. Documents + // without clear page definition (such as XLSX) are not counted. + int64 total_pages = 2; + + // Number of successfully translated pages in all documents so far. Documents + // without clear page definition (such as XLSX) are not counted. + int64 translated_pages = 3; + + // Number of pages that failed to process in all documents so far. Documents + // without clear page definition (such as XLSX) are not counted. + int64 failed_pages = 4; + + // Number of billable pages in documents with clear page definition (such as + // PDF, DOCX, PPTX) so far. + int64 total_billable_pages = 5; + + // Total number of characters (Unicode codepoints) in all documents so far. + int64 total_characters = 6; + + // Number of successfully translated characters (Unicode codepoints) in all + // documents so far. + int64 translated_characters = 7; + + // Number of characters that have failed to process (Unicode codepoints) in + // all documents so far. + int64 failed_characters = 8; + + // Number of billable characters (Unicode codepoints) in documents without + // clear page definition (such as XLSX) so far. + int64 total_billable_characters = 9; + + // Time when the operation was submitted. + google.protobuf.Timestamp submit_time = 10; +} diff --git a/owl-bot-staging/v3beta1/samples/generated/v3beta1/snippet_metadata.google.cloud.translation.v3beta1.json b/owl-bot-staging/v3beta1/samples/generated/v3beta1/snippet_metadata.google.cloud.translation.v3beta1.json new file mode 100644 index 00000000..a9b9e06b --- /dev/null +++ b/owl-bot-staging/v3beta1/samples/generated/v3beta1/snippet_metadata.google.cloud.translation.v3beta1.json @@ -0,0 +1,567 @@ +{ + "clientLibrary": { + "name": "nodejs-translation", + "version": "0.1.0", + "language": "TYPESCRIPT", + "apis": [ + { + "id": "google.cloud.translation.v3beta1", + "version": "v3beta1" + } + ] + }, + "snippets": [ + { + "regionTag": "translate_v3beta1_generated_TranslationService_TranslateText_async", + "title": "TranslationService translateText Sample", + "origin": "API_DEFINITION", + "description": " Translates input text and returns translated text.", + "canonical": true, + "file": "translation_service.translate_text.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 114, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "TranslateText", + "fullName": "google.cloud.translation.v3beta1.TranslationService.TranslateText", + "async": true, + "parameters": [ + { + "name": "contents", + "type": "TYPE_STRING[]" + }, + { + "name": "mime_type", + "type": "TYPE_STRING" + }, + { + "name": "source_language_code", + "type": "TYPE_STRING" + }, + { + "name": "target_language_code", + "type": "TYPE_STRING" + }, + { + "name": "parent", + "type": "TYPE_STRING" + }, + { + "name": "model", + "type": "TYPE_STRING" + }, + { + "name": "glossary_config", + "type": ".google.cloud.translation.v3beta1.TranslateTextGlossaryConfig" + }, + { + "name": "labels", + "type": "TYPE_MESSAGE[]" + } + ], + "resultType": ".google.cloud.translation.v3beta1.TranslateTextResponse", + "client": { + "shortName": "TranslationServiceClient", + "fullName": "google.cloud.translation.v3beta1.TranslationServiceClient" + }, + "method": { + "shortName": "TranslateText", + "fullName": "google.cloud.translation.v3beta1.TranslationService.TranslateText", + "service": { + "shortName": "TranslationService", + "fullName": "google.cloud.translation.v3beta1.TranslationService" + } + } + } + }, + { + "regionTag": "translate_v3beta1_generated_TranslationService_DetectLanguage_async", + "title": "TranslationService detectLanguage Sample", + "origin": "API_DEFINITION", + "description": " Detects the language of text within a request.", + "canonical": true, + "file": "translation_service.detect_language.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 84, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "DetectLanguage", + "fullName": "google.cloud.translation.v3beta1.TranslationService.DetectLanguage", + "async": true, + "parameters": [ + { + "name": "parent", + "type": "TYPE_STRING" + }, + { + "name": "model", + "type": "TYPE_STRING" + }, + { + "name": "content", + "type": "TYPE_STRING" + }, + { + "name": "mime_type", + "type": "TYPE_STRING" + }, + { + "name": "labels", + "type": "TYPE_MESSAGE[]" + } + ], + "resultType": ".google.cloud.translation.v3beta1.DetectLanguageResponse", + "client": { + "shortName": "TranslationServiceClient", + "fullName": "google.cloud.translation.v3beta1.TranslationServiceClient" + }, + "method": { + "shortName": "DetectLanguage", + "fullName": "google.cloud.translation.v3beta1.TranslationService.DetectLanguage", + "service": { + "shortName": "TranslationService", + "fullName": "google.cloud.translation.v3beta1.TranslationService" + } + } + } + }, + { + "regionTag": "translate_v3beta1_generated_TranslationService_GetSupportedLanguages_async", + "title": "TranslationService getSupportedLanguages Sample", + "origin": "API_DEFINITION", + "description": " Returns a list of supported languages for translation.", + "canonical": true, + "file": "translation_service.get_supported_languages.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 75, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "GetSupportedLanguages", + "fullName": "google.cloud.translation.v3beta1.TranslationService.GetSupportedLanguages", + "async": true, + "parameters": [ + { + "name": "parent", + "type": "TYPE_STRING" + }, + { + "name": "display_language_code", + "type": "TYPE_STRING" + }, + { + "name": "model", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.cloud.translation.v3beta1.SupportedLanguages", + "client": { + "shortName": "TranslationServiceClient", + "fullName": "google.cloud.translation.v3beta1.TranslationServiceClient" + }, + "method": { + "shortName": "GetSupportedLanguages", + "fullName": "google.cloud.translation.v3beta1.TranslationService.GetSupportedLanguages", + "service": { + "shortName": "TranslationService", + "fullName": "google.cloud.translation.v3beta1.TranslationService" + } + } + } + }, + { + "regionTag": "translate_v3beta1_generated_TranslationService_TranslateDocument_async", + "title": "TranslationService translateDocument Sample", + "origin": "API_DEFINITION", + "description": " Translates documents in synchronous mode.", + "canonical": true, + "file": "translation_service.translate_document.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 111, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "TranslateDocument", + "fullName": "google.cloud.translation.v3beta1.TranslationService.TranslateDocument", + "async": true, + "parameters": [ + { + "name": "parent", + "type": "TYPE_STRING" + }, + { + "name": "source_language_code", + "type": "TYPE_STRING" + }, + { + "name": "target_language_code", + "type": "TYPE_STRING" + }, + { + "name": "document_input_config", + "type": ".google.cloud.translation.v3beta1.DocumentInputConfig" + }, + { + "name": "document_output_config", + "type": ".google.cloud.translation.v3beta1.DocumentOutputConfig" + }, + { + "name": "model", + "type": "TYPE_STRING" + }, + { + "name": "glossary_config", + "type": ".google.cloud.translation.v3beta1.TranslateTextGlossaryConfig" + }, + { + "name": "labels", + "type": "TYPE_MESSAGE[]" + } + ], + "resultType": ".google.cloud.translation.v3beta1.TranslateDocumentResponse", + "client": { + "shortName": "TranslationServiceClient", + "fullName": "google.cloud.translation.v3beta1.TranslationServiceClient" + }, + "method": { + "shortName": "TranslateDocument", + "fullName": "google.cloud.translation.v3beta1.TranslationService.TranslateDocument", + "service": { + "shortName": "TranslationService", + "fullName": "google.cloud.translation.v3beta1.TranslationService" + } + } + } + }, + { + "regionTag": "translate_v3beta1_generated_TranslationService_BatchTranslateText_async", + "title": "TranslationService batchTranslateText Sample", + "origin": "API_DEFINITION", + "description": " Translates a large volume of text in asynchronous batch mode. This function provides real-time output as the inputs are being processed. If caller cancels a request, the partial results (for an input file, it's all or nothing) may still be available on the specified output location. This call returns immediately and you can use google.longrunning.Operation.name to poll the status of the call.", + "canonical": true, + "file": "translation_service.batch_translate_text.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 108, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "BatchTranslateText", + "fullName": "google.cloud.translation.v3beta1.TranslationService.BatchTranslateText", + "async": true, + "parameters": [ + { + "name": "parent", + "type": "TYPE_STRING" + }, + { + "name": "source_language_code", + "type": "TYPE_STRING" + }, + { + "name": "target_language_codes", + "type": "TYPE_STRING[]" + }, + { + "name": "models", + "type": "TYPE_MESSAGE[]" + }, + { + "name": "input_configs", + "type": "TYPE_MESSAGE[]" + }, + { + "name": "output_config", + "type": ".google.cloud.translation.v3beta1.OutputConfig" + }, + { + "name": "glossaries", + "type": "TYPE_MESSAGE[]" + }, + { + "name": "labels", + "type": "TYPE_MESSAGE[]" + } + ], + "resultType": ".google.longrunning.Operation", + "client": { + "shortName": "TranslationServiceClient", + "fullName": "google.cloud.translation.v3beta1.TranslationServiceClient" + }, + "method": { + "shortName": "BatchTranslateText", + "fullName": "google.cloud.translation.v3beta1.TranslationService.BatchTranslateText", + "service": { + "shortName": "TranslationService", + "fullName": "google.cloud.translation.v3beta1.TranslationService" + } + } + } + }, + { + "regionTag": "translate_v3beta1_generated_TranslationService_BatchTranslateDocument_async", + "title": "TranslationService batchTranslateDocument Sample", + "origin": "API_DEFINITION", + "description": " Translates a large volume of documents in asynchronous batch mode. This function provides real-time output as the inputs are being processed. If caller cancels a request, the partial results (for an input file, it's all or nothing) may still be available on the specified output location. This call returns immediately and you can use google.longrunning.Operation.name to poll the status of the call.", + "canonical": true, + "file": "translation_service.batch_translate_document.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 112, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "BatchTranslateDocument", + "fullName": "google.cloud.translation.v3beta1.TranslationService.BatchTranslateDocument", + "async": true, + "parameters": [ + { + "name": "parent", + "type": "TYPE_STRING" + }, + { + "name": "source_language_code", + "type": "TYPE_STRING" + }, + { + "name": "target_language_codes", + "type": "TYPE_STRING[]" + }, + { + "name": "input_configs", + "type": "TYPE_MESSAGE[]" + }, + { + "name": "output_config", + "type": ".google.cloud.translation.v3beta1.BatchDocumentOutputConfig" + }, + { + "name": "models", + "type": "TYPE_MESSAGE[]" + }, + { + "name": "glossaries", + "type": "TYPE_MESSAGE[]" + }, + { + "name": "format_conversions", + "type": "TYPE_MESSAGE[]" + } + ], + "resultType": ".google.longrunning.Operation", + "client": { + "shortName": "TranslationServiceClient", + "fullName": "google.cloud.translation.v3beta1.TranslationServiceClient" + }, + "method": { + "shortName": "BatchTranslateDocument", + "fullName": "google.cloud.translation.v3beta1.TranslationService.BatchTranslateDocument", + "service": { + "shortName": "TranslationService", + "fullName": "google.cloud.translation.v3beta1.TranslationService" + } + } + } + }, + { + "regionTag": "translate_v3beta1_generated_TranslationService_CreateGlossary_async", + "title": "TranslationService createGlossary Sample", + "origin": "API_DEFINITION", + "description": " Creates a glossary and returns the long-running operation. Returns NOT_FOUND, if the project doesn't exist.", + "canonical": true, + "file": "translation_service.create_glossary.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 56, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "CreateGlossary", + "fullName": "google.cloud.translation.v3beta1.TranslationService.CreateGlossary", + "async": true, + "parameters": [ + { + "name": "parent", + "type": "TYPE_STRING" + }, + { + "name": "glossary", + "type": ".google.cloud.translation.v3beta1.Glossary" + } + ], + "resultType": ".google.longrunning.Operation", + "client": { + "shortName": "TranslationServiceClient", + "fullName": "google.cloud.translation.v3beta1.TranslationServiceClient" + }, + "method": { + "shortName": "CreateGlossary", + "fullName": "google.cloud.translation.v3beta1.TranslationService.CreateGlossary", + "service": { + "shortName": "TranslationService", + "fullName": "google.cloud.translation.v3beta1.TranslationService" + } + } + } + }, + { + "regionTag": "translate_v3beta1_generated_TranslationService_ListGlossaries_async", + "title": "TranslationService listGlossaries Sample", + "origin": "API_DEFINITION", + "description": " Lists glossaries in a project. Returns NOT_FOUND, if the project doesn't exist.", + "canonical": true, + "file": "translation_service.list_glossaries.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 83, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "ListGlossaries", + "fullName": "google.cloud.translation.v3beta1.TranslationService.ListGlossaries", + "async": true, + "parameters": [ + { + "name": "parent", + "type": "TYPE_STRING" + }, + { + "name": "page_size", + "type": "TYPE_INT32" + }, + { + "name": "page_token", + "type": "TYPE_STRING" + }, + { + "name": "filter", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.cloud.translation.v3beta1.ListGlossariesResponse", + "client": { + "shortName": "TranslationServiceClient", + "fullName": "google.cloud.translation.v3beta1.TranslationServiceClient" + }, + "method": { + "shortName": "ListGlossaries", + "fullName": "google.cloud.translation.v3beta1.TranslationService.ListGlossaries", + "service": { + "shortName": "TranslationService", + "fullName": "google.cloud.translation.v3beta1.TranslationService" + } + } + } + }, + { + "regionTag": "translate_v3beta1_generated_TranslationService_GetGlossary_async", + "title": "TranslationService getGlossary Sample", + "origin": "API_DEFINITION", + "description": " Gets a glossary. Returns NOT_FOUND, if the glossary doesn't exist.", + "canonical": true, + "file": "translation_service.get_glossary.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 50, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "GetGlossary", + "fullName": "google.cloud.translation.v3beta1.TranslationService.GetGlossary", + "async": true, + "parameters": [ + { + "name": "name", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.cloud.translation.v3beta1.Glossary", + "client": { + "shortName": "TranslationServiceClient", + "fullName": "google.cloud.translation.v3beta1.TranslationServiceClient" + }, + "method": { + "shortName": "GetGlossary", + "fullName": "google.cloud.translation.v3beta1.TranslationService.GetGlossary", + "service": { + "shortName": "TranslationService", + "fullName": "google.cloud.translation.v3beta1.TranslationService" + } + } + } + }, + { + "regionTag": "translate_v3beta1_generated_TranslationService_DeleteGlossary_async", + "title": "TranslationService deleteGlossary Sample", + "origin": "API_DEFINITION", + "description": " Deletes a glossary, or cancels glossary construction if the glossary isn't created yet. Returns NOT_FOUND, if the glossary doesn't exist.", + "canonical": true, + "file": "translation_service.delete_glossary.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 51, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "DeleteGlossary", + "fullName": "google.cloud.translation.v3beta1.TranslationService.DeleteGlossary", + "async": true, + "parameters": [ + { + "name": "name", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.longrunning.Operation", + "client": { + "shortName": "TranslationServiceClient", + "fullName": "google.cloud.translation.v3beta1.TranslationServiceClient" + }, + "method": { + "shortName": "DeleteGlossary", + "fullName": "google.cloud.translation.v3beta1.TranslationService.DeleteGlossary", + "service": { + "shortName": "TranslationService", + "fullName": "google.cloud.translation.v3beta1.TranslationService" + } + } + } + } + ] +} diff --git a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.batch_translate_document.js b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.batch_translate_document.js new file mode 100644 index 00000000..9799f763 --- /dev/null +++ b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.batch_translate_document.js @@ -0,0 +1,120 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(parent, sourceLanguageCode, targetLanguageCodes, inputConfigs, outputConfig) { + // [START translate_v3beta1_generated_TranslationService_BatchTranslateDocument_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. Location to make a regional call. + * Format: `projects/{project-number-or-id}/locations/{location-id}`. + * The `global` location is not supported for batch translation. + * Only AutoML Translation models or glossaries within the same region (have + * the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) + * error is returned. + */ + // const parent = 'abc123' + /** + * Required. The BCP-47 language code of the input document if known, for + * example, "en-US" or "sr-Latn". Supported language codes are listed in + * Language Support (https://cloud.google.com/translate/docs/languages). + */ + // const sourceLanguageCode = 'abc123' + /** + * Required. The BCP-47 language code to use for translation of the input + * document. Specify up to 10 language codes here. + */ + // const targetLanguageCodes = 'abc123' + /** + * Required. Input configurations. + * The total number of files matched should be <= 100. + * The total content size to translate should be <= 100M Unicode codepoints. + * The files must use UTF-8 encoding. + */ + // const inputConfigs = 1234 + /** + * Required. Output configuration. + * If 2 input configs match to the same file (that is, same input path), + * we don't generate output for duplicate inputs. + */ + // const outputConfig = {} + /** + * Optional. The models to use for translation. Map's key is target language + * code. Map's value is the model name. Value can be a built-in general model, + * or an AutoML Translation model. + * The value format depends on model type: + * - AutoML Translation models: + * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + * - General (built-in) models: + * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + * If the map is empty or a specific model is not requested for a language + * pair, then default google model (nmt) is used. + */ + // const models = 1234 + /** + * Optional. Glossaries to be applied. It's keyed by target language code. + */ + // const glossaries = 1234 + /** + * Optional. File format conversion map to be applied to all input files. + * Map's key is the original mime_type. Map's value is the target mime_type of + * translated documents. + * Supported file format conversion includes: + * - `application/pdf` to + * `application/vnd.openxmlformats-officedocument.wordprocessingml.document` + * If nothing specified, output files will be in the same format as the + * original file. + */ + // const formatConversions = 1234 + + // Imports the Translation library + const {TranslationServiceClient} = require('@google-cloud/translate').v3beta1; + + // Instantiates a client + const translationClient = new TranslationServiceClient(); + + async function callBatchTranslateDocument() { + // Construct request + const request = { + parent, + sourceLanguageCode, + targetLanguageCodes, + inputConfigs, + outputConfig, + }; + + // Run request + const [operation] = await translationClient.batchTranslateDocument(request); + const [response] = await operation.promise(); + console.log(response); + } + + callBatchTranslateDocument(); + // [END translate_v3beta1_generated_TranslationService_BatchTranslateDocument_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.batch_translate_text.js b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.batch_translate_text.js new file mode 100644 index 00000000..cd544b9f --- /dev/null +++ b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.batch_translate_text.js @@ -0,0 +1,116 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(parent, sourceLanguageCode, targetLanguageCodes, inputConfigs, outputConfig) { + // [START translate_v3beta1_generated_TranslationService_BatchTranslateText_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. Location to make a call. Must refer to a caller's project. + * Format: `projects/{project-number-or-id}/locations/{location-id}`. + * The `global` location is not supported for batch translation. + * Only AutoML Translation models or glossaries within the same region (have + * the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) + * error is returned. + */ + // const parent = 'abc123' + /** + * Required. Source language code. + */ + // const sourceLanguageCode = 'abc123' + /** + * Required. Specify up to 10 language codes here. + */ + // const targetLanguageCodes = 'abc123' + /** + * Optional. The models to use for translation. Map's key is target language + * code. Map's value is model name. Value can be a built-in general model, + * or an AutoML Translation model. + * The value format depends on model type: + * - AutoML Translation models: + * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + * - General (built-in) models: + * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + * If the map is empty or a specific model is + * not requested for a language pair, then default google model (nmt) is used. + */ + // const models = 1234 + /** + * Required. Input configurations. + * The total number of files matched should be <= 100. + * The total content size should be <= 100M Unicode codepoints. + * The files must use UTF-8 encoding. + */ + // const inputConfigs = 1234 + /** + * Required. Output configuration. + * If 2 input configs match to the same file (that is, same input path), + * we don't generate output for duplicate inputs. + */ + // const outputConfig = {} + /** + * Optional. Glossaries to be applied for translation. + * It's keyed by target language code. + */ + // const glossaries = 1234 + /** + * Optional. The labels with user-defined metadata for the request. + * Label keys and values can be no longer than 63 characters + * (Unicode codepoints), can only contain lowercase letters, numeric + * characters, underscores and dashes. International characters are allowed. + * Label values are optional. Label keys must start with a letter. + * See https://cloud.google.com/translate/docs/labels for more information. + */ + // const labels = 1234 + + // Imports the Translation library + const {TranslationServiceClient} = require('@google-cloud/translate').v3beta1; + + // Instantiates a client + const translationClient = new TranslationServiceClient(); + + async function callBatchTranslateText() { + // Construct request + const request = { + parent, + sourceLanguageCode, + targetLanguageCodes, + inputConfigs, + outputConfig, + }; + + // Run request + const [operation] = await translationClient.batchTranslateText(request); + const [response] = await operation.promise(); + console.log(response); + } + + callBatchTranslateText(); + // [END translate_v3beta1_generated_TranslationService_BatchTranslateText_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.create_glossary.js b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.create_glossary.js new file mode 100644 index 00000000..98d9ec5b --- /dev/null +++ b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.create_glossary.js @@ -0,0 +1,64 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(parent, glossary) { + // [START translate_v3beta1_generated_TranslationService_CreateGlossary_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The project name. + */ + // const parent = 'abc123' + /** + * Required. The glossary to create. + */ + // const glossary = {} + + // Imports the Translation library + const {TranslationServiceClient} = require('@google-cloud/translate').v3beta1; + + // Instantiates a client + const translationClient = new TranslationServiceClient(); + + async function callCreateGlossary() { + // Construct request + const request = { + parent, + glossary, + }; + + // Run request + const [operation] = await translationClient.createGlossary(request); + const [response] = await operation.promise(); + console.log(response); + } + + callCreateGlossary(); + // [END translate_v3beta1_generated_TranslationService_CreateGlossary_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.delete_glossary.js b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.delete_glossary.js new file mode 100644 index 00000000..349ddd3c --- /dev/null +++ b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.delete_glossary.js @@ -0,0 +1,59 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(name) { + // [START translate_v3beta1_generated_TranslationService_DeleteGlossary_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The name of the glossary to delete. + */ + // const name = 'abc123' + + // Imports the Translation library + const {TranslationServiceClient} = require('@google-cloud/translate').v3beta1; + + // Instantiates a client + const translationClient = new TranslationServiceClient(); + + async function callDeleteGlossary() { + // Construct request + const request = { + name, + }; + + // Run request + const [operation] = await translationClient.deleteGlossary(request); + const [response] = await operation.promise(); + console.log(response); + } + + callDeleteGlossary(); + // [END translate_v3beta1_generated_TranslationService_DeleteGlossary_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.detect_language.js b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.detect_language.js new file mode 100644 index 00000000..671d81e8 --- /dev/null +++ b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.detect_language.js @@ -0,0 +1,92 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(parent) { + // [START translate_v3beta1_generated_TranslationService_DetectLanguage_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. Project or location to make a call. Must refer to a caller's + * project. + * Format: `projects/{project-number-or-id}/locations/{location-id}` or + * `projects/{project-number-or-id}`. + * For global calls, use `projects/{project-number-or-id}/locations/global` or + * `projects/{project-number-or-id}`. + * Only models within the same region (has same location-id) can be used. + * Otherwise an INVALID_ARGUMENT (400) error is returned. + */ + // const parent = 'abc123' + /** + * Optional. The language detection model to be used. + * Format: + * `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/{model-id}` + * Only one language detection model is currently supported: + * `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/default`. + * If not specified, the default model is used. + */ + // const model = 'abc123' + /** + * The content of the input stored as a string. + */ + // const content = 'abc123' + /** + * Optional. The format of the source text, for example, "text/html", + * "text/plain". If left blank, the MIME type defaults to "text/html". + */ + // const mimeType = 'abc123' + /** + * Optional. The labels with user-defined metadata for the request. + * Label keys and values can be no longer than 63 characters + * (Unicode codepoints), can only contain lowercase letters, numeric + * characters, underscores and dashes. International characters are allowed. + * Label values are optional. Label keys must start with a letter. + * See https://cloud.google.com/translate/docs/labels for more information. + */ + // const labels = 1234 + + // Imports the Translation library + const {TranslationServiceClient} = require('@google-cloud/translate').v3beta1; + + // Instantiates a client + const translationClient = new TranslationServiceClient(); + + async function callDetectLanguage() { + // Construct request + const request = { + parent, + }; + + // Run request + const response = await translationClient.detectLanguage(request); + console.log(response); + } + + callDetectLanguage(); + // [END translate_v3beta1_generated_TranslationService_DetectLanguage_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.get_glossary.js b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.get_glossary.js new file mode 100644 index 00000000..bfc46986 --- /dev/null +++ b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.get_glossary.js @@ -0,0 +1,58 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(name) { + // [START translate_v3beta1_generated_TranslationService_GetGlossary_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The name of the glossary to retrieve. + */ + // const name = 'abc123' + + // Imports the Translation library + const {TranslationServiceClient} = require('@google-cloud/translate').v3beta1; + + // Instantiates a client + const translationClient = new TranslationServiceClient(); + + async function callGetGlossary() { + // Construct request + const request = { + name, + }; + + // Run request + const response = await translationClient.getGlossary(request); + console.log(response); + } + + callGetGlossary(); + // [END translate_v3beta1_generated_TranslationService_GetGlossary_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.get_supported_languages.js b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.get_supported_languages.js new file mode 100644 index 00000000..f587de0d --- /dev/null +++ b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.get_supported_languages.js @@ -0,0 +1,83 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(parent) { + // [START translate_v3beta1_generated_TranslationService_GetSupportedLanguages_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. Project or location to make a call. Must refer to a caller's + * project. + * Format: `projects/{project-number-or-id}` or + * `projects/{project-number-or-id}/locations/{location-id}`. + * For global calls, use `projects/{project-number-or-id}/locations/global` or + * `projects/{project-number-or-id}`. + * Non-global location is required for AutoML models. + * Only models within the same region (have same location-id) can be used, + * otherwise an INVALID_ARGUMENT (400) error is returned. + */ + // const parent = 'abc123' + /** + * Optional. The language to use to return localized, human readable names + * of supported languages. If missing, then display names are not returned + * in a response. + */ + // const displayLanguageCode = 'abc123' + /** + * Optional. Get supported languages of this model. + * The format depends on model type: + * - AutoML Translation models: + * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + * - General (built-in) models: + * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + * Returns languages supported by the specified model. + * If missing, we get supported languages of Google general NMT model. + */ + // const model = 'abc123' + + // Imports the Translation library + const {TranslationServiceClient} = require('@google-cloud/translate').v3beta1; + + // Instantiates a client + const translationClient = new TranslationServiceClient(); + + async function callGetSupportedLanguages() { + // Construct request + const request = { + parent, + }; + + // Run request + const response = await translationClient.getSupportedLanguages(request); + console.log(response); + } + + callGetSupportedLanguages(); + // [END translate_v3beta1_generated_TranslationService_GetSupportedLanguages_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.list_glossaries.js b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.list_glossaries.js new file mode 100644 index 00000000..d634c74e --- /dev/null +++ b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.list_glossaries.js @@ -0,0 +1,91 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(parent) { + // [START translate_v3beta1_generated_TranslationService_ListGlossaries_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The name of the project from which to list all of the glossaries. + */ + // const parent = 'abc123' + /** + * Optional. Requested page size. The server may return fewer glossaries than + * requested. If unspecified, the server picks an appropriate default. + */ + // const pageSize = 1234 + /** + * Optional. A token identifying a page of results the server should return. + * Typically, this is the value of ListGlossariesResponse.next_page_token + * returned from the previous call to `ListGlossaries` method. + * The first page is returned if `page_token`is empty or missing. + */ + // const pageToken = 'abc123' + /** + * Optional. Filter specifying constraints of a list operation. + * Specify the constraint by the format of "key=value", where key must be + * "src" or "tgt", and the value must be a valid language code. + * For multiple restrictions, concatenate them by "AND" (uppercase only), + * such as: "src=en-US AND tgt=zh-CN". Notice that the exact match is used + * here, which means using 'en-US' and 'en' can lead to different results, + * which depends on the language code you used when you create the glossary. + * For the unidirectional glossaries, the "src" and "tgt" add restrictions + * on the source and target language code separately. + * For the equivalent term set glossaries, the "src" and/or "tgt" add + * restrictions on the term set. + * For example: "src=en-US AND tgt=zh-CN" will only pick the unidirectional + * glossaries which exactly match the source language code as "en-US" and the + * target language code "zh-CN", but all equivalent term set glossaries which + * contain "en-US" and "zh-CN" in their language set will be picked. + * If missing, no filtering is performed. + */ + // const filter = 'abc123' + + // Imports the Translation library + const {TranslationServiceClient} = require('@google-cloud/translate').v3beta1; + + // Instantiates a client + const translationClient = new TranslationServiceClient(); + + async function callListGlossaries() { + // Construct request + const request = { + parent, + }; + + // Run request + const iterable = await translationClient.listGlossariesAsync(request); + for await (const response of iterable) { + console.log(response); + } + } + + callListGlossaries(); + // [END translate_v3beta1_generated_TranslationService_ListGlossaries_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.translate_document.js b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.translate_document.js new file mode 100644 index 00000000..5374904f --- /dev/null +++ b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.translate_document.js @@ -0,0 +1,119 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(parent, targetLanguageCode, documentInputConfig) { + // [START translate_v3beta1_generated_TranslationService_TranslateDocument_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. Location to make a regional call. + * Format: `projects/{project-number-or-id}/locations/{location-id}`. + * For global calls, use `projects/{project-number-or-id}/locations/global`. + * Non-global location is required for requests using AutoML models or custom + * glossaries. + * Models and glossaries must be within the same region (have the same + * location-id), otherwise an INVALID_ARGUMENT (400) error is returned. + */ + // const parent = 'abc123' + /** + * Optional. The BCP-47 language code of the input document if known, for + * example, "en-US" or "sr-Latn". Supported language codes are listed in + * Language Support. If the source language isn't specified, the API attempts + * to identify the source language automatically and returns the source + * language within the response. Source language must be specified if the + * request contains a glossary or a custom model. + */ + // const sourceLanguageCode = 'abc123' + /** + * Required. The BCP-47 language code to use for translation of the input + * document, set to one of the language codes listed in Language Support. + */ + // const targetLanguageCode = 'abc123' + /** + * Required. Input configurations. + */ + // const documentInputConfig = {} + /** + * Optional. Output configurations. + * Defines if the output file should be stored within Cloud Storage as well + * as the desired output format. If not provided the translated file will + * only be returned through a byte-stream and its output mime type will be + * the same as the input file's mime type. + */ + // const documentOutputConfig = {} + /** + * Optional. The `model` type requested for this translation. + * The format depends on model type: + * - AutoML Translation models: + * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + * - General (built-in) models: + * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + * If not provided, the default Google model (NMT) will be used for + * translation. + */ + // const model = 'abc123' + /** + * Optional. Glossary to be applied. The glossary must be within the same + * region (have the same location-id) as the model, otherwise an + * INVALID_ARGUMENT (400) error is returned. + */ + // const glossaryConfig = {} + /** + * Optional. The labels with user-defined metadata for the request. + * Label keys and values can be no longer than 63 characters (Unicode + * codepoints), can only contain lowercase letters, numeric characters, + * underscores and dashes. International characters are allowed. Label values + * are optional. Label keys must start with a letter. + * See https://cloud.google.com/translate/docs/advanced/labels for more + * information. + */ + // const labels = 1234 + + // Imports the Translation library + const {TranslationServiceClient} = require('@google-cloud/translate').v3beta1; + + // Instantiates a client + const translationClient = new TranslationServiceClient(); + + async function callTranslateDocument() { + // Construct request + const request = { + parent, + targetLanguageCode, + documentInputConfig, + }; + + // Run request + const response = await translationClient.translateDocument(request); + console.log(response); + } + + callTranslateDocument(); + // [END translate_v3beta1_generated_TranslationService_TranslateDocument_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.translate_text.js b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.translate_text.js new file mode 100644 index 00000000..8dc72738 --- /dev/null +++ b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.translate_text.js @@ -0,0 +1,122 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(contents, targetLanguageCode, parent) { + // [START translate_v3beta1_generated_TranslationService_TranslateText_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The content of the input in string format. + * We recommend the total content be less than 30k codepoints. The max length + * of this field is 1024. + * Use BatchTranslateText for larger text. + */ + // const contents = 'abc123' + /** + * Optional. The format of the source text, for example, "text/html", + * "text/plain". If left blank, the MIME type defaults to "text/html". + */ + // const mimeType = 'abc123' + /** + * Optional. The BCP-47 language code of the input text if + * known, for example, "en-US" or "sr-Latn". Supported language codes are + * listed in Language Support. If the source language isn't specified, the API + * attempts to identify the source language automatically and returns the + * source language within the response. + */ + // const sourceLanguageCode = 'abc123' + /** + * Required. The BCP-47 language code to use for translation of the input + * text, set to one of the language codes listed in Language Support. + */ + // const targetLanguageCode = 'abc123' + /** + * Required. Project or location to make a call. Must refer to a caller's + * project. + * Format: `projects/{project-number-or-id}` or + * `projects/{project-number-or-id}/locations/{location-id}`. + * For global calls, use `projects/{project-number-or-id}/locations/global` or + * `projects/{project-number-or-id}`. + * Non-global location is required for requests using AutoML models or + * custom glossaries. + * Models and glossaries must be within the same region (have same + * location-id), otherwise an INVALID_ARGUMENT (400) error is returned. + */ + // const parent = 'abc123' + /** + * Optional. The `model` type requested for this translation. + * The format depends on model type: + * - AutoML Translation models: + * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + * - General (built-in) models: + * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + * For global (non-regionalized) requests, use `location-id` `global`. + * For example, + * `projects/{project-number-or-id}/locations/global/models/general/nmt`. + * If not provided, the default Google model (NMT) will be used + */ + // const model = 'abc123' + /** + * Optional. Glossary to be applied. The glossary must be + * within the same region (have the same location-id) as the model, otherwise + * an INVALID_ARGUMENT (400) error is returned. + */ + // const glossaryConfig = {} + /** + * Optional. The labels with user-defined metadata for the request. + * Label keys and values can be no longer than 63 characters + * (Unicode codepoints), can only contain lowercase letters, numeric + * characters, underscores and dashes. International characters are allowed. + * Label values are optional. Label keys must start with a letter. + * See https://cloud.google.com/translate/docs/labels for more information. + */ + // const labels = 1234 + + // Imports the Translation library + const {TranslationServiceClient} = require('@google-cloud/translate').v3beta1; + + // Instantiates a client + const translationClient = new TranslationServiceClient(); + + async function callTranslateText() { + // Construct request + const request = { + contents, + targetLanguageCode, + parent, + }; + + // Run request + const response = await translationClient.translateText(request); + console.log(response); + } + + callTranslateText(); + // [END translate_v3beta1_generated_TranslationService_TranslateText_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3beta1/src/index.ts b/owl-bot-staging/v3beta1/src/index.ts new file mode 100644 index 00000000..732abb0b --- /dev/null +++ b/owl-bot-staging/v3beta1/src/index.ts @@ -0,0 +1,25 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + +import * as v3beta1 from './v3beta1'; +const TranslationServiceClient = v3beta1.TranslationServiceClient; +type TranslationServiceClient = v3beta1.TranslationServiceClient; +export {v3beta1, TranslationServiceClient}; +export default {v3beta1, TranslationServiceClient}; +import * as protos from '../protos/protos'; +export {protos} diff --git a/owl-bot-staging/v3beta1/src/v3beta1/gapic_metadata.json b/owl-bot-staging/v3beta1/src/v3beta1/gapic_metadata.json new file mode 100644 index 00000000..4c7891e5 --- /dev/null +++ b/owl-bot-staging/v3beta1/src/v3beta1/gapic_metadata.json @@ -0,0 +1,127 @@ +{ + "schema": "1.0", + "comment": "This file maps proto services/RPCs to the corresponding library clients/methods", + "language": "typescript", + "protoPackage": "google.cloud.translation.v3beta1", + "libraryPackage": "@google-cloud/translate", + "services": { + "TranslationService": { + "clients": { + "grpc": { + "libraryClient": "TranslationServiceClient", + "rpcs": { + "TranslateText": { + "methods": [ + "translateText" + ] + }, + "DetectLanguage": { + "methods": [ + "detectLanguage" + ] + }, + "GetSupportedLanguages": { + "methods": [ + "getSupportedLanguages" + ] + }, + "TranslateDocument": { + "methods": [ + "translateDocument" + ] + }, + "GetGlossary": { + "methods": [ + "getGlossary" + ] + }, + "BatchTranslateText": { + "methods": [ + "batchTranslateText" + ] + }, + "BatchTranslateDocument": { + "methods": [ + "batchTranslateDocument" + ] + }, + "CreateGlossary": { + "methods": [ + "createGlossary" + ] + }, + "DeleteGlossary": { + "methods": [ + "deleteGlossary" + ] + }, + "ListGlossaries": { + "methods": [ + "listGlossaries", + "listGlossariesStream", + "listGlossariesAsync" + ] + } + } + }, + "grpc-fallback": { + "libraryClient": "TranslationServiceClient", + "rpcs": { + "TranslateText": { + "methods": [ + "translateText" + ] + }, + "DetectLanguage": { + "methods": [ + "detectLanguage" + ] + }, + "GetSupportedLanguages": { + "methods": [ + "getSupportedLanguages" + ] + }, + "TranslateDocument": { + "methods": [ + "translateDocument" + ] + }, + "GetGlossary": { + "methods": [ + "getGlossary" + ] + }, + "BatchTranslateText": { + "methods": [ + "batchTranslateText" + ] + }, + "BatchTranslateDocument": { + "methods": [ + "batchTranslateDocument" + ] + }, + "CreateGlossary": { + "methods": [ + "createGlossary" + ] + }, + "DeleteGlossary": { + "methods": [ + "deleteGlossary" + ] + }, + "ListGlossaries": { + "methods": [ + "listGlossaries", + "listGlossariesStream", + "listGlossariesAsync" + ] + } + } + } + } + } + } +} diff --git a/owl-bot-staging/v3beta1/src/v3beta1/index.ts b/owl-bot-staging/v3beta1/src/v3beta1/index.ts new file mode 100644 index 00000000..46c99bab --- /dev/null +++ b/owl-bot-staging/v3beta1/src/v3beta1/index.ts @@ -0,0 +1,19 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + +export {TranslationServiceClient} from './translation_service_client'; diff --git a/owl-bot-staging/v3beta1/src/v3beta1/translation_service_client.ts b/owl-bot-staging/v3beta1/src/v3beta1/translation_service_client.ts new file mode 100644 index 00000000..da921b4d --- /dev/null +++ b/owl-bot-staging/v3beta1/src/v3beta1/translation_service_client.ts @@ -0,0 +1,1713 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + +/* global window */ +import * as gax from 'google-gax'; +import {Callback, CallOptions, Descriptors, ClientOptions, GrpcClientOptions, LROperation, PaginationCallback, GaxCall} from 'google-gax'; + +import { Transform } from 'stream'; +import { RequestType } from 'google-gax/build/src/apitypes'; +import * as protos from '../../protos/protos'; +import jsonProtos = require('../../protos/protos.json'); +/** + * Client JSON configuration object, loaded from + * `src/v3beta1/translation_service_client_config.json`. + * This file defines retry strategy and timeouts for all API methods in this library. + */ +import * as gapicConfig from './translation_service_client_config.json'; +import { operationsProtos } from 'google-gax'; +const version = require('../../../package.json').version; + +/** + * Provides natural language translation operations. + * @class + * @memberof v3beta1 + */ +export class TranslationServiceClient { + private _terminated = false; + private _opts: ClientOptions; + private _providedCustomServicePath: boolean; + private _gaxModule: typeof gax | typeof gax.fallback; + private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; + private _protos: {}; + private _defaults: {[method: string]: gax.CallSettings}; + auth: gax.GoogleAuth; + descriptors: Descriptors = { + page: {}, + stream: {}, + longrunning: {}, + batching: {}, + }; + warn: (code: string, message: string, warnType?: string) => void; + innerApiCalls: {[name: string]: Function}; + pathTemplates: {[name: string]: gax.PathTemplate}; + operationsClient: gax.OperationsClient; + translationServiceStub?: Promise<{[name: string]: Function}>; + + /** + * Construct an instance of TranslationServiceClient. + * + * @param {object} [options] - The configuration object. + * The options accepted by the constructor are described in detail + * in [this document](https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#creating-the-client-instance). + * The common options are: + * @param {object} [options.credentials] - Credentials object. + * @param {string} [options.credentials.client_email] + * @param {string} [options.credentials.private_key] + * @param {string} [options.email] - Account email address. Required when + * using a .pem or .p12 keyFilename. + * @param {string} [options.keyFilename] - Full path to the a .json, .pem, or + * .p12 key downloaded from the Google Developers Console. If you provide + * a path to a JSON file, the projectId option below is not necessary. + * NOTE: .pem and .p12 require you to specify options.email as well. + * @param {number} [options.port] - The port on which to connect to + * the remote host. + * @param {string} [options.projectId] - The project ID from the Google + * Developer's Console, e.g. 'grape-spaceship-123'. We will also check + * the environment variable GCLOUD_PROJECT for your project ID. If your + * app is running in an environment which supports + * {@link https://developers.google.com/identity/protocols/application-default-credentials Application Default Credentials}, + * your project ID will be detected automatically. + * @param {string} [options.apiEndpoint] - The domain name of the + * API remote host. + * @param {gax.ClientConfig} [options.clientConfig] - Client configuration override. + * Follows the structure of {@link gapicConfig}. + * @param {boolean | "rest"} [options.fallback] - Use HTTP fallback mode. + * Pass "rest" to use HTTP/1.1 REST API instead of gRPC. + * For more information, please check the + * {@link https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#http11-rest-api-mode documentation}. + */ + constructor(opts?: ClientOptions) { + // Ensure that options include all the required fields. + const staticMembers = this.constructor as typeof TranslationServiceClient; + const servicePath = opts?.servicePath || opts?.apiEndpoint || staticMembers.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); + + // If scopes are unset in options and we're connecting to a non-default endpoint, set scopes just in case. + if (servicePath !== staticMembers.servicePath && !('scopes' in opts)) { + opts['scopes'] = staticMembers.scopes; + } + + // Choose either gRPC or proto-over-HTTP implementation of google-gax. + this._gaxModule = opts.fallback ? gax.fallback : gax; + + // Create a `gaxGrpc` object, with any grpc-specific options sent to the client. + this._gaxGrpc = new this._gaxModule.GrpcClient(opts); + + // Save options to use in initialize() method. + this._opts = opts; + + // Save the auth object to the client, for use by other methods. + this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); + + // Set useJWTAccessWithScope on the auth object. + this.auth.useJWTAccessWithScope = true; + + // Set defaultServicePath on the auth object. + this.auth.defaultServicePath = staticMembers.servicePath; + + // Set the default scopes in auth client if needed. + if (servicePath === staticMembers.servicePath) { + this.auth.defaultScopes = staticMembers.scopes; + } + + // Determine the client header string. + const clientHeader = [ + `gax/${this._gaxModule.version}`, + `gapic/${version}`, + ]; + if (typeof process !== 'undefined' && 'versions' in process) { + clientHeader.push(`gl-node/${process.versions.node}`); + } else { + clientHeader.push(`gl-web/${this._gaxModule.version}`); + } + if (!opts.fallback) { + clientHeader.push(`grpc/${this._gaxGrpc.grpcVersion}`); + } else if (opts.fallback === 'rest' ) { + clientHeader.push(`rest/${this._gaxGrpc.grpcVersion}`); + } + if (opts.libName && opts.libVersion) { + clientHeader.push(`${opts.libName}/${opts.libVersion}`); + } + // Load the applicable protos. + this._protos = this._gaxGrpc.loadProtoJSON(jsonProtos); + + // This API contains "path templates"; forward-slash-separated + // identifiers to uniquely identify resources within the API. + // Create useful helper objects for these. + this.pathTemplates = { + glossaryPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/locations/{location}/glossaries/{glossary}' + ), + locationPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/locations/{location}' + ), + }; + + // Some of the methods on this service return "paged" results, + // (e.g. 50 results at a time, with tokens to get subsequent + // pages). Denote the keys used for pagination and results. + this.descriptors.page = { + listGlossaries: + new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'glossaries') + }; + + const protoFilesRoot = this._gaxModule.protobuf.Root.fromJSON(jsonProtos); + // This API contains "long-running operations", which return a + // an Operation object that allows for tracking of the operation, + // rather than holding a request open. + const lroOptions: GrpcClientOptions = { + auth: this.auth, + grpc: 'grpc' in this._gaxGrpc ? this._gaxGrpc.grpc : undefined + }; + if (opts.fallback === 'rest') { + lroOptions.protoJson = protoFilesRoot; + lroOptions.httpRules = [{selector: 'google.cloud.location.Locations.GetLocation',get: '/v3beta1/{name=projects/*/locations/*}',},{selector: 'google.cloud.location.Locations.ListLocations',get: '/v3beta1/{name=projects/*}/locations',},{selector: 'google.longrunning.Operations.CancelOperation',post: '/v3beta1/{name=projects/*/locations/*/operations/*}:cancel',body: '*',},{selector: 'google.longrunning.Operations.DeleteOperation',delete: '/v3beta1/{name=projects/*/locations/*/operations/*}',},{selector: 'google.longrunning.Operations.GetOperation',get: '/v3beta1/{name=projects/*/locations/*/operations/*}',},{selector: 'google.longrunning.Operations.ListOperations',get: '/v3beta1/{name=projects/*/locations/*}/operations',},{selector: 'google.longrunning.Operations.WaitOperation',post: '/v3beta1/{name=projects/*/locations/*/operations/*}:wait',body: '*',}]; + } + this.operationsClient = this._gaxModule.lro(lroOptions).operationsClient(opts); + const batchTranslateTextResponse = protoFilesRoot.lookup( + '.google.cloud.translation.v3beta1.BatchTranslateResponse') as gax.protobuf.Type; + const batchTranslateTextMetadata = protoFilesRoot.lookup( + '.google.cloud.translation.v3beta1.BatchTranslateMetadata') as gax.protobuf.Type; + const batchTranslateDocumentResponse = protoFilesRoot.lookup( + '.google.cloud.translation.v3beta1.BatchTranslateDocumentResponse') as gax.protobuf.Type; + const batchTranslateDocumentMetadata = protoFilesRoot.lookup( + '.google.cloud.translation.v3beta1.BatchTranslateDocumentMetadata') as gax.protobuf.Type; + const createGlossaryResponse = protoFilesRoot.lookup( + '.google.cloud.translation.v3beta1.Glossary') as gax.protobuf.Type; + const createGlossaryMetadata = protoFilesRoot.lookup( + '.google.cloud.translation.v3beta1.CreateGlossaryMetadata') as gax.protobuf.Type; + const deleteGlossaryResponse = protoFilesRoot.lookup( + '.google.cloud.translation.v3beta1.DeleteGlossaryResponse') as gax.protobuf.Type; + const deleteGlossaryMetadata = protoFilesRoot.lookup( + '.google.cloud.translation.v3beta1.DeleteGlossaryMetadata') as gax.protobuf.Type; + + this.descriptors.longrunning = { + batchTranslateText: new this._gaxModule.LongrunningDescriptor( + this.operationsClient, + batchTranslateTextResponse.decode.bind(batchTranslateTextResponse), + batchTranslateTextMetadata.decode.bind(batchTranslateTextMetadata)), + batchTranslateDocument: new this._gaxModule.LongrunningDescriptor( + this.operationsClient, + batchTranslateDocumentResponse.decode.bind(batchTranslateDocumentResponse), + batchTranslateDocumentMetadata.decode.bind(batchTranslateDocumentMetadata)), + createGlossary: new this._gaxModule.LongrunningDescriptor( + this.operationsClient, + createGlossaryResponse.decode.bind(createGlossaryResponse), + createGlossaryMetadata.decode.bind(createGlossaryMetadata)), + deleteGlossary: new this._gaxModule.LongrunningDescriptor( + this.operationsClient, + deleteGlossaryResponse.decode.bind(deleteGlossaryResponse), + deleteGlossaryMetadata.decode.bind(deleteGlossaryMetadata)) + }; + + // Put together the default options sent with requests. + this._defaults = this._gaxGrpc.constructSettings( + 'google.cloud.translation.v3beta1.TranslationService', gapicConfig as gax.ClientConfig, + opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); + + // Set up a dictionary of "inner API calls"; the core implementation + // of calling the API is handled in `google-gax`, with this code + // merely providing the destination and request information. + this.innerApiCalls = {}; + + // Add a warn function to the client constructor so it can be easily tested. + this.warn = gax.warn; + } + + /** + * Initialize the client. + * Performs asynchronous operations (such as authentication) and prepares the client. + * This function will be called automatically when any class method is called for the + * first time, but if you need to initialize it before calling an actual method, + * feel free to call initialize() directly. + * + * You can await on this method if you want to make sure the client is initialized. + * + * @returns {Promise} A promise that resolves to an authenticated service stub. + */ + initialize() { + // If the client stub promise is already initialized, return immediately. + if (this.translationServiceStub) { + return this.translationServiceStub; + } + + // Put together the "service stub" for + // google.cloud.translation.v3beta1.TranslationService. + this.translationServiceStub = this._gaxGrpc.createStub( + this._opts.fallback ? + (this._protos as protobuf.Root).lookupService('google.cloud.translation.v3beta1.TranslationService') : + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (this._protos as any).google.cloud.translation.v3beta1.TranslationService, + 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 translationServiceStubMethods = + ['translateText', 'detectLanguage', 'getSupportedLanguages', 'translateDocument', 'batchTranslateText', 'batchTranslateDocument', 'createGlossary', 'listGlossaries', 'getGlossary', 'deleteGlossary']; + for (const methodName of translationServiceStubMethods) { + const callPromise = this.translationServiceStub.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) => () => { + throw err; + }); + + const descriptor = + this.descriptors.page[methodName] || + this.descriptors.longrunning[methodName] || + undefined; + const apiCall = this._gaxModule.createApiCall( + callPromise, + this._defaults[methodName], + descriptor + ); + + this.innerApiCalls[methodName] = apiCall; + } + + return this.translationServiceStub; + } + + /** + * The DNS address for this API service. + * @returns {string} The DNS address for this service. + */ + static get servicePath() { + return 'translate.googleapis.com'; + } + + /** + * The DNS address for this API service - same as servicePath(), + * exists for compatibility reasons. + * @returns {string} The DNS address for this service. + */ + static get apiEndpoint() { + return 'translate.googleapis.com'; + } + + /** + * The port for this API service. + * @returns {number} The default port for this service. + */ + static get port() { + return 443; + } + + /** + * The scopes needed to make gRPC calls for every method defined + * in this service. + * @returns {string[]} List of default scopes. + */ + static get scopes() { + return [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/cloud-translation' + ]; + } + + getProjectId(): Promise; + getProjectId(callback: Callback): void; + /** + * Return the project ID used by this class. + * @returns {Promise} A promise that resolves to string containing the project ID. + */ + getProjectId(callback?: Callback): + Promise|void { + if (callback) { + this.auth.getProjectId(callback); + return; + } + return this.auth.getProjectId(); + } + + // ------------------- + // -- Service calls -- + // ------------------- +/** + * Translates input text and returns translated text. + * + * @param {Object} request + * The request object that will be sent. + * @param {string[]} request.contents + * Required. The content of the input in string format. + * We recommend the total content be less than 30k codepoints. The max length + * of this field is 1024. + * Use BatchTranslateText for larger text. + * @param {string} [request.mimeType] + * Optional. The format of the source text, for example, "text/html", + * "text/plain". If left blank, the MIME type defaults to "text/html". + * @param {string} [request.sourceLanguageCode] + * Optional. The BCP-47 language code of the input text if + * known, for example, "en-US" or "sr-Latn". Supported language codes are + * listed in Language Support. If the source language isn't specified, the API + * attempts to identify the source language automatically and returns the + * source language within the response. + * @param {string} request.targetLanguageCode + * Required. The BCP-47 language code to use for translation of the input + * text, set to one of the language codes listed in Language Support. + * @param {string} request.parent + * Required. Project or location to make a call. Must refer to a caller's + * project. + * + * Format: `projects/{project-number-or-id}` or + * `projects/{project-number-or-id}/locations/{location-id}`. + * + * For global calls, use `projects/{project-number-or-id}/locations/global` or + * `projects/{project-number-or-id}`. + * + * Non-global location is required for requests using AutoML models or + * custom glossaries. + * + * Models and glossaries must be within the same region (have same + * location-id), otherwise an INVALID_ARGUMENT (400) error is returned. + * @param {string} [request.model] + * Optional. The `model` type requested for this translation. + * + * The format depends on model type: + * + * - AutoML Translation models: + * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + * + * - General (built-in) models: + * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + * + * + * For global (non-regionalized) requests, use `location-id` `global`. + * For example, + * `projects/{project-number-or-id}/locations/global/models/general/nmt`. + * + * If not provided, the default Google model (NMT) will be used + * @param {google.cloud.translation.v3beta1.TranslateTextGlossaryConfig} [request.glossaryConfig] + * Optional. Glossary to be applied. The glossary must be + * within the same region (have the same location-id) as the model, otherwise + * an INVALID_ARGUMENT (400) error is returned. + * @param {number[]} [request.labels] + * Optional. The labels with user-defined metadata for the request. + * + * Label keys and values can be no longer than 63 characters + * (Unicode codepoints), can only contain lowercase letters, numeric + * characters, underscores and dashes. International characters are allowed. + * Label values are optional. Label keys must start with a letter. + * + * See https://cloud.google.com/translate/docs/labels for more information. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing [TranslateTextResponse]{@link google.cloud.translation.v3beta1.TranslateTextResponse}. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) + * for more details and examples. + * @example include:samples/generated/v3beta1/translation_service.translate_text.js + * region_tag:translate_v3beta1_generated_TranslationService_TranslateText_async + */ + translateText( + request?: protos.google.cloud.translation.v3beta1.ITranslateTextRequest, + options?: CallOptions): + Promise<[ + protos.google.cloud.translation.v3beta1.ITranslateTextResponse, + protos.google.cloud.translation.v3beta1.ITranslateTextRequest|undefined, {}|undefined + ]>; + translateText( + request: protos.google.cloud.translation.v3beta1.ITranslateTextRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.translation.v3beta1.ITranslateTextResponse, + protos.google.cloud.translation.v3beta1.ITranslateTextRequest|null|undefined, + {}|null|undefined>): void; + translateText( + request: protos.google.cloud.translation.v3beta1.ITranslateTextRequest, + callback: Callback< + protos.google.cloud.translation.v3beta1.ITranslateTextResponse, + protos.google.cloud.translation.v3beta1.ITranslateTextRequest|null|undefined, + {}|null|undefined>): void; + translateText( + request?: protos.google.cloud.translation.v3beta1.ITranslateTextRequest, + optionsOrCallback?: CallOptions|Callback< + protos.google.cloud.translation.v3beta1.ITranslateTextResponse, + protos.google.cloud.translation.v3beta1.ITranslateTextRequest|null|undefined, + {}|null|undefined>, + callback?: Callback< + protos.google.cloud.translation.v3beta1.ITranslateTextResponse, + protos.google.cloud.translation.v3beta1.ITranslateTextRequest|null|undefined, + {}|null|undefined>): + Promise<[ + protos.google.cloud.translation.v3beta1.ITranslateTextResponse, + protos.google.cloud.translation.v3beta1.ITranslateTextRequest|undefined, {}|undefined + ]>|void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'parent': request.parent || '', + }); + this.initialize(); + return this.innerApiCalls.translateText(request, options, callback); + } +/** + * Detects the language of text within a request. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Project or location to make a call. Must refer to a caller's + * project. + * + * Format: `projects/{project-number-or-id}/locations/{location-id}` or + * `projects/{project-number-or-id}`. + * + * For global calls, use `projects/{project-number-or-id}/locations/global` or + * `projects/{project-number-or-id}`. + * + * Only models within the same region (has same location-id) can be used. + * Otherwise an INVALID_ARGUMENT (400) error is returned. + * @param {string} [request.model] + * Optional. The language detection model to be used. + * + * Format: + * `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/{model-id}` + * + * Only one language detection model is currently supported: + * `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/default`. + * + * If not specified, the default model is used. + * @param {string} request.content + * The content of the input stored as a string. + * @param {string} [request.mimeType] + * Optional. The format of the source text, for example, "text/html", + * "text/plain". If left blank, the MIME type defaults to "text/html". + * @param {number[]} [request.labels] + * Optional. The labels with user-defined metadata for the request. + * + * Label keys and values can be no longer than 63 characters + * (Unicode codepoints), can only contain lowercase letters, numeric + * characters, underscores and dashes. International characters are allowed. + * Label values are optional. Label keys must start with a letter. + * + * See https://cloud.google.com/translate/docs/labels for more information. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing [DetectLanguageResponse]{@link google.cloud.translation.v3beta1.DetectLanguageResponse}. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) + * for more details and examples. + * @example include:samples/generated/v3beta1/translation_service.detect_language.js + * region_tag:translate_v3beta1_generated_TranslationService_DetectLanguage_async + */ + detectLanguage( + request?: protos.google.cloud.translation.v3beta1.IDetectLanguageRequest, + options?: CallOptions): + Promise<[ + protos.google.cloud.translation.v3beta1.IDetectLanguageResponse, + protos.google.cloud.translation.v3beta1.IDetectLanguageRequest|undefined, {}|undefined + ]>; + detectLanguage( + request: protos.google.cloud.translation.v3beta1.IDetectLanguageRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.translation.v3beta1.IDetectLanguageResponse, + protos.google.cloud.translation.v3beta1.IDetectLanguageRequest|null|undefined, + {}|null|undefined>): void; + detectLanguage( + request: protos.google.cloud.translation.v3beta1.IDetectLanguageRequest, + callback: Callback< + protos.google.cloud.translation.v3beta1.IDetectLanguageResponse, + protos.google.cloud.translation.v3beta1.IDetectLanguageRequest|null|undefined, + {}|null|undefined>): void; + detectLanguage( + request?: protos.google.cloud.translation.v3beta1.IDetectLanguageRequest, + optionsOrCallback?: CallOptions|Callback< + protos.google.cloud.translation.v3beta1.IDetectLanguageResponse, + protos.google.cloud.translation.v3beta1.IDetectLanguageRequest|null|undefined, + {}|null|undefined>, + callback?: Callback< + protos.google.cloud.translation.v3beta1.IDetectLanguageResponse, + protos.google.cloud.translation.v3beta1.IDetectLanguageRequest|null|undefined, + {}|null|undefined>): + Promise<[ + protos.google.cloud.translation.v3beta1.IDetectLanguageResponse, + protos.google.cloud.translation.v3beta1.IDetectLanguageRequest|undefined, {}|undefined + ]>|void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'parent': request.parent || '', + }); + this.initialize(); + return this.innerApiCalls.detectLanguage(request, options, callback); + } +/** + * Returns a list of supported languages for translation. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Project or location to make a call. Must refer to a caller's + * project. + * + * Format: `projects/{project-number-or-id}` or + * `projects/{project-number-or-id}/locations/{location-id}`. + * + * For global calls, use `projects/{project-number-or-id}/locations/global` or + * `projects/{project-number-or-id}`. + * + * Non-global location is required for AutoML models. + * + * Only models within the same region (have same location-id) can be used, + * otherwise an INVALID_ARGUMENT (400) error is returned. + * @param {string} [request.displayLanguageCode] + * Optional. The language to use to return localized, human readable names + * of supported languages. If missing, then display names are not returned + * in a response. + * @param {string} [request.model] + * Optional. Get supported languages of this model. + * + * The format depends on model type: + * + * - AutoML Translation models: + * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + * + * - General (built-in) models: + * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + * + * + * Returns languages supported by the specified model. + * If missing, we get supported languages of Google general NMT model. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing [SupportedLanguages]{@link google.cloud.translation.v3beta1.SupportedLanguages}. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) + * for more details and examples. + * @example include:samples/generated/v3beta1/translation_service.get_supported_languages.js + * region_tag:translate_v3beta1_generated_TranslationService_GetSupportedLanguages_async + */ + getSupportedLanguages( + request?: protos.google.cloud.translation.v3beta1.IGetSupportedLanguagesRequest, + options?: CallOptions): + Promise<[ + protos.google.cloud.translation.v3beta1.ISupportedLanguages, + protos.google.cloud.translation.v3beta1.IGetSupportedLanguagesRequest|undefined, {}|undefined + ]>; + getSupportedLanguages( + request: protos.google.cloud.translation.v3beta1.IGetSupportedLanguagesRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.translation.v3beta1.ISupportedLanguages, + protos.google.cloud.translation.v3beta1.IGetSupportedLanguagesRequest|null|undefined, + {}|null|undefined>): void; + getSupportedLanguages( + request: protos.google.cloud.translation.v3beta1.IGetSupportedLanguagesRequest, + callback: Callback< + protos.google.cloud.translation.v3beta1.ISupportedLanguages, + protos.google.cloud.translation.v3beta1.IGetSupportedLanguagesRequest|null|undefined, + {}|null|undefined>): void; + getSupportedLanguages( + request?: protos.google.cloud.translation.v3beta1.IGetSupportedLanguagesRequest, + optionsOrCallback?: CallOptions|Callback< + protos.google.cloud.translation.v3beta1.ISupportedLanguages, + protos.google.cloud.translation.v3beta1.IGetSupportedLanguagesRequest|null|undefined, + {}|null|undefined>, + callback?: Callback< + protos.google.cloud.translation.v3beta1.ISupportedLanguages, + protos.google.cloud.translation.v3beta1.IGetSupportedLanguagesRequest|null|undefined, + {}|null|undefined>): + Promise<[ + protos.google.cloud.translation.v3beta1.ISupportedLanguages, + protos.google.cloud.translation.v3beta1.IGetSupportedLanguagesRequest|undefined, {}|undefined + ]>|void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'parent': request.parent || '', + }); + this.initialize(); + return this.innerApiCalls.getSupportedLanguages(request, options, callback); + } +/** + * Translates documents in synchronous mode. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Location to make a regional call. + * + * Format: `projects/{project-number-or-id}/locations/{location-id}`. + * + * For global calls, use `projects/{project-number-or-id}/locations/global`. + * + * Non-global location is required for requests using AutoML models or custom + * glossaries. + * + * Models and glossaries must be within the same region (have the same + * location-id), otherwise an INVALID_ARGUMENT (400) error is returned. + * @param {string} [request.sourceLanguageCode] + * Optional. The BCP-47 language code of the input document if known, for + * example, "en-US" or "sr-Latn". Supported language codes are listed in + * Language Support. If the source language isn't specified, the API attempts + * to identify the source language automatically and returns the source + * language within the response. Source language must be specified if the + * request contains a glossary or a custom model. + * @param {string} request.targetLanguageCode + * Required. The BCP-47 language code to use for translation of the input + * document, set to one of the language codes listed in Language Support. + * @param {google.cloud.translation.v3beta1.DocumentInputConfig} request.documentInputConfig + * Required. Input configurations. + * @param {google.cloud.translation.v3beta1.DocumentOutputConfig} [request.documentOutputConfig] + * Optional. Output configurations. + * Defines if the output file should be stored within Cloud Storage as well + * as the desired output format. If not provided the translated file will + * only be returned through a byte-stream and its output mime type will be + * the same as the input file's mime type. + * @param {string} [request.model] + * Optional. The `model` type requested for this translation. + * + * The format depends on model type: + * + * - AutoML Translation models: + * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + * + * - General (built-in) models: + * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + * + * + * If not provided, the default Google model (NMT) will be used for + * translation. + * @param {google.cloud.translation.v3beta1.TranslateTextGlossaryConfig} [request.glossaryConfig] + * Optional. Glossary to be applied. The glossary must be within the same + * region (have the same location-id) as the model, otherwise an + * INVALID_ARGUMENT (400) error is returned. + * @param {number[]} [request.labels] + * Optional. The labels with user-defined metadata for the request. + * + * Label keys and values can be no longer than 63 characters (Unicode + * codepoints), can only contain lowercase letters, numeric characters, + * underscores and dashes. International characters are allowed. Label values + * are optional. Label keys must start with a letter. + * + * See https://cloud.google.com/translate/docs/advanced/labels for more + * information. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing [TranslateDocumentResponse]{@link google.cloud.translation.v3beta1.TranslateDocumentResponse}. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) + * for more details and examples. + * @example include:samples/generated/v3beta1/translation_service.translate_document.js + * region_tag:translate_v3beta1_generated_TranslationService_TranslateDocument_async + */ + translateDocument( + request?: protos.google.cloud.translation.v3beta1.ITranslateDocumentRequest, + options?: CallOptions): + Promise<[ + protos.google.cloud.translation.v3beta1.ITranslateDocumentResponse, + protos.google.cloud.translation.v3beta1.ITranslateDocumentRequest|undefined, {}|undefined + ]>; + translateDocument( + request: protos.google.cloud.translation.v3beta1.ITranslateDocumentRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.translation.v3beta1.ITranslateDocumentResponse, + protos.google.cloud.translation.v3beta1.ITranslateDocumentRequest|null|undefined, + {}|null|undefined>): void; + translateDocument( + request: protos.google.cloud.translation.v3beta1.ITranslateDocumentRequest, + callback: Callback< + protos.google.cloud.translation.v3beta1.ITranslateDocumentResponse, + protos.google.cloud.translation.v3beta1.ITranslateDocumentRequest|null|undefined, + {}|null|undefined>): void; + translateDocument( + request?: protos.google.cloud.translation.v3beta1.ITranslateDocumentRequest, + optionsOrCallback?: CallOptions|Callback< + protos.google.cloud.translation.v3beta1.ITranslateDocumentResponse, + protos.google.cloud.translation.v3beta1.ITranslateDocumentRequest|null|undefined, + {}|null|undefined>, + callback?: Callback< + protos.google.cloud.translation.v3beta1.ITranslateDocumentResponse, + protos.google.cloud.translation.v3beta1.ITranslateDocumentRequest|null|undefined, + {}|null|undefined>): + Promise<[ + protos.google.cloud.translation.v3beta1.ITranslateDocumentResponse, + protos.google.cloud.translation.v3beta1.ITranslateDocumentRequest|undefined, {}|undefined + ]>|void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'parent': request.parent || '', + }); + this.initialize(); + return this.innerApiCalls.translateDocument(request, options, callback); + } +/** + * Gets a glossary. Returns NOT_FOUND, if the glossary doesn't + * exist. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the glossary to retrieve. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing [Glossary]{@link google.cloud.translation.v3beta1.Glossary}. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) + * for more details and examples. + * @example include:samples/generated/v3beta1/translation_service.get_glossary.js + * region_tag:translate_v3beta1_generated_TranslationService_GetGlossary_async + */ + getGlossary( + request?: protos.google.cloud.translation.v3beta1.IGetGlossaryRequest, + options?: CallOptions): + Promise<[ + protos.google.cloud.translation.v3beta1.IGlossary, + protos.google.cloud.translation.v3beta1.IGetGlossaryRequest|undefined, {}|undefined + ]>; + getGlossary( + request: protos.google.cloud.translation.v3beta1.IGetGlossaryRequest, + options: CallOptions, + callback: Callback< + protos.google.cloud.translation.v3beta1.IGlossary, + protos.google.cloud.translation.v3beta1.IGetGlossaryRequest|null|undefined, + {}|null|undefined>): void; + getGlossary( + request: protos.google.cloud.translation.v3beta1.IGetGlossaryRequest, + callback: Callback< + protos.google.cloud.translation.v3beta1.IGlossary, + protos.google.cloud.translation.v3beta1.IGetGlossaryRequest|null|undefined, + {}|null|undefined>): void; + getGlossary( + request?: protos.google.cloud.translation.v3beta1.IGetGlossaryRequest, + optionsOrCallback?: CallOptions|Callback< + protos.google.cloud.translation.v3beta1.IGlossary, + protos.google.cloud.translation.v3beta1.IGetGlossaryRequest|null|undefined, + {}|null|undefined>, + callback?: Callback< + protos.google.cloud.translation.v3beta1.IGlossary, + protos.google.cloud.translation.v3beta1.IGetGlossaryRequest|null|undefined, + {}|null|undefined>): + Promise<[ + protos.google.cloud.translation.v3beta1.IGlossary, + protos.google.cloud.translation.v3beta1.IGetGlossaryRequest|undefined, {}|undefined + ]>|void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'name': request.name || '', + }); + this.initialize(); + return this.innerApiCalls.getGlossary(request, options, callback); + } + +/** + * Translates a large volume of text in asynchronous batch mode. + * This function provides real-time output as the inputs are being processed. + * If caller cancels a request, the partial results (for an input file, it's + * all or nothing) may still be available on the specified output location. + * + * This call returns immediately and you can + * use google.longrunning.Operation.name to poll the status of the call. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Location to make a call. Must refer to a caller's project. + * + * Format: `projects/{project-number-or-id}/locations/{location-id}`. + * + * The `global` location is not supported for batch translation. + * + * Only AutoML Translation models or glossaries within the same region (have + * the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) + * error is returned. + * @param {string} request.sourceLanguageCode + * Required. Source language code. + * @param {string[]} request.targetLanguageCodes + * Required. Specify up to 10 language codes here. + * @param {number[]} [request.models] + * Optional. The models to use for translation. Map's key is target language + * code. Map's value is model name. Value can be a built-in general model, + * or an AutoML Translation model. + * + * The value format depends on model type: + * + * - AutoML Translation models: + * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + * + * - General (built-in) models: + * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + * + * + * If the map is empty or a specific model is + * not requested for a language pair, then default google model (nmt) is used. + * @param {number[]} request.inputConfigs + * Required. Input configurations. + * The total number of files matched should be <= 100. + * The total content size should be <= 100M Unicode codepoints. + * The files must use UTF-8 encoding. + * @param {google.cloud.translation.v3beta1.OutputConfig} request.outputConfig + * Required. Output configuration. + * If 2 input configs match to the same file (that is, same input path), + * we don't generate output for duplicate inputs. + * @param {number[]} [request.glossaries] + * Optional. Glossaries to be applied for translation. + * It's keyed by target language code. + * @param {number[]} [request.labels] + * Optional. The labels with user-defined metadata for the request. + * + * Label keys and values can be no longer than 63 characters + * (Unicode codepoints), can only contain lowercase letters, numeric + * characters, underscores and dashes. International characters are allowed. + * Label values are optional. Label keys must start with a letter. + * + * See https://cloud.google.com/translate/docs/labels for more information. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.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 + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) + * for more details and examples. + * @example include:samples/generated/v3beta1/translation_service.batch_translate_text.js + * region_tag:translate_v3beta1_generated_TranslationService_BatchTranslateText_async + */ + batchTranslateText( + request?: protos.google.cloud.translation.v3beta1.IBatchTranslateTextRequest, + options?: CallOptions): + Promise<[ + LROperation, + protos.google.longrunning.IOperation|undefined, {}|undefined + ]>; + batchTranslateText( + request: protos.google.cloud.translation.v3beta1.IBatchTranslateTextRequest, + options: CallOptions, + callback: Callback< + LROperation, + protos.google.longrunning.IOperation|null|undefined, + {}|null|undefined>): void; + batchTranslateText( + request: protos.google.cloud.translation.v3beta1.IBatchTranslateTextRequest, + callback: Callback< + LROperation, + protos.google.longrunning.IOperation|null|undefined, + {}|null|undefined>): void; + batchTranslateText( + request?: protos.google.cloud.translation.v3beta1.IBatchTranslateTextRequest, + 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 = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'parent': request.parent || '', + }); + this.initialize(); + return this.innerApiCalls.batchTranslateText(request, options, callback); + } +/** + * Check the status of the long running operation returned by `batchTranslateText()`. + * @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 + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) + * for more details and examples. + * @example include:samples/generated/v3beta1/translation_service.batch_translate_text.js + * region_tag:translate_v3beta1_generated_TranslationService_BatchTranslateText_async + */ + async checkBatchTranslateTextProgress(name: string): Promise>{ + const request = new operationsProtos.google.longrunning.GetOperationRequest({name}); + const [operation] = await this.operationsClient.getOperation(request); + const decodeOperation = new gax.Operation(operation, this.descriptors.longrunning.batchTranslateText, gax.createDefaultBackoffSettings()); + return decodeOperation as LROperation; + } +/** + * Translates a large volume of documents in asynchronous batch mode. + * This function provides real-time output as the inputs are being processed. + * If caller cancels a request, the partial results (for an input file, it's + * all or nothing) may still be available on the specified output location. + * + * This call returns immediately and you can use + * google.longrunning.Operation.name to poll the status of the call. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. Location to make a regional call. + * + * Format: `projects/{project-number-or-id}/locations/{location-id}`. + * + * The `global` location is not supported for batch translation. + * + * Only AutoML Translation models or glossaries within the same region (have + * the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) + * error is returned. + * @param {string} request.sourceLanguageCode + * Required. The BCP-47 language code of the input document if known, for + * example, "en-US" or "sr-Latn". Supported language codes are listed in + * Language Support (https://cloud.google.com/translate/docs/languages). + * @param {string[]} request.targetLanguageCodes + * Required. The BCP-47 language code to use for translation of the input + * document. Specify up to 10 language codes here. + * @param {number[]} request.inputConfigs + * Required. Input configurations. + * The total number of files matched should be <= 100. + * The total content size to translate should be <= 100M Unicode codepoints. + * The files must use UTF-8 encoding. + * @param {google.cloud.translation.v3beta1.BatchDocumentOutputConfig} request.outputConfig + * Required. Output configuration. + * If 2 input configs match to the same file (that is, same input path), + * we don't generate output for duplicate inputs. + * @param {number[]} [request.models] + * Optional. The models to use for translation. Map's key is target language + * code. Map's value is the model name. Value can be a built-in general model, + * or an AutoML Translation model. + * + * The value format depends on model type: + * + * - AutoML Translation models: + * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` + * + * - General (built-in) models: + * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, + * + * + * If the map is empty or a specific model is not requested for a language + * pair, then default google model (nmt) is used. + * @param {number[]} [request.glossaries] + * Optional. Glossaries to be applied. It's keyed by target language code. + * @param {number[]} [request.formatConversions] + * Optional. File format conversion map to be applied to all input files. + * Map's key is the original mime_type. Map's value is the target mime_type of + * translated documents. + * + * Supported file format conversion includes: + * - `application/pdf` to + * `application/vnd.openxmlformats-officedocument.wordprocessingml.document` + * + * If nothing specified, output files will be in the same format as the + * original file. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.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 + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) + * for more details and examples. + * @example include:samples/generated/v3beta1/translation_service.batch_translate_document.js + * region_tag:translate_v3beta1_generated_TranslationService_BatchTranslateDocument_async + */ + batchTranslateDocument( + request?: protos.google.cloud.translation.v3beta1.IBatchTranslateDocumentRequest, + options?: CallOptions): + Promise<[ + LROperation, + protos.google.longrunning.IOperation|undefined, {}|undefined + ]>; + batchTranslateDocument( + request: protos.google.cloud.translation.v3beta1.IBatchTranslateDocumentRequest, + options: CallOptions, + callback: Callback< + LROperation, + protos.google.longrunning.IOperation|null|undefined, + {}|null|undefined>): void; + batchTranslateDocument( + request: protos.google.cloud.translation.v3beta1.IBatchTranslateDocumentRequest, + callback: Callback< + LROperation, + protos.google.longrunning.IOperation|null|undefined, + {}|null|undefined>): void; + batchTranslateDocument( + request?: protos.google.cloud.translation.v3beta1.IBatchTranslateDocumentRequest, + 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 = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'parent': request.parent || '', + }); + this.initialize(); + return this.innerApiCalls.batchTranslateDocument(request, options, callback); + } +/** + * Check the status of the long running operation returned by `batchTranslateDocument()`. + * @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 + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) + * for more details and examples. + * @example include:samples/generated/v3beta1/translation_service.batch_translate_document.js + * region_tag:translate_v3beta1_generated_TranslationService_BatchTranslateDocument_async + */ + async checkBatchTranslateDocumentProgress(name: string): Promise>{ + const request = new operationsProtos.google.longrunning.GetOperationRequest({name}); + const [operation] = await this.operationsClient.getOperation(request); + const decodeOperation = new gax.Operation(operation, this.descriptors.longrunning.batchTranslateDocument, gax.createDefaultBackoffSettings()); + return decodeOperation as LROperation; + } +/** + * Creates a glossary and returns the long-running operation. Returns + * NOT_FOUND, if the project doesn't exist. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The project name. + * @param {google.cloud.translation.v3beta1.Glossary} request.glossary + * Required. The glossary 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 + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) + * for more details and examples. + * @example include:samples/generated/v3beta1/translation_service.create_glossary.js + * region_tag:translate_v3beta1_generated_TranslationService_CreateGlossary_async + */ + createGlossary( + request?: protos.google.cloud.translation.v3beta1.ICreateGlossaryRequest, + options?: CallOptions): + Promise<[ + LROperation, + protos.google.longrunning.IOperation|undefined, {}|undefined + ]>; + createGlossary( + request: protos.google.cloud.translation.v3beta1.ICreateGlossaryRequest, + options: CallOptions, + callback: Callback< + LROperation, + protos.google.longrunning.IOperation|null|undefined, + {}|null|undefined>): void; + createGlossary( + request: protos.google.cloud.translation.v3beta1.ICreateGlossaryRequest, + callback: Callback< + LROperation, + protos.google.longrunning.IOperation|null|undefined, + {}|null|undefined>): void; + createGlossary( + request?: protos.google.cloud.translation.v3beta1.ICreateGlossaryRequest, + 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 = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'parent': request.parent || '', + }); + this.initialize(); + return this.innerApiCalls.createGlossary(request, options, callback); + } +/** + * Check the status of the long running operation returned by `createGlossary()`. + * @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 + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) + * for more details and examples. + * @example include:samples/generated/v3beta1/translation_service.create_glossary.js + * region_tag:translate_v3beta1_generated_TranslationService_CreateGlossary_async + */ + async checkCreateGlossaryProgress(name: string): Promise>{ + const request = new operationsProtos.google.longrunning.GetOperationRequest({name}); + const [operation] = await this.operationsClient.getOperation(request); + const decodeOperation = new gax.Operation(operation, this.descriptors.longrunning.createGlossary, gax.createDefaultBackoffSettings()); + return decodeOperation as LROperation; + } +/** + * Deletes a glossary, or cancels glossary construction + * if the glossary isn't created yet. + * Returns NOT_FOUND, if the glossary doesn't exist. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.name + * Required. The name of the glossary to delete. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.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 + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) + * for more details and examples. + * @example include:samples/generated/v3beta1/translation_service.delete_glossary.js + * region_tag:translate_v3beta1_generated_TranslationService_DeleteGlossary_async + */ + deleteGlossary( + request?: protos.google.cloud.translation.v3beta1.IDeleteGlossaryRequest, + options?: CallOptions): + Promise<[ + LROperation, + protos.google.longrunning.IOperation|undefined, {}|undefined + ]>; + deleteGlossary( + request: protos.google.cloud.translation.v3beta1.IDeleteGlossaryRequest, + options: CallOptions, + callback: Callback< + LROperation, + protos.google.longrunning.IOperation|null|undefined, + {}|null|undefined>): void; + deleteGlossary( + request: protos.google.cloud.translation.v3beta1.IDeleteGlossaryRequest, + callback: Callback< + LROperation, + protos.google.longrunning.IOperation|null|undefined, + {}|null|undefined>): void; + deleteGlossary( + request?: protos.google.cloud.translation.v3beta1.IDeleteGlossaryRequest, + 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 = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'name': request.name || '', + }); + this.initialize(); + return this.innerApiCalls.deleteGlossary(request, options, callback); + } +/** + * Check the status of the long running operation returned by `deleteGlossary()`. + * @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 + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) + * for more details and examples. + * @example include:samples/generated/v3beta1/translation_service.delete_glossary.js + * region_tag:translate_v3beta1_generated_TranslationService_DeleteGlossary_async + */ + async checkDeleteGlossaryProgress(name: string): Promise>{ + const request = new operationsProtos.google.longrunning.GetOperationRequest({name}); + const [operation] = await this.operationsClient.getOperation(request); + const decodeOperation = new gax.Operation(operation, this.descriptors.longrunning.deleteGlossary, gax.createDefaultBackoffSettings()); + return decodeOperation as LROperation; + } + /** + * Lists glossaries in a project. Returns NOT_FOUND, if the project doesn't + * exist. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The name of the project from which to list all of the glossaries. + * @param {number} [request.pageSize] + * Optional. Requested page size. The server may return fewer glossaries than + * requested. If unspecified, the server picks an appropriate default. + * @param {string} [request.pageToken] + * Optional. A token identifying a page of results the server should return. + * Typically, this is the value of [ListGlossariesResponse.next_page_token] + * returned from the previous call to `ListGlossaries` method. + * The first page is returned if `page_token`is empty or missing. + * @param {string} [request.filter] + * Optional. Filter specifying constraints of a list operation. + * Specify the constraint by the format of "key=value", where key must be + * "src" or "tgt", and the value must be a valid language code. + * For multiple restrictions, concatenate them by "AND" (uppercase only), + * such as: "src=en-US AND tgt=zh-CN". Notice that the exact match is used + * here, which means using 'en-US' and 'en' can lead to different results, + * which depends on the language code you used when you create the glossary. + * For the unidirectional glossaries, the "src" and "tgt" add restrictions + * on the source and target language code separately. + * For the equivalent term set glossaries, the "src" and/or "tgt" add + * restrictions on the term set. + * For example: "src=en-US AND tgt=zh-CN" will only pick the unidirectional + * glossaries which exactly match the source language code as "en-US" and the + * target language code "zh-CN", but all equivalent term set glossaries which + * contain "en-US" and "zh-CN" in their language set will be picked. + * If missing, no filtering is performed. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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 [Glossary]{@link google.cloud.translation.v3beta1.Glossary}. + * 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 `listGlossariesAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) + * for more details and examples. + */ + listGlossaries( + request?: protos.google.cloud.translation.v3beta1.IListGlossariesRequest, + options?: CallOptions): + Promise<[ + protos.google.cloud.translation.v3beta1.IGlossary[], + protos.google.cloud.translation.v3beta1.IListGlossariesRequest|null, + protos.google.cloud.translation.v3beta1.IListGlossariesResponse + ]>; + listGlossaries( + request: protos.google.cloud.translation.v3beta1.IListGlossariesRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.translation.v3beta1.IListGlossariesRequest, + protos.google.cloud.translation.v3beta1.IListGlossariesResponse|null|undefined, + protos.google.cloud.translation.v3beta1.IGlossary>): void; + listGlossaries( + request: protos.google.cloud.translation.v3beta1.IListGlossariesRequest, + callback: PaginationCallback< + protos.google.cloud.translation.v3beta1.IListGlossariesRequest, + protos.google.cloud.translation.v3beta1.IListGlossariesResponse|null|undefined, + protos.google.cloud.translation.v3beta1.IGlossary>): void; + listGlossaries( + request?: protos.google.cloud.translation.v3beta1.IListGlossariesRequest, + optionsOrCallback?: CallOptions|PaginationCallback< + protos.google.cloud.translation.v3beta1.IListGlossariesRequest, + protos.google.cloud.translation.v3beta1.IListGlossariesResponse|null|undefined, + protos.google.cloud.translation.v3beta1.IGlossary>, + callback?: PaginationCallback< + protos.google.cloud.translation.v3beta1.IListGlossariesRequest, + protos.google.cloud.translation.v3beta1.IListGlossariesResponse|null|undefined, + protos.google.cloud.translation.v3beta1.IGlossary>): + Promise<[ + protos.google.cloud.translation.v3beta1.IGlossary[], + protos.google.cloud.translation.v3beta1.IListGlossariesRequest|null, + protos.google.cloud.translation.v3beta1.IListGlossariesResponse + ]>|void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'parent': request.parent || '', + }); + this.initialize(); + return this.innerApiCalls.listGlossaries(request, options, callback); + } + +/** + * Equivalent to `method.name.toCamelCase()`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The name of the project from which to list all of the glossaries. + * @param {number} [request.pageSize] + * Optional. Requested page size. The server may return fewer glossaries than + * requested. If unspecified, the server picks an appropriate default. + * @param {string} [request.pageToken] + * Optional. A token identifying a page of results the server should return. + * Typically, this is the value of [ListGlossariesResponse.next_page_token] + * returned from the previous call to `ListGlossaries` method. + * The first page is returned if `page_token`is empty or missing. + * @param {string} [request.filter] + * Optional. Filter specifying constraints of a list operation. + * Specify the constraint by the format of "key=value", where key must be + * "src" or "tgt", and the value must be a valid language code. + * For multiple restrictions, concatenate them by "AND" (uppercase only), + * such as: "src=en-US AND tgt=zh-CN". Notice that the exact match is used + * here, which means using 'en-US' and 'en' can lead to different results, + * which depends on the language code you used when you create the glossary. + * For the unidirectional glossaries, the "src" and "tgt" add restrictions + * on the source and target language code separately. + * For the equivalent term set glossaries, the "src" and/or "tgt" add + * restrictions on the term set. + * For example: "src=en-US AND tgt=zh-CN" will only pick the unidirectional + * glossaries which exactly match the source language code as "en-US" and the + * target language code "zh-CN", but all equivalent term set glossaries which + * contain "en-US" and "zh-CN" in their language set will be picked. + * If missing, no filtering is performed. + * @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 [Glossary]{@link google.cloud.translation.v3beta1.Glossary} 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 `listGlossariesAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) + * for more details and examples. + */ + listGlossariesStream( + request?: protos.google.cloud.translation.v3beta1.IListGlossariesRequest, + options?: CallOptions): + Transform{ + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'parent': request.parent || '', + }); + const defaultCallSettings = this._defaults['listGlossaries']; + const callSettings = defaultCallSettings.merge(options); + this.initialize(); + return this.descriptors.page.listGlossaries.createStream( + this.innerApiCalls.listGlossaries as gax.GaxCall, + request, + callSettings + ); + } + +/** + * Equivalent to `listGlossaries`, 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 name of the project from which to list all of the glossaries. + * @param {number} [request.pageSize] + * Optional. Requested page size. The server may return fewer glossaries than + * requested. If unspecified, the server picks an appropriate default. + * @param {string} [request.pageToken] + * Optional. A token identifying a page of results the server should return. + * Typically, this is the value of [ListGlossariesResponse.next_page_token] + * returned from the previous call to `ListGlossaries` method. + * The first page is returned if `page_token`is empty or missing. + * @param {string} [request.filter] + * Optional. Filter specifying constraints of a list operation. + * Specify the constraint by the format of "key=value", where key must be + * "src" or "tgt", and the value must be a valid language code. + * For multiple restrictions, concatenate them by "AND" (uppercase only), + * such as: "src=en-US AND tgt=zh-CN". Notice that the exact match is used + * here, which means using 'en-US' and 'en' can lead to different results, + * which depends on the language code you used when you create the glossary. + * For the unidirectional glossaries, the "src" and "tgt" add restrictions + * on the source and target language code separately. + * For the equivalent term set glossaries, the "src" and/or "tgt" add + * restrictions on the term set. + * For example: "src=en-US AND tgt=zh-CN" will only pick the unidirectional + * glossaries which exactly match the source language code as "en-US" and the + * target language code "zh-CN", but all equivalent term set glossaries which + * contain "en-US" and "zh-CN" in their language set will be picked. + * If missing, no filtering is performed. + * @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 [async iteration](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols). + * When you iterate the returned iterable, each element will be an object representing + * [Glossary]{@link google.cloud.translation.v3beta1.Glossary}. 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 + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) + * for more details and examples. + * @example include:samples/generated/v3beta1/translation_service.list_glossaries.js + * region_tag:translate_v3beta1_generated_TranslationService_ListGlossaries_async + */ + listGlossariesAsync( + request?: protos.google.cloud.translation.v3beta1.IListGlossariesRequest, + options?: CallOptions): + AsyncIterable{ + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = gax.routingHeader.fromParams({ + 'parent': request.parent || '', + }); + const defaultCallSettings = this._defaults['listGlossaries']; + const callSettings = defaultCallSettings.merge(options); + this.initialize(); + return this.descriptors.page.listGlossaries.asyncIterate( + this.innerApiCalls['listGlossaries'] as GaxCall, + request as unknown as RequestType, + callSettings + ) as AsyncIterable; + } + // -------------------- + // -- Path templates -- + // -------------------- + + /** + * Return a fully-qualified glossary resource name string. + * + * @param {string} project + * @param {string} location + * @param {string} glossary + * @returns {string} Resource name string. + */ + glossaryPath(project:string,location:string,glossary:string) { + return this.pathTemplates.glossaryPathTemplate.render({ + project: project, + location: location, + glossary: glossary, + }); + } + + /** + * Parse the project from Glossary resource. + * + * @param {string} glossaryName + * A fully-qualified path representing Glossary resource. + * @returns {string} A string representing the project. + */ + matchProjectFromGlossaryName(glossaryName: string) { + return this.pathTemplates.glossaryPathTemplate.match(glossaryName).project; + } + + /** + * Parse the location from Glossary resource. + * + * @param {string} glossaryName + * A fully-qualified path representing Glossary resource. + * @returns {string} A string representing the location. + */ + matchLocationFromGlossaryName(glossaryName: string) { + return this.pathTemplates.glossaryPathTemplate.match(glossaryName).location; + } + + /** + * Parse the glossary from Glossary resource. + * + * @param {string} glossaryName + * A fully-qualified path representing Glossary resource. + * @returns {string} A string representing the glossary. + */ + matchGlossaryFromGlossaryName(glossaryName: string) { + return this.pathTemplates.glossaryPathTemplate.match(glossaryName).glossary; + } + + /** + * Return a fully-qualified location resource name string. + * + * @param {string} project + * @param {string} location + * @returns {string} Resource name string. + */ + locationPath(project:string,location:string) { + return this.pathTemplates.locationPathTemplate.render({ + project: project, + location: location, + }); + } + + /** + * Parse the project from Location resource. + * + * @param {string} locationName + * A fully-qualified path representing Location resource. + * @returns {string} A string representing the project. + */ + matchProjectFromLocationName(locationName: string) { + return this.pathTemplates.locationPathTemplate.match(locationName).project; + } + + /** + * Parse the location from Location resource. + * + * @param {string} locationName + * A fully-qualified path representing Location resource. + * @returns {string} A string representing the location. + */ + matchLocationFromLocationName(locationName: string) { + return this.pathTemplates.locationPathTemplate.match(locationName).location; + } + + /** + * Terminate the gRPC channel and close the client. + * + * The client will no longer be usable and all future behavior is undefined. + * @returns {Promise} A promise that resolves when the client is closed. + */ + close(): Promise { + if (this.translationServiceStub && !this._terminated) { + return this.translationServiceStub.then(stub => { + this._terminated = true; + stub.close(); + this.operationsClient.close(); + }); + } + return Promise.resolve(); + } +} diff --git a/owl-bot-staging/v3beta1/src/v3beta1/translation_service_client_config.json b/owl-bot-staging/v3beta1/src/v3beta1/translation_service_client_config.json new file mode 100644 index 00000000..bbf1a651 --- /dev/null +++ b/owl-bot-staging/v3beta1/src/v3beta1/translation_service_client_config.json @@ -0,0 +1,76 @@ +{ + "interfaces": { + "google.cloud.translation.v3beta1.TranslationService": { + "retry_codes": { + "non_idempotent": [], + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 600000 + } + }, + "methods": { + "TranslateText": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "DetectLanguage": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "GetSupportedLanguages": { + "timeout_millis": 600000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "TranslateDocument": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "BatchTranslateText": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "BatchTranslateDocument": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "CreateGlossary": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "ListGlossaries": { + "timeout_millis": 600000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "GetGlossary": { + "timeout_millis": 600000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "DeleteGlossary": { + "timeout_millis": 600000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/owl-bot-staging/v3beta1/src/v3beta1/translation_service_proto_list.json b/owl-bot-staging/v3beta1/src/v3beta1/translation_service_proto_list.json new file mode 100644 index 00000000..a50dcfc7 --- /dev/null +++ b/owl-bot-staging/v3beta1/src/v3beta1/translation_service_proto_list.json @@ -0,0 +1,3 @@ +[ + "../../protos/google/cloud/translate/v3beta1/translation_service.proto" +] diff --git a/owl-bot-staging/v3beta1/system-test/fixtures/sample/src/index.js b/owl-bot-staging/v3beta1/system-test/fixtures/sample/src/index.js new file mode 100644 index 00000000..ffce988e --- /dev/null +++ b/owl-bot-staging/v3beta1/system-test/fixtures/sample/src/index.js @@ -0,0 +1,27 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + +/* eslint-disable node/no-missing-require, no-unused-vars */ +const translation = require('@google-cloud/translate'); + +function main() { + const translationServiceClient = new translation.TranslationServiceClient(); +} + +main(); diff --git a/owl-bot-staging/v3beta1/system-test/fixtures/sample/src/index.ts b/owl-bot-staging/v3beta1/system-test/fixtures/sample/src/index.ts new file mode 100644 index 00000000..38feffe8 --- /dev/null +++ b/owl-bot-staging/v3beta1/system-test/fixtures/sample/src/index.ts @@ -0,0 +1,32 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + +import {TranslationServiceClient} from '@google-cloud/translate'; + +// check that the client class type name can be used +function doStuffWithTranslationServiceClient(client: TranslationServiceClient) { + client.close(); +} + +function main() { + // check that the client instance can be created + const translationServiceClient = new TranslationServiceClient(); + doStuffWithTranslationServiceClient(translationServiceClient); +} + +main(); diff --git a/owl-bot-staging/v3beta1/system-test/install.ts b/owl-bot-staging/v3beta1/system-test/install.ts new file mode 100644 index 00000000..8ec45222 --- /dev/null +++ b/owl-bot-staging/v3beta1/system-test/install.ts @@ -0,0 +1,49 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + +import { packNTest } from 'pack-n-play'; +import { readFileSync } from 'fs'; +import { describe, it } from 'mocha'; + +describe('📦 pack-n-play test', () => { + + 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() + } + }; + await packNTest(options); + }); + + it('JavaScript code', async function() { + this.timeout(300000); + const options = { + packageDir: process.cwd(), + sample: { + description: 'JavaScript user can use the library', + ts: readFileSync('./system-test/fixtures/sample/src/index.js').toString() + } + }; + await packNTest(options); + }); + +}); diff --git a/owl-bot-staging/v3beta1/test/gapic_translation_service_v3beta1.ts b/owl-bot-staging/v3beta1/test/gapic_translation_service_v3beta1.ts new file mode 100644 index 00000000..bd5c8802 --- /dev/null +++ b/owl-bot-staging/v3beta1/test/gapic_translation_service_v3beta1.ts @@ -0,0 +1,1569 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + +import * as protos from '../protos/protos'; +import * as assert from 'assert'; +import * as sinon from 'sinon'; +import {SinonStub} from 'sinon'; +import { describe, it } from 'mocha'; +import * as translationserviceModule from '../src'; + +import {PassThrough} from 'stream'; + +import {protobuf, LROperation, operationsProtos} from 'google-gax'; + +function generateSampleMessage(instance: T) { + const filledObject = (instance.constructor as typeof protobuf.Message) + .toObject(instance as protobuf.Message, {defaults: true}); + return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; +} + +function stubSimpleCall(response?: ResponseType, error?: Error) { + return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); +} + +function 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 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]); + } + } + 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(); }); + } + return sinon.stub().returns(mockStream); +} + +function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { + let counter = 0; + const asyncIterable = { + [Symbol.asyncIterator]() { + return { + async next() { + if (error) { + return Promise.reject(error); + } + if (counter >= responses!.length) { + return Promise.resolve({done: true, value: undefined}); + } + return Promise.resolve({done: false, value: responses![counter++]}); + } + }; + } + }; + return sinon.stub().returns(asyncIterable); +} + +describe('v3beta1.TranslationServiceClient', () => { + it('has servicePath', () => { + const servicePath = translationserviceModule.v3beta1.TranslationServiceClient.servicePath; + assert(servicePath); + }); + + it('has apiEndpoint', () => { + const apiEndpoint = translationserviceModule.v3beta1.TranslationServiceClient.apiEndpoint; + assert(apiEndpoint); + }); + + it('has port', () => { + const port = translationserviceModule.v3beta1.TranslationServiceClient.port; + assert(port); + assert(typeof port === 'number'); + }); + + it('should create a client with no option', () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient(); + assert(client); + }); + + it('should create a client with gRPC fallback', () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + fallback: true, + }); + assert(client); + }); + + it('has initialize method and supports deferred initialization', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + assert.strictEqual(client.translationServiceStub, undefined); + await client.initialize(); + assert(client.translationServiceStub); + }); + + it('has close method for the initialized client', done => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + assert(client.translationServiceStub); + client.close().then(() => { + done(); + }); + }); + + it('has close method for the non-initialized client', done => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + assert.strictEqual(client.translationServiceStub, undefined); + client.close().then(() => { + done(); + }); + }); + + it('has getProjectId method', async () => { + const fakeProjectId = 'fake-project-id'; + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + 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 translationserviceModule.v3beta1.TranslationServiceClient({ + 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('translateText', () => { + it('invokes translateText without error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateTextRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateTextResponse()); + client.innerApiCalls.translateText = stubSimpleCall(expectedResponse); + const [response] = await client.translateText(request); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.translateText as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes translateText without error using callback', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateTextRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateTextResponse()); + client.innerApiCalls.translateText = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.translateText( + request, + (err?: Error|null, result?: protos.google.cloud.translation.v3beta1.ITranslateTextResponse|null) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.translateText as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); + + it('invokes translateText with error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateTextRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.translateText = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.translateText(request), expectedError); + assert((client.innerApiCalls.translateText as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes translateText with closed client', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateTextRequest()); + request.parent = ''; + const expectedError = new Error('The client has already been closed.'); + client.close(); + await assert.rejects(client.translateText(request), expectedError); + }); + }); + + describe('detectLanguage', () => { + it('invokes detectLanguage without error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.DetectLanguageRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3beta1.DetectLanguageResponse()); + client.innerApiCalls.detectLanguage = stubSimpleCall(expectedResponse); + const [response] = await client.detectLanguage(request); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.detectLanguage as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes detectLanguage without error using callback', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.DetectLanguageRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3beta1.DetectLanguageResponse()); + client.innerApiCalls.detectLanguage = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.detectLanguage( + request, + (err?: Error|null, result?: protos.google.cloud.translation.v3beta1.IDetectLanguageResponse|null) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.detectLanguage as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); + + it('invokes detectLanguage with error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.DetectLanguageRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.detectLanguage = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.detectLanguage(request), expectedError); + assert((client.innerApiCalls.detectLanguage as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes detectLanguage with closed client', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.DetectLanguageRequest()); + request.parent = ''; + const expectedError = new Error('The client has already been closed.'); + client.close(); + await assert.rejects(client.detectLanguage(request), expectedError); + }); + }); + + describe('getSupportedLanguages', () => { + it('invokes getSupportedLanguages without error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.GetSupportedLanguagesRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3beta1.SupportedLanguages()); + client.innerApiCalls.getSupportedLanguages = stubSimpleCall(expectedResponse); + const [response] = await client.getSupportedLanguages(request); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.getSupportedLanguages as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes getSupportedLanguages without error using callback', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.GetSupportedLanguagesRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3beta1.SupportedLanguages()); + client.innerApiCalls.getSupportedLanguages = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getSupportedLanguages( + request, + (err?: Error|null, result?: protos.google.cloud.translation.v3beta1.ISupportedLanguages|null) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.getSupportedLanguages as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); + + it('invokes getSupportedLanguages with error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.GetSupportedLanguagesRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.getSupportedLanguages = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.getSupportedLanguages(request), expectedError); + assert((client.innerApiCalls.getSupportedLanguages as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes getSupportedLanguages with closed client', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.GetSupportedLanguagesRequest()); + request.parent = ''; + const expectedError = new Error('The client has already been closed.'); + client.close(); + await assert.rejects(client.getSupportedLanguages(request), expectedError); + }); + }); + + describe('translateDocument', () => { + it('invokes translateDocument without error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateDocumentRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateDocumentResponse()); + client.innerApiCalls.translateDocument = stubSimpleCall(expectedResponse); + const [response] = await client.translateDocument(request); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.translateDocument as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes translateDocument without error using callback', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateDocumentRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateDocumentResponse()); + client.innerApiCalls.translateDocument = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.translateDocument( + request, + (err?: Error|null, result?: protos.google.cloud.translation.v3beta1.ITranslateDocumentResponse|null) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.translateDocument as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); + + it('invokes translateDocument with error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateDocumentRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.translateDocument = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.translateDocument(request), expectedError); + assert((client.innerApiCalls.translateDocument as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes translateDocument with closed client', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateDocumentRequest()); + request.parent = ''; + const expectedError = new Error('The client has already been closed.'); + client.close(); + await assert.rejects(client.translateDocument(request), expectedError); + }); + }); + + describe('getGlossary', () => { + it('invokes getGlossary without error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.GetGlossaryRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()); + client.innerApiCalls.getGlossary = stubSimpleCall(expectedResponse); + const [response] = await client.getGlossary(request); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.getGlossary as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes getGlossary without error using callback', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.GetGlossaryRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()); + client.innerApiCalls.getGlossary = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.getGlossary( + request, + (err?: Error|null, result?: protos.google.cloud.translation.v3beta1.IGlossary|null) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.getGlossary as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); + + it('invokes getGlossary with error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.GetGlossaryRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.getGlossary = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.getGlossary(request), expectedError); + assert((client.innerApiCalls.getGlossary as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes getGlossary with closed client', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.GetGlossaryRequest()); + request.name = ''; + const expectedError = new Error('The client has already been closed.'); + client.close(); + await assert.rejects(client.getGlossary(request), expectedError); + }); + }); + + describe('batchTranslateText', () => { + it('invokes batchTranslateText without error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.BatchTranslateTextRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); + client.innerApiCalls.batchTranslateText = stubLongRunningCall(expectedResponse); + const [operation] = await client.batchTranslateText(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.batchTranslateText as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes batchTranslateText without error using callback', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.BatchTranslateTextRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); + client.innerApiCalls.batchTranslateText = stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.batchTranslateText( + 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); + assert((client.innerApiCalls.batchTranslateText as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); + + it('invokes batchTranslateText with call error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.BatchTranslateTextRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.batchTranslateText = stubLongRunningCall(undefined, expectedError); + await assert.rejects(client.batchTranslateText(request), expectedError); + assert((client.innerApiCalls.batchTranslateText as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes batchTranslateText with LRO error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.BatchTranslateTextRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.batchTranslateText = stubLongRunningCall(undefined, undefined, expectedError); + const [operation] = await client.batchTranslateText(request); + await assert.rejects(operation.promise(), expectedError); + assert((client.innerApiCalls.batchTranslateText as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes checkBatchTranslateTextProgress without error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + 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.checkBatchTranslateTextProgress(expectedResponse.name); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + + it('invokes checkBatchTranslateTextProgress with error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.checkBatchTranslateTextProgress(''), expectedError); + assert((client.operationsClient.getOperation as SinonStub) + .getCall(0)); + }); + }); + + describe('batchTranslateDocument', () => { + it('invokes batchTranslateDocument without error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.BatchTranslateDocumentRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); + client.innerApiCalls.batchTranslateDocument = stubLongRunningCall(expectedResponse); + const [operation] = await client.batchTranslateDocument(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.batchTranslateDocument as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes batchTranslateDocument without error using callback', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.BatchTranslateDocumentRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); + client.innerApiCalls.batchTranslateDocument = stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.batchTranslateDocument( + 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); + assert((client.innerApiCalls.batchTranslateDocument as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); + + it('invokes batchTranslateDocument with call error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.BatchTranslateDocumentRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.batchTranslateDocument = stubLongRunningCall(undefined, expectedError); + await assert.rejects(client.batchTranslateDocument(request), expectedError); + assert((client.innerApiCalls.batchTranslateDocument as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes batchTranslateDocument with LRO error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.BatchTranslateDocumentRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.batchTranslateDocument = stubLongRunningCall(undefined, undefined, expectedError); + const [operation] = await client.batchTranslateDocument(request); + await assert.rejects(operation.promise(), expectedError); + assert((client.innerApiCalls.batchTranslateDocument as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes checkBatchTranslateDocumentProgress without error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + 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.checkBatchTranslateDocumentProgress(expectedResponse.name); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + + it('invokes checkBatchTranslateDocumentProgress with error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.checkBatchTranslateDocumentProgress(''), expectedError); + assert((client.operationsClient.getOperation as SinonStub) + .getCall(0)); + }); + }); + + describe('createGlossary', () => { + it('invokes createGlossary without error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.CreateGlossaryRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); + client.innerApiCalls.createGlossary = stubLongRunningCall(expectedResponse); + const [operation] = await client.createGlossary(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.createGlossary as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes createGlossary without error using callback', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.CreateGlossaryRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); + client.innerApiCalls.createGlossary = stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.createGlossary( + 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); + assert((client.innerApiCalls.createGlossary as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); + + it('invokes createGlossary with call error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.CreateGlossaryRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.createGlossary = stubLongRunningCall(undefined, expectedError); + await assert.rejects(client.createGlossary(request), expectedError); + assert((client.innerApiCalls.createGlossary as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes createGlossary with LRO error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.CreateGlossaryRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.createGlossary = stubLongRunningCall(undefined, undefined, expectedError); + const [operation] = await client.createGlossary(request); + await assert.rejects(operation.promise(), expectedError); + assert((client.innerApiCalls.createGlossary as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes checkCreateGlossaryProgress without error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + 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.checkCreateGlossaryProgress(expectedResponse.name); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + + it('invokes checkCreateGlossaryProgress with error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.checkCreateGlossaryProgress(''), expectedError); + assert((client.operationsClient.getOperation as SinonStub) + .getCall(0)); + }); + }); + + describe('deleteGlossary', () => { + it('invokes deleteGlossary without error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.DeleteGlossaryRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); + client.innerApiCalls.deleteGlossary = stubLongRunningCall(expectedResponse); + const [operation] = await client.deleteGlossary(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.deleteGlossary as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes deleteGlossary without error using callback', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.DeleteGlossaryRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); + client.innerApiCalls.deleteGlossary = stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.deleteGlossary( + 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); + assert((client.innerApiCalls.deleteGlossary as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); + + it('invokes deleteGlossary with call error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.DeleteGlossaryRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.deleteGlossary = stubLongRunningCall(undefined, expectedError); + await assert.rejects(client.deleteGlossary(request), expectedError); + assert((client.innerApiCalls.deleteGlossary as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes deleteGlossary with LRO error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.DeleteGlossaryRequest()); + request.name = ''; + const expectedHeaderRequestParams = "name="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.deleteGlossary = stubLongRunningCall(undefined, undefined, expectedError); + const [operation] = await client.deleteGlossary(request); + await assert.rejects(operation.promise(), expectedError); + assert((client.innerApiCalls.deleteGlossary as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes checkDeleteGlossaryProgress without error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + 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.checkDeleteGlossaryProgress(expectedResponse.name); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + + it('invokes checkDeleteGlossaryProgress with error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.checkDeleteGlossaryProgress(''), expectedError); + assert((client.operationsClient.getOperation as SinonStub) + .getCall(0)); + }); + }); + + describe('listGlossaries', () => { + it('invokes listGlossaries without error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.ListGlossariesRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), + generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), + generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), + ]; + client.innerApiCalls.listGlossaries = stubSimpleCall(expectedResponse); + const [response] = await client.listGlossaries(request); + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.listGlossaries as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes listGlossaries without error using callback', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.ListGlossariesRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), + generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), + generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), + ]; + client.innerApiCalls.listGlossaries = stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listGlossaries( + request, + (err?: Error|null, result?: protos.google.cloud.translation.v3beta1.IGlossary[]|null) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert((client.innerApiCalls.listGlossaries as SinonStub) + .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); + }); + + it('invokes listGlossaries with error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.ListGlossariesRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.listGlossaries = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.listGlossaries(request), expectedError); + assert((client.innerApiCalls.listGlossaries as SinonStub) + .getCall(0).calledWith(request, expectedOptions, undefined)); + }); + + it('invokes listGlossariesStream without error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.ListGlossariesRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), + generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), + generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), + ]; + client.descriptors.page.listGlossaries.createStream = stubPageStreamingCall(expectedResponse); + const stream = client.listGlossariesStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.translation.v3beta1.Glossary[] = []; + stream.on('data', (response: protos.google.cloud.translation.v3beta1.Glossary) => { + 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.listGlossaries.createStream as SinonStub) + .getCall(0).calledWith(client.innerApiCalls.listGlossaries, request)); + assert.strictEqual( + (client.descriptors.page.listGlossaries.createStream as SinonStub) + .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); + + it('invokes listGlossariesStream with error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.ListGlossariesRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedError = new Error('expected'); + client.descriptors.page.listGlossaries.createStream = stubPageStreamingCall(undefined, expectedError); + const stream = client.listGlossariesStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.translation.v3beta1.Glossary[] = []; + stream.on('data', (response: protos.google.cloud.translation.v3beta1.Glossary) => { + responses.push(response); + }); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + assert((client.descriptors.page.listGlossaries.createStream as SinonStub) + .getCall(0).calledWith(client.innerApiCalls.listGlossaries, request)); + assert.strictEqual( + (client.descriptors.page.listGlossaries.createStream as SinonStub) + .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); + + it('uses async iteration with listGlossaries without error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.ListGlossariesRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent="; + const expectedResponse = [ + generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), + generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), + generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), + ]; + client.descriptors.page.listGlossaries.asyncIterate = stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.translation.v3beta1.IGlossary[] = []; + const iterable = client.listGlossariesAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + (client.descriptors.page.listGlossaries.asyncIterate as SinonStub) + .getCall(0).args[1], request); + assert.strictEqual( + (client.descriptors.page.listGlossaries.asyncIterate as SinonStub) + .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); + + it('uses async iteration with listGlossaries with error', async () => { + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.ListGlossariesRequest()); + request.parent = ''; + const expectedHeaderRequestParams = "parent=";const expectedError = new Error('expected'); + client.descriptors.page.listGlossaries.asyncIterate = stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listGlossariesAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.translation.v3beta1.IGlossary[] = []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + (client.descriptors.page.listGlossaries.asyncIterate as SinonStub) + .getCall(0).args[1], request); + assert.strictEqual( + (client.descriptors.page.listGlossaries.asyncIterate as SinonStub) + .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); + }); + + describe('Path templates', () => { + + describe('glossary', () => { + const fakePath = "/rendered/path/glossary"; + const expectedParameters = { + project: "projectValue", + location: "locationValue", + glossary: "glossaryValue", + }; + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + client.pathTemplates.glossaryPathTemplate.render = + sinon.stub().returns(fakePath); + client.pathTemplates.glossaryPathTemplate.match = + sinon.stub().returns(expectedParameters); + + it('glossaryPath', () => { + const result = client.glossaryPath("projectValue", "locationValue", "glossaryValue"); + assert.strictEqual(result, fakePath); + assert((client.pathTemplates.glossaryPathTemplate.render as SinonStub) + .getCall(-1).calledWith(expectedParameters)); + }); + + it('matchProjectFromGlossaryName', () => { + const result = client.matchProjectFromGlossaryName(fakePath); + assert.strictEqual(result, "projectValue"); + assert((client.pathTemplates.glossaryPathTemplate.match as SinonStub) + .getCall(-1).calledWith(fakePath)); + }); + + it('matchLocationFromGlossaryName', () => { + const result = client.matchLocationFromGlossaryName(fakePath); + assert.strictEqual(result, "locationValue"); + assert((client.pathTemplates.glossaryPathTemplate.match as SinonStub) + .getCall(-1).calledWith(fakePath)); + }); + + it('matchGlossaryFromGlossaryName', () => { + const result = client.matchGlossaryFromGlossaryName(fakePath); + assert.strictEqual(result, "glossaryValue"); + assert((client.pathTemplates.glossaryPathTemplate.match as SinonStub) + .getCall(-1).calledWith(fakePath)); + }); + }); + + describe('location', () => { + const fakePath = "/rendered/path/location"; + const expectedParameters = { + project: "projectValue", + location: "locationValue", + }; + const client = new translationserviceModule.v3beta1.TranslationServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + 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)); + }); + }); + }); +}); diff --git a/owl-bot-staging/v3beta1/tsconfig.json b/owl-bot-staging/v3beta1/tsconfig.json new file mode 100644 index 00000000..c78f1c88 --- /dev/null +++ b/owl-bot-staging/v3beta1/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "./node_modules/gts/tsconfig-google.json", + "compilerOptions": { + "rootDir": ".", + "outDir": "build", + "resolveJsonModule": true, + "lib": [ + "es2018", + "dom" + ] + }, + "include": [ + "src/*.ts", + "src/**/*.ts", + "test/*.ts", + "test/**/*.ts", + "system-test/*.ts" + ] +} diff --git a/owl-bot-staging/v3beta1/webpack.config.js b/owl-bot-staging/v3beta1/webpack.config.js new file mode 100644 index 00000000..3504dead --- /dev/null +++ b/owl-bot-staging/v3beta1/webpack.config.js @@ -0,0 +1,64 @@ +// 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. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +const path = require('path'); + +module.exports = { + entry: './src/index.ts', + output: { + library: 'TranslationService', + filename: './translation-service.js', + }, + node: { + child_process: 'empty', + fs: 'empty', + crypto: 'empty', + }, + resolve: { + alias: { + '../../../package.json': path.resolve(__dirname, 'package.json'), + }, + extensions: ['.js', '.json', '.ts'], + }, + module: { + rules: [ + { + test: /\.tsx?$/, + use: 'ts-loader', + exclude: /node_modules/ + }, + { + test: /node_modules[\\/]@grpc[\\/]grpc-js/, + use: 'null-loader' + }, + { + test: /node_modules[\\/]grpc/, + use: 'null-loader' + }, + { + test: /node_modules[\\/]retry-request/, + use: 'null-loader' + }, + { + test: /node_modules[\\/]https?-proxy-agent/, + use: 'null-loader' + }, + { + test: /node_modules[\\/]gtoken/, + use: 'null-loader' + }, + ], + }, + mode: 'production', +}; From 4deab1152db9a586b37486f84d53a230938a0d63 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Fri, 24 Jun 2022 09:56:35 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot=20po?= =?UTF-8?q?st-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- owl-bot-staging/v3/.eslintignore | 7 - owl-bot-staging/v3/.eslintrc.json | 3 - owl-bot-staging/v3/.gitignore | 14 - owl-bot-staging/v3/.jsdoc.js | 55 - owl-bot-staging/v3/.mocharc.js | 33 - owl-bot-staging/v3/.prettierrc.js | 22 - owl-bot-staging/v3/README.md | 1 - owl-bot-staging/v3/linkinator.config.json | 16 - owl-bot-staging/v3/package.json | 64 - .../translate/v3/translation_service.proto | 1462 -------------- ..._metadata.google.cloud.translation.v3.json | 567 ------ ...lation_service.batch_translate_document.js | 120 -- ...ranslation_service.batch_translate_text.js | 117 -- .../v3/translation_service.create_glossary.js | 64 - .../v3/translation_service.delete_glossary.js | 59 - .../v3/translation_service.detect_language.js | 93 - .../v3/translation_service.get_glossary.js | 58 - ...slation_service.get_supported_languages.js | 83 - .../v3/translation_service.list_glossaries.js | 91 - .../translation_service.translate_document.js | 120 -- .../v3/translation_service.translate_text.js | 123 -- owl-bot-staging/v3/src/index.ts | 25 - owl-bot-staging/v3/src/v3/gapic_metadata.json | 127 -- owl-bot-staging/v3/src/v3/index.ts | 19 - .../v3/src/v3/translation_service_client.ts | 1717 ----------------- .../v3/translation_service_client_config.json | 76 - .../v3/translation_service_proto_list.json | 3 - .../system-test/fixtures/sample/src/index.js | 27 - .../system-test/fixtures/sample/src/index.ts | 32 - owl-bot-staging/v3/system-test/install.ts | 49 - .../v3/test/gapic_translation_service_v3.ts | 1569 --------------- owl-bot-staging/v3/tsconfig.json | 19 - owl-bot-staging/v3/webpack.config.js | 64 - owl-bot-staging/v3beta1/.eslintignore | 7 - owl-bot-staging/v3beta1/.eslintrc.json | 3 - owl-bot-staging/v3beta1/.gitignore | 14 - owl-bot-staging/v3beta1/.jsdoc.js | 55 - owl-bot-staging/v3beta1/.mocharc.js | 33 - owl-bot-staging/v3beta1/.prettierrc.js | 22 - owl-bot-staging/v3beta1/README.md | 1 - .../v3beta1/linkinator.config.json | 16 - owl-bot-staging/v3beta1/package.json | 64 - .../v3beta1/translation_service.proto | 1450 -------------- ...data.google.cloud.translation.v3beta1.json | 567 ------ ...lation_service.batch_translate_document.js | 120 -- ...ranslation_service.batch_translate_text.js | 116 -- .../translation_service.create_glossary.js | 64 - .../translation_service.delete_glossary.js | 59 - .../translation_service.detect_language.js | 92 - .../translation_service.get_glossary.js | 58 - ...slation_service.get_supported_languages.js | 83 - .../translation_service.list_glossaries.js | 91 - .../translation_service.translate_document.js | 119 -- .../translation_service.translate_text.js | 122 -- owl-bot-staging/v3beta1/src/index.ts | 25 - .../v3beta1/src/v3beta1/gapic_metadata.json | 127 -- owl-bot-staging/v3beta1/src/v3beta1/index.ts | 19 - .../src/v3beta1/translation_service_client.ts | 1713 ---------------- .../translation_service_client_config.json | 76 - .../translation_service_proto_list.json | 3 - .../system-test/fixtures/sample/src/index.js | 27 - .../system-test/fixtures/sample/src/index.ts | 32 - .../v3beta1/system-test/install.ts | 49 - .../test/gapic_translation_service_v3beta1.ts | 1569 --------------- owl-bot-staging/v3beta1/tsconfig.json | 19 - owl-bot-staging/v3beta1/webpack.config.js | 64 - src/v3/translation_service_client.ts | 58 +- src/v3beta1/translation_service_client.ts | 58 +- 68 files changed, 92 insertions(+), 13802 deletions(-) delete mode 100644 owl-bot-staging/v3/.eslintignore delete mode 100644 owl-bot-staging/v3/.eslintrc.json delete mode 100644 owl-bot-staging/v3/.gitignore delete mode 100644 owl-bot-staging/v3/.jsdoc.js delete mode 100644 owl-bot-staging/v3/.mocharc.js delete mode 100644 owl-bot-staging/v3/.prettierrc.js delete mode 100644 owl-bot-staging/v3/README.md delete mode 100644 owl-bot-staging/v3/linkinator.config.json delete mode 100644 owl-bot-staging/v3/package.json delete mode 100644 owl-bot-staging/v3/protos/google/cloud/translate/v3/translation_service.proto delete mode 100644 owl-bot-staging/v3/samples/generated/v3/snippet_metadata.google.cloud.translation.v3.json delete mode 100644 owl-bot-staging/v3/samples/generated/v3/translation_service.batch_translate_document.js delete mode 100644 owl-bot-staging/v3/samples/generated/v3/translation_service.batch_translate_text.js delete mode 100644 owl-bot-staging/v3/samples/generated/v3/translation_service.create_glossary.js delete mode 100644 owl-bot-staging/v3/samples/generated/v3/translation_service.delete_glossary.js delete mode 100644 owl-bot-staging/v3/samples/generated/v3/translation_service.detect_language.js delete mode 100644 owl-bot-staging/v3/samples/generated/v3/translation_service.get_glossary.js delete mode 100644 owl-bot-staging/v3/samples/generated/v3/translation_service.get_supported_languages.js delete mode 100644 owl-bot-staging/v3/samples/generated/v3/translation_service.list_glossaries.js delete mode 100644 owl-bot-staging/v3/samples/generated/v3/translation_service.translate_document.js delete mode 100644 owl-bot-staging/v3/samples/generated/v3/translation_service.translate_text.js delete mode 100644 owl-bot-staging/v3/src/index.ts delete mode 100644 owl-bot-staging/v3/src/v3/gapic_metadata.json delete mode 100644 owl-bot-staging/v3/src/v3/index.ts delete mode 100644 owl-bot-staging/v3/src/v3/translation_service_client.ts delete mode 100644 owl-bot-staging/v3/src/v3/translation_service_client_config.json delete mode 100644 owl-bot-staging/v3/src/v3/translation_service_proto_list.json delete mode 100644 owl-bot-staging/v3/system-test/fixtures/sample/src/index.js delete mode 100644 owl-bot-staging/v3/system-test/fixtures/sample/src/index.ts delete mode 100644 owl-bot-staging/v3/system-test/install.ts delete mode 100644 owl-bot-staging/v3/test/gapic_translation_service_v3.ts delete mode 100644 owl-bot-staging/v3/tsconfig.json delete mode 100644 owl-bot-staging/v3/webpack.config.js delete mode 100644 owl-bot-staging/v3beta1/.eslintignore delete mode 100644 owl-bot-staging/v3beta1/.eslintrc.json delete mode 100644 owl-bot-staging/v3beta1/.gitignore delete mode 100644 owl-bot-staging/v3beta1/.jsdoc.js delete mode 100644 owl-bot-staging/v3beta1/.mocharc.js delete mode 100644 owl-bot-staging/v3beta1/.prettierrc.js delete mode 100644 owl-bot-staging/v3beta1/README.md delete mode 100644 owl-bot-staging/v3beta1/linkinator.config.json delete mode 100644 owl-bot-staging/v3beta1/package.json delete mode 100644 owl-bot-staging/v3beta1/protos/google/cloud/translate/v3beta1/translation_service.proto delete mode 100644 owl-bot-staging/v3beta1/samples/generated/v3beta1/snippet_metadata.google.cloud.translation.v3beta1.json delete mode 100644 owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.batch_translate_document.js delete mode 100644 owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.batch_translate_text.js delete mode 100644 owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.create_glossary.js delete mode 100644 owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.delete_glossary.js delete mode 100644 owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.detect_language.js delete mode 100644 owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.get_glossary.js delete mode 100644 owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.get_supported_languages.js delete mode 100644 owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.list_glossaries.js delete mode 100644 owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.translate_document.js delete mode 100644 owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.translate_text.js delete mode 100644 owl-bot-staging/v3beta1/src/index.ts delete mode 100644 owl-bot-staging/v3beta1/src/v3beta1/gapic_metadata.json delete mode 100644 owl-bot-staging/v3beta1/src/v3beta1/index.ts delete mode 100644 owl-bot-staging/v3beta1/src/v3beta1/translation_service_client.ts delete mode 100644 owl-bot-staging/v3beta1/src/v3beta1/translation_service_client_config.json delete mode 100644 owl-bot-staging/v3beta1/src/v3beta1/translation_service_proto_list.json delete mode 100644 owl-bot-staging/v3beta1/system-test/fixtures/sample/src/index.js delete mode 100644 owl-bot-staging/v3beta1/system-test/fixtures/sample/src/index.ts delete mode 100644 owl-bot-staging/v3beta1/system-test/install.ts delete mode 100644 owl-bot-staging/v3beta1/test/gapic_translation_service_v3beta1.ts delete mode 100644 owl-bot-staging/v3beta1/tsconfig.json delete mode 100644 owl-bot-staging/v3beta1/webpack.config.js diff --git a/owl-bot-staging/v3/.eslintignore b/owl-bot-staging/v3/.eslintignore deleted file mode 100644 index cfc348ec..00000000 --- a/owl-bot-staging/v3/.eslintignore +++ /dev/null @@ -1,7 +0,0 @@ -**/node_modules -**/.coverage -build/ -docs/ -protos/ -system-test/ -samples/generated/ diff --git a/owl-bot-staging/v3/.eslintrc.json b/owl-bot-staging/v3/.eslintrc.json deleted file mode 100644 index 78215349..00000000 --- a/owl-bot-staging/v3/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./node_modules/gts" -} diff --git a/owl-bot-staging/v3/.gitignore b/owl-bot-staging/v3/.gitignore deleted file mode 100644 index 5d32b237..00000000 --- a/owl-bot-staging/v3/.gitignore +++ /dev/null @@ -1,14 +0,0 @@ -**/*.log -**/node_modules -.coverage -coverage -.nyc_output -docs/ -out/ -build/ -system-test/secrets.js -system-test/*key.json -*.lock -.DS_Store -package-lock.json -__pycache__ diff --git a/owl-bot-staging/v3/.jsdoc.js b/owl-bot-staging/v3/.jsdoc.js deleted file mode 100644 index 2f0f785e..00000000 --- a/owl-bot-staging/v3/.jsdoc.js +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - -'use strict'; - -module.exports = { - opts: { - readme: './README.md', - package: './package.json', - template: './node_modules/jsdoc-fresh', - recurse: true, - verbose: true, - destination: './docs/' - }, - plugins: [ - 'plugins/markdown', - 'jsdoc-region-tag' - ], - source: { - excludePattern: '(^|\\/|\\\\)[._]', - include: [ - 'build/src', - 'protos' - ], - includePattern: '\\.js$' - }, - templates: { - copyright: 'Copyright 2022 Google LLC', - includeDate: false, - sourceFiles: false, - systemName: '@google-cloud/translate', - theme: 'lumen', - default: { - outputSourceFiles: false - } - }, - markdown: { - idInHeadings: true - } -}; diff --git a/owl-bot-staging/v3/.mocharc.js b/owl-bot-staging/v3/.mocharc.js deleted file mode 100644 index 481c522b..00000000 --- a/owl-bot-staging/v3/.mocharc.js +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - -const config = { - "enable-source-maps": true, - "throw-deprecation": true, - "timeout": 10000 -} -if (process.env.MOCHA_THROW_DEPRECATION === 'false') { - delete config['throw-deprecation']; -} -if (process.env.MOCHA_REPORTER) { - config.reporter = process.env.MOCHA_REPORTER; -} -if (process.env.MOCHA_REPORTER_OUTPUT) { - config['reporter-option'] = `output=${process.env.MOCHA_REPORTER_OUTPUT}`; -} -module.exports = config diff --git a/owl-bot-staging/v3/.prettierrc.js b/owl-bot-staging/v3/.prettierrc.js deleted file mode 100644 index 494e1478..00000000 --- a/owl-bot-staging/v3/.prettierrc.js +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - -module.exports = { - ...require('gts/.prettierrc.json') -} diff --git a/owl-bot-staging/v3/README.md b/owl-bot-staging/v3/README.md deleted file mode 100644 index 93a92542..00000000 --- a/owl-bot-staging/v3/README.md +++ /dev/null @@ -1 +0,0 @@ -Translation: Nodejs Client diff --git a/owl-bot-staging/v3/linkinator.config.json b/owl-bot-staging/v3/linkinator.config.json deleted file mode 100644 index befd23c8..00000000 --- a/owl-bot-staging/v3/linkinator.config.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "recurse": true, - "skip": [ - "https://codecov.io/gh/googleapis/", - "www.googleapis.com", - "img.shields.io", - "https://console.cloud.google.com/cloudshell", - "https://support.google.com" - ], - "silent": true, - "concurrency": 5, - "retry": true, - "retryErrors": true, - "retryErrorsCount": 5, - "retryErrorsJitter": 3000 -} diff --git a/owl-bot-staging/v3/package.json b/owl-bot-staging/v3/package.json deleted file mode 100644 index 91e27cd6..00000000 --- a/owl-bot-staging/v3/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "@google-cloud/translate", - "version": "0.1.0", - "description": "Translation client for Node.js", - "repository": "googleapis/nodejs-translation", - "license": "Apache-2.0", - "author": "Google LLC", - "main": "build/src/index.js", - "files": [ - "build/src", - "build/protos" - ], - "keywords": [ - "google apis client", - "google api client", - "google apis", - "google api", - "google", - "google cloud platform", - "google cloud", - "cloud", - "google translation", - "translation", - "translation service" - ], - "scripts": { - "clean": "gts clean", - "compile": "tsc -p . && cp -r protos build/", - "compile-protos": "compileProtos src", - "docs": "jsdoc -c .jsdoc.js", - "predocs-test": "npm run docs", - "docs-test": "linkinator docs", - "fix": "gts fix", - "lint": "gts check", - "prepare": "npm run compile-protos && npm run compile", - "system-test": "c8 mocha build/system-test", - "test": "c8 mocha build/test" - }, - "dependencies": { - "google-gax": "^3.1.1" - }, - "devDependencies": { - "@types/mocha": "^9.1.0", - "@types/node": "^16.0.0", - "@types/sinon": "^10.0.8", - "c8": "^7.11.0", - "gts": "^3.1.0", - "jsdoc": "^3.6.7", - "jsdoc-fresh": "^1.1.1", - "jsdoc-region-tag": "^1.3.1", - "linkinator": "^3.0.0", - "mocha": "^9.1.4", - "null-loader": "^4.0.1", - "pack-n-play": "^1.0.0-2", - "sinon": "^13.0.0", - "ts-loader": "^9.2.6", - "typescript": "^4.5.5", - "webpack": "^5.67.0", - "webpack-cli": "^4.9.1" - }, - "engines": { - "node": ">=v12" - } -} diff --git a/owl-bot-staging/v3/protos/google/cloud/translate/v3/translation_service.proto b/owl-bot-staging/v3/protos/google/cloud/translate/v3/translation_service.proto deleted file mode 100644 index 9f770248..00000000 --- a/owl-bot-staging/v3/protos/google/cloud/translate/v3/translation_service.proto +++ /dev/null @@ -1,1462 +0,0 @@ -// 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. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.cloud.translation.v3; - -import "google/api/annotations.proto"; -import "google/api/client.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/longrunning/operations.proto"; -import "google/protobuf/empty.proto"; -import "google/protobuf/timestamp.proto"; -import "google/rpc/status.proto"; - -option cc_enable_arenas = true; -option csharp_namespace = "Google.Cloud.Translate.V3"; -option go_package = "google.golang.org/genproto/googleapis/cloud/translate/v3;translate"; -option java_multiple_files = true; -option java_outer_classname = "TranslationServiceProto"; -option java_package = "com.google.cloud.translate.v3"; -option php_namespace = "Google\\Cloud\\Translate\\V3"; -option ruby_package = "Google::Cloud::Translate::V3"; - -// Proto file for the Cloud Translation API (v3 GA). - -// Provides natural language translation operations. -service TranslationService { - option (google.api.default_host) = "translate.googleapis.com"; - option (google.api.oauth_scopes) = - "https://www.googleapis.com/auth/cloud-platform," - "https://www.googleapis.com/auth/cloud-translation"; - - // Translates input text and returns translated text. - rpc TranslateText(TranslateTextRequest) returns (TranslateTextResponse) { - option (google.api.http) = { - post: "/v3/{parent=projects/*/locations/*}:translateText" - body: "*" - additional_bindings { - post: "/v3/{parent=projects/*}:translateText" - body: "*" - } - }; - option (google.api.method_signature) = - "parent,target_language_code,contents"; - option (google.api.method_signature) = - "parent,model,mime_type,source_language_code,target_language_code,contents"; - } - - // Detects the language of text within a request. - rpc DetectLanguage(DetectLanguageRequest) returns (DetectLanguageResponse) { - option (google.api.http) = { - post: "/v3/{parent=projects/*/locations/*}:detectLanguage" - body: "*" - additional_bindings { - post: "/v3/{parent=projects/*}:detectLanguage" - body: "*" - } - }; - option (google.api.method_signature) = "parent,model,mime_type,content"; - } - - // Returns a list of supported languages for translation. - rpc GetSupportedLanguages(GetSupportedLanguagesRequest) - returns (SupportedLanguages) { - option (google.api.http) = { - get: "/v3/{parent=projects/*/locations/*}/supportedLanguages" - additional_bindings { get: "/v3/{parent=projects/*}/supportedLanguages" } - }; - option (google.api.method_signature) = "parent,model,display_language_code"; - } - - // Translates documents in synchronous mode. - rpc TranslateDocument(TranslateDocumentRequest) - returns (TranslateDocumentResponse) { - option (google.api.http) = { - post: "/v3/{parent=projects/*/locations/*}:translateDocument" - body: "*" - }; - } - - // Translates a large volume of text in asynchronous batch mode. - // This function provides real-time output as the inputs are being processed. - // If caller cancels a request, the partial results (for an input file, it's - // all or nothing) may still be available on the specified output location. - // - // This call returns immediately and you can - // use google.longrunning.Operation.name to poll the status of the call. - rpc BatchTranslateText(BatchTranslateTextRequest) - returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v3/{parent=projects/*/locations/*}:batchTranslateText" - body: "*" - }; - option (google.longrunning.operation_info) = { - response_type: "BatchTranslateResponse" - metadata_type: "BatchTranslateMetadata" - }; - } - - // Translates a large volume of document in asynchronous batch mode. - // This function provides real-time output as the inputs are being processed. - // If caller cancels a request, the partial results (for an input file, it's - // all or nothing) may still be available on the specified output location. - // - // This call returns immediately and you can use - // google.longrunning.Operation.name to poll the status of the call. - rpc BatchTranslateDocument(BatchTranslateDocumentRequest) - returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v3/{parent=projects/*/locations/*}:batchTranslateDocument" - body: "*" - }; - option (google.api.method_signature) = - "parent,source_language_code,target_language_codes,input_configs,output_config"; - option (google.longrunning.operation_info) = { - response_type: "BatchTranslateDocumentResponse" - metadata_type: "BatchTranslateDocumentMetadata" - }; - } - - // Creates a glossary and returns the long-running operation. Returns - // NOT_FOUND, if the project doesn't exist. - rpc CreateGlossary(CreateGlossaryRequest) - returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v3/{parent=projects/*/locations/*}/glossaries" - body: "glossary" - }; - option (google.api.method_signature) = "parent,glossary"; - option (google.longrunning.operation_info) = { - response_type: "Glossary" - metadata_type: "CreateGlossaryMetadata" - }; - } - - // Lists glossaries in a project. Returns NOT_FOUND, if the project doesn't - // exist. - rpc ListGlossaries(ListGlossariesRequest) returns (ListGlossariesResponse) { - option (google.api.http) = { - get: "/v3/{parent=projects/*/locations/*}/glossaries" - }; - option (google.api.method_signature) = "parent"; - } - - // Gets a glossary. Returns NOT_FOUND, if the glossary doesn't - // exist. - rpc GetGlossary(GetGlossaryRequest) returns (Glossary) { - option (google.api.http) = { - get: "/v3/{name=projects/*/locations/*/glossaries/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Deletes a glossary, or cancels glossary construction - // if the glossary isn't created yet. - // Returns NOT_FOUND, if the glossary doesn't exist. - rpc DeleteGlossary(DeleteGlossaryRequest) - returns (google.longrunning.Operation) { - option (google.api.http) = { - delete: "/v3/{name=projects/*/locations/*/glossaries/*}" - }; - option (google.api.method_signature) = "name"; - option (google.longrunning.operation_info) = { - response_type: "DeleteGlossaryResponse" - metadata_type: "DeleteGlossaryMetadata" - }; - } -} - -// Configures which glossary should be used for a specific target language, -// and defines options for applying that glossary. -message TranslateTextGlossaryConfig { - // Required. The `glossary` to be applied for this translation. - // - // The format depends on glossary: - // - // - User provided custom glossary: - // `projects/{project-number-or-id}/locations/{location-id}/glossaries/{glossary-id}` - string glossary = 1 [(google.api.field_behavior) = REQUIRED]; - - // Optional. Indicates match is case-insensitive. - // Default value is false if missing. - bool ignore_case = 2 [(google.api.field_behavior) = OPTIONAL]; -} - -// The request message for synchronous translation. -message TranslateTextRequest { - // Required. The content of the input in string format. - // We recommend the total content be less than 30k codepoints. The max length - // of this field is 1024. - // Use BatchTranslateText for larger text. - repeated string contents = 1 [(google.api.field_behavior) = REQUIRED]; - - // Optional. The format of the source text, for example, "text/html", - // "text/plain". If left blank, the MIME type defaults to "text/html". - string mime_type = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The BCP-47 language code of the input text if - // known, for example, "en-US" or "sr-Latn". Supported language codes are - // listed in Language Support. If the source language isn't specified, the API - // attempts to identify the source language automatically and returns the - // source language within the response. - string source_language_code = 4 [(google.api.field_behavior) = OPTIONAL]; - - // Required. The BCP-47 language code to use for translation of the input - // text, set to one of the language codes listed in Language Support. - string target_language_code = 5 [(google.api.field_behavior) = REQUIRED]; - - // Required. Project or location to make a call. Must refer to a caller's - // project. - // - // Format: `projects/{project-number-or-id}` or - // `projects/{project-number-or-id}/locations/{location-id}`. - // - // For global calls, use `projects/{project-number-or-id}/locations/global` or - // `projects/{project-number-or-id}`. - // - // Non-global location is required for requests using AutoML models or - // custom glossaries. - // - // Models and glossaries must be within the same region (have same - // location-id), otherwise an INVALID_ARGUMENT (400) error is returned. - string parent = 8 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // Optional. The `model` type requested for this translation. - // - // The format depends on model type: - // - // - AutoML Translation models: - // `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - // - // - General (built-in) models: - // `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - // - // - // For global (non-regionalized) requests, use `location-id` `global`. - // For example, - // `projects/{project-number-or-id}/locations/global/models/general/nmt`. - // - // If not provided, the default Google model (NMT) will be used. - string model = 6 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Glossary to be applied. The glossary must be - // within the same region (have the same location-id) as the model, otherwise - // an INVALID_ARGUMENT (400) error is returned. - TranslateTextGlossaryConfig glossary_config = 7 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The labels with user-defined metadata for the request. - // - // Label keys and values can be no longer than 63 characters - // (Unicode codepoints), can only contain lowercase letters, numeric - // characters, underscores and dashes. International characters are allowed. - // Label values are optional. Label keys must start with a letter. - // - // See https://cloud.google.com/translate/docs/advanced/labels for more - // information. - map labels = 10 [(google.api.field_behavior) = OPTIONAL]; -} - -message TranslateTextResponse { - // Text translation responses with no glossary applied. - // This field has the same length as - // [`contents`][google.cloud.translation.v3.TranslateTextRequest.contents]. - repeated Translation translations = 1; - - // Text translation responses if a glossary is provided in the request. - // This can be the same as - // [`translations`][google.cloud.translation.v3.TranslateTextResponse.translations] - // if no terms apply. This field has the same length as - // [`contents`][google.cloud.translation.v3.TranslateTextRequest.contents]. - repeated Translation glossary_translations = 3; -} - -// A single translation response. -message Translation { - // Text translated into the target language. - // If an error occurs during translation, this field might be excluded from - // the response. - string translated_text = 1; - - // Only present when `model` is present in the request. - // `model` here is normalized to have project number. - // - // For example: - // If the `model` requested in TranslationTextRequest is - // `projects/{project-id}/locations/{location-id}/models/general/nmt` then - // `model` here would be normalized to - // `projects/{project-number}/locations/{location-id}/models/general/nmt`. - string model = 2; - - // The BCP-47 language code of source text in the initial request, detected - // automatically, if no source language was passed within the initial - // request. If the source language was passed, auto-detection of the language - // does not occur and this field is empty. - string detected_language_code = 4; - - // The `glossary_config` used for this translation. - TranslateTextGlossaryConfig glossary_config = 3; -} - -// The request message for language detection. -message DetectLanguageRequest { - // Required. Project or location to make a call. Must refer to a caller's - // project. - // - // Format: `projects/{project-number-or-id}/locations/{location-id}` or - // `projects/{project-number-or-id}`. - // - // For global calls, use `projects/{project-number-or-id}/locations/global` or - // `projects/{project-number-or-id}`. - // - // Only models within the same region (has same location-id) can be used. - // Otherwise an INVALID_ARGUMENT (400) error is returned. - string parent = 5 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // Optional. The language detection model to be used. - // - // Format: - // `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/{model-id}` - // - // Only one language detection model is currently supported: - // `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/default`. - // - // If not specified, the default model is used. - string model = 4 [(google.api.field_behavior) = OPTIONAL]; - - // Required. The source of the document from which to detect the language. - oneof source { - // The content of the input stored as a string. - string content = 1; - } - - // Optional. The format of the source text, for example, "text/html", - // "text/plain". If left blank, the MIME type defaults to "text/html". - string mime_type = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The labels with user-defined metadata for the request. - // - // Label keys and values can be no longer than 63 characters - // (Unicode codepoints), can only contain lowercase letters, numeric - // characters, underscores and dashes. International characters are allowed. - // Label values are optional. Label keys must start with a letter. - // - // See https://cloud.google.com/translate/docs/advanced/labels for more - // information. - map labels = 6 [(google.api.field_behavior) = OPTIONAL]; -} - -// The response message for language detection. -message DetectedLanguage { - // The BCP-47 language code of source content in the request, detected - // automatically. - string language_code = 1; - - // The confidence of the detection result for this language. - float confidence = 2; -} - -// The response message for language detection. -message DetectLanguageResponse { - // The most probable language detected by the Translation API. For each - // request, the Translation API will always return only one result. - repeated DetectedLanguage languages = 1; -} - -// The request message for discovering supported languages. -message GetSupportedLanguagesRequest { - // Required. Project or location to make a call. Must refer to a caller's - // project. - // - // Format: `projects/{project-number-or-id}` or - // `projects/{project-number-or-id}/locations/{location-id}`. - // - // For global calls, use `projects/{project-number-or-id}/locations/global` or - // `projects/{project-number-or-id}`. - // - // Non-global location is required for AutoML models. - // - // Only models within the same region (have same location-id) can be used, - // otherwise an INVALID_ARGUMENT (400) error is returned. - string parent = 3 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // Optional. The language to use to return localized, human readable names - // of supported languages. If missing, then display names are not returned - // in a response. - string display_language_code = 1 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Get supported languages of this model. - // - // The format depends on model type: - // - // - AutoML Translation models: - // `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - // - // - General (built-in) models: - // `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - // - // - // Returns languages supported by the specified model. - // If missing, we get supported languages of Google general NMT model. - string model = 2 [(google.api.field_behavior) = OPTIONAL]; -} - -// The response message for discovering supported languages. -message SupportedLanguages { - // A list of supported language responses. This list contains an entry - // for each language the Translation API supports. - repeated SupportedLanguage languages = 1; -} - -// A single supported language response corresponds to information related -// to one supported language. -message SupportedLanguage { - // Supported language code, generally consisting of its ISO 639-1 - // identifier, for example, 'en', 'ja'. In certain cases, BCP-47 codes - // including language and region identifiers are returned (for example, - // 'zh-TW' and 'zh-CN') - string language_code = 1; - - // Human readable name of the language localized in the display language - // specified in the request. - string display_name = 2; - - // Can be used as source language. - bool support_source = 3; - - // Can be used as target language. - bool support_target = 4; -} - -// The Google Cloud Storage location for the input content. -message GcsSource { - // Required. Source data URI. For example, `gs://my_bucket/my_object`. - string input_uri = 1 [(google.api.field_behavior) = REQUIRED]; -} - -// Input configuration for BatchTranslateText request. -message InputConfig { - // Optional. Can be "text/plain" or "text/html". - // For `.tsv`, "text/html" is used if mime_type is missing. - // For `.html`, this field must be "text/html" or empty. - // For `.txt`, this field must be "text/plain" or empty. - string mime_type = 1 [(google.api.field_behavior) = OPTIONAL]; - - // Required. Specify the input. - oneof source { - // Required. Google Cloud Storage location for the source input. - // This can be a single file (for example, - // `gs://translation-test/input.tsv`) or a wildcard (for example, - // `gs://translation-test/*`). If a file extension is `.tsv`, it can - // contain either one or two columns. The first column (optional) is the id - // of the text request. If the first column is missing, we use the row - // number (0-based) from the input file as the ID in the output file. The - // second column is the actual text to be - // translated. We recommend each row be <= 10K Unicode codepoints, - // otherwise an error might be returned. - // Note that the input tsv must be RFC 4180 compliant. - // - // You could use https://github.com/Clever/csvlint to check potential - // formatting errors in your tsv file. - // csvlint --delimiter='\t' your_input_file.tsv - // - // The other supported file extensions are `.txt` or `.html`, which is - // treated as a single large chunk of text. - GcsSource gcs_source = 2; - } -} - -// The Google Cloud Storage location for the output content. -message GcsDestination { - // Required. The bucket used in 'output_uri_prefix' must exist and there must - // be no files under 'output_uri_prefix'. 'output_uri_prefix' must end with - // "/" and start with "gs://". One 'output_uri_prefix' can only be used by one - // batch translation job at a time. Otherwise an INVALID_ARGUMENT (400) error - // is returned. - string output_uri_prefix = 1 [(google.api.field_behavior) = REQUIRED]; -} - -// Output configuration for BatchTranslateText request. -message OutputConfig { - // Required. The destination of output. - oneof destination { - // Google Cloud Storage destination for output content. - // For every single input file (for example, gs://a/b/c.[extension]), we - // generate at most 2 * n output files. (n is the # of target_language_codes - // in the BatchTranslateTextRequest). - // - // Output files (tsv) generated are compliant with RFC 4180 except that - // record delimiters are '\n' instead of '\r\n'. We don't provide any way to - // change record delimiters. - // - // While the input files are being processed, we write/update an index file - // 'index.csv' under 'output_uri_prefix' (for example, - // gs://translation-test/index.csv) The index file is generated/updated as - // new files are being translated. The format is: - // - // input_file,target_language_code,translations_file,errors_file, - // glossary_translations_file,glossary_errors_file - // - // input_file is one file we matched using gcs_source.input_uri. - // target_language_code is provided in the request. - // translations_file contains the translations. (details provided below) - // errors_file contains the errors during processing of the file. (details - // below). Both translations_file and errors_file could be empty - // strings if we have no content to output. - // glossary_translations_file and glossary_errors_file are always empty - // strings if the input_file is tsv. They could also be empty if we have no - // content to output. - // - // Once a row is present in index.csv, the input/output matching never - // changes. Callers should also expect all the content in input_file are - // processed and ready to be consumed (that is, no partial output file is - // written). - // - // Since index.csv will be keeping updated during the process, please make - // sure there is no custom retention policy applied on the output bucket - // that may avoid file updating. - // (https://cloud.google.com/storage/docs/bucket-lock?hl=en#retention-policy) - // - // The format of translations_file (for target language code 'trg') is: - // gs://translation_test/a_b_c_'trg'_translations.[extension] - // - // If the input file extension is tsv, the output has the following - // columns: - // Column 1: ID of the request provided in the input, if it's not - // provided in the input, then the input row number is used (0-based). - // Column 2: source sentence. - // Column 3: translation without applying a glossary. Empty string if there - // is an error. - // Column 4 (only present if a glossary is provided in the request): - // translation after applying the glossary. Empty string if there is an - // error applying the glossary. Could be same string as column 3 if there is - // no glossary applied. - // - // If input file extension is a txt or html, the translation is directly - // written to the output file. If glossary is requested, a separate - // glossary_translations_file has format of - // gs://translation_test/a_b_c_'trg'_glossary_translations.[extension] - // - // The format of errors file (for target language code 'trg') is: - // gs://translation_test/a_b_c_'trg'_errors.[extension] - // - // If the input file extension is tsv, errors_file contains the following: - // Column 1: ID of the request provided in the input, if it's not - // provided in the input, then the input row number is used (0-based). - // Column 2: source sentence. - // Column 3: Error detail for the translation. Could be empty. - // Column 4 (only present if a glossary is provided in the request): - // Error when applying the glossary. - // - // If the input file extension is txt or html, glossary_error_file will be - // generated that contains error details. glossary_error_file has format of - // gs://translation_test/a_b_c_'trg'_glossary_errors.[extension] - GcsDestination gcs_destination = 1; - } -} - -// A document translation request input config. -message DocumentInputConfig { - // Specifies the source for the document's content. - // The input file size should be <= 20MB for - // - application/vnd.openxmlformats-officedocument.wordprocessingml.document - // - application/vnd.openxmlformats-officedocument.presentationml.presentation - // - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - // The input file size should be <= 20MB and the maximum page limit is 20 for - // - application/pdf - oneof source { - // Document's content represented as a stream of bytes. - bytes content = 1; - - // Google Cloud Storage location. This must be a single file. - // For example: gs://example_bucket/example_file.pdf - GcsSource gcs_source = 2; - } - - // Specifies the input document's mime_type. - // - // If not specified it will be determined using the file extension for - // gcs_source provided files. For a file provided through bytes content the - // mime_type must be provided. - // Currently supported mime types are: - // - application/pdf - // - application/vnd.openxmlformats-officedocument.wordprocessingml.document - // - application/vnd.openxmlformats-officedocument.presentationml.presentation - // - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - string mime_type = 4; -} - -// A document translation request output config. -message DocumentOutputConfig { - // A URI destination for the translated document. - // It is optional to provide a destination. If provided the results from - // TranslateDocument will be stored in the destination. - // Whether a destination is provided or not, the translated documents will be - // returned within TranslateDocumentResponse.document_translation and - // TranslateDocumentResponse.glossary_document_translation. - oneof destination { - // Optional. Google Cloud Storage destination for the translation output, - // e.g., `gs://my_bucket/my_directory/`. - // - // The destination directory provided does not have to be empty, but the - // bucket must exist. If a file with the same name as the output file - // already exists in the destination an error will be returned. - // - // For a DocumentInputConfig.contents provided document, the output file - // will have the name "output_[trg]_translations.[ext]", where - // - [trg] corresponds to the translated file's language code, - // - [ext] corresponds to the translated file's extension according to its - // mime type. - // - // - // For a DocumentInputConfig.gcs_uri provided document, the output file will - // have a name according to its URI. For example: an input file with URI: - // "gs://a/b/c.[extension]" stored in a gcs_destination bucket with name - // "my_bucket" will have an output URI: - // "gs://my_bucket/a_b_c_[trg]_translations.[ext]", where - // - [trg] corresponds to the translated file's language code, - // - [ext] corresponds to the translated file's extension according to its - // mime type. - // - // - // If the document was directly provided through the request, then the - // output document will have the format: - // "gs://my_bucket/translated_document_[trg]_translations.[ext], where - // - [trg] corresponds to the translated file's language code, - // - [ext] corresponds to the translated file's extension according to its - // mime type. - // - // If a glossary was provided, then the output URI for the glossary - // translation will be equal to the default output URI but have - // `glossary_translations` instead of `translations`. For the previous - // example, its glossary URI would be: - // "gs://my_bucket/a_b_c_[trg]_glossary_translations.[ext]". - // - // Thus the max number of output files will be 2 (Translated document, - // Glossary translated document). - // - // Callers should expect no partial outputs. If there is any error during - // document translation, no output will be stored in the Cloud Storage - // bucket. - GcsDestination gcs_destination = 1 [(google.api.field_behavior) = OPTIONAL]; - } - - // Optional. Specifies the translated document's mime_type. - // If not specified, the translated file's mime type will be the same as the - // input file's mime type. - // Currently only support the output mime type to be the same as input mime - // type. - // - application/pdf - // - application/vnd.openxmlformats-officedocument.wordprocessingml.document - // - application/vnd.openxmlformats-officedocument.presentationml.presentation - // - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - string mime_type = 3 [(google.api.field_behavior) = OPTIONAL]; -} - -// A document translation request. -message TranslateDocumentRequest { - // Required. Location to make a regional call. - // - // Format: `projects/{project-number-or-id}/locations/{location-id}`. - // - // For global calls, use `projects/{project-number-or-id}/locations/global` or - // `projects/{project-number-or-id}`. - // - // Non-global location is required for requests using AutoML models or custom - // glossaries. - // - // Models and glossaries must be within the same region (have the same - // location-id), otherwise an INVALID_ARGUMENT (400) error is returned. - string parent = 1 [(google.api.field_behavior) = REQUIRED]; - - // Optional. The BCP-47 language code of the input document if known, for - // example, "en-US" or "sr-Latn". Supported language codes are listed in - // Language Support. If the source language isn't specified, the API attempts - // to identify the source language automatically and returns the source - // language within the response. Source language must be specified if the - // request contains a glossary or a custom model. - string source_language_code = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Required. The BCP-47 language code to use for translation of the input - // document, set to one of the language codes listed in Language Support. - string target_language_code = 3 [(google.api.field_behavior) = REQUIRED]; - - // Required. Input configurations. - DocumentInputConfig document_input_config = 4 - [(google.api.field_behavior) = REQUIRED]; - - // Optional. Output configurations. - // Defines if the output file should be stored within Cloud Storage as well - // as the desired output format. If not provided the translated file will - // only be returned through a byte-stream and its output mime type will be - // the same as the input file's mime type. - DocumentOutputConfig document_output_config = 5 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The `model` type requested for this translation. - // - // The format depends on model type: - // - // - AutoML Translation models: - // `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - // - // - General (built-in) models: - // `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - // - // - // If not provided, the default Google model (NMT) will be used for - // translation. - string model = 6 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Glossary to be applied. The glossary must be within the same - // region (have the same location-id) as the model, otherwise an - // INVALID_ARGUMENT (400) error is returned. - TranslateTextGlossaryConfig glossary_config = 7 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The labels with user-defined metadata for the request. - // - // Label keys and values can be no longer than 63 characters (Unicode - // codepoints), can only contain lowercase letters, numeric characters, - // underscores and dashes. International characters are allowed. Label values - // are optional. Label keys must start with a letter. - // - // See https://cloud.google.com/translate/docs/advanced/labels for more - // information. - map labels = 8 [(google.api.field_behavior) = OPTIONAL]; -} - -// A translated document message. -message DocumentTranslation { - // The array of translated documents. It is expected to be size 1 for now. We - // may produce multiple translated documents in the future for other type of - // file formats. - repeated bytes byte_stream_outputs = 1; - - // The translated document's mime type. - string mime_type = 2; - - // The detected language for the input document. - // If the user did not provide the source language for the input document, - // this field will have the language code automatically detected. If the - // source language was passed, auto-detection of the language does not occur - // and this field is empty. - string detected_language_code = 3; -} - -// A translated document response message. -message TranslateDocumentResponse { - // Translated document. - DocumentTranslation document_translation = 1; - - // The document's translation output if a glossary is provided in the request. - // This can be the same as [TranslateDocumentResponse.document_translation] - // if no glossary terms apply. - DocumentTranslation glossary_document_translation = 2; - - // Only present when 'model' is present in the request. - // 'model' is normalized to have a project number. - // - // For example: - // If the 'model' field in TranslateDocumentRequest is: - // `projects/{project-id}/locations/{location-id}/models/general/nmt` then - // `model` here would be normalized to - // `projects/{project-number}/locations/{location-id}/models/general/nmt`. - string model = 3; - - // The `glossary_config` used for this translation. - TranslateTextGlossaryConfig glossary_config = 4; -} - -// The batch translation request. -message BatchTranslateTextRequest { - // Required. Location to make a call. Must refer to a caller's project. - // - // Format: `projects/{project-number-or-id}/locations/{location-id}`. - // - // The `global` location is not supported for batch translation. - // - // Only AutoML Translation models or glossaries within the same region (have - // the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) - // error is returned. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // Required. Source language code. - string source_language_code = 2 [(google.api.field_behavior) = REQUIRED]; - - // Required. Specify up to 10 language codes here. - repeated string target_language_codes = 3 - [(google.api.field_behavior) = REQUIRED]; - - // Optional. The models to use for translation. Map's key is target language - // code. Map's value is model name. Value can be a built-in general model, - // or an AutoML Translation model. - // - // The value format depends on model type: - // - // - AutoML Translation models: - // `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - // - // - General (built-in) models: - // `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - // - // - // If the map is empty or a specific model is - // not requested for a language pair, then default google model (nmt) is used. - map models = 4 [(google.api.field_behavior) = OPTIONAL]; - - // Required. Input configurations. - // The total number of files matched should be <= 100. - // The total content size should be <= 100M Unicode codepoints. - // The files must use UTF-8 encoding. - repeated InputConfig input_configs = 5 - [(google.api.field_behavior) = REQUIRED]; - - // Required. Output configuration. - // If 2 input configs match to the same file (that is, same input path), - // we don't generate output for duplicate inputs. - OutputConfig output_config = 6 [(google.api.field_behavior) = REQUIRED]; - - // Optional. Glossaries to be applied for translation. - // It's keyed by target language code. - map glossaries = 7 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The labels with user-defined metadata for the request. - // - // Label keys and values can be no longer than 63 characters - // (Unicode codepoints), can only contain lowercase letters, numeric - // characters, underscores and dashes. International characters are allowed. - // Label values are optional. Label keys must start with a letter. - // - // See https://cloud.google.com/translate/docs/advanced/labels for more - // information. - map labels = 9 [(google.api.field_behavior) = OPTIONAL]; -} - -// State metadata for the batch translation operation. -message BatchTranslateMetadata { - // State of the job. - enum State { - // Invalid. - STATE_UNSPECIFIED = 0; - - // Request is being processed. - RUNNING = 1; - - // The batch is processed, and at least one item was successfully - // processed. - SUCCEEDED = 2; - - // The batch is done and no item was successfully processed. - FAILED = 3; - - // Request is in the process of being canceled after caller invoked - // longrunning.Operations.CancelOperation on the request id. - CANCELLING = 4; - - // The batch is done after the user has called the - // longrunning.Operations.CancelOperation. Any records processed before the - // cancel command are output as specified in the request. - CANCELLED = 5; - } - - // The state of the operation. - State state = 1; - - // Number of successfully translated characters so far (Unicode codepoints). - int64 translated_characters = 2; - - // Number of characters that have failed to process so far (Unicode - // codepoints). - int64 failed_characters = 3; - - // Total number of characters (Unicode codepoints). - // This is the total number of codepoints from input files times the number of - // target languages and appears here shortly after the call is submitted. - int64 total_characters = 4; - - // Time when the operation was submitted. - google.protobuf.Timestamp submit_time = 5; -} - -// Stored in the -// [google.longrunning.Operation.response][google.longrunning.Operation.response] -// field returned by BatchTranslateText if at least one sentence is translated -// successfully. -message BatchTranslateResponse { - // Total number of characters (Unicode codepoints). - int64 total_characters = 1; - - // Number of successfully translated characters (Unicode codepoints). - int64 translated_characters = 2; - - // Number of characters that have failed to process (Unicode codepoints). - int64 failed_characters = 3; - - // Time when the operation was submitted. - google.protobuf.Timestamp submit_time = 4; - - // The time when the operation is finished and - // [google.longrunning.Operation.done][google.longrunning.Operation.done] is - // set to true. - google.protobuf.Timestamp end_time = 5; -} - -// Input configuration for glossaries. -message GlossaryInputConfig { - // Required. Specify the input. - oneof source { - // Required. Google Cloud Storage location of glossary data. - // File format is determined based on the filename extension. API returns - // [google.rpc.Code.INVALID_ARGUMENT] for unsupported URI-s and file - // formats. Wildcards are not allowed. This must be a single file in one of - // the following formats: - // - // For unidirectional glossaries: - // - // - TSV/CSV (`.tsv`/`.csv`): 2 column file, tab- or comma-separated. - // The first column is source text. The second column is target text. - // The file must not contain headers. That is, the first row is data, not - // column names. - // - // - TMX (`.tmx`): TMX file with parallel data defining source/target term - // pairs. - // - // For equivalent term sets glossaries: - // - // - CSV (`.csv`): Multi-column CSV file defining equivalent glossary terms - // in multiple languages. See documentation for more information - - // [glossaries](https://cloud.google.com/translate/docs/advanced/glossary). - GcsSource gcs_source = 1; - } -} - -// Represents a glossary built from user provided data. -message Glossary { - option (google.api.resource) = { - type: "translate.googleapis.com/Glossary" - pattern: "projects/{project}/locations/{location}/glossaries/{glossary}" - }; - - // Used with unidirectional glossaries. - message LanguageCodePair { - // Required. The BCP-47 language code of the input text, for example, - // "en-US". Expected to be an exact match for GlossaryTerm.language_code. - string source_language_code = 1; - - // Required. The BCP-47 language code for translation output, for example, - // "zh-CN". Expected to be an exact match for GlossaryTerm.language_code. - string target_language_code = 2; - } - - // Used with equivalent term set glossaries. - message LanguageCodesSet { - // The BCP-47 language code(s) for terms defined in the glossary. - // All entries are unique. The list contains at least two entries. - // Expected to be an exact match for GlossaryTerm.language_code. - repeated string language_codes = 1; - } - - // Required. The resource name of the glossary. Glossary names have the form - // `projects/{project-number-or-id}/locations/{location-id}/glossaries/{glossary-id}`. - string name = 1 [(google.api.field_behavior) = REQUIRED]; - - // Languages supported by the glossary. - oneof languages { - // Used with unidirectional glossaries. - LanguageCodePair language_pair = 3; - - // Used with equivalent term set glossaries. - LanguageCodesSet language_codes_set = 4; - } - - // Required. Provides examples to build the glossary from. - // Total glossary must not exceed 10M Unicode codepoints. - GlossaryInputConfig input_config = 5; - - // Output only. The number of entries defined in the glossary. - int32 entry_count = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. When CreateGlossary was called. - google.protobuf.Timestamp submit_time = 7 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. When the glossary creation was finished. - google.protobuf.Timestamp end_time = 8 - [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Request message for CreateGlossary. -message CreateGlossaryRequest { - // Required. The project name. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // Required. The glossary to create. - Glossary glossary = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Request message for GetGlossary. -message GetGlossaryRequest { - // Required. The name of the glossary to retrieve. - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "translate.googleapis.com/Glossary" - } - ]; -} - -// Request message for DeleteGlossary. -message DeleteGlossaryRequest { - // Required. The name of the glossary to delete. - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "translate.googleapis.com/Glossary" - } - ]; -} - -// Request message for ListGlossaries. -message ListGlossariesRequest { - // Required. The name of the project from which to list all of the glossaries. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // Optional. Requested page size. The server may return fewer glossaries than - // requested. If unspecified, the server picks an appropriate default. - int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. A token identifying a page of results the server should return. - // Typically, this is the value of [ListGlossariesResponse.next_page_token] - // returned from the previous call to `ListGlossaries` method. - // The first page is returned if `page_token`is empty or missing. - string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Filter specifying constraints of a list operation. - // Specify the constraint by the format of "key=value", where key must be - // "src" or "tgt", and the value must be a valid language code. - // For multiple restrictions, concatenate them by "AND" (uppercase only), - // such as: "src=en-US AND tgt=zh-CN". Notice that the exact match is used - // here, which means using 'en-US' and 'en' can lead to different results, - // which depends on the language code you used when you create the glossary. - // For the unidirectional glossaries, the "src" and "tgt" add restrictions - // on the source and target language code separately. - // For the equivalent term set glossaries, the "src" and/or "tgt" add - // restrictions on the term set. - // For example: "src=en-US AND tgt=zh-CN" will only pick the unidirectional - // glossaries which exactly match the source language code as "en-US" and the - // target language code "zh-CN", but all equivalent term set glossaries which - // contain "en-US" and "zh-CN" in their language set will be picked. - // If missing, no filtering is performed. - string filter = 4 [(google.api.field_behavior) = OPTIONAL]; -} - -// Response message for ListGlossaries. -message ListGlossariesResponse { - // The list of glossaries for a project. - repeated Glossary glossaries = 1; - - // A token to retrieve a page of results. Pass this value in the - // [ListGlossariesRequest.page_token] field in the subsequent call to - // `ListGlossaries` method to retrieve the next page of results. - string next_page_token = 2; -} - -// Stored in the -// [google.longrunning.Operation.metadata][google.longrunning.Operation.metadata] -// field returned by CreateGlossary. -message CreateGlossaryMetadata { - // Enumerates the possible states that the creation request can be in. - enum State { - // Invalid. - STATE_UNSPECIFIED = 0; - - // Request is being processed. - RUNNING = 1; - - // The glossary was successfully created. - SUCCEEDED = 2; - - // Failed to create the glossary. - FAILED = 3; - - // Request is in the process of being canceled after caller invoked - // longrunning.Operations.CancelOperation on the request id. - CANCELLING = 4; - - // The glossary creation request was successfully canceled. - CANCELLED = 5; - } - - // The name of the glossary that is being created. - string name = 1; - - // The current state of the glossary creation operation. - State state = 2; - - // The time when the operation was submitted to the server. - google.protobuf.Timestamp submit_time = 3; -} - -// Stored in the -// [google.longrunning.Operation.metadata][google.longrunning.Operation.metadata] -// field returned by DeleteGlossary. -message DeleteGlossaryMetadata { - // Enumerates the possible states that the creation request can be in. - enum State { - // Invalid. - STATE_UNSPECIFIED = 0; - - // Request is being processed. - RUNNING = 1; - - // The glossary was successfully deleted. - SUCCEEDED = 2; - - // Failed to delete the glossary. - FAILED = 3; - - // Request is in the process of being canceled after caller invoked - // longrunning.Operations.CancelOperation on the request id. - CANCELLING = 4; - - // The glossary deletion request was successfully canceled. - CANCELLED = 5; - } - - // The name of the glossary that is being deleted. - string name = 1; - - // The current state of the glossary deletion operation. - State state = 2; - - // The time when the operation was submitted to the server. - google.protobuf.Timestamp submit_time = 3; -} - -// Stored in the -// [google.longrunning.Operation.response][google.longrunning.Operation.response] -// field returned by DeleteGlossary. -message DeleteGlossaryResponse { - // The name of the deleted glossary. - string name = 1; - - // The time when the operation was submitted to the server. - google.protobuf.Timestamp submit_time = 2; - - // The time when the glossary deletion is finished and - // [google.longrunning.Operation.done][google.longrunning.Operation.done] is - // set to true. - google.protobuf.Timestamp end_time = 3; -} - -// The BatchTranslateDocument request. -message BatchTranslateDocumentRequest { - // Required. Location to make a regional call. - // - // Format: `projects/{project-number-or-id}/locations/{location-id}`. - // - // The `global` location is not supported for batch translation. - // - // Only AutoML Translation models or glossaries within the same region (have - // the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) - // error is returned. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // Required. The BCP-47 language code of the input document if known, for - // example, "en-US" or "sr-Latn". Supported language codes are listed in - // Language Support (https://cloud.google.com/translate/docs/languages). - string source_language_code = 2 [(google.api.field_behavior) = REQUIRED]; - - // Required. The BCP-47 language code to use for translation of the input - // document. Specify up to 10 language codes here. - repeated string target_language_codes = 3 - [(google.api.field_behavior) = REQUIRED]; - - // Required. Input configurations. - // The total number of files matched should be <= 100. - // The total content size to translate should be <= 100M Unicode codepoints. - // The files must use UTF-8 encoding. - repeated BatchDocumentInputConfig input_configs = 4 - [(google.api.field_behavior) = REQUIRED]; - - // Required. Output configuration. - // If 2 input configs match to the same file (that is, same input path), - // we don't generate output for duplicate inputs. - BatchDocumentOutputConfig output_config = 5 - [(google.api.field_behavior) = REQUIRED]; - - // Optional. The models to use for translation. Map's key is target language - // code. Map's value is the model name. Value can be a built-in general model, - // or an AutoML Translation model. - // - // The value format depends on model type: - // - // - AutoML Translation models: - // `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - // - // - General (built-in) models: - // `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - // - // - // If the map is empty or a specific model is - // not requested for a language pair, then default google model (nmt) is used. - map models = 6 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Glossaries to be applied. It's keyed by target language code. - map glossaries = 7 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. File format conversion map to be applied to all input files. - // Map's key is the original mime_type. Map's value is the target mime_type of - // translated documents. - // - // Supported file format conversion includes: - // - `application/pdf` to - // `application/vnd.openxmlformats-officedocument.wordprocessingml.document` - // - // If nothing specified, output files will be in the same format as the - // original file. - map format_conversions = 8 - [(google.api.field_behavior) = OPTIONAL]; -} - -// Input configuration for BatchTranslateDocument request. -message BatchDocumentInputConfig { - // Specify the input. - oneof source { - // Google Cloud Storage location for the source input. - // This can be a single file (for example, - // `gs://translation-test/input.docx`) or a wildcard (for example, - // `gs://translation-test/*`). - // - // File mime type is determined based on extension. Supported mime type - // includes: - // - `pdf`, application/pdf - // - `docx`, - // application/vnd.openxmlformats-officedocument.wordprocessingml.document - // - `pptx`, - // application/vnd.openxmlformats-officedocument.presentationml.presentation - // - `xlsx`, - // application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - // - // The max file size to support for `.docx`, `.pptx` and `.xlsx` is 100MB. - // The max file size to support for `.pdf` is 1GB and the max page limit is - // 1000 pages. - // The max file size to support for all input documents is 1GB. - GcsSource gcs_source = 1; - } -} - -// Output configuration for BatchTranslateDocument request. -message BatchDocumentOutputConfig { - // The destination of output. The destination directory provided must exist - // and be empty. - oneof destination { - // Google Cloud Storage destination for output content. - // For every single input document (for example, gs://a/b/c.[extension]), we - // generate at most 2 * n output files. (n is the # of target_language_codes - // in the BatchTranslateDocumentRequest). - // - // While the input documents are being processed, we write/update an index - // file `index.csv` under `gcs_destination.output_uri_prefix` (for example, - // gs://translation_output/index.csv) The index file is generated/updated as - // new files are being translated. The format is: - // - // input_document,target_language_code,translation_output,error_output, - // glossary_translation_output,glossary_error_output - // - // `input_document` is one file we matched using gcs_source.input_uri. - // `target_language_code` is provided in the request. - // `translation_output` contains the translations. (details provided below) - // `error_output` contains the error message during processing of the file. - // Both translations_file and errors_file could be empty strings if we have - // no content to output. - // `glossary_translation_output` and `glossary_error_output` are the - // translated output/error when we apply glossaries. They could also be - // empty if we have no content to output. - // - // Once a row is present in index.csv, the input/output matching never - // changes. Callers should also expect all the content in input_file are - // processed and ready to be consumed (that is, no partial output file is - // written). - // - // Since index.csv will be keeping updated during the process, please make - // sure there is no custom retention policy applied on the output bucket - // that may avoid file updating. - // (https://cloud.google.com/storage/docs/bucket-lock?hl=en#retention-policy) - // - // The naming format of translation output files follows (for target - // language code [trg]): `translation_output`: - // gs://translation_output/a_b_c_[trg]_translation.[extension] - // `glossary_translation_output`: - // gs://translation_test/a_b_c_[trg]_glossary_translation.[extension] The - // output document will maintain the same file format as the input document. - // - // The naming format of error output files follows (for target language code - // [trg]): `error_output`: gs://translation_test/a_b_c_[trg]_errors.txt - // `glossary_error_output`: - // gs://translation_test/a_b_c_[trg]_glossary_translation.txt The error - // output is a txt file containing error details. - GcsDestination gcs_destination = 1; - } -} - -// Stored in the -// [google.longrunning.Operation.response][google.longrunning.Operation.response] -// field returned by BatchTranslateDocument if at least one document is -// translated successfully. -message BatchTranslateDocumentResponse { - // Total number of pages to translate in all documents. Documents without - // clear page definition (such as XLSX) are not counted. - int64 total_pages = 1; - - // Number of successfully translated pages in all documents. Documents without - // clear page definition (such as XLSX) are not counted. - int64 translated_pages = 2; - - // Number of pages that failed to process in all documents. Documents without - // clear page definition (such as XLSX) are not counted. - int64 failed_pages = 3; - - // Number of billable pages in documents with clear page definition (such as - // PDF, DOCX, PPTX) - int64 total_billable_pages = 4; - - // Total number of characters (Unicode codepoints) in all documents. - int64 total_characters = 5; - - // Number of successfully translated characters (Unicode codepoints) in all - // documents. - int64 translated_characters = 6; - - // Number of characters that have failed to process (Unicode codepoints) in - // all documents. - int64 failed_characters = 7; - - // Number of billable characters (Unicode codepoints) in documents without - // clear page definition, such as XLSX. - int64 total_billable_characters = 8; - - // Time when the operation was submitted. - google.protobuf.Timestamp submit_time = 9; - - // The time when the operation is finished and - // [google.longrunning.Operation.done][google.longrunning.Operation.done] is - // set to true. - google.protobuf.Timestamp end_time = 10; -} - -// State metadata for the batch translation operation. -message BatchTranslateDocumentMetadata { - // State of the job. - enum State { - // Invalid. - STATE_UNSPECIFIED = 0; - - // Request is being processed. - RUNNING = 1; - - // The batch is processed, and at least one item was successfully processed. - SUCCEEDED = 2; - - // The batch is done and no item was successfully processed. - FAILED = 3; - - // Request is in the process of being canceled after caller invoked - // longrunning.Operations.CancelOperation on the request id. - CANCELLING = 4; - - // The batch is done after the user has called the - // longrunning.Operations.CancelOperation. Any records processed before the - // cancel command are output as specified in the request. - CANCELLED = 5; - } - - // The state of the operation. - State state = 1; - - // Total number of pages to translate in all documents so far. Documents - // without clear page definition (such as XLSX) are not counted. - int64 total_pages = 2; - - // Number of successfully translated pages in all documents so far. Documents - // without clear page definition (such as XLSX) are not counted. - int64 translated_pages = 3; - - // Number of pages that failed to process in all documents so far. Documents - // without clear page definition (such as XLSX) are not counted. - int64 failed_pages = 4; - - // Number of billable pages in documents with clear page definition (such as - // PDF, DOCX, PPTX) so far. - int64 total_billable_pages = 5; - - // Total number of characters (Unicode codepoints) in all documents so far. - int64 total_characters = 6; - - // Number of successfully translated characters (Unicode codepoints) in all - // documents so far. - int64 translated_characters = 7; - - // Number of characters that have failed to process (Unicode codepoints) in - // all documents so far. - int64 failed_characters = 8; - - // Number of billable characters (Unicode codepoints) in documents without - // clear page definition (such as XLSX) so far. - int64 total_billable_characters = 9; - - // Time when the operation was submitted. - google.protobuf.Timestamp submit_time = 10; -} diff --git a/owl-bot-staging/v3/samples/generated/v3/snippet_metadata.google.cloud.translation.v3.json b/owl-bot-staging/v3/samples/generated/v3/snippet_metadata.google.cloud.translation.v3.json deleted file mode 100644 index 8a4e6dc8..00000000 --- a/owl-bot-staging/v3/samples/generated/v3/snippet_metadata.google.cloud.translation.v3.json +++ /dev/null @@ -1,567 +0,0 @@ -{ - "clientLibrary": { - "name": "nodejs-translation", - "version": "0.1.0", - "language": "TYPESCRIPT", - "apis": [ - { - "id": "google.cloud.translation.v3", - "version": "v3" - } - ] - }, - "snippets": [ - { - "regionTag": "translate_v3_generated_TranslationService_TranslateText_async", - "title": "TranslationService translateText Sample", - "origin": "API_DEFINITION", - "description": " Translates input text and returns translated text.", - "canonical": true, - "file": "translation_service.translate_text.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 115, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "TranslateText", - "fullName": "google.cloud.translation.v3.TranslationService.TranslateText", - "async": true, - "parameters": [ - { - "name": "contents", - "type": "TYPE_STRING[]" - }, - { - "name": "mime_type", - "type": "TYPE_STRING" - }, - { - "name": "source_language_code", - "type": "TYPE_STRING" - }, - { - "name": "target_language_code", - "type": "TYPE_STRING" - }, - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "model", - "type": "TYPE_STRING" - }, - { - "name": "glossary_config", - "type": ".google.cloud.translation.v3.TranslateTextGlossaryConfig" - }, - { - "name": "labels", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.cloud.translation.v3.TranslateTextResponse", - "client": { - "shortName": "TranslationServiceClient", - "fullName": "google.cloud.translation.v3.TranslationServiceClient" - }, - "method": { - "shortName": "TranslateText", - "fullName": "google.cloud.translation.v3.TranslationService.TranslateText", - "service": { - "shortName": "TranslationService", - "fullName": "google.cloud.translation.v3.TranslationService" - } - } - } - }, - { - "regionTag": "translate_v3_generated_TranslationService_DetectLanguage_async", - "title": "TranslationService detectLanguage Sample", - "origin": "API_DEFINITION", - "description": " Detects the language of text within a request.", - "canonical": true, - "file": "translation_service.detect_language.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 85, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DetectLanguage", - "fullName": "google.cloud.translation.v3.TranslationService.DetectLanguage", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "model", - "type": "TYPE_STRING" - }, - { - "name": "content", - "type": "TYPE_STRING" - }, - { - "name": "mime_type", - "type": "TYPE_STRING" - }, - { - "name": "labels", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.cloud.translation.v3.DetectLanguageResponse", - "client": { - "shortName": "TranslationServiceClient", - "fullName": "google.cloud.translation.v3.TranslationServiceClient" - }, - "method": { - "shortName": "DetectLanguage", - "fullName": "google.cloud.translation.v3.TranslationService.DetectLanguage", - "service": { - "shortName": "TranslationService", - "fullName": "google.cloud.translation.v3.TranslationService" - } - } - } - }, - { - "regionTag": "translate_v3_generated_TranslationService_GetSupportedLanguages_async", - "title": "TranslationService getSupportedLanguages Sample", - "origin": "API_DEFINITION", - "description": " Returns a list of supported languages for translation.", - "canonical": true, - "file": "translation_service.get_supported_languages.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 75, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetSupportedLanguages", - "fullName": "google.cloud.translation.v3.TranslationService.GetSupportedLanguages", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "display_language_code", - "type": "TYPE_STRING" - }, - { - "name": "model", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.translation.v3.SupportedLanguages", - "client": { - "shortName": "TranslationServiceClient", - "fullName": "google.cloud.translation.v3.TranslationServiceClient" - }, - "method": { - "shortName": "GetSupportedLanguages", - "fullName": "google.cloud.translation.v3.TranslationService.GetSupportedLanguages", - "service": { - "shortName": "TranslationService", - "fullName": "google.cloud.translation.v3.TranslationService" - } - } - } - }, - { - "regionTag": "translate_v3_generated_TranslationService_TranslateDocument_async", - "title": "TranslationService translateDocument Sample", - "origin": "API_DEFINITION", - "description": " Translates documents in synchronous mode.", - "canonical": true, - "file": "translation_service.translate_document.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 112, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "TranslateDocument", - "fullName": "google.cloud.translation.v3.TranslationService.TranslateDocument", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "source_language_code", - "type": "TYPE_STRING" - }, - { - "name": "target_language_code", - "type": "TYPE_STRING" - }, - { - "name": "document_input_config", - "type": ".google.cloud.translation.v3.DocumentInputConfig" - }, - { - "name": "document_output_config", - "type": ".google.cloud.translation.v3.DocumentOutputConfig" - }, - { - "name": "model", - "type": "TYPE_STRING" - }, - { - "name": "glossary_config", - "type": ".google.cloud.translation.v3.TranslateTextGlossaryConfig" - }, - { - "name": "labels", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.cloud.translation.v3.TranslateDocumentResponse", - "client": { - "shortName": "TranslationServiceClient", - "fullName": "google.cloud.translation.v3.TranslationServiceClient" - }, - "method": { - "shortName": "TranslateDocument", - "fullName": "google.cloud.translation.v3.TranslationService.TranslateDocument", - "service": { - "shortName": "TranslationService", - "fullName": "google.cloud.translation.v3.TranslationService" - } - } - } - }, - { - "regionTag": "translate_v3_generated_TranslationService_BatchTranslateText_async", - "title": "TranslationService batchTranslateText Sample", - "origin": "API_DEFINITION", - "description": " Translates a large volume of text in asynchronous batch mode. This function provides real-time output as the inputs are being processed. If caller cancels a request, the partial results (for an input file, it's all or nothing) may still be available on the specified output location. This call returns immediately and you can use google.longrunning.Operation.name to poll the status of the call.", - "canonical": true, - "file": "translation_service.batch_translate_text.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 109, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "BatchTranslateText", - "fullName": "google.cloud.translation.v3.TranslationService.BatchTranslateText", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "source_language_code", - "type": "TYPE_STRING" - }, - { - "name": "target_language_codes", - "type": "TYPE_STRING[]" - }, - { - "name": "models", - "type": "TYPE_MESSAGE[]" - }, - { - "name": "input_configs", - "type": "TYPE_MESSAGE[]" - }, - { - "name": "output_config", - "type": ".google.cloud.translation.v3.OutputConfig" - }, - { - "name": "glossaries", - "type": "TYPE_MESSAGE[]" - }, - { - "name": "labels", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "TranslationServiceClient", - "fullName": "google.cloud.translation.v3.TranslationServiceClient" - }, - "method": { - "shortName": "BatchTranslateText", - "fullName": "google.cloud.translation.v3.TranslationService.BatchTranslateText", - "service": { - "shortName": "TranslationService", - "fullName": "google.cloud.translation.v3.TranslationService" - } - } - } - }, - { - "regionTag": "translate_v3_generated_TranslationService_BatchTranslateDocument_async", - "title": "TranslationService batchTranslateDocument Sample", - "origin": "API_DEFINITION", - "description": " Translates a large volume of document in asynchronous batch mode. This function provides real-time output as the inputs are being processed. If caller cancels a request, the partial results (for an input file, it's all or nothing) may still be available on the specified output location. This call returns immediately and you can use google.longrunning.Operation.name to poll the status of the call.", - "canonical": true, - "file": "translation_service.batch_translate_document.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 112, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "BatchTranslateDocument", - "fullName": "google.cloud.translation.v3.TranslationService.BatchTranslateDocument", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "source_language_code", - "type": "TYPE_STRING" - }, - { - "name": "target_language_codes", - "type": "TYPE_STRING[]" - }, - { - "name": "input_configs", - "type": "TYPE_MESSAGE[]" - }, - { - "name": "output_config", - "type": ".google.cloud.translation.v3.BatchDocumentOutputConfig" - }, - { - "name": "models", - "type": "TYPE_MESSAGE[]" - }, - { - "name": "glossaries", - "type": "TYPE_MESSAGE[]" - }, - { - "name": "format_conversions", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "TranslationServiceClient", - "fullName": "google.cloud.translation.v3.TranslationServiceClient" - }, - "method": { - "shortName": "BatchTranslateDocument", - "fullName": "google.cloud.translation.v3.TranslationService.BatchTranslateDocument", - "service": { - "shortName": "TranslationService", - "fullName": "google.cloud.translation.v3.TranslationService" - } - } - } - }, - { - "regionTag": "translate_v3_generated_TranslationService_CreateGlossary_async", - "title": "TranslationService createGlossary Sample", - "origin": "API_DEFINITION", - "description": " Creates a glossary and returns the long-running operation. Returns NOT_FOUND, if the project doesn't exist.", - "canonical": true, - "file": "translation_service.create_glossary.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateGlossary", - "fullName": "google.cloud.translation.v3.TranslationService.CreateGlossary", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "glossary", - "type": ".google.cloud.translation.v3.Glossary" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "TranslationServiceClient", - "fullName": "google.cloud.translation.v3.TranslationServiceClient" - }, - "method": { - "shortName": "CreateGlossary", - "fullName": "google.cloud.translation.v3.TranslationService.CreateGlossary", - "service": { - "shortName": "TranslationService", - "fullName": "google.cloud.translation.v3.TranslationService" - } - } - } - }, - { - "regionTag": "translate_v3_generated_TranslationService_ListGlossaries_async", - "title": "TranslationService listGlossaries Sample", - "origin": "API_DEFINITION", - "description": " Lists glossaries in a project. Returns NOT_FOUND, if the project doesn't exist.", - "canonical": true, - "file": "translation_service.list_glossaries.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 83, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListGlossaries", - "fullName": "google.cloud.translation.v3.TranslationService.ListGlossaries", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.translation.v3.ListGlossariesResponse", - "client": { - "shortName": "TranslationServiceClient", - "fullName": "google.cloud.translation.v3.TranslationServiceClient" - }, - "method": { - "shortName": "ListGlossaries", - "fullName": "google.cloud.translation.v3.TranslationService.ListGlossaries", - "service": { - "shortName": "TranslationService", - "fullName": "google.cloud.translation.v3.TranslationService" - } - } - } - }, - { - "regionTag": "translate_v3_generated_TranslationService_GetGlossary_async", - "title": "TranslationService getGlossary Sample", - "origin": "API_DEFINITION", - "description": " Gets a glossary. Returns NOT_FOUND, if the glossary doesn't exist.", - "canonical": true, - "file": "translation_service.get_glossary.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 50, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetGlossary", - "fullName": "google.cloud.translation.v3.TranslationService.GetGlossary", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.translation.v3.Glossary", - "client": { - "shortName": "TranslationServiceClient", - "fullName": "google.cloud.translation.v3.TranslationServiceClient" - }, - "method": { - "shortName": "GetGlossary", - "fullName": "google.cloud.translation.v3.TranslationService.GetGlossary", - "service": { - "shortName": "TranslationService", - "fullName": "google.cloud.translation.v3.TranslationService" - } - } - } - }, - { - "regionTag": "translate_v3_generated_TranslationService_DeleteGlossary_async", - "title": "TranslationService deleteGlossary Sample", - "origin": "API_DEFINITION", - "description": " Deletes a glossary, or cancels glossary construction if the glossary isn't created yet. Returns NOT_FOUND, if the glossary doesn't exist.", - "canonical": true, - "file": "translation_service.delete_glossary.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 51, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteGlossary", - "fullName": "google.cloud.translation.v3.TranslationService.DeleteGlossary", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "TranslationServiceClient", - "fullName": "google.cloud.translation.v3.TranslationServiceClient" - }, - "method": { - "shortName": "DeleteGlossary", - "fullName": "google.cloud.translation.v3.TranslationService.DeleteGlossary", - "service": { - "shortName": "TranslationService", - "fullName": "google.cloud.translation.v3.TranslationService" - } - } - } - } - ] -} diff --git a/owl-bot-staging/v3/samples/generated/v3/translation_service.batch_translate_document.js b/owl-bot-staging/v3/samples/generated/v3/translation_service.batch_translate_document.js deleted file mode 100644 index 337493ac..00000000 --- a/owl-bot-staging/v3/samples/generated/v3/translation_service.batch_translate_document.js +++ /dev/null @@ -1,120 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, sourceLanguageCode, targetLanguageCodes, inputConfigs, outputConfig) { - // [START translate_v3_generated_TranslationService_BatchTranslateDocument_async] - /** - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. Location to make a regional call. - * Format: `projects/{project-number-or-id}/locations/{location-id}`. - * The `global` location is not supported for batch translation. - * Only AutoML Translation models or glossaries within the same region (have - * the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) - * error is returned. - */ - // const parent = 'abc123' - /** - * Required. The BCP-47 language code of the input document if known, for - * example, "en-US" or "sr-Latn". Supported language codes are listed in - * Language Support (https://cloud.google.com/translate/docs/languages). - */ - // const sourceLanguageCode = 'abc123' - /** - * Required. The BCP-47 language code to use for translation of the input - * document. Specify up to 10 language codes here. - */ - // const targetLanguageCodes = 'abc123' - /** - * Required. Input configurations. - * The total number of files matched should be <= 100. - * The total content size to translate should be <= 100M Unicode codepoints. - * The files must use UTF-8 encoding. - */ - // const inputConfigs = 1234 - /** - * Required. Output configuration. - * If 2 input configs match to the same file (that is, same input path), - * we don't generate output for duplicate inputs. - */ - // const outputConfig = {} - /** - * Optional. The models to use for translation. Map's key is target language - * code. Map's value is the model name. Value can be a built-in general model, - * or an AutoML Translation model. - * The value format depends on model type: - * - AutoML Translation models: - * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - * - General (built-in) models: - * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - * If the map is empty or a specific model is - * not requested for a language pair, then default google model (nmt) is used. - */ - // const models = 1234 - /** - * Optional. Glossaries to be applied. It's keyed by target language code. - */ - // const glossaries = 1234 - /** - * Optional. File format conversion map to be applied to all input files. - * Map's key is the original mime_type. Map's value is the target mime_type of - * translated documents. - * Supported file format conversion includes: - * - `application/pdf` to - * `application/vnd.openxmlformats-officedocument.wordprocessingml.document` - * If nothing specified, output files will be in the same format as the - * original file. - */ - // const formatConversions = 1234 - - // Imports the Translation library - const {TranslationServiceClient} = require('@google-cloud/translate').v3; - - // Instantiates a client - const translationClient = new TranslationServiceClient(); - - async function callBatchTranslateDocument() { - // Construct request - const request = { - parent, - sourceLanguageCode, - targetLanguageCodes, - inputConfigs, - outputConfig, - }; - - // Run request - const [operation] = await translationClient.batchTranslateDocument(request); - const [response] = await operation.promise(); - console.log(response); - } - - callBatchTranslateDocument(); - // [END translate_v3_generated_TranslationService_BatchTranslateDocument_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3/samples/generated/v3/translation_service.batch_translate_text.js b/owl-bot-staging/v3/samples/generated/v3/translation_service.batch_translate_text.js deleted file mode 100644 index 71e72d34..00000000 --- a/owl-bot-staging/v3/samples/generated/v3/translation_service.batch_translate_text.js +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, sourceLanguageCode, targetLanguageCodes, inputConfigs, outputConfig) { - // [START translate_v3_generated_TranslationService_BatchTranslateText_async] - /** - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. Location to make a call. Must refer to a caller's project. - * Format: `projects/{project-number-or-id}/locations/{location-id}`. - * The `global` location is not supported for batch translation. - * Only AutoML Translation models or glossaries within the same region (have - * the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) - * error is returned. - */ - // const parent = 'abc123' - /** - * Required. Source language code. - */ - // const sourceLanguageCode = 'abc123' - /** - * Required. Specify up to 10 language codes here. - */ - // const targetLanguageCodes = 'abc123' - /** - * Optional. The models to use for translation. Map's key is target language - * code. Map's value is model name. Value can be a built-in general model, - * or an AutoML Translation model. - * The value format depends on model type: - * - AutoML Translation models: - * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - * - General (built-in) models: - * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - * If the map is empty or a specific model is - * not requested for a language pair, then default google model (nmt) is used. - */ - // const models = 1234 - /** - * Required. Input configurations. - * The total number of files matched should be <= 100. - * The total content size should be <= 100M Unicode codepoints. - * The files must use UTF-8 encoding. - */ - // const inputConfigs = 1234 - /** - * Required. Output configuration. - * If 2 input configs match to the same file (that is, same input path), - * we don't generate output for duplicate inputs. - */ - // const outputConfig = {} - /** - * Optional. Glossaries to be applied for translation. - * It's keyed by target language code. - */ - // const glossaries = 1234 - /** - * Optional. The labels with user-defined metadata for the request. - * Label keys and values can be no longer than 63 characters - * (Unicode codepoints), can only contain lowercase letters, numeric - * characters, underscores and dashes. International characters are allowed. - * Label values are optional. Label keys must start with a letter. - * See https://cloud.google.com/translate/docs/advanced/labels for more - * information. - */ - // const labels = 1234 - - // Imports the Translation library - const {TranslationServiceClient} = require('@google-cloud/translate').v3; - - // Instantiates a client - const translationClient = new TranslationServiceClient(); - - async function callBatchTranslateText() { - // Construct request - const request = { - parent, - sourceLanguageCode, - targetLanguageCodes, - inputConfigs, - outputConfig, - }; - - // Run request - const [operation] = await translationClient.batchTranslateText(request); - const [response] = await operation.promise(); - console.log(response); - } - - callBatchTranslateText(); - // [END translate_v3_generated_TranslationService_BatchTranslateText_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3/samples/generated/v3/translation_service.create_glossary.js b/owl-bot-staging/v3/samples/generated/v3/translation_service.create_glossary.js deleted file mode 100644 index 12f19003..00000000 --- a/owl-bot-staging/v3/samples/generated/v3/translation_service.create_glossary.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, glossary) { - // [START translate_v3_generated_TranslationService_CreateGlossary_async] - /** - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The project name. - */ - // const parent = 'abc123' - /** - * Required. The glossary to create. - */ - // const glossary = {} - - // Imports the Translation library - const {TranslationServiceClient} = require('@google-cloud/translate').v3; - - // Instantiates a client - const translationClient = new TranslationServiceClient(); - - async function callCreateGlossary() { - // Construct request - const request = { - parent, - glossary, - }; - - // Run request - const [operation] = await translationClient.createGlossary(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateGlossary(); - // [END translate_v3_generated_TranslationService_CreateGlossary_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3/samples/generated/v3/translation_service.delete_glossary.js b/owl-bot-staging/v3/samples/generated/v3/translation_service.delete_glossary.js deleted file mode 100644 index 10f634d3..00000000 --- a/owl-bot-staging/v3/samples/generated/v3/translation_service.delete_glossary.js +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START translate_v3_generated_TranslationService_DeleteGlossary_async] - /** - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the glossary to delete. - */ - // const name = 'abc123' - - // Imports the Translation library - const {TranslationServiceClient} = require('@google-cloud/translate').v3; - - // Instantiates a client - const translationClient = new TranslationServiceClient(); - - async function callDeleteGlossary() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await translationClient.deleteGlossary(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteGlossary(); - // [END translate_v3_generated_TranslationService_DeleteGlossary_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3/samples/generated/v3/translation_service.detect_language.js b/owl-bot-staging/v3/samples/generated/v3/translation_service.detect_language.js deleted file mode 100644 index 37287108..00000000 --- a/owl-bot-staging/v3/samples/generated/v3/translation_service.detect_language.js +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START translate_v3_generated_TranslationService_DetectLanguage_async] - /** - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. Project or location to make a call. Must refer to a caller's - * project. - * Format: `projects/{project-number-or-id}/locations/{location-id}` or - * `projects/{project-number-or-id}`. - * For global calls, use `projects/{project-number-or-id}/locations/global` or - * `projects/{project-number-or-id}`. - * Only models within the same region (has same location-id) can be used. - * Otherwise an INVALID_ARGUMENT (400) error is returned. - */ - // const parent = 'abc123' - /** - * Optional. The language detection model to be used. - * Format: - * `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/{model-id}` - * Only one language detection model is currently supported: - * `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/default`. - * If not specified, the default model is used. - */ - // const model = 'abc123' - /** - * The content of the input stored as a string. - */ - // const content = 'abc123' - /** - * Optional. The format of the source text, for example, "text/html", - * "text/plain". If left blank, the MIME type defaults to "text/html". - */ - // const mimeType = 'abc123' - /** - * Optional. The labels with user-defined metadata for the request. - * Label keys and values can be no longer than 63 characters - * (Unicode codepoints), can only contain lowercase letters, numeric - * characters, underscores and dashes. International characters are allowed. - * Label values are optional. Label keys must start with a letter. - * See https://cloud.google.com/translate/docs/advanced/labels for more - * information. - */ - // const labels = 1234 - - // Imports the Translation library - const {TranslationServiceClient} = require('@google-cloud/translate').v3; - - // Instantiates a client - const translationClient = new TranslationServiceClient(); - - async function callDetectLanguage() { - // Construct request - const request = { - parent, - }; - - // Run request - const response = await translationClient.detectLanguage(request); - console.log(response); - } - - callDetectLanguage(); - // [END translate_v3_generated_TranslationService_DetectLanguage_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3/samples/generated/v3/translation_service.get_glossary.js b/owl-bot-staging/v3/samples/generated/v3/translation_service.get_glossary.js deleted file mode 100644 index ed5d7b43..00000000 --- a/owl-bot-staging/v3/samples/generated/v3/translation_service.get_glossary.js +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START translate_v3_generated_TranslationService_GetGlossary_async] - /** - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the glossary to retrieve. - */ - // const name = 'abc123' - - // Imports the Translation library - const {TranslationServiceClient} = require('@google-cloud/translate').v3; - - // Instantiates a client - const translationClient = new TranslationServiceClient(); - - async function callGetGlossary() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await translationClient.getGlossary(request); - console.log(response); - } - - callGetGlossary(); - // [END translate_v3_generated_TranslationService_GetGlossary_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3/samples/generated/v3/translation_service.get_supported_languages.js b/owl-bot-staging/v3/samples/generated/v3/translation_service.get_supported_languages.js deleted file mode 100644 index 0a498bea..00000000 --- a/owl-bot-staging/v3/samples/generated/v3/translation_service.get_supported_languages.js +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START translate_v3_generated_TranslationService_GetSupportedLanguages_async] - /** - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. Project or location to make a call. Must refer to a caller's - * project. - * Format: `projects/{project-number-or-id}` or - * `projects/{project-number-or-id}/locations/{location-id}`. - * For global calls, use `projects/{project-number-or-id}/locations/global` or - * `projects/{project-number-or-id}`. - * Non-global location is required for AutoML models. - * Only models within the same region (have same location-id) can be used, - * otherwise an INVALID_ARGUMENT (400) error is returned. - */ - // const parent = 'abc123' - /** - * Optional. The language to use to return localized, human readable names - * of supported languages. If missing, then display names are not returned - * in a response. - */ - // const displayLanguageCode = 'abc123' - /** - * Optional. Get supported languages of this model. - * The format depends on model type: - * - AutoML Translation models: - * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - * - General (built-in) models: - * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - * Returns languages supported by the specified model. - * If missing, we get supported languages of Google general NMT model. - */ - // const model = 'abc123' - - // Imports the Translation library - const {TranslationServiceClient} = require('@google-cloud/translate').v3; - - // Instantiates a client - const translationClient = new TranslationServiceClient(); - - async function callGetSupportedLanguages() { - // Construct request - const request = { - parent, - }; - - // Run request - const response = await translationClient.getSupportedLanguages(request); - console.log(response); - } - - callGetSupportedLanguages(); - // [END translate_v3_generated_TranslationService_GetSupportedLanguages_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3/samples/generated/v3/translation_service.list_glossaries.js b/owl-bot-staging/v3/samples/generated/v3/translation_service.list_glossaries.js deleted file mode 100644 index 0d085bc5..00000000 --- a/owl-bot-staging/v3/samples/generated/v3/translation_service.list_glossaries.js +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START translate_v3_generated_TranslationService_ListGlossaries_async] - /** - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the project from which to list all of the glossaries. - */ - // const parent = 'abc123' - /** - * Optional. Requested page size. The server may return fewer glossaries than - * requested. If unspecified, the server picks an appropriate default. - */ - // const pageSize = 1234 - /** - * Optional. A token identifying a page of results the server should return. - * Typically, this is the value of ListGlossariesResponse.next_page_token - * returned from the previous call to `ListGlossaries` method. - * The first page is returned if `page_token`is empty or missing. - */ - // const pageToken = 'abc123' - /** - * Optional. Filter specifying constraints of a list operation. - * Specify the constraint by the format of "key=value", where key must be - * "src" or "tgt", and the value must be a valid language code. - * For multiple restrictions, concatenate them by "AND" (uppercase only), - * such as: "src=en-US AND tgt=zh-CN". Notice that the exact match is used - * here, which means using 'en-US' and 'en' can lead to different results, - * which depends on the language code you used when you create the glossary. - * For the unidirectional glossaries, the "src" and "tgt" add restrictions - * on the source and target language code separately. - * For the equivalent term set glossaries, the "src" and/or "tgt" add - * restrictions on the term set. - * For example: "src=en-US AND tgt=zh-CN" will only pick the unidirectional - * glossaries which exactly match the source language code as "en-US" and the - * target language code "zh-CN", but all equivalent term set glossaries which - * contain "en-US" and "zh-CN" in their language set will be picked. - * If missing, no filtering is performed. - */ - // const filter = 'abc123' - - // Imports the Translation library - const {TranslationServiceClient} = require('@google-cloud/translate').v3; - - // Instantiates a client - const translationClient = new TranslationServiceClient(); - - async function callListGlossaries() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await translationClient.listGlossariesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListGlossaries(); - // [END translate_v3_generated_TranslationService_ListGlossaries_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3/samples/generated/v3/translation_service.translate_document.js b/owl-bot-staging/v3/samples/generated/v3/translation_service.translate_document.js deleted file mode 100644 index 993c4129..00000000 --- a/owl-bot-staging/v3/samples/generated/v3/translation_service.translate_document.js +++ /dev/null @@ -1,120 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, targetLanguageCode, documentInputConfig) { - // [START translate_v3_generated_TranslationService_TranslateDocument_async] - /** - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. Location to make a regional call. - * Format: `projects/{project-number-or-id}/locations/{location-id}`. - * For global calls, use `projects/{project-number-or-id}/locations/global` or - * `projects/{project-number-or-id}`. - * Non-global location is required for requests using AutoML models or custom - * glossaries. - * Models and glossaries must be within the same region (have the same - * location-id), otherwise an INVALID_ARGUMENT (400) error is returned. - */ - // const parent = 'abc123' - /** - * Optional. The BCP-47 language code of the input document if known, for - * example, "en-US" or "sr-Latn". Supported language codes are listed in - * Language Support. If the source language isn't specified, the API attempts - * to identify the source language automatically and returns the source - * language within the response. Source language must be specified if the - * request contains a glossary or a custom model. - */ - // const sourceLanguageCode = 'abc123' - /** - * Required. The BCP-47 language code to use for translation of the input - * document, set to one of the language codes listed in Language Support. - */ - // const targetLanguageCode = 'abc123' - /** - * Required. Input configurations. - */ - // const documentInputConfig = {} - /** - * Optional. Output configurations. - * Defines if the output file should be stored within Cloud Storage as well - * as the desired output format. If not provided the translated file will - * only be returned through a byte-stream and its output mime type will be - * the same as the input file's mime type. - */ - // const documentOutputConfig = {} - /** - * Optional. The `model` type requested for this translation. - * The format depends on model type: - * - AutoML Translation models: - * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - * - General (built-in) models: - * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - * If not provided, the default Google model (NMT) will be used for - * translation. - */ - // const model = 'abc123' - /** - * Optional. Glossary to be applied. The glossary must be within the same - * region (have the same location-id) as the model, otherwise an - * INVALID_ARGUMENT (400) error is returned. - */ - // const glossaryConfig = {} - /** - * Optional. The labels with user-defined metadata for the request. - * Label keys and values can be no longer than 63 characters (Unicode - * codepoints), can only contain lowercase letters, numeric characters, - * underscores and dashes. International characters are allowed. Label values - * are optional. Label keys must start with a letter. - * See https://cloud.google.com/translate/docs/advanced/labels for more - * information. - */ - // const labels = 1234 - - // Imports the Translation library - const {TranslationServiceClient} = require('@google-cloud/translate').v3; - - // Instantiates a client - const translationClient = new TranslationServiceClient(); - - async function callTranslateDocument() { - // Construct request - const request = { - parent, - targetLanguageCode, - documentInputConfig, - }; - - // Run request - const response = await translationClient.translateDocument(request); - console.log(response); - } - - callTranslateDocument(); - // [END translate_v3_generated_TranslationService_TranslateDocument_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3/samples/generated/v3/translation_service.translate_text.js b/owl-bot-staging/v3/samples/generated/v3/translation_service.translate_text.js deleted file mode 100644 index 6ec73656..00000000 --- a/owl-bot-staging/v3/samples/generated/v3/translation_service.translate_text.js +++ /dev/null @@ -1,123 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(contents, targetLanguageCode, parent) { - // [START translate_v3_generated_TranslationService_TranslateText_async] - /** - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The content of the input in string format. - * We recommend the total content be less than 30k codepoints. The max length - * of this field is 1024. - * Use BatchTranslateText for larger text. - */ - // const contents = 'abc123' - /** - * Optional. The format of the source text, for example, "text/html", - * "text/plain". If left blank, the MIME type defaults to "text/html". - */ - // const mimeType = 'abc123' - /** - * Optional. The BCP-47 language code of the input text if - * known, for example, "en-US" or "sr-Latn". Supported language codes are - * listed in Language Support. If the source language isn't specified, the API - * attempts to identify the source language automatically and returns the - * source language within the response. - */ - // const sourceLanguageCode = 'abc123' - /** - * Required. The BCP-47 language code to use for translation of the input - * text, set to one of the language codes listed in Language Support. - */ - // const targetLanguageCode = 'abc123' - /** - * Required. Project or location to make a call. Must refer to a caller's - * project. - * Format: `projects/{project-number-or-id}` or - * `projects/{project-number-or-id}/locations/{location-id}`. - * For global calls, use `projects/{project-number-or-id}/locations/global` or - * `projects/{project-number-or-id}`. - * Non-global location is required for requests using AutoML models or - * custom glossaries. - * Models and glossaries must be within the same region (have same - * location-id), otherwise an INVALID_ARGUMENT (400) error is returned. - */ - // const parent = 'abc123' - /** - * Optional. The `model` type requested for this translation. - * The format depends on model type: - * - AutoML Translation models: - * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - * - General (built-in) models: - * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - * For global (non-regionalized) requests, use `location-id` `global`. - * For example, - * `projects/{project-number-or-id}/locations/global/models/general/nmt`. - * If not provided, the default Google model (NMT) will be used. - */ - // const model = 'abc123' - /** - * Optional. Glossary to be applied. The glossary must be - * within the same region (have the same location-id) as the model, otherwise - * an INVALID_ARGUMENT (400) error is returned. - */ - // const glossaryConfig = {} - /** - * Optional. The labels with user-defined metadata for the request. - * Label keys and values can be no longer than 63 characters - * (Unicode codepoints), can only contain lowercase letters, numeric - * characters, underscores and dashes. International characters are allowed. - * Label values are optional. Label keys must start with a letter. - * See https://cloud.google.com/translate/docs/advanced/labels for more - * information. - */ - // const labels = 1234 - - // Imports the Translation library - const {TranslationServiceClient} = require('@google-cloud/translate').v3; - - // Instantiates a client - const translationClient = new TranslationServiceClient(); - - async function callTranslateText() { - // Construct request - const request = { - contents, - targetLanguageCode, - parent, - }; - - // Run request - const response = await translationClient.translateText(request); - console.log(response); - } - - callTranslateText(); - // [END translate_v3_generated_TranslationService_TranslateText_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3/src/index.ts b/owl-bot-staging/v3/src/index.ts deleted file mode 100644 index 2ba23fc9..00000000 --- a/owl-bot-staging/v3/src/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - -import * as v3 from './v3'; -const TranslationServiceClient = v3.TranslationServiceClient; -type TranslationServiceClient = v3.TranslationServiceClient; -export {v3, TranslationServiceClient}; -export default {v3, TranslationServiceClient}; -import * as protos from '../protos/protos'; -export {protos} diff --git a/owl-bot-staging/v3/src/v3/gapic_metadata.json b/owl-bot-staging/v3/src/v3/gapic_metadata.json deleted file mode 100644 index 6af9328f..00000000 --- a/owl-bot-staging/v3/src/v3/gapic_metadata.json +++ /dev/null @@ -1,127 +0,0 @@ -{ - "schema": "1.0", - "comment": "This file maps proto services/RPCs to the corresponding library clients/methods", - "language": "typescript", - "protoPackage": "google.cloud.translation.v3", - "libraryPackage": "@google-cloud/translate", - "services": { - "TranslationService": { - "clients": { - "grpc": { - "libraryClient": "TranslationServiceClient", - "rpcs": { - "TranslateText": { - "methods": [ - "translateText" - ] - }, - "DetectLanguage": { - "methods": [ - "detectLanguage" - ] - }, - "GetSupportedLanguages": { - "methods": [ - "getSupportedLanguages" - ] - }, - "TranslateDocument": { - "methods": [ - "translateDocument" - ] - }, - "GetGlossary": { - "methods": [ - "getGlossary" - ] - }, - "BatchTranslateText": { - "methods": [ - "batchTranslateText" - ] - }, - "BatchTranslateDocument": { - "methods": [ - "batchTranslateDocument" - ] - }, - "CreateGlossary": { - "methods": [ - "createGlossary" - ] - }, - "DeleteGlossary": { - "methods": [ - "deleteGlossary" - ] - }, - "ListGlossaries": { - "methods": [ - "listGlossaries", - "listGlossariesStream", - "listGlossariesAsync" - ] - } - } - }, - "grpc-fallback": { - "libraryClient": "TranslationServiceClient", - "rpcs": { - "TranslateText": { - "methods": [ - "translateText" - ] - }, - "DetectLanguage": { - "methods": [ - "detectLanguage" - ] - }, - "GetSupportedLanguages": { - "methods": [ - "getSupportedLanguages" - ] - }, - "TranslateDocument": { - "methods": [ - "translateDocument" - ] - }, - "GetGlossary": { - "methods": [ - "getGlossary" - ] - }, - "BatchTranslateText": { - "methods": [ - "batchTranslateText" - ] - }, - "BatchTranslateDocument": { - "methods": [ - "batchTranslateDocument" - ] - }, - "CreateGlossary": { - "methods": [ - "createGlossary" - ] - }, - "DeleteGlossary": { - "methods": [ - "deleteGlossary" - ] - }, - "ListGlossaries": { - "methods": [ - "listGlossaries", - "listGlossariesStream", - "listGlossariesAsync" - ] - } - } - } - } - } - } -} diff --git a/owl-bot-staging/v3/src/v3/index.ts b/owl-bot-staging/v3/src/v3/index.ts deleted file mode 100644 index 46c99bab..00000000 --- a/owl-bot-staging/v3/src/v3/index.ts +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - -export {TranslationServiceClient} from './translation_service_client'; diff --git a/owl-bot-staging/v3/src/v3/translation_service_client.ts b/owl-bot-staging/v3/src/v3/translation_service_client.ts deleted file mode 100644 index c2c391a8..00000000 --- a/owl-bot-staging/v3/src/v3/translation_service_client.ts +++ /dev/null @@ -1,1717 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - -/* global window */ -import * as gax from 'google-gax'; -import {Callback, CallOptions, Descriptors, ClientOptions, GrpcClientOptions, LROperation, PaginationCallback, GaxCall} from 'google-gax'; - -import { Transform } from 'stream'; -import { RequestType } from 'google-gax/build/src/apitypes'; -import * as protos from '../../protos/protos'; -import jsonProtos = require('../../protos/protos.json'); -/** - * Client JSON configuration object, loaded from - * `src/v3/translation_service_client_config.json`. - * This file defines retry strategy and timeouts for all API methods in this library. - */ -import * as gapicConfig from './translation_service_client_config.json'; -import { operationsProtos } from 'google-gax'; -const version = require('../../../package.json').version; - -/** - * Provides natural language translation operations. - * @class - * @memberof v3 - */ -export class TranslationServiceClient { - private _terminated = false; - private _opts: ClientOptions; - private _providedCustomServicePath: boolean; - private _gaxModule: typeof gax | typeof gax.fallback; - private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; - private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; - auth: gax.GoogleAuth; - descriptors: Descriptors = { - page: {}, - stream: {}, - longrunning: {}, - batching: {}, - }; - warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; - pathTemplates: {[name: string]: gax.PathTemplate}; - operationsClient: gax.OperationsClient; - translationServiceStub?: Promise<{[name: string]: Function}>; - - /** - * Construct an instance of TranslationServiceClient. - * - * @param {object} [options] - The configuration object. - * The options accepted by the constructor are described in detail - * in [this document](https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#creating-the-client-instance). - * The common options are: - * @param {object} [options.credentials] - Credentials object. - * @param {string} [options.credentials.client_email] - * @param {string} [options.credentials.private_key] - * @param {string} [options.email] - Account email address. Required when - * using a .pem or .p12 keyFilename. - * @param {string} [options.keyFilename] - Full path to the a .json, .pem, or - * .p12 key downloaded from the Google Developers Console. If you provide - * a path to a JSON file, the projectId option below is not necessary. - * NOTE: .pem and .p12 require you to specify options.email as well. - * @param {number} [options.port] - The port on which to connect to - * the remote host. - * @param {string} [options.projectId] - The project ID from the Google - * Developer's Console, e.g. 'grape-spaceship-123'. We will also check - * the environment variable GCLOUD_PROJECT for your project ID. If your - * app is running in an environment which supports - * {@link https://developers.google.com/identity/protocols/application-default-credentials Application Default Credentials}, - * your project ID will be detected automatically. - * @param {string} [options.apiEndpoint] - The domain name of the - * API remote host. - * @param {gax.ClientConfig} [options.clientConfig] - Client configuration override. - * Follows the structure of {@link gapicConfig}. - * @param {boolean | "rest"} [options.fallback] - Use HTTP fallback mode. - * Pass "rest" to use HTTP/1.1 REST API instead of gRPC. - * For more information, please check the - * {@link https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#http11-rest-api-mode documentation}. - */ - constructor(opts?: ClientOptions) { - // Ensure that options include all the required fields. - const staticMembers = this.constructor as typeof TranslationServiceClient; - const servicePath = opts?.servicePath || opts?.apiEndpoint || staticMembers.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); - - // If scopes are unset in options and we're connecting to a non-default endpoint, set scopes just in case. - if (servicePath !== staticMembers.servicePath && !('scopes' in opts)) { - opts['scopes'] = staticMembers.scopes; - } - - // Choose either gRPC or proto-over-HTTP implementation of google-gax. - this._gaxModule = opts.fallback ? gax.fallback : gax; - - // Create a `gaxGrpc` object, with any grpc-specific options sent to the client. - this._gaxGrpc = new this._gaxModule.GrpcClient(opts); - - // Save options to use in initialize() method. - this._opts = opts; - - // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); - - // Set useJWTAccessWithScope on the auth object. - this.auth.useJWTAccessWithScope = true; - - // Set defaultServicePath on the auth object. - this.auth.defaultServicePath = staticMembers.servicePath; - - // Set the default scopes in auth client if needed. - if (servicePath === staticMembers.servicePath) { - this.auth.defaultScopes = staticMembers.scopes; - } - - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; - if (typeof process !== 'undefined' && 'versions' in process) { - clientHeader.push(`gl-node/${process.versions.node}`); - } else { - clientHeader.push(`gl-web/${this._gaxModule.version}`); - } - if (!opts.fallback) { - clientHeader.push(`grpc/${this._gaxGrpc.grpcVersion}`); - } else if (opts.fallback === 'rest' ) { - clientHeader.push(`rest/${this._gaxGrpc.grpcVersion}`); - } - if (opts.libName && opts.libVersion) { - clientHeader.push(`${opts.libName}/${opts.libVersion}`); - } - // Load the applicable protos. - this._protos = this._gaxGrpc.loadProtoJSON(jsonProtos); - - // This API contains "path templates"; forward-slash-separated - // identifiers to uniquely identify resources within the API. - // Create useful helper objects for these. - this.pathTemplates = { - glossaryPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/glossaries/{glossary}' - ), - locationPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}' - ), - }; - - // Some of the methods on this service return "paged" results, - // (e.g. 50 results at a time, with tokens to get subsequent - // pages). Denote the keys used for pagination and results. - this.descriptors.page = { - listGlossaries: - new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'glossaries') - }; - - const protoFilesRoot = this._gaxModule.protobuf.Root.fromJSON(jsonProtos); - // This API contains "long-running operations", which return a - // an Operation object that allows for tracking of the operation, - // rather than holding a request open. - const lroOptions: GrpcClientOptions = { - auth: this.auth, - grpc: 'grpc' in this._gaxGrpc ? this._gaxGrpc.grpc : undefined - }; - if (opts.fallback === 'rest') { - lroOptions.protoJson = protoFilesRoot; - lroOptions.httpRules = [{selector: 'google.cloud.location.Locations.GetLocation',get: '/v3/{name=projects/*/locations/*}',},{selector: 'google.cloud.location.Locations.ListLocations',get: '/v3/{name=projects/*}/locations',},{selector: 'google.longrunning.Operations.CancelOperation',post: '/v3/{name=projects/*/locations/*/operations/*}:cancel',body: '*',},{selector: 'google.longrunning.Operations.DeleteOperation',delete: '/v3/{name=projects/*/locations/*/operations/*}',},{selector: 'google.longrunning.Operations.GetOperation',get: '/v3/{name=projects/*/locations/*/operations/*}',},{selector: 'google.longrunning.Operations.ListOperations',get: '/v3/{name=projects/*/locations/*}/operations',},{selector: 'google.longrunning.Operations.WaitOperation',post: '/v3/{name=projects/*/locations/*/operations/*}:wait',body: '*',}]; - } - this.operationsClient = this._gaxModule.lro(lroOptions).operationsClient(opts); - const batchTranslateTextResponse = protoFilesRoot.lookup( - '.google.cloud.translation.v3.BatchTranslateResponse') as gax.protobuf.Type; - const batchTranslateTextMetadata = protoFilesRoot.lookup( - '.google.cloud.translation.v3.BatchTranslateMetadata') as gax.protobuf.Type; - const batchTranslateDocumentResponse = protoFilesRoot.lookup( - '.google.cloud.translation.v3.BatchTranslateDocumentResponse') as gax.protobuf.Type; - const batchTranslateDocumentMetadata = protoFilesRoot.lookup( - '.google.cloud.translation.v3.BatchTranslateDocumentMetadata') as gax.protobuf.Type; - const createGlossaryResponse = protoFilesRoot.lookup( - '.google.cloud.translation.v3.Glossary') as gax.protobuf.Type; - const createGlossaryMetadata = protoFilesRoot.lookup( - '.google.cloud.translation.v3.CreateGlossaryMetadata') as gax.protobuf.Type; - const deleteGlossaryResponse = protoFilesRoot.lookup( - '.google.cloud.translation.v3.DeleteGlossaryResponse') as gax.protobuf.Type; - const deleteGlossaryMetadata = protoFilesRoot.lookup( - '.google.cloud.translation.v3.DeleteGlossaryMetadata') as gax.protobuf.Type; - - this.descriptors.longrunning = { - batchTranslateText: new this._gaxModule.LongrunningDescriptor( - this.operationsClient, - batchTranslateTextResponse.decode.bind(batchTranslateTextResponse), - batchTranslateTextMetadata.decode.bind(batchTranslateTextMetadata)), - batchTranslateDocument: new this._gaxModule.LongrunningDescriptor( - this.operationsClient, - batchTranslateDocumentResponse.decode.bind(batchTranslateDocumentResponse), - batchTranslateDocumentMetadata.decode.bind(batchTranslateDocumentMetadata)), - createGlossary: new this._gaxModule.LongrunningDescriptor( - this.operationsClient, - createGlossaryResponse.decode.bind(createGlossaryResponse), - createGlossaryMetadata.decode.bind(createGlossaryMetadata)), - deleteGlossary: new this._gaxModule.LongrunningDescriptor( - this.operationsClient, - deleteGlossaryResponse.decode.bind(deleteGlossaryResponse), - deleteGlossaryMetadata.decode.bind(deleteGlossaryMetadata)) - }; - - // Put together the default options sent with requests. - this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.translation.v3.TranslationService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); - - // Set up a dictionary of "inner API calls"; the core implementation - // of calling the API is handled in `google-gax`, with this code - // merely providing the destination and request information. - this.innerApiCalls = {}; - - // Add a warn function to the client constructor so it can be easily tested. - this.warn = gax.warn; - } - - /** - * Initialize the client. - * Performs asynchronous operations (such as authentication) and prepares the client. - * This function will be called automatically when any class method is called for the - * first time, but if you need to initialize it before calling an actual method, - * feel free to call initialize() directly. - * - * You can await on this method if you want to make sure the client is initialized. - * - * @returns {Promise} A promise that resolves to an authenticated service stub. - */ - initialize() { - // If the client stub promise is already initialized, return immediately. - if (this.translationServiceStub) { - return this.translationServiceStub; - } - - // Put together the "service stub" for - // google.cloud.translation.v3.TranslationService. - this.translationServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.translation.v3.TranslationService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (this._protos as any).google.cloud.translation.v3.TranslationService, - 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 translationServiceStubMethods = - ['translateText', 'detectLanguage', 'getSupportedLanguages', 'translateDocument', 'batchTranslateText', 'batchTranslateDocument', 'createGlossary', 'listGlossaries', 'getGlossary', 'deleteGlossary']; - for (const methodName of translationServiceStubMethods) { - const callPromise = this.translationServiceStub.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) => () => { - throw err; - }); - - const descriptor = - this.descriptors.page[methodName] || - this.descriptors.longrunning[methodName] || - undefined; - const apiCall = this._gaxModule.createApiCall( - callPromise, - this._defaults[methodName], - descriptor - ); - - this.innerApiCalls[methodName] = apiCall; - } - - return this.translationServiceStub; - } - - /** - * The DNS address for this API service. - * @returns {string} The DNS address for this service. - */ - static get servicePath() { - return 'translate.googleapis.com'; - } - - /** - * The DNS address for this API service - same as servicePath(), - * exists for compatibility reasons. - * @returns {string} The DNS address for this service. - */ - static get apiEndpoint() { - return 'translate.googleapis.com'; - } - - /** - * The port for this API service. - * @returns {number} The default port for this service. - */ - static get port() { - return 443; - } - - /** - * The scopes needed to make gRPC calls for every method defined - * in this service. - * @returns {string[]} List of default scopes. - */ - static get scopes() { - return [ - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/cloud-translation' - ]; - } - - getProjectId(): Promise; - getProjectId(callback: Callback): void; - /** - * Return the project ID used by this class. - * @returns {Promise} A promise that resolves to string containing the project ID. - */ - getProjectId(callback?: Callback): - Promise|void { - if (callback) { - this.auth.getProjectId(callback); - return; - } - return this.auth.getProjectId(); - } - - // ------------------- - // -- Service calls -- - // ------------------- -/** - * Translates input text and returns translated text. - * - * @param {Object} request - * The request object that will be sent. - * @param {string[]} request.contents - * Required. The content of the input in string format. - * We recommend the total content be less than 30k codepoints. The max length - * of this field is 1024. - * Use BatchTranslateText for larger text. - * @param {string} [request.mimeType] - * Optional. The format of the source text, for example, "text/html", - * "text/plain". If left blank, the MIME type defaults to "text/html". - * @param {string} [request.sourceLanguageCode] - * Optional. The BCP-47 language code of the input text if - * known, for example, "en-US" or "sr-Latn". Supported language codes are - * listed in Language Support. If the source language isn't specified, the API - * attempts to identify the source language automatically and returns the - * source language within the response. - * @param {string} request.targetLanguageCode - * Required. The BCP-47 language code to use for translation of the input - * text, set to one of the language codes listed in Language Support. - * @param {string} request.parent - * Required. Project or location to make a call. Must refer to a caller's - * project. - * - * Format: `projects/{project-number-or-id}` or - * `projects/{project-number-or-id}/locations/{location-id}`. - * - * For global calls, use `projects/{project-number-or-id}/locations/global` or - * `projects/{project-number-or-id}`. - * - * Non-global location is required for requests using AutoML models or - * custom glossaries. - * - * Models and glossaries must be within the same region (have same - * location-id), otherwise an INVALID_ARGUMENT (400) error is returned. - * @param {string} [request.model] - * Optional. The `model` type requested for this translation. - * - * The format depends on model type: - * - * - AutoML Translation models: - * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - * - * - General (built-in) models: - * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - * - * - * For global (non-regionalized) requests, use `location-id` `global`. - * For example, - * `projects/{project-number-or-id}/locations/global/models/general/nmt`. - * - * If not provided, the default Google model (NMT) will be used. - * @param {google.cloud.translation.v3.TranslateTextGlossaryConfig} [request.glossaryConfig] - * Optional. Glossary to be applied. The glossary must be - * within the same region (have the same location-id) as the model, otherwise - * an INVALID_ARGUMENT (400) error is returned. - * @param {number[]} [request.labels] - * Optional. The labels with user-defined metadata for the request. - * - * Label keys and values can be no longer than 63 characters - * (Unicode codepoints), can only contain lowercase letters, numeric - * characters, underscores and dashes. International characters are allowed. - * Label values are optional. Label keys must start with a letter. - * - * See https://cloud.google.com/translate/docs/advanced/labels for more - * information. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing [TranslateTextResponse]{@link google.cloud.translation.v3.TranslateTextResponse}. - * Please see the - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) - * for more details and examples. - * @example include:samples/generated/v3/translation_service.translate_text.js - * region_tag:translate_v3_generated_TranslationService_TranslateText_async - */ - translateText( - request?: protos.google.cloud.translation.v3.ITranslateTextRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.translation.v3.ITranslateTextResponse, - protos.google.cloud.translation.v3.ITranslateTextRequest|undefined, {}|undefined - ]>; - translateText( - request: protos.google.cloud.translation.v3.ITranslateTextRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.translation.v3.ITranslateTextResponse, - protos.google.cloud.translation.v3.ITranslateTextRequest|null|undefined, - {}|null|undefined>): void; - translateText( - request: protos.google.cloud.translation.v3.ITranslateTextRequest, - callback: Callback< - protos.google.cloud.translation.v3.ITranslateTextResponse, - protos.google.cloud.translation.v3.ITranslateTextRequest|null|undefined, - {}|null|undefined>): void; - translateText( - request?: protos.google.cloud.translation.v3.ITranslateTextRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.translation.v3.ITranslateTextResponse, - protos.google.cloud.translation.v3.ITranslateTextRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< - protos.google.cloud.translation.v3.ITranslateTextResponse, - protos.google.cloud.translation.v3.ITranslateTextRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.translation.v3.ITranslateTextResponse, - protos.google.cloud.translation.v3.ITranslateTextRequest|undefined, {}|undefined - ]>|void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } - else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', - }); - this.initialize(); - return this.innerApiCalls.translateText(request, options, callback); - } -/** - * Detects the language of text within a request. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Project or location to make a call. Must refer to a caller's - * project. - * - * Format: `projects/{project-number-or-id}/locations/{location-id}` or - * `projects/{project-number-or-id}`. - * - * For global calls, use `projects/{project-number-or-id}/locations/global` or - * `projects/{project-number-or-id}`. - * - * Only models within the same region (has same location-id) can be used. - * Otherwise an INVALID_ARGUMENT (400) error is returned. - * @param {string} [request.model] - * Optional. The language detection model to be used. - * - * Format: - * `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/{model-id}` - * - * Only one language detection model is currently supported: - * `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/default`. - * - * If not specified, the default model is used. - * @param {string} request.content - * The content of the input stored as a string. - * @param {string} [request.mimeType] - * Optional. The format of the source text, for example, "text/html", - * "text/plain". If left blank, the MIME type defaults to "text/html". - * @param {number[]} [request.labels] - * Optional. The labels with user-defined metadata for the request. - * - * Label keys and values can be no longer than 63 characters - * (Unicode codepoints), can only contain lowercase letters, numeric - * characters, underscores and dashes. International characters are allowed. - * Label values are optional. Label keys must start with a letter. - * - * See https://cloud.google.com/translate/docs/advanced/labels for more - * information. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing [DetectLanguageResponse]{@link google.cloud.translation.v3.DetectLanguageResponse}. - * Please see the - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) - * for more details and examples. - * @example include:samples/generated/v3/translation_service.detect_language.js - * region_tag:translate_v3_generated_TranslationService_DetectLanguage_async - */ - detectLanguage( - request?: protos.google.cloud.translation.v3.IDetectLanguageRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.translation.v3.IDetectLanguageResponse, - protos.google.cloud.translation.v3.IDetectLanguageRequest|undefined, {}|undefined - ]>; - detectLanguage( - request: protos.google.cloud.translation.v3.IDetectLanguageRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.translation.v3.IDetectLanguageResponse, - protos.google.cloud.translation.v3.IDetectLanguageRequest|null|undefined, - {}|null|undefined>): void; - detectLanguage( - request: protos.google.cloud.translation.v3.IDetectLanguageRequest, - callback: Callback< - protos.google.cloud.translation.v3.IDetectLanguageResponse, - protos.google.cloud.translation.v3.IDetectLanguageRequest|null|undefined, - {}|null|undefined>): void; - detectLanguage( - request?: protos.google.cloud.translation.v3.IDetectLanguageRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.translation.v3.IDetectLanguageResponse, - protos.google.cloud.translation.v3.IDetectLanguageRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< - protos.google.cloud.translation.v3.IDetectLanguageResponse, - protos.google.cloud.translation.v3.IDetectLanguageRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.translation.v3.IDetectLanguageResponse, - protos.google.cloud.translation.v3.IDetectLanguageRequest|undefined, {}|undefined - ]>|void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } - else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', - }); - this.initialize(); - return this.innerApiCalls.detectLanguage(request, options, callback); - } -/** - * Returns a list of supported languages for translation. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Project or location to make a call. Must refer to a caller's - * project. - * - * Format: `projects/{project-number-or-id}` or - * `projects/{project-number-or-id}/locations/{location-id}`. - * - * For global calls, use `projects/{project-number-or-id}/locations/global` or - * `projects/{project-number-or-id}`. - * - * Non-global location is required for AutoML models. - * - * Only models within the same region (have same location-id) can be used, - * otherwise an INVALID_ARGUMENT (400) error is returned. - * @param {string} [request.displayLanguageCode] - * Optional. The language to use to return localized, human readable names - * of supported languages. If missing, then display names are not returned - * in a response. - * @param {string} [request.model] - * Optional. Get supported languages of this model. - * - * The format depends on model type: - * - * - AutoML Translation models: - * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - * - * - General (built-in) models: - * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - * - * - * Returns languages supported by the specified model. - * If missing, we get supported languages of Google general NMT model. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing [SupportedLanguages]{@link google.cloud.translation.v3.SupportedLanguages}. - * Please see the - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) - * for more details and examples. - * @example include:samples/generated/v3/translation_service.get_supported_languages.js - * region_tag:translate_v3_generated_TranslationService_GetSupportedLanguages_async - */ - getSupportedLanguages( - request?: protos.google.cloud.translation.v3.IGetSupportedLanguagesRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.translation.v3.ISupportedLanguages, - protos.google.cloud.translation.v3.IGetSupportedLanguagesRequest|undefined, {}|undefined - ]>; - getSupportedLanguages( - request: protos.google.cloud.translation.v3.IGetSupportedLanguagesRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.translation.v3.ISupportedLanguages, - protos.google.cloud.translation.v3.IGetSupportedLanguagesRequest|null|undefined, - {}|null|undefined>): void; - getSupportedLanguages( - request: protos.google.cloud.translation.v3.IGetSupportedLanguagesRequest, - callback: Callback< - protos.google.cloud.translation.v3.ISupportedLanguages, - protos.google.cloud.translation.v3.IGetSupportedLanguagesRequest|null|undefined, - {}|null|undefined>): void; - getSupportedLanguages( - request?: protos.google.cloud.translation.v3.IGetSupportedLanguagesRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.translation.v3.ISupportedLanguages, - protos.google.cloud.translation.v3.IGetSupportedLanguagesRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< - protos.google.cloud.translation.v3.ISupportedLanguages, - protos.google.cloud.translation.v3.IGetSupportedLanguagesRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.translation.v3.ISupportedLanguages, - protos.google.cloud.translation.v3.IGetSupportedLanguagesRequest|undefined, {}|undefined - ]>|void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } - else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', - }); - this.initialize(); - return this.innerApiCalls.getSupportedLanguages(request, options, callback); - } -/** - * Translates documents in synchronous mode. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Location to make a regional call. - * - * Format: `projects/{project-number-or-id}/locations/{location-id}`. - * - * For global calls, use `projects/{project-number-or-id}/locations/global` or - * `projects/{project-number-or-id}`. - * - * Non-global location is required for requests using AutoML models or custom - * glossaries. - * - * Models and glossaries must be within the same region (have the same - * location-id), otherwise an INVALID_ARGUMENT (400) error is returned. - * @param {string} [request.sourceLanguageCode] - * Optional. The BCP-47 language code of the input document if known, for - * example, "en-US" or "sr-Latn". Supported language codes are listed in - * Language Support. If the source language isn't specified, the API attempts - * to identify the source language automatically and returns the source - * language within the response. Source language must be specified if the - * request contains a glossary or a custom model. - * @param {string} request.targetLanguageCode - * Required. The BCP-47 language code to use for translation of the input - * document, set to one of the language codes listed in Language Support. - * @param {google.cloud.translation.v3.DocumentInputConfig} request.documentInputConfig - * Required. Input configurations. - * @param {google.cloud.translation.v3.DocumentOutputConfig} [request.documentOutputConfig] - * Optional. Output configurations. - * Defines if the output file should be stored within Cloud Storage as well - * as the desired output format. If not provided the translated file will - * only be returned through a byte-stream and its output mime type will be - * the same as the input file's mime type. - * @param {string} [request.model] - * Optional. The `model` type requested for this translation. - * - * The format depends on model type: - * - * - AutoML Translation models: - * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - * - * - General (built-in) models: - * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - * - * - * If not provided, the default Google model (NMT) will be used for - * translation. - * @param {google.cloud.translation.v3.TranslateTextGlossaryConfig} [request.glossaryConfig] - * Optional. Glossary to be applied. The glossary must be within the same - * region (have the same location-id) as the model, otherwise an - * INVALID_ARGUMENT (400) error is returned. - * @param {number[]} [request.labels] - * Optional. The labels with user-defined metadata for the request. - * - * Label keys and values can be no longer than 63 characters (Unicode - * codepoints), can only contain lowercase letters, numeric characters, - * underscores and dashes. International characters are allowed. Label values - * are optional. Label keys must start with a letter. - * - * See https://cloud.google.com/translate/docs/advanced/labels for more - * information. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing [TranslateDocumentResponse]{@link google.cloud.translation.v3.TranslateDocumentResponse}. - * Please see the - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) - * for more details and examples. - * @example include:samples/generated/v3/translation_service.translate_document.js - * region_tag:translate_v3_generated_TranslationService_TranslateDocument_async - */ - translateDocument( - request?: protos.google.cloud.translation.v3.ITranslateDocumentRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.translation.v3.ITranslateDocumentResponse, - protos.google.cloud.translation.v3.ITranslateDocumentRequest|undefined, {}|undefined - ]>; - translateDocument( - request: protos.google.cloud.translation.v3.ITranslateDocumentRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.translation.v3.ITranslateDocumentResponse, - protos.google.cloud.translation.v3.ITranslateDocumentRequest|null|undefined, - {}|null|undefined>): void; - translateDocument( - request: protos.google.cloud.translation.v3.ITranslateDocumentRequest, - callback: Callback< - protos.google.cloud.translation.v3.ITranslateDocumentResponse, - protos.google.cloud.translation.v3.ITranslateDocumentRequest|null|undefined, - {}|null|undefined>): void; - translateDocument( - request?: protos.google.cloud.translation.v3.ITranslateDocumentRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.translation.v3.ITranslateDocumentResponse, - protos.google.cloud.translation.v3.ITranslateDocumentRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< - protos.google.cloud.translation.v3.ITranslateDocumentResponse, - protos.google.cloud.translation.v3.ITranslateDocumentRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.translation.v3.ITranslateDocumentResponse, - protos.google.cloud.translation.v3.ITranslateDocumentRequest|undefined, {}|undefined - ]>|void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } - else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', - }); - this.initialize(); - return this.innerApiCalls.translateDocument(request, options, callback); - } -/** - * Gets a glossary. Returns NOT_FOUND, if the glossary doesn't - * exist. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the glossary to retrieve. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing [Glossary]{@link google.cloud.translation.v3.Glossary}. - * Please see the - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) - * for more details and examples. - * @example include:samples/generated/v3/translation_service.get_glossary.js - * region_tag:translate_v3_generated_TranslationService_GetGlossary_async - */ - getGlossary( - request?: protos.google.cloud.translation.v3.IGetGlossaryRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.translation.v3.IGlossary, - protos.google.cloud.translation.v3.IGetGlossaryRequest|undefined, {}|undefined - ]>; - getGlossary( - request: protos.google.cloud.translation.v3.IGetGlossaryRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.translation.v3.IGlossary, - protos.google.cloud.translation.v3.IGetGlossaryRequest|null|undefined, - {}|null|undefined>): void; - getGlossary( - request: protos.google.cloud.translation.v3.IGetGlossaryRequest, - callback: Callback< - protos.google.cloud.translation.v3.IGlossary, - protos.google.cloud.translation.v3.IGetGlossaryRequest|null|undefined, - {}|null|undefined>): void; - getGlossary( - request?: protos.google.cloud.translation.v3.IGetGlossaryRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.translation.v3.IGlossary, - protos.google.cloud.translation.v3.IGetGlossaryRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< - protos.google.cloud.translation.v3.IGlossary, - protos.google.cloud.translation.v3.IGetGlossaryRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.translation.v3.IGlossary, - protos.google.cloud.translation.v3.IGetGlossaryRequest|undefined, {}|undefined - ]>|void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } - else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'name': request.name || '', - }); - this.initialize(); - return this.innerApiCalls.getGlossary(request, options, callback); - } - -/** - * Translates a large volume of text in asynchronous batch mode. - * This function provides real-time output as the inputs are being processed. - * If caller cancels a request, the partial results (for an input file, it's - * all or nothing) may still be available on the specified output location. - * - * This call returns immediately and you can - * use google.longrunning.Operation.name to poll the status of the call. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Location to make a call. Must refer to a caller's project. - * - * Format: `projects/{project-number-or-id}/locations/{location-id}`. - * - * The `global` location is not supported for batch translation. - * - * Only AutoML Translation models or glossaries within the same region (have - * the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) - * error is returned. - * @param {string} request.sourceLanguageCode - * Required. Source language code. - * @param {string[]} request.targetLanguageCodes - * Required. Specify up to 10 language codes here. - * @param {number[]} [request.models] - * Optional. The models to use for translation. Map's key is target language - * code. Map's value is model name. Value can be a built-in general model, - * or an AutoML Translation model. - * - * The value format depends on model type: - * - * - AutoML Translation models: - * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - * - * - General (built-in) models: - * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - * - * - * If the map is empty or a specific model is - * not requested for a language pair, then default google model (nmt) is used. - * @param {number[]} request.inputConfigs - * Required. Input configurations. - * The total number of files matched should be <= 100. - * The total content size should be <= 100M Unicode codepoints. - * The files must use UTF-8 encoding. - * @param {google.cloud.translation.v3.OutputConfig} request.outputConfig - * Required. Output configuration. - * If 2 input configs match to the same file (that is, same input path), - * we don't generate output for duplicate inputs. - * @param {number[]} [request.glossaries] - * Optional. Glossaries to be applied for translation. - * It's keyed by target language code. - * @param {number[]} [request.labels] - * Optional. The labels with user-defined metadata for the request. - * - * Label keys and values can be no longer than 63 characters - * (Unicode codepoints), can only contain lowercase letters, numeric - * characters, underscores and dashes. International characters are allowed. - * Label values are optional. Label keys must start with a letter. - * - * See https://cloud.google.com/translate/docs/advanced/labels for more - * information. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.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 - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) - * for more details and examples. - * @example include:samples/generated/v3/translation_service.batch_translate_text.js - * region_tag:translate_v3_generated_TranslationService_BatchTranslateText_async - */ - batchTranslateText( - request?: protos.google.cloud.translation.v3.IBatchTranslateTextRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; - batchTranslateText( - request: protos.google.cloud.translation.v3.IBatchTranslateTextRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; - batchTranslateText( - request: protos.google.cloud.translation.v3.IBatchTranslateTextRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; - batchTranslateText( - request?: protos.google.cloud.translation.v3.IBatchTranslateTextRequest, - 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 = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } - else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', - }); - this.initialize(); - return this.innerApiCalls.batchTranslateText(request, options, callback); - } -/** - * Check the status of the long running operation returned by `batchTranslateText()`. - * @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 - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) - * for more details and examples. - * @example include:samples/generated/v3/translation_service.batch_translate_text.js - * region_tag:translate_v3_generated_TranslationService_BatchTranslateText_async - */ - async checkBatchTranslateTextProgress(name: string): Promise>{ - const request = new operationsProtos.google.longrunning.GetOperationRequest({name}); - const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new gax.Operation(operation, this.descriptors.longrunning.batchTranslateText, gax.createDefaultBackoffSettings()); - return decodeOperation as LROperation; - } -/** - * Translates a large volume of document in asynchronous batch mode. - * This function provides real-time output as the inputs are being processed. - * If caller cancels a request, the partial results (for an input file, it's - * all or nothing) may still be available on the specified output location. - * - * This call returns immediately and you can use - * google.longrunning.Operation.name to poll the status of the call. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Location to make a regional call. - * - * Format: `projects/{project-number-or-id}/locations/{location-id}`. - * - * The `global` location is not supported for batch translation. - * - * Only AutoML Translation models or glossaries within the same region (have - * the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) - * error is returned. - * @param {string} request.sourceLanguageCode - * Required. The BCP-47 language code of the input document if known, for - * example, "en-US" or "sr-Latn". Supported language codes are listed in - * Language Support (https://cloud.google.com/translate/docs/languages). - * @param {string[]} request.targetLanguageCodes - * Required. The BCP-47 language code to use for translation of the input - * document. Specify up to 10 language codes here. - * @param {number[]} request.inputConfigs - * Required. Input configurations. - * The total number of files matched should be <= 100. - * The total content size to translate should be <= 100M Unicode codepoints. - * The files must use UTF-8 encoding. - * @param {google.cloud.translation.v3.BatchDocumentOutputConfig} request.outputConfig - * Required. Output configuration. - * If 2 input configs match to the same file (that is, same input path), - * we don't generate output for duplicate inputs. - * @param {number[]} [request.models] - * Optional. The models to use for translation. Map's key is target language - * code. Map's value is the model name. Value can be a built-in general model, - * or an AutoML Translation model. - * - * The value format depends on model type: - * - * - AutoML Translation models: - * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - * - * - General (built-in) models: - * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - * - * - * If the map is empty or a specific model is - * not requested for a language pair, then default google model (nmt) is used. - * @param {number[]} [request.glossaries] - * Optional. Glossaries to be applied. It's keyed by target language code. - * @param {number[]} [request.formatConversions] - * Optional. File format conversion map to be applied to all input files. - * Map's key is the original mime_type. Map's value is the target mime_type of - * translated documents. - * - * Supported file format conversion includes: - * - `application/pdf` to - * `application/vnd.openxmlformats-officedocument.wordprocessingml.document` - * - * If nothing specified, output files will be in the same format as the - * original file. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.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 - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) - * for more details and examples. - * @example include:samples/generated/v3/translation_service.batch_translate_document.js - * region_tag:translate_v3_generated_TranslationService_BatchTranslateDocument_async - */ - batchTranslateDocument( - request?: protos.google.cloud.translation.v3.IBatchTranslateDocumentRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; - batchTranslateDocument( - request: protos.google.cloud.translation.v3.IBatchTranslateDocumentRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; - batchTranslateDocument( - request: protos.google.cloud.translation.v3.IBatchTranslateDocumentRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; - batchTranslateDocument( - request?: protos.google.cloud.translation.v3.IBatchTranslateDocumentRequest, - 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 = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } - else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', - }); - this.initialize(); - return this.innerApiCalls.batchTranslateDocument(request, options, callback); - } -/** - * Check the status of the long running operation returned by `batchTranslateDocument()`. - * @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 - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) - * for more details and examples. - * @example include:samples/generated/v3/translation_service.batch_translate_document.js - * region_tag:translate_v3_generated_TranslationService_BatchTranslateDocument_async - */ - async checkBatchTranslateDocumentProgress(name: string): Promise>{ - const request = new operationsProtos.google.longrunning.GetOperationRequest({name}); - const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new gax.Operation(operation, this.descriptors.longrunning.batchTranslateDocument, gax.createDefaultBackoffSettings()); - return decodeOperation as LROperation; - } -/** - * Creates a glossary and returns the long-running operation. Returns - * NOT_FOUND, if the project doesn't exist. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The project name. - * @param {google.cloud.translation.v3.Glossary} request.glossary - * Required. The glossary 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 - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) - * for more details and examples. - * @example include:samples/generated/v3/translation_service.create_glossary.js - * region_tag:translate_v3_generated_TranslationService_CreateGlossary_async - */ - createGlossary( - request?: protos.google.cloud.translation.v3.ICreateGlossaryRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; - createGlossary( - request: protos.google.cloud.translation.v3.ICreateGlossaryRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; - createGlossary( - request: protos.google.cloud.translation.v3.ICreateGlossaryRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; - createGlossary( - request?: protos.google.cloud.translation.v3.ICreateGlossaryRequest, - 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 = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } - else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', - }); - this.initialize(); - return this.innerApiCalls.createGlossary(request, options, callback); - } -/** - * Check the status of the long running operation returned by `createGlossary()`. - * @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 - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) - * for more details and examples. - * @example include:samples/generated/v3/translation_service.create_glossary.js - * region_tag:translate_v3_generated_TranslationService_CreateGlossary_async - */ - async checkCreateGlossaryProgress(name: string): Promise>{ - const request = new operationsProtos.google.longrunning.GetOperationRequest({name}); - const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new gax.Operation(operation, this.descriptors.longrunning.createGlossary, gax.createDefaultBackoffSettings()); - return decodeOperation as LROperation; - } -/** - * Deletes a glossary, or cancels glossary construction - * if the glossary isn't created yet. - * Returns NOT_FOUND, if the glossary doesn't exist. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the glossary to delete. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.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 - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) - * for more details and examples. - * @example include:samples/generated/v3/translation_service.delete_glossary.js - * region_tag:translate_v3_generated_TranslationService_DeleteGlossary_async - */ - deleteGlossary( - request?: protos.google.cloud.translation.v3.IDeleteGlossaryRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; - deleteGlossary( - request: protos.google.cloud.translation.v3.IDeleteGlossaryRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; - deleteGlossary( - request: protos.google.cloud.translation.v3.IDeleteGlossaryRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; - deleteGlossary( - request?: protos.google.cloud.translation.v3.IDeleteGlossaryRequest, - 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 = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } - else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'name': request.name || '', - }); - this.initialize(); - return this.innerApiCalls.deleteGlossary(request, options, callback); - } -/** - * Check the status of the long running operation returned by `deleteGlossary()`. - * @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 - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) - * for more details and examples. - * @example include:samples/generated/v3/translation_service.delete_glossary.js - * region_tag:translate_v3_generated_TranslationService_DeleteGlossary_async - */ - async checkDeleteGlossaryProgress(name: string): Promise>{ - const request = new operationsProtos.google.longrunning.GetOperationRequest({name}); - const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new gax.Operation(operation, this.descriptors.longrunning.deleteGlossary, gax.createDefaultBackoffSettings()); - return decodeOperation as LROperation; - } - /** - * Lists glossaries in a project. Returns NOT_FOUND, if the project doesn't - * exist. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The name of the project from which to list all of the glossaries. - * @param {number} [request.pageSize] - * Optional. Requested page size. The server may return fewer glossaries than - * requested. If unspecified, the server picks an appropriate default. - * @param {string} [request.pageToken] - * Optional. A token identifying a page of results the server should return. - * Typically, this is the value of [ListGlossariesResponse.next_page_token] - * returned from the previous call to `ListGlossaries` method. - * The first page is returned if `page_token`is empty or missing. - * @param {string} [request.filter] - * Optional. Filter specifying constraints of a list operation. - * Specify the constraint by the format of "key=value", where key must be - * "src" or "tgt", and the value must be a valid language code. - * For multiple restrictions, concatenate them by "AND" (uppercase only), - * such as: "src=en-US AND tgt=zh-CN". Notice that the exact match is used - * here, which means using 'en-US' and 'en' can lead to different results, - * which depends on the language code you used when you create the glossary. - * For the unidirectional glossaries, the "src" and "tgt" add restrictions - * on the source and target language code separately. - * For the equivalent term set glossaries, the "src" and/or "tgt" add - * restrictions on the term set. - * For example: "src=en-US AND tgt=zh-CN" will only pick the unidirectional - * glossaries which exactly match the source language code as "en-US" and the - * target language code "zh-CN", but all equivalent term set glossaries which - * contain "en-US" and "zh-CN" in their language set will be picked. - * If missing, no filtering is performed. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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 [Glossary]{@link google.cloud.translation.v3.Glossary}. - * 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 `listGlossariesAsync()` - * method described below for async iteration which you can stop as needed. - * Please see the - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) - * for more details and examples. - */ - listGlossaries( - request?: protos.google.cloud.translation.v3.IListGlossariesRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.translation.v3.IGlossary[], - protos.google.cloud.translation.v3.IListGlossariesRequest|null, - protos.google.cloud.translation.v3.IListGlossariesResponse - ]>; - listGlossaries( - request: protos.google.cloud.translation.v3.IListGlossariesRequest, - options: CallOptions, - callback: PaginationCallback< - protos.google.cloud.translation.v3.IListGlossariesRequest, - protos.google.cloud.translation.v3.IListGlossariesResponse|null|undefined, - protos.google.cloud.translation.v3.IGlossary>): void; - listGlossaries( - request: protos.google.cloud.translation.v3.IListGlossariesRequest, - callback: PaginationCallback< - protos.google.cloud.translation.v3.IListGlossariesRequest, - protos.google.cloud.translation.v3.IListGlossariesResponse|null|undefined, - protos.google.cloud.translation.v3.IGlossary>): void; - listGlossaries( - request?: protos.google.cloud.translation.v3.IListGlossariesRequest, - optionsOrCallback?: CallOptions|PaginationCallback< - protos.google.cloud.translation.v3.IListGlossariesRequest, - protos.google.cloud.translation.v3.IListGlossariesResponse|null|undefined, - protos.google.cloud.translation.v3.IGlossary>, - callback?: PaginationCallback< - protos.google.cloud.translation.v3.IListGlossariesRequest, - protos.google.cloud.translation.v3.IListGlossariesResponse|null|undefined, - protos.google.cloud.translation.v3.IGlossary>): - Promise<[ - protos.google.cloud.translation.v3.IGlossary[], - protos.google.cloud.translation.v3.IListGlossariesRequest|null, - protos.google.cloud.translation.v3.IListGlossariesResponse - ]>|void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } - else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', - }); - this.initialize(); - return this.innerApiCalls.listGlossaries(request, options, callback); - } - -/** - * Equivalent to `method.name.toCamelCase()`, but returns a NodeJS Stream object. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The name of the project from which to list all of the glossaries. - * @param {number} [request.pageSize] - * Optional. Requested page size. The server may return fewer glossaries than - * requested. If unspecified, the server picks an appropriate default. - * @param {string} [request.pageToken] - * Optional. A token identifying a page of results the server should return. - * Typically, this is the value of [ListGlossariesResponse.next_page_token] - * returned from the previous call to `ListGlossaries` method. - * The first page is returned if `page_token`is empty or missing. - * @param {string} [request.filter] - * Optional. Filter specifying constraints of a list operation. - * Specify the constraint by the format of "key=value", where key must be - * "src" or "tgt", and the value must be a valid language code. - * For multiple restrictions, concatenate them by "AND" (uppercase only), - * such as: "src=en-US AND tgt=zh-CN". Notice that the exact match is used - * here, which means using 'en-US' and 'en' can lead to different results, - * which depends on the language code you used when you create the glossary. - * For the unidirectional glossaries, the "src" and "tgt" add restrictions - * on the source and target language code separately. - * For the equivalent term set glossaries, the "src" and/or "tgt" add - * restrictions on the term set. - * For example: "src=en-US AND tgt=zh-CN" will only pick the unidirectional - * glossaries which exactly match the source language code as "en-US" and the - * target language code "zh-CN", but all equivalent term set glossaries which - * contain "en-US" and "zh-CN" in their language set will be picked. - * If missing, no filtering is performed. - * @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 [Glossary]{@link google.cloud.translation.v3.Glossary} 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 `listGlossariesAsync()` - * method described below for async iteration which you can stop as needed. - * Please see the - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) - * for more details and examples. - */ - listGlossariesStream( - request?: protos.google.cloud.translation.v3.IListGlossariesRequest, - options?: CallOptions): - Transform{ - request = request || {}; - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', - }); - const defaultCallSettings = this._defaults['listGlossaries']; - const callSettings = defaultCallSettings.merge(options); - this.initialize(); - return this.descriptors.page.listGlossaries.createStream( - this.innerApiCalls.listGlossaries as gax.GaxCall, - request, - callSettings - ); - } - -/** - * Equivalent to `listGlossaries`, 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 name of the project from which to list all of the glossaries. - * @param {number} [request.pageSize] - * Optional. Requested page size. The server may return fewer glossaries than - * requested. If unspecified, the server picks an appropriate default. - * @param {string} [request.pageToken] - * Optional. A token identifying a page of results the server should return. - * Typically, this is the value of [ListGlossariesResponse.next_page_token] - * returned from the previous call to `ListGlossaries` method. - * The first page is returned if `page_token`is empty or missing. - * @param {string} [request.filter] - * Optional. Filter specifying constraints of a list operation. - * Specify the constraint by the format of "key=value", where key must be - * "src" or "tgt", and the value must be a valid language code. - * For multiple restrictions, concatenate them by "AND" (uppercase only), - * such as: "src=en-US AND tgt=zh-CN". Notice that the exact match is used - * here, which means using 'en-US' and 'en' can lead to different results, - * which depends on the language code you used when you create the glossary. - * For the unidirectional glossaries, the "src" and "tgt" add restrictions - * on the source and target language code separately. - * For the equivalent term set glossaries, the "src" and/or "tgt" add - * restrictions on the term set. - * For example: "src=en-US AND tgt=zh-CN" will only pick the unidirectional - * glossaries which exactly match the source language code as "en-US" and the - * target language code "zh-CN", but all equivalent term set glossaries which - * contain "en-US" and "zh-CN" in their language set will be picked. - * If missing, no filtering is performed. - * @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 [async iteration](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols). - * When you iterate the returned iterable, each element will be an object representing - * [Glossary]{@link google.cloud.translation.v3.Glossary}. 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 - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) - * for more details and examples. - * @example include:samples/generated/v3/translation_service.list_glossaries.js - * region_tag:translate_v3_generated_TranslationService_ListGlossaries_async - */ - listGlossariesAsync( - request?: protos.google.cloud.translation.v3.IListGlossariesRequest, - options?: CallOptions): - AsyncIterable{ - request = request || {}; - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', - }); - const defaultCallSettings = this._defaults['listGlossaries']; - const callSettings = defaultCallSettings.merge(options); - this.initialize(); - return this.descriptors.page.listGlossaries.asyncIterate( - this.innerApiCalls['listGlossaries'] as GaxCall, - request as unknown as RequestType, - callSettings - ) as AsyncIterable; - } - // -------------------- - // -- Path templates -- - // -------------------- - - /** - * Return a fully-qualified glossary resource name string. - * - * @param {string} project - * @param {string} location - * @param {string} glossary - * @returns {string} Resource name string. - */ - glossaryPath(project:string,location:string,glossary:string) { - return this.pathTemplates.glossaryPathTemplate.render({ - project: project, - location: location, - glossary: glossary, - }); - } - - /** - * Parse the project from Glossary resource. - * - * @param {string} glossaryName - * A fully-qualified path representing Glossary resource. - * @returns {string} A string representing the project. - */ - matchProjectFromGlossaryName(glossaryName: string) { - return this.pathTemplates.glossaryPathTemplate.match(glossaryName).project; - } - - /** - * Parse the location from Glossary resource. - * - * @param {string} glossaryName - * A fully-qualified path representing Glossary resource. - * @returns {string} A string representing the location. - */ - matchLocationFromGlossaryName(glossaryName: string) { - return this.pathTemplates.glossaryPathTemplate.match(glossaryName).location; - } - - /** - * Parse the glossary from Glossary resource. - * - * @param {string} glossaryName - * A fully-qualified path representing Glossary resource. - * @returns {string} A string representing the glossary. - */ - matchGlossaryFromGlossaryName(glossaryName: string) { - return this.pathTemplates.glossaryPathTemplate.match(glossaryName).glossary; - } - - /** - * Return a fully-qualified location resource name string. - * - * @param {string} project - * @param {string} location - * @returns {string} Resource name string. - */ - locationPath(project:string,location:string) { - return this.pathTemplates.locationPathTemplate.render({ - project: project, - location: location, - }); - } - - /** - * Parse the project from Location resource. - * - * @param {string} locationName - * A fully-qualified path representing Location resource. - * @returns {string} A string representing the project. - */ - matchProjectFromLocationName(locationName: string) { - return this.pathTemplates.locationPathTemplate.match(locationName).project; - } - - /** - * Parse the location from Location resource. - * - * @param {string} locationName - * A fully-qualified path representing Location resource. - * @returns {string} A string representing the location. - */ - matchLocationFromLocationName(locationName: string) { - return this.pathTemplates.locationPathTemplate.match(locationName).location; - } - - /** - * Terminate the gRPC channel and close the client. - * - * The client will no longer be usable and all future behavior is undefined. - * @returns {Promise} A promise that resolves when the client is closed. - */ - close(): Promise { - if (this.translationServiceStub && !this._terminated) { - return this.translationServiceStub.then(stub => { - this._terminated = true; - stub.close(); - this.operationsClient.close(); - }); - } - return Promise.resolve(); - } -} diff --git a/owl-bot-staging/v3/src/v3/translation_service_client_config.json b/owl-bot-staging/v3/src/v3/translation_service_client_config.json deleted file mode 100644 index d17bfe2c..00000000 --- a/owl-bot-staging/v3/src/v3/translation_service_client_config.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "interfaces": { - "google.cloud.translation.v3.TranslationService": { - "retry_codes": { - "non_idempotent": [], - "idempotent": [ - "DEADLINE_EXCEEDED", - "UNAVAILABLE" - ] - }, - "retry_params": { - "default": { - "initial_retry_delay_millis": 100, - "retry_delay_multiplier": 1.3, - "max_retry_delay_millis": 60000, - "initial_rpc_timeout_millis": 60000, - "rpc_timeout_multiplier": 1, - "max_rpc_timeout_millis": 60000, - "total_timeout_millis": 600000 - } - }, - "methods": { - "TranslateText": { - "timeout_millis": 600000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - }, - "DetectLanguage": { - "timeout_millis": 600000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - }, - "GetSupportedLanguages": { - "timeout_millis": 600000, - "retry_codes_name": "idempotent", - "retry_params_name": "default" - }, - "TranslateDocument": { - "timeout_millis": 600000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - }, - "BatchTranslateText": { - "timeout_millis": 600000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - }, - "BatchTranslateDocument": { - "timeout_millis": 600000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - }, - "CreateGlossary": { - "timeout_millis": 600000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - }, - "ListGlossaries": { - "timeout_millis": 600000, - "retry_codes_name": "idempotent", - "retry_params_name": "default" - }, - "GetGlossary": { - "timeout_millis": 600000, - "retry_codes_name": "idempotent", - "retry_params_name": "default" - }, - "DeleteGlossary": { - "timeout_millis": 600000, - "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } - } - } -} diff --git a/owl-bot-staging/v3/src/v3/translation_service_proto_list.json b/owl-bot-staging/v3/src/v3/translation_service_proto_list.json deleted file mode 100644 index 21e41c10..00000000 --- a/owl-bot-staging/v3/src/v3/translation_service_proto_list.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - "../../protos/google/cloud/translate/v3/translation_service.proto" -] diff --git a/owl-bot-staging/v3/system-test/fixtures/sample/src/index.js b/owl-bot-staging/v3/system-test/fixtures/sample/src/index.js deleted file mode 100644 index ffce988e..00000000 --- a/owl-bot-staging/v3/system-test/fixtures/sample/src/index.js +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - -/* eslint-disable node/no-missing-require, no-unused-vars */ -const translation = require('@google-cloud/translate'); - -function main() { - const translationServiceClient = new translation.TranslationServiceClient(); -} - -main(); diff --git a/owl-bot-staging/v3/system-test/fixtures/sample/src/index.ts b/owl-bot-staging/v3/system-test/fixtures/sample/src/index.ts deleted file mode 100644 index 38feffe8..00000000 --- a/owl-bot-staging/v3/system-test/fixtures/sample/src/index.ts +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - -import {TranslationServiceClient} from '@google-cloud/translate'; - -// check that the client class type name can be used -function doStuffWithTranslationServiceClient(client: TranslationServiceClient) { - client.close(); -} - -function main() { - // check that the client instance can be created - const translationServiceClient = new TranslationServiceClient(); - doStuffWithTranslationServiceClient(translationServiceClient); -} - -main(); diff --git a/owl-bot-staging/v3/system-test/install.ts b/owl-bot-staging/v3/system-test/install.ts deleted file mode 100644 index 8ec45222..00000000 --- a/owl-bot-staging/v3/system-test/install.ts +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - -import { packNTest } from 'pack-n-play'; -import { readFileSync } from 'fs'; -import { describe, it } from 'mocha'; - -describe('📦 pack-n-play test', () => { - - 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() - } - }; - await packNTest(options); - }); - - it('JavaScript code', async function() { - this.timeout(300000); - const options = { - packageDir: process.cwd(), - sample: { - description: 'JavaScript user can use the library', - ts: readFileSync('./system-test/fixtures/sample/src/index.js').toString() - } - }; - await packNTest(options); - }); - -}); diff --git a/owl-bot-staging/v3/test/gapic_translation_service_v3.ts b/owl-bot-staging/v3/test/gapic_translation_service_v3.ts deleted file mode 100644 index 06b2b498..00000000 --- a/owl-bot-staging/v3/test/gapic_translation_service_v3.ts +++ /dev/null @@ -1,1569 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - -import * as protos from '../protos/protos'; -import * as assert from 'assert'; -import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import { describe, it } from 'mocha'; -import * as translationserviceModule from '../src'; - -import {PassThrough} from 'stream'; - -import {protobuf, LROperation, operationsProtos} from 'google-gax'; - -function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; -} - -function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); -} - -function 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 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]); - } - } - 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(); }); - } - return sinon.stub().returns(mockStream); -} - -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); -} - -describe('v3.TranslationServiceClient', () => { - it('has servicePath', () => { - const servicePath = translationserviceModule.v3.TranslationServiceClient.servicePath; - assert(servicePath); - }); - - it('has apiEndpoint', () => { - const apiEndpoint = translationserviceModule.v3.TranslationServiceClient.apiEndpoint; - assert(apiEndpoint); - }); - - it('has port', () => { - const port = translationserviceModule.v3.TranslationServiceClient.port; - assert(port); - assert(typeof port === 'number'); - }); - - it('should create a client with no option', () => { - const client = new translationserviceModule.v3.TranslationServiceClient(); - assert(client); - }); - - it('should create a client with gRPC fallback', () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - fallback: true, - }); - assert(client); - }); - - it('has initialize method and supports deferred initialization', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.translationServiceStub, undefined); - await client.initialize(); - assert(client.translationServiceStub); - }); - - it('has close method for the initialized client', done => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - assert(client.translationServiceStub); - client.close().then(() => { - done(); - }); - }); - - it('has close method for the non-initialized client', done => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.translationServiceStub, undefined); - client.close().then(() => { - done(); - }); - }); - - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new translationserviceModule.v3.TranslationServiceClient({ - 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 translationserviceModule.v3.TranslationServiceClient({ - 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('translateText', () => { - it('invokes translateText without error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateTextRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateTextResponse()); - client.innerApiCalls.translateText = stubSimpleCall(expectedResponse); - const [response] = await client.translateText(request); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.translateText as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes translateText without error using callback', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateTextRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateTextResponse()); - client.innerApiCalls.translateText = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.translateText( - request, - (err?: Error|null, result?: protos.google.cloud.translation.v3.ITranslateTextResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.translateText as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); - - it('invokes translateText with error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateTextRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.translateText = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.translateText(request), expectedError); - assert((client.innerApiCalls.translateText as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes translateText with closed client', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateTextRequest()); - request.parent = ''; - const expectedError = new Error('The client has already been closed.'); - client.close(); - await assert.rejects(client.translateText(request), expectedError); - }); - }); - - describe('detectLanguage', () => { - it('invokes detectLanguage without error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.DetectLanguageRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3.DetectLanguageResponse()); - client.innerApiCalls.detectLanguage = stubSimpleCall(expectedResponse); - const [response] = await client.detectLanguage(request); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.detectLanguage as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes detectLanguage without error using callback', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.DetectLanguageRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3.DetectLanguageResponse()); - client.innerApiCalls.detectLanguage = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.detectLanguage( - request, - (err?: Error|null, result?: protos.google.cloud.translation.v3.IDetectLanguageResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.detectLanguage as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); - - it('invokes detectLanguage with error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.DetectLanguageRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.detectLanguage = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.detectLanguage(request), expectedError); - assert((client.innerApiCalls.detectLanguage as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes detectLanguage with closed client', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.DetectLanguageRequest()); - request.parent = ''; - const expectedError = new Error('The client has already been closed.'); - client.close(); - await assert.rejects(client.detectLanguage(request), expectedError); - }); - }); - - describe('getSupportedLanguages', () => { - it('invokes getSupportedLanguages without error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.GetSupportedLanguagesRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3.SupportedLanguages()); - client.innerApiCalls.getSupportedLanguages = stubSimpleCall(expectedResponse); - const [response] = await client.getSupportedLanguages(request); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.getSupportedLanguages as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes getSupportedLanguages without error using callback', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.GetSupportedLanguagesRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3.SupportedLanguages()); - client.innerApiCalls.getSupportedLanguages = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getSupportedLanguages( - request, - (err?: Error|null, result?: protos.google.cloud.translation.v3.ISupportedLanguages|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.getSupportedLanguages as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); - - it('invokes getSupportedLanguages with error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.GetSupportedLanguagesRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.getSupportedLanguages = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getSupportedLanguages(request), expectedError); - assert((client.innerApiCalls.getSupportedLanguages as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes getSupportedLanguages with closed client', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.GetSupportedLanguagesRequest()); - request.parent = ''; - const expectedError = new Error('The client has already been closed.'); - client.close(); - await assert.rejects(client.getSupportedLanguages(request), expectedError); - }); - }); - - describe('translateDocument', () => { - it('invokes translateDocument without error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateDocumentRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateDocumentResponse()); - client.innerApiCalls.translateDocument = stubSimpleCall(expectedResponse); - const [response] = await client.translateDocument(request); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.translateDocument as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes translateDocument without error using callback', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateDocumentRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateDocumentResponse()); - client.innerApiCalls.translateDocument = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.translateDocument( - request, - (err?: Error|null, result?: protos.google.cloud.translation.v3.ITranslateDocumentResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.translateDocument as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); - - it('invokes translateDocument with error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateDocumentRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.translateDocument = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.translateDocument(request), expectedError); - assert((client.innerApiCalls.translateDocument as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes translateDocument with closed client', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.TranslateDocumentRequest()); - request.parent = ''; - const expectedError = new Error('The client has already been closed.'); - client.close(); - await assert.rejects(client.translateDocument(request), expectedError); - }); - }); - - describe('getGlossary', () => { - it('invokes getGlossary without error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.GetGlossaryRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()); - client.innerApiCalls.getGlossary = stubSimpleCall(expectedResponse); - const [response] = await client.getGlossary(request); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.getGlossary as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes getGlossary without error using callback', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.GetGlossaryRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()); - client.innerApiCalls.getGlossary = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getGlossary( - request, - (err?: Error|null, result?: protos.google.cloud.translation.v3.IGlossary|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.getGlossary as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); - - it('invokes getGlossary with error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.GetGlossaryRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.getGlossary = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getGlossary(request), expectedError); - assert((client.innerApiCalls.getGlossary as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes getGlossary with closed client', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.GetGlossaryRequest()); - request.name = ''; - const expectedError = new Error('The client has already been closed.'); - client.close(); - await assert.rejects(client.getGlossary(request), expectedError); - }); - }); - - describe('batchTranslateText', () => { - it('invokes batchTranslateText without error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.BatchTranslateTextRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); - client.innerApiCalls.batchTranslateText = stubLongRunningCall(expectedResponse); - const [operation] = await client.batchTranslateText(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.batchTranslateText as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes batchTranslateText without error using callback', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.BatchTranslateTextRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); - client.innerApiCalls.batchTranslateText = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.batchTranslateText( - 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); - assert((client.innerApiCalls.batchTranslateText as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); - - it('invokes batchTranslateText with call error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.BatchTranslateTextRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.batchTranslateText = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.batchTranslateText(request), expectedError); - assert((client.innerApiCalls.batchTranslateText as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes batchTranslateText with LRO error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.BatchTranslateTextRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.batchTranslateText = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.batchTranslateText(request); - await assert.rejects(operation.promise(), expectedError); - assert((client.innerApiCalls.batchTranslateText as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes checkBatchTranslateTextProgress without error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - 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.checkBatchTranslateTextProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); - - it('invokes checkBatchTranslateTextProgress with error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkBatchTranslateTextProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); - }); - - describe('batchTranslateDocument', () => { - it('invokes batchTranslateDocument without error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.BatchTranslateDocumentRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); - client.innerApiCalls.batchTranslateDocument = stubLongRunningCall(expectedResponse); - const [operation] = await client.batchTranslateDocument(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.batchTranslateDocument as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes batchTranslateDocument without error using callback', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.BatchTranslateDocumentRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); - client.innerApiCalls.batchTranslateDocument = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.batchTranslateDocument( - 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); - assert((client.innerApiCalls.batchTranslateDocument as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); - - it('invokes batchTranslateDocument with call error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.BatchTranslateDocumentRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.batchTranslateDocument = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.batchTranslateDocument(request), expectedError); - assert((client.innerApiCalls.batchTranslateDocument as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes batchTranslateDocument with LRO error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.BatchTranslateDocumentRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.batchTranslateDocument = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.batchTranslateDocument(request); - await assert.rejects(operation.promise(), expectedError); - assert((client.innerApiCalls.batchTranslateDocument as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes checkBatchTranslateDocumentProgress without error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - 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.checkBatchTranslateDocumentProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); - - it('invokes checkBatchTranslateDocumentProgress with error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkBatchTranslateDocumentProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); - }); - - describe('createGlossary', () => { - it('invokes createGlossary without error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.CreateGlossaryRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); - client.innerApiCalls.createGlossary = stubLongRunningCall(expectedResponse); - const [operation] = await client.createGlossary(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.createGlossary as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes createGlossary without error using callback', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.CreateGlossaryRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); - client.innerApiCalls.createGlossary = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.createGlossary( - 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); - assert((client.innerApiCalls.createGlossary as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); - - it('invokes createGlossary with call error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.CreateGlossaryRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.createGlossary = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.createGlossary(request), expectedError); - assert((client.innerApiCalls.createGlossary as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes createGlossary with LRO error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.CreateGlossaryRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.createGlossary = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.createGlossary(request); - await assert.rejects(operation.promise(), expectedError); - assert((client.innerApiCalls.createGlossary as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes checkCreateGlossaryProgress without error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - 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.checkCreateGlossaryProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); - - it('invokes checkCreateGlossaryProgress with error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkCreateGlossaryProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); - }); - - describe('deleteGlossary', () => { - it('invokes deleteGlossary without error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.DeleteGlossaryRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); - client.innerApiCalls.deleteGlossary = stubLongRunningCall(expectedResponse); - const [operation] = await client.deleteGlossary(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.deleteGlossary as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes deleteGlossary without error using callback', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.DeleteGlossaryRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); - client.innerApiCalls.deleteGlossary = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.deleteGlossary( - 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); - assert((client.innerApiCalls.deleteGlossary as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); - - it('invokes deleteGlossary with call error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.DeleteGlossaryRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.deleteGlossary = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.deleteGlossary(request), expectedError); - assert((client.innerApiCalls.deleteGlossary as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes deleteGlossary with LRO error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.DeleteGlossaryRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.deleteGlossary = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.deleteGlossary(request); - await assert.rejects(operation.promise(), expectedError); - assert((client.innerApiCalls.deleteGlossary as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes checkDeleteGlossaryProgress without error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - 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.checkDeleteGlossaryProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); - - it('invokes checkDeleteGlossaryProgress with error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkDeleteGlossaryProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); - }); - - describe('listGlossaries', () => { - it('invokes listGlossaries without error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.ListGlossariesRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), - generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), - generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), - ]; - client.innerApiCalls.listGlossaries = stubSimpleCall(expectedResponse); - const [response] = await client.listGlossaries(request); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.listGlossaries as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes listGlossaries without error using callback', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.ListGlossariesRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), - generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), - generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), - ]; - client.innerApiCalls.listGlossaries = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listGlossaries( - request, - (err?: Error|null, result?: protos.google.cloud.translation.v3.IGlossary[]|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.listGlossaries as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); - - it('invokes listGlossaries with error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.ListGlossariesRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.listGlossaries = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.listGlossaries(request), expectedError); - assert((client.innerApiCalls.listGlossaries as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes listGlossariesStream without error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.ListGlossariesRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), - generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), - generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), - ]; - client.descriptors.page.listGlossaries.createStream = stubPageStreamingCall(expectedResponse); - const stream = client.listGlossariesStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.translation.v3.Glossary[] = []; - stream.on('data', (response: protos.google.cloud.translation.v3.Glossary) => { - 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.listGlossaries.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listGlossaries, request)); - assert.strictEqual( - (client.descriptors.page.listGlossaries.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams - ); - }); - - it('invokes listGlossariesStream with error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.ListGlossariesRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedError = new Error('expected'); - client.descriptors.page.listGlossaries.createStream = stubPageStreamingCall(undefined, expectedError); - const stream = client.listGlossariesStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.translation.v3.Glossary[] = []; - stream.on('data', (response: protos.google.cloud.translation.v3.Glossary) => { - responses.push(response); - }); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - assert((client.descriptors.page.listGlossaries.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listGlossaries, request)); - assert.strictEqual( - (client.descriptors.page.listGlossaries.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams - ); - }); - - it('uses async iteration with listGlossaries without error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.ListGlossariesRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), - generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), - generateSampleMessage(new protos.google.cloud.translation.v3.Glossary()), - ]; - client.descriptors.page.listGlossaries.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: protos.google.cloud.translation.v3.IGlossary[] = []; - const iterable = client.listGlossariesAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.descriptors.page.listGlossaries.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert.strictEqual( - (client.descriptors.page.listGlossaries.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams - ); - }); - - it('uses async iteration with listGlossaries with error', async () => { - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3.ListGlossariesRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent=";const expectedError = new Error('expected'); - client.descriptors.page.listGlossaries.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listGlossariesAsync(request); - await assert.rejects(async () => { - const responses: protos.google.cloud.translation.v3.IGlossary[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.descriptors.page.listGlossaries.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert.strictEqual( - (client.descriptors.page.listGlossaries.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams - ); - }); - }); - - describe('Path templates', () => { - - describe('glossary', () => { - const fakePath = "/rendered/path/glossary"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - glossary: "glossaryValue", - }; - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - client.pathTemplates.glossaryPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.glossaryPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('glossaryPath', () => { - const result = client.glossaryPath("projectValue", "locationValue", "glossaryValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.glossaryPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromGlossaryName', () => { - const result = client.matchProjectFromGlossaryName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.glossaryPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromGlossaryName', () => { - const result = client.matchLocationFromGlossaryName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.glossaryPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchGlossaryFromGlossaryName', () => { - const result = client.matchGlossaryFromGlossaryName(fakePath); - assert.strictEqual(result, "glossaryValue"); - assert((client.pathTemplates.glossaryPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); - - describe('location', () => { - const fakePath = "/rendered/path/location"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - }; - const client = new translationserviceModule.v3.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - 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)); - }); - }); - }); -}); diff --git a/owl-bot-staging/v3/tsconfig.json b/owl-bot-staging/v3/tsconfig.json deleted file mode 100644 index c78f1c88..00000000 --- a/owl-bot-staging/v3/tsconfig.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "extends": "./node_modules/gts/tsconfig-google.json", - "compilerOptions": { - "rootDir": ".", - "outDir": "build", - "resolveJsonModule": true, - "lib": [ - "es2018", - "dom" - ] - }, - "include": [ - "src/*.ts", - "src/**/*.ts", - "test/*.ts", - "test/**/*.ts", - "system-test/*.ts" - ] -} diff --git a/owl-bot-staging/v3/webpack.config.js b/owl-bot-staging/v3/webpack.config.js deleted file mode 100644 index 3504dead..00000000 --- a/owl-bot-staging/v3/webpack.config.js +++ /dev/null @@ -1,64 +0,0 @@ -// 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. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -const path = require('path'); - -module.exports = { - entry: './src/index.ts', - output: { - library: 'TranslationService', - filename: './translation-service.js', - }, - node: { - child_process: 'empty', - fs: 'empty', - crypto: 'empty', - }, - resolve: { - alias: { - '../../../package.json': path.resolve(__dirname, 'package.json'), - }, - extensions: ['.js', '.json', '.ts'], - }, - module: { - rules: [ - { - test: /\.tsx?$/, - use: 'ts-loader', - exclude: /node_modules/ - }, - { - test: /node_modules[\\/]@grpc[\\/]grpc-js/, - use: 'null-loader' - }, - { - test: /node_modules[\\/]grpc/, - use: 'null-loader' - }, - { - test: /node_modules[\\/]retry-request/, - use: 'null-loader' - }, - { - test: /node_modules[\\/]https?-proxy-agent/, - use: 'null-loader' - }, - { - test: /node_modules[\\/]gtoken/, - use: 'null-loader' - }, - ], - }, - mode: 'production', -}; diff --git a/owl-bot-staging/v3beta1/.eslintignore b/owl-bot-staging/v3beta1/.eslintignore deleted file mode 100644 index cfc348ec..00000000 --- a/owl-bot-staging/v3beta1/.eslintignore +++ /dev/null @@ -1,7 +0,0 @@ -**/node_modules -**/.coverage -build/ -docs/ -protos/ -system-test/ -samples/generated/ diff --git a/owl-bot-staging/v3beta1/.eslintrc.json b/owl-bot-staging/v3beta1/.eslintrc.json deleted file mode 100644 index 78215349..00000000 --- a/owl-bot-staging/v3beta1/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./node_modules/gts" -} diff --git a/owl-bot-staging/v3beta1/.gitignore b/owl-bot-staging/v3beta1/.gitignore deleted file mode 100644 index 5d32b237..00000000 --- a/owl-bot-staging/v3beta1/.gitignore +++ /dev/null @@ -1,14 +0,0 @@ -**/*.log -**/node_modules -.coverage -coverage -.nyc_output -docs/ -out/ -build/ -system-test/secrets.js -system-test/*key.json -*.lock -.DS_Store -package-lock.json -__pycache__ diff --git a/owl-bot-staging/v3beta1/.jsdoc.js b/owl-bot-staging/v3beta1/.jsdoc.js deleted file mode 100644 index 2f0f785e..00000000 --- a/owl-bot-staging/v3beta1/.jsdoc.js +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - -'use strict'; - -module.exports = { - opts: { - readme: './README.md', - package: './package.json', - template: './node_modules/jsdoc-fresh', - recurse: true, - verbose: true, - destination: './docs/' - }, - plugins: [ - 'plugins/markdown', - 'jsdoc-region-tag' - ], - source: { - excludePattern: '(^|\\/|\\\\)[._]', - include: [ - 'build/src', - 'protos' - ], - includePattern: '\\.js$' - }, - templates: { - copyright: 'Copyright 2022 Google LLC', - includeDate: false, - sourceFiles: false, - systemName: '@google-cloud/translate', - theme: 'lumen', - default: { - outputSourceFiles: false - } - }, - markdown: { - idInHeadings: true - } -}; diff --git a/owl-bot-staging/v3beta1/.mocharc.js b/owl-bot-staging/v3beta1/.mocharc.js deleted file mode 100644 index 481c522b..00000000 --- a/owl-bot-staging/v3beta1/.mocharc.js +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - -const config = { - "enable-source-maps": true, - "throw-deprecation": true, - "timeout": 10000 -} -if (process.env.MOCHA_THROW_DEPRECATION === 'false') { - delete config['throw-deprecation']; -} -if (process.env.MOCHA_REPORTER) { - config.reporter = process.env.MOCHA_REPORTER; -} -if (process.env.MOCHA_REPORTER_OUTPUT) { - config['reporter-option'] = `output=${process.env.MOCHA_REPORTER_OUTPUT}`; -} -module.exports = config diff --git a/owl-bot-staging/v3beta1/.prettierrc.js b/owl-bot-staging/v3beta1/.prettierrc.js deleted file mode 100644 index 494e1478..00000000 --- a/owl-bot-staging/v3beta1/.prettierrc.js +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - -module.exports = { - ...require('gts/.prettierrc.json') -} diff --git a/owl-bot-staging/v3beta1/README.md b/owl-bot-staging/v3beta1/README.md deleted file mode 100644 index 93a92542..00000000 --- a/owl-bot-staging/v3beta1/README.md +++ /dev/null @@ -1 +0,0 @@ -Translation: Nodejs Client diff --git a/owl-bot-staging/v3beta1/linkinator.config.json b/owl-bot-staging/v3beta1/linkinator.config.json deleted file mode 100644 index befd23c8..00000000 --- a/owl-bot-staging/v3beta1/linkinator.config.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "recurse": true, - "skip": [ - "https://codecov.io/gh/googleapis/", - "www.googleapis.com", - "img.shields.io", - "https://console.cloud.google.com/cloudshell", - "https://support.google.com" - ], - "silent": true, - "concurrency": 5, - "retry": true, - "retryErrors": true, - "retryErrorsCount": 5, - "retryErrorsJitter": 3000 -} diff --git a/owl-bot-staging/v3beta1/package.json b/owl-bot-staging/v3beta1/package.json deleted file mode 100644 index 91e27cd6..00000000 --- a/owl-bot-staging/v3beta1/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "@google-cloud/translate", - "version": "0.1.0", - "description": "Translation client for Node.js", - "repository": "googleapis/nodejs-translation", - "license": "Apache-2.0", - "author": "Google LLC", - "main": "build/src/index.js", - "files": [ - "build/src", - "build/protos" - ], - "keywords": [ - "google apis client", - "google api client", - "google apis", - "google api", - "google", - "google cloud platform", - "google cloud", - "cloud", - "google translation", - "translation", - "translation service" - ], - "scripts": { - "clean": "gts clean", - "compile": "tsc -p . && cp -r protos build/", - "compile-protos": "compileProtos src", - "docs": "jsdoc -c .jsdoc.js", - "predocs-test": "npm run docs", - "docs-test": "linkinator docs", - "fix": "gts fix", - "lint": "gts check", - "prepare": "npm run compile-protos && npm run compile", - "system-test": "c8 mocha build/system-test", - "test": "c8 mocha build/test" - }, - "dependencies": { - "google-gax": "^3.1.1" - }, - "devDependencies": { - "@types/mocha": "^9.1.0", - "@types/node": "^16.0.0", - "@types/sinon": "^10.0.8", - "c8": "^7.11.0", - "gts": "^3.1.0", - "jsdoc": "^3.6.7", - "jsdoc-fresh": "^1.1.1", - "jsdoc-region-tag": "^1.3.1", - "linkinator": "^3.0.0", - "mocha": "^9.1.4", - "null-loader": "^4.0.1", - "pack-n-play": "^1.0.0-2", - "sinon": "^13.0.0", - "ts-loader": "^9.2.6", - "typescript": "^4.5.5", - "webpack": "^5.67.0", - "webpack-cli": "^4.9.1" - }, - "engines": { - "node": ">=v12" - } -} diff --git a/owl-bot-staging/v3beta1/protos/google/cloud/translate/v3beta1/translation_service.proto b/owl-bot-staging/v3beta1/protos/google/cloud/translate/v3beta1/translation_service.proto deleted file mode 100644 index 362d3ef3..00000000 --- a/owl-bot-staging/v3beta1/protos/google/cloud/translate/v3beta1/translation_service.proto +++ /dev/null @@ -1,1450 +0,0 @@ -// 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. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.cloud.translation.v3beta1; - -import "google/api/annotations.proto"; -import "google/api/client.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/longrunning/operations.proto"; -import "google/protobuf/timestamp.proto"; -import "google/rpc/status.proto"; - -option cc_enable_arenas = true; -option csharp_namespace = "Google.Cloud.Translate.V3Beta1"; -option go_package = "google.golang.org/genproto/googleapis/cloud/translate/v3beta1;translate"; -option java_multiple_files = true; -option java_outer_classname = "TranslationServiceProto"; -option java_package = "com.google.cloud.translate.v3beta1"; -option php_namespace = "Google\\Cloud\\Translate\\V3beta1"; -option ruby_package = "Google::Cloud::Translate::V3beta1"; - -// Proto file for the Cloud Translation API (v3beta1). - -// Provides natural language translation operations. -service TranslationService { - option (google.api.default_host) = "translate.googleapis.com"; - option (google.api.oauth_scopes) = - "https://www.googleapis.com/auth/cloud-platform," - "https://www.googleapis.com/auth/cloud-translation"; - - // Translates input text and returns translated text. - rpc TranslateText(TranslateTextRequest) returns (TranslateTextResponse) { - option (google.api.http) = { - post: "/v3beta1/{parent=projects/*/locations/*}:translateText" - body: "*" - additional_bindings { - post: "/v3beta1/{parent=projects/*}:translateText" - body: "*" - } - }; - } - - // Detects the language of text within a request. - rpc DetectLanguage(DetectLanguageRequest) returns (DetectLanguageResponse) { - option (google.api.http) = { - post: "/v3beta1/{parent=projects/*/locations/*}:detectLanguage" - body: "*" - additional_bindings { - post: "/v3beta1/{parent=projects/*}:detectLanguage" - body: "*" - } - }; - option (google.api.method_signature) = "parent,model,mime_type"; - } - - // Returns a list of supported languages for translation. - rpc GetSupportedLanguages(GetSupportedLanguagesRequest) - returns (SupportedLanguages) { - option (google.api.http) = { - get: "/v3beta1/{parent=projects/*/locations/*}/supportedLanguages" - additional_bindings { - get: "/v3beta1/{parent=projects/*}/supportedLanguages" - } - }; - option (google.api.method_signature) = "parent,display_language_code,model"; - } - - // Translates documents in synchronous mode. - rpc TranslateDocument(TranslateDocumentRequest) - returns (TranslateDocumentResponse) { - option (google.api.http) = { - post: "/v3beta1/{parent=projects/*/locations/*}:translateDocument" - body: "*" - }; - } - - // Translates a large volume of text in asynchronous batch mode. - // This function provides real-time output as the inputs are being processed. - // If caller cancels a request, the partial results (for an input file, it's - // all or nothing) may still be available on the specified output location. - // - // This call returns immediately and you can - // use google.longrunning.Operation.name to poll the status of the call. - rpc BatchTranslateText(BatchTranslateTextRequest) - returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v3beta1/{parent=projects/*/locations/*}:batchTranslateText" - body: "*" - }; - option (google.longrunning.operation_info) = { - response_type: "BatchTranslateResponse" - metadata_type: "BatchTranslateMetadata" - }; - } - - // Translates a large volume of documents in asynchronous batch mode. - // This function provides real-time output as the inputs are being processed. - // If caller cancels a request, the partial results (for an input file, it's - // all or nothing) may still be available on the specified output location. - // - // This call returns immediately and you can use - // google.longrunning.Operation.name to poll the status of the call. - rpc BatchTranslateDocument(BatchTranslateDocumentRequest) - returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v3beta1/{parent=projects/*/locations/*}:batchTranslateDocument" - body: "*" - }; - option (google.api.method_signature) = - "parent,source_language_code,target_language_codes,input_configs,output_config"; - option (google.longrunning.operation_info) = { - response_type: "BatchTranslateDocumentResponse" - metadata_type: "BatchTranslateDocumentMetadata" - }; - } - - // Creates a glossary and returns the long-running operation. Returns - // NOT_FOUND, if the project doesn't exist. - rpc CreateGlossary(CreateGlossaryRequest) - returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v3beta1/{parent=projects/*/locations/*}/glossaries" - body: "glossary" - }; - option (google.api.method_signature) = "parent,glossary"; - option (google.longrunning.operation_info) = { - response_type: "Glossary" - metadata_type: "CreateGlossaryMetadata" - }; - } - - // Lists glossaries in a project. Returns NOT_FOUND, if the project doesn't - // exist. - rpc ListGlossaries(ListGlossariesRequest) returns (ListGlossariesResponse) { - option (google.api.http) = { - get: "/v3beta1/{parent=projects/*/locations/*}/glossaries" - }; - option (google.api.method_signature) = "parent,filter"; - } - - // Gets a glossary. Returns NOT_FOUND, if the glossary doesn't - // exist. - rpc GetGlossary(GetGlossaryRequest) returns (Glossary) { - option (google.api.http) = { - get: "/v3beta1/{name=projects/*/locations/*/glossaries/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Deletes a glossary, or cancels glossary construction - // if the glossary isn't created yet. - // Returns NOT_FOUND, if the glossary doesn't exist. - rpc DeleteGlossary(DeleteGlossaryRequest) - returns (google.longrunning.Operation) { - option (google.api.http) = { - delete: "/v3beta1/{name=projects/*/locations/*/glossaries/*}" - }; - option (google.api.method_signature) = "name"; - option (google.longrunning.operation_info) = { - response_type: "DeleteGlossaryResponse" - metadata_type: "DeleteGlossaryMetadata" - }; - } -} - -// Configures which glossary should be used for a specific target language, -// and defines options for applying that glossary. -message TranslateTextGlossaryConfig { - // Required. Specifies the glossary used for this translation. Use - // this format: projects/*/locations/*/glossaries/* - string glossary = 1 [(google.api.field_behavior) = REQUIRED]; - - // Optional. Indicates match is case-insensitive. - // Default value is false if missing. - bool ignore_case = 2 [(google.api.field_behavior) = OPTIONAL]; -} - -// The request message for synchronous translation. -message TranslateTextRequest { - // Required. The content of the input in string format. - // We recommend the total content be less than 30k codepoints. The max length - // of this field is 1024. - // Use BatchTranslateText for larger text. - repeated string contents = 1 [(google.api.field_behavior) = REQUIRED]; - - // Optional. The format of the source text, for example, "text/html", - // "text/plain". If left blank, the MIME type defaults to "text/html". - string mime_type = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The BCP-47 language code of the input text if - // known, for example, "en-US" or "sr-Latn". Supported language codes are - // listed in Language Support. If the source language isn't specified, the API - // attempts to identify the source language automatically and returns the - // source language within the response. - string source_language_code = 4 [(google.api.field_behavior) = OPTIONAL]; - - // Required. The BCP-47 language code to use for translation of the input - // text, set to one of the language codes listed in Language Support. - string target_language_code = 5 [(google.api.field_behavior) = REQUIRED]; - - // Required. Project or location to make a call. Must refer to a caller's - // project. - // - // Format: `projects/{project-number-or-id}` or - // `projects/{project-number-or-id}/locations/{location-id}`. - // - // For global calls, use `projects/{project-number-or-id}/locations/global` or - // `projects/{project-number-or-id}`. - // - // Non-global location is required for requests using AutoML models or - // custom glossaries. - // - // Models and glossaries must be within the same region (have same - // location-id), otherwise an INVALID_ARGUMENT (400) error is returned. - string parent = 8 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // Optional. The `model` type requested for this translation. - // - // The format depends on model type: - // - // - AutoML Translation models: - // `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - // - // - General (built-in) models: - // `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - // - // - // For global (non-regionalized) requests, use `location-id` `global`. - // For example, - // `projects/{project-number-or-id}/locations/global/models/general/nmt`. - // - // If not provided, the default Google model (NMT) will be used - string model = 6 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Glossary to be applied. The glossary must be - // within the same region (have the same location-id) as the model, otherwise - // an INVALID_ARGUMENT (400) error is returned. - TranslateTextGlossaryConfig glossary_config = 7 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The labels with user-defined metadata for the request. - // - // Label keys and values can be no longer than 63 characters - // (Unicode codepoints), can only contain lowercase letters, numeric - // characters, underscores and dashes. International characters are allowed. - // Label values are optional. Label keys must start with a letter. - // - // See https://cloud.google.com/translate/docs/labels for more information. - map labels = 10 [(google.api.field_behavior) = OPTIONAL]; -} - -message TranslateTextResponse { - // Text translation responses with no glossary applied. - // This field has the same length as - // [`contents`][google.cloud.translation.v3beta1.TranslateTextRequest.contents]. - repeated Translation translations = 1; - - // Text translation responses if a glossary is provided in the request. - // This can be the same as - // [`translations`][google.cloud.translation.v3beta1.TranslateTextResponse.translations] - // if no terms apply. This field has the same length as - // [`contents`][google.cloud.translation.v3beta1.TranslateTextRequest.contents]. - repeated Translation glossary_translations = 3; -} - -// A single translation response. -message Translation { - // Text translated into the target language. - // If an error occurs during translation, this field might be excluded from - // the response. - string translated_text = 1; - - // Only present when `model` is present in the request. - // `model` here is normalized to have project number. - // - // For example: - // If the `model` requested in TranslationTextRequest is - // `projects/{project-id}/locations/{location-id}/models/general/nmt` then - // `model` here would be normalized to - // `projects/{project-number}/locations/{location-id}/models/general/nmt`. - string model = 2; - - // The BCP-47 language code of source text in the initial request, detected - // automatically, if no source language was passed within the initial - // request. If the source language was passed, auto-detection of the language - // does not occur and this field is empty. - string detected_language_code = 4; - - // The `glossary_config` used for this translation. - TranslateTextGlossaryConfig glossary_config = 3; -} - -// The request message for language detection. -message DetectLanguageRequest { - // Required. Project or location to make a call. Must refer to a caller's - // project. - // - // Format: `projects/{project-number-or-id}/locations/{location-id}` or - // `projects/{project-number-or-id}`. - // - // For global calls, use `projects/{project-number-or-id}/locations/global` or - // `projects/{project-number-or-id}`. - // - // Only models within the same region (has same location-id) can be used. - // Otherwise an INVALID_ARGUMENT (400) error is returned. - string parent = 5 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // Optional. The language detection model to be used. - // - // Format: - // `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/{model-id}` - // - // Only one language detection model is currently supported: - // `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/default`. - // - // If not specified, the default model is used. - string model = 4 [(google.api.field_behavior) = OPTIONAL]; - - // Required. The source of the document from which to detect the language. - oneof source { - // The content of the input stored as a string. - string content = 1; - } - - // Optional. The format of the source text, for example, "text/html", - // "text/plain". If left blank, the MIME type defaults to "text/html". - string mime_type = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The labels with user-defined metadata for the request. - // - // Label keys and values can be no longer than 63 characters - // (Unicode codepoints), can only contain lowercase letters, numeric - // characters, underscores and dashes. International characters are allowed. - // Label values are optional. Label keys must start with a letter. - // - // See https://cloud.google.com/translate/docs/labels for more information. - map labels = 6 [(google.api.field_behavior) = OPTIONAL]; -} - -// The response message for language detection. -message DetectedLanguage { - // The BCP-47 language code of source content in the request, detected - // automatically. - string language_code = 1; - - // The confidence of the detection result for this language. - float confidence = 2; -} - -// The response message for language detection. -message DetectLanguageResponse { - // A list of detected languages sorted by detection confidence in descending - // order. The most probable language first. - repeated DetectedLanguage languages = 1; -} - -// The request message for discovering supported languages. -message GetSupportedLanguagesRequest { - // Required. Project or location to make a call. Must refer to a caller's - // project. - // - // Format: `projects/{project-number-or-id}` or - // `projects/{project-number-or-id}/locations/{location-id}`. - // - // For global calls, use `projects/{project-number-or-id}/locations/global` or - // `projects/{project-number-or-id}`. - // - // Non-global location is required for AutoML models. - // - // Only models within the same region (have same location-id) can be used, - // otherwise an INVALID_ARGUMENT (400) error is returned. - string parent = 3 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // Optional. The language to use to return localized, human readable names - // of supported languages. If missing, then display names are not returned - // in a response. - string display_language_code = 1 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Get supported languages of this model. - // - // The format depends on model type: - // - // - AutoML Translation models: - // `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - // - // - General (built-in) models: - // `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - // - // - // Returns languages supported by the specified model. - // If missing, we get supported languages of Google general NMT model. - string model = 2 [(google.api.field_behavior) = OPTIONAL]; -} - -// The response message for discovering supported languages. -message SupportedLanguages { - // A list of supported language responses. This list contains an entry - // for each language the Translation API supports. - repeated SupportedLanguage languages = 1; -} - -// A single supported language response corresponds to information related -// to one supported language. -message SupportedLanguage { - // Supported language code, generally consisting of its ISO 639-1 - // identifier, for example, 'en', 'ja'. In certain cases, BCP-47 codes - // including language and region identifiers are returned (for example, - // 'zh-TW' and 'zh-CN') - string language_code = 1; - - // Human readable name of the language localized in the display language - // specified in the request. - string display_name = 2; - - // Can be used as source language. - bool support_source = 3; - - // Can be used as target language. - bool support_target = 4; -} - -// The Google Cloud Storage location for the input content. -message GcsSource { - // Required. Source data URI. For example, `gs://my_bucket/my_object`. - string input_uri = 1 [(google.api.field_behavior) = REQUIRED]; -} - -// Input configuration for BatchTranslateText request. -message InputConfig { - // Optional. Can be "text/plain" or "text/html". - // For `.tsv`, "text/html" is used if mime_type is missing. - // For `.html`, this field must be "text/html" or empty. - // For `.txt`, this field must be "text/plain" or empty. - string mime_type = 1 [(google.api.field_behavior) = OPTIONAL]; - - // Required. Specify the input. - oneof source { - // Required. Google Cloud Storage location for the source input. - // This can be a single file (for example, - // `gs://translation-test/input.tsv`) or a wildcard (for example, - // `gs://translation-test/*`). If a file extension is `.tsv`, it can - // contain either one or two columns. The first column (optional) is the id - // of the text request. If the first column is missing, we use the row - // number (0-based) from the input file as the ID in the output file. The - // second column is the actual text to be - // translated. We recommend each row be <= 10K Unicode codepoints, - // otherwise an error might be returned. - // Note that the input tsv must be RFC 4180 compliant. - // - // You could use https://github.com/Clever/csvlint to check potential - // formatting errors in your tsv file. - // csvlint --delimiter='\t' your_input_file.tsv - // - // The other supported file extensions are `.txt` or `.html`, which is - // treated as a single large chunk of text. - GcsSource gcs_source = 2; - } -} - -// The Google Cloud Storage location for the output content. -message GcsDestination { - // Required. There must be no files under 'output_uri_prefix'. - // 'output_uri_prefix' must end with "/" and start with "gs://", otherwise an - // INVALID_ARGUMENT (400) error is returned. - string output_uri_prefix = 1 [(google.api.field_behavior) = REQUIRED]; -} - -// Output configuration for BatchTranslateText request. -message OutputConfig { - // Required. The destination of output. - oneof destination { - // Google Cloud Storage destination for output content. - // For every single input file (for example, gs://a/b/c.[extension]), we - // generate at most 2 * n output files. (n is the # of target_language_codes - // in the BatchTranslateTextRequest). - // - // Output files (tsv) generated are compliant with RFC 4180 except that - // record delimiters are '\n' instead of '\r\n'. We don't provide any way to - // change record delimiters. - // - // While the input files are being processed, we write/update an index file - // 'index.csv' under 'output_uri_prefix' (for example, - // gs://translation-test/index.csv) The index file is generated/updated as - // new files are being translated. The format is: - // - // input_file,target_language_code,translations_file,errors_file, - // glossary_translations_file,glossary_errors_file - // - // input_file is one file we matched using gcs_source.input_uri. - // target_language_code is provided in the request. - // translations_file contains the translations. (details provided below) - // errors_file contains the errors during processing of the file. (details - // below). Both translations_file and errors_file could be empty - // strings if we have no content to output. - // glossary_translations_file and glossary_errors_file are always empty - // strings if the input_file is tsv. They could also be empty if we have no - // content to output. - // - // Once a row is present in index.csv, the input/output matching never - // changes. Callers should also expect all the content in input_file are - // processed and ready to be consumed (that is, no partial output file is - // written). - // - // Since index.csv will be keeping updated during the process, please make - // sure there is no custom retention policy applied on the output bucket - // that may avoid file updating. - // (https://cloud.google.com/storage/docs/bucket-lock?hl=en#retention-policy) - // - // The format of translations_file (for target language code 'trg') is: - // gs://translation_test/a_b_c_'trg'_translations.[extension] - // - // If the input file extension is tsv, the output has the following - // columns: - // Column 1: ID of the request provided in the input, if it's not - // provided in the input, then the input row number is used (0-based). - // Column 2: source sentence. - // Column 3: translation without applying a glossary. Empty string if there - // is an error. - // Column 4 (only present if a glossary is provided in the request): - // translation after applying the glossary. Empty string if there is an - // error applying the glossary. Could be same string as column 3 if there is - // no glossary applied. - // - // If input file extension is a txt or html, the translation is directly - // written to the output file. If glossary is requested, a separate - // glossary_translations_file has format of - // gs://translation_test/a_b_c_'trg'_glossary_translations.[extension] - // - // The format of errors file (for target language code 'trg') is: - // gs://translation_test/a_b_c_'trg'_errors.[extension] - // - // If the input file extension is tsv, errors_file contains the following: - // Column 1: ID of the request provided in the input, if it's not - // provided in the input, then the input row number is used (0-based). - // Column 2: source sentence. - // Column 3: Error detail for the translation. Could be empty. - // Column 4 (only present if a glossary is provided in the request): - // Error when applying the glossary. - // - // If the input file extension is txt or html, glossary_error_file will be - // generated that contains error details. glossary_error_file has format of - // gs://translation_test/a_b_c_'trg'_glossary_errors.[extension] - GcsDestination gcs_destination = 1; - } -} - -// A document translation request input config. -message DocumentInputConfig { - // Specifies the source for the document's content. - // The input file size should be <= 20MB for - // - application/vnd.openxmlformats-officedocument.wordprocessingml.document - // - application/vnd.openxmlformats-officedocument.presentationml.presentation - // - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - // The input file size should be <= 20MB and the maximum page limit is 20 for - // - application/pdf - oneof source { - // Document's content represented as a stream of bytes. - bytes content = 1; - - // Google Cloud Storage location. This must be a single file. - // For example: gs://example_bucket/example_file.pdf - GcsSource gcs_source = 2; - } - - // Specifies the input document's mime_type. - // - // If not specified it will be determined using the file extension for - // gcs_source provided files. For a file provided through bytes content the - // mime_type must be provided. - // Currently supported mime types are: - // - application/pdf - // - application/vnd.openxmlformats-officedocument.wordprocessingml.document - // - application/vnd.openxmlformats-officedocument.presentationml.presentation - // - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - string mime_type = 4; -} - -// A document translation request output config. -message DocumentOutputConfig { - // A URI destination for the translated document. - // It is optional to provide a destination. If provided the results from - // TranslateDocument will be stored in the destination. - // Whether a destination is provided or not, the translated documents will be - // returned within TranslateDocumentResponse.document_translation and - // TranslateDocumentResponse.glossary_document_translation. - oneof destination { - // Optional. Google Cloud Storage destination for the translation output, - // e.g., `gs://my_bucket/my_directory/`. - // - // The destination directory provided does not have to be empty, but the - // bucket must exist. If a file with the same name as the output file - // already exists in the destination an error will be returned. - // - // For a DocumentInputConfig.contents provided document, the output file - // will have the name "output_[trg]_translations.[ext]", where - // - [trg] corresponds to the translated file's language code, - // - [ext] corresponds to the translated file's extension according to its - // mime type. - // - // - // For a DocumentInputConfig.gcs_uri provided document, the output file will - // have a name according to its URI. For example: an input file with URI: - // "gs://a/b/c.[extension]" stored in a gcs_destination bucket with name - // "my_bucket" will have an output URI: - // "gs://my_bucket/a_b_c_[trg]_translations.[ext]", where - // - [trg] corresponds to the translated file's language code, - // - [ext] corresponds to the translated file's extension according to its - // mime type. - // - // - // If the document was directly provided through the request, then the - // output document will have the format: - // "gs://my_bucket/translated_document_[trg]_translations.[ext], where - // - [trg] corresponds to the translated file's language code, - // - [ext] corresponds to the translated file's extension according to its - // mime type. - // - // If a glossary was provided, then the output URI for the glossary - // translation will be equal to the default output URI but have - // `glossary_translations` instead of `translations`. For the previous - // example, its glossary URI would be: - // "gs://my_bucket/a_b_c_[trg]_glossary_translations.[ext]". - // - // Thus the max number of output files will be 2 (Translated document, - // Glossary translated document). - // - // Callers should expect no partial outputs. If there is any error during - // document translation, no output will be stored in the Cloud Storage - // bucket. - GcsDestination gcs_destination = 1 [(google.api.field_behavior) = OPTIONAL]; - } - - // Optional. Specifies the translated document's mime_type. - // If not specified, the translated file's mime type will be the same as the - // input file's mime type. - // Currently only support the output mime type to be the same as input mime - // type. - // - application/pdf - // - application/vnd.openxmlformats-officedocument.wordprocessingml.document - // - application/vnd.openxmlformats-officedocument.presentationml.presentation - // - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - string mime_type = 3 [(google.api.field_behavior) = OPTIONAL]; -} - -// A document translation request. -message TranslateDocumentRequest { - // Required. Location to make a regional call. - // - // Format: `projects/{project-number-or-id}/locations/{location-id}`. - // - // For global calls, use `projects/{project-number-or-id}/locations/global`. - // - // Non-global location is required for requests using AutoML models or custom - // glossaries. - // - // Models and glossaries must be within the same region (have the same - // location-id), otherwise an INVALID_ARGUMENT (400) error is returned. - string parent = 1 [(google.api.field_behavior) = REQUIRED]; - - // Optional. The BCP-47 language code of the input document if known, for - // example, "en-US" or "sr-Latn". Supported language codes are listed in - // Language Support. If the source language isn't specified, the API attempts - // to identify the source language automatically and returns the source - // language within the response. Source language must be specified if the - // request contains a glossary or a custom model. - string source_language_code = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Required. The BCP-47 language code to use for translation of the input - // document, set to one of the language codes listed in Language Support. - string target_language_code = 3 [(google.api.field_behavior) = REQUIRED]; - - // Required. Input configurations. - DocumentInputConfig document_input_config = 4 - [(google.api.field_behavior) = REQUIRED]; - - // Optional. Output configurations. - // Defines if the output file should be stored within Cloud Storage as well - // as the desired output format. If not provided the translated file will - // only be returned through a byte-stream and its output mime type will be - // the same as the input file's mime type. - DocumentOutputConfig document_output_config = 5 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The `model` type requested for this translation. - // - // The format depends on model type: - // - // - AutoML Translation models: - // `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - // - // - General (built-in) models: - // `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - // - // - // If not provided, the default Google model (NMT) will be used for - // translation. - string model = 6 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Glossary to be applied. The glossary must be within the same - // region (have the same location-id) as the model, otherwise an - // INVALID_ARGUMENT (400) error is returned. - TranslateTextGlossaryConfig glossary_config = 7 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The labels with user-defined metadata for the request. - // - // Label keys and values can be no longer than 63 characters (Unicode - // codepoints), can only contain lowercase letters, numeric characters, - // underscores and dashes. International characters are allowed. Label values - // are optional. Label keys must start with a letter. - // - // See https://cloud.google.com/translate/docs/advanced/labels for more - // information. - map labels = 8 [(google.api.field_behavior) = OPTIONAL]; -} - -// A translated document message. -message DocumentTranslation { - // The array of translated documents. It is expected to be size 1 for now. We - // may produce multiple translated documents in the future for other type of - // file formats. - repeated bytes byte_stream_outputs = 1; - - // The translated document's mime type. - string mime_type = 2; - - // The detected language for the input document. - // If the user did not provide the source language for the input document, - // this field will have the language code automatically detected. If the - // source language was passed, auto-detection of the language does not occur - // and this field is empty. - string detected_language_code = 3; -} - -// A translated document response message. -message TranslateDocumentResponse { - // Translated document. - DocumentTranslation document_translation = 1; - - // The document's translation output if a glossary is provided in the request. - // This can be the same as [TranslateDocumentResponse.document_translation] - // if no glossary terms apply. - DocumentTranslation glossary_document_translation = 2; - - // Only present when 'model' is present in the request. - // 'model' is normalized to have a project number. - // - // For example: - // If the 'model' field in TranslateDocumentRequest is: - // `projects/{project-id}/locations/{location-id}/models/general/nmt` then - // `model` here would be normalized to - // `projects/{project-number}/locations/{location-id}/models/general/nmt`. - string model = 3; - - // The `glossary_config` used for this translation. - TranslateTextGlossaryConfig glossary_config = 4; -} - -// The batch translation request. -message BatchTranslateTextRequest { - // Required. Location to make a call. Must refer to a caller's project. - // - // Format: `projects/{project-number-or-id}/locations/{location-id}`. - // - // The `global` location is not supported for batch translation. - // - // Only AutoML Translation models or glossaries within the same region (have - // the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) - // error is returned. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // Required. Source language code. - string source_language_code = 2 [(google.api.field_behavior) = REQUIRED]; - - // Required. Specify up to 10 language codes here. - repeated string target_language_codes = 3 - [(google.api.field_behavior) = REQUIRED]; - - // Optional. The models to use for translation. Map's key is target language - // code. Map's value is model name. Value can be a built-in general model, - // or an AutoML Translation model. - // - // The value format depends on model type: - // - // - AutoML Translation models: - // `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - // - // - General (built-in) models: - // `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - // - // - // If the map is empty or a specific model is - // not requested for a language pair, then default google model (nmt) is used. - map models = 4 [(google.api.field_behavior) = OPTIONAL]; - - // Required. Input configurations. - // The total number of files matched should be <= 100. - // The total content size should be <= 100M Unicode codepoints. - // The files must use UTF-8 encoding. - repeated InputConfig input_configs = 5 - [(google.api.field_behavior) = REQUIRED]; - - // Required. Output configuration. - // If 2 input configs match to the same file (that is, same input path), - // we don't generate output for duplicate inputs. - OutputConfig output_config = 6 [(google.api.field_behavior) = REQUIRED]; - - // Optional. Glossaries to be applied for translation. - // It's keyed by target language code. - map glossaries = 7 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The labels with user-defined metadata for the request. - // - // Label keys and values can be no longer than 63 characters - // (Unicode codepoints), can only contain lowercase letters, numeric - // characters, underscores and dashes. International characters are allowed. - // Label values are optional. Label keys must start with a letter. - // - // See https://cloud.google.com/translate/docs/labels for more information. - map labels = 9 [(google.api.field_behavior) = OPTIONAL]; -} - -// State metadata for the batch translation operation. -message BatchTranslateMetadata { - // State of the job. - enum State { - // Invalid. - STATE_UNSPECIFIED = 0; - - // Request is being processed. - RUNNING = 1; - - // The batch is processed, and at least one item was successfully - // processed. - SUCCEEDED = 2; - - // The batch is done and no item was successfully processed. - FAILED = 3; - - // Request is in the process of being canceled after caller invoked - // longrunning.Operations.CancelOperation on the request id. - CANCELLING = 4; - - // The batch is done after the user has called the - // longrunning.Operations.CancelOperation. Any records processed before the - // cancel command are output as specified in the request. - CANCELLED = 5; - } - - // The state of the operation. - State state = 1; - - // Number of successfully translated characters so far (Unicode codepoints). - int64 translated_characters = 2; - - // Number of characters that have failed to process so far (Unicode - // codepoints). - int64 failed_characters = 3; - - // Total number of characters (Unicode codepoints). - // This is the total number of codepoints from input files times the number of - // target languages and appears here shortly after the call is submitted. - int64 total_characters = 4; - - // Time when the operation was submitted. - google.protobuf.Timestamp submit_time = 5; -} - -// Stored in the -// [google.longrunning.Operation.response][google.longrunning.Operation.response] -// field returned by BatchTranslateText if at least one sentence is translated -// successfully. -message BatchTranslateResponse { - // Total number of characters (Unicode codepoints). - int64 total_characters = 1; - - // Number of successfully translated characters (Unicode codepoints). - int64 translated_characters = 2; - - // Number of characters that have failed to process (Unicode codepoints). - int64 failed_characters = 3; - - // Time when the operation was submitted. - google.protobuf.Timestamp submit_time = 4; - - // The time when the operation is finished and - // [google.longrunning.Operation.done][google.longrunning.Operation.done] is - // set to true. - google.protobuf.Timestamp end_time = 5; -} - -// Input configuration for glossaries. -message GlossaryInputConfig { - // Required. Specify the input. - oneof source { - // Required. Google Cloud Storage location of glossary data. - // File format is determined based on the filename extension. API returns - // [google.rpc.Code.INVALID_ARGUMENT] for unsupported URI-s and file - // formats. Wildcards are not allowed. This must be a single file in one of - // the following formats: - // - // For unidirectional glossaries: - // - // - TSV/CSV (`.tsv`/`.csv`): 2 column file, tab- or comma-separated. - // The first column is source text. The second column is target text. - // The file must not contain headers. That is, the first row is data, not - // column names. - // - // - TMX (`.tmx`): TMX file with parallel data defining source/target term - // pairs. - // - // For equivalent term sets glossaries: - // - // - CSV (`.csv`): Multi-column CSV file defining equivalent glossary terms - // in multiple languages. The format is defined for Google Translation - // Toolkit and documented in [Use a - // glossary](https://support.google.com/translatortoolkit/answer/6306379?hl=en). - GcsSource gcs_source = 1; - } -} - -// Represents a glossary built from user provided data. -message Glossary { - option (google.api.resource) = { - type: "translate.googleapis.com/Glossary" - pattern: "projects/{project}/locations/{location}/glossaries/{glossary}" - }; - - // Used with unidirectional glossaries. - message LanguageCodePair { - // Required. The BCP-47 language code of the input text, for example, - // "en-US". Expected to be an exact match for GlossaryTerm.language_code. - string source_language_code = 1; - - // Required. The BCP-47 language code for translation output, for example, - // "zh-CN". Expected to be an exact match for GlossaryTerm.language_code. - string target_language_code = 2; - } - - // Used with equivalent term set glossaries. - message LanguageCodesSet { - // The BCP-47 language code(s) for terms defined in the glossary. - // All entries are unique. The list contains at least two entries. - // Expected to be an exact match for GlossaryTerm.language_code. - repeated string language_codes = 1; - } - - // Required. The resource name of the glossary. Glossary names have the form - // `projects/{project-number-or-id}/locations/{location-id}/glossaries/{glossary-id}`. - string name = 1 [(google.api.field_behavior) = REQUIRED]; - - // Languages supported by the glossary. - oneof languages { - // Used with unidirectional glossaries. - LanguageCodePair language_pair = 3; - - // Used with equivalent term set glossaries. - LanguageCodesSet language_codes_set = 4; - } - - // Required. Provides examples to build the glossary from. - // Total glossary must not exceed 10M Unicode codepoints. - GlossaryInputConfig input_config = 5; - - // Output only. The number of entries defined in the glossary. - int32 entry_count = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. When CreateGlossary was called. - google.protobuf.Timestamp submit_time = 7 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. When the glossary creation was finished. - google.protobuf.Timestamp end_time = 8 - [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Request message for CreateGlossary. -message CreateGlossaryRequest { - // Required. The project name. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // Required. The glossary to create. - Glossary glossary = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Request message for GetGlossary. -message GetGlossaryRequest { - // Required. The name of the glossary to retrieve. - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "translate.googleapis.com/Glossary" - } - ]; -} - -// Request message for DeleteGlossary. -message DeleteGlossaryRequest { - // Required. The name of the glossary to delete. - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "translate.googleapis.com/Glossary" - } - ]; -} - -// Request message for ListGlossaries. -message ListGlossariesRequest { - // Required. The name of the project from which to list all of the glossaries. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // Optional. Requested page size. The server may return fewer glossaries than - // requested. If unspecified, the server picks an appropriate default. - int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. A token identifying a page of results the server should return. - // Typically, this is the value of [ListGlossariesResponse.next_page_token] - // returned from the previous call to `ListGlossaries` method. - // The first page is returned if `page_token`is empty or missing. - string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Filter specifying constraints of a list operation. - // Specify the constraint by the format of "key=value", where key must be - // "src" or "tgt", and the value must be a valid language code. - // For multiple restrictions, concatenate them by "AND" (uppercase only), - // such as: "src=en-US AND tgt=zh-CN". Notice that the exact match is used - // here, which means using 'en-US' and 'en' can lead to different results, - // which depends on the language code you used when you create the glossary. - // For the unidirectional glossaries, the "src" and "tgt" add restrictions - // on the source and target language code separately. - // For the equivalent term set glossaries, the "src" and/or "tgt" add - // restrictions on the term set. - // For example: "src=en-US AND tgt=zh-CN" will only pick the unidirectional - // glossaries which exactly match the source language code as "en-US" and the - // target language code "zh-CN", but all equivalent term set glossaries which - // contain "en-US" and "zh-CN" in their language set will be picked. - // If missing, no filtering is performed. - string filter = 4 [(google.api.field_behavior) = OPTIONAL]; -} - -// Response message for ListGlossaries. -message ListGlossariesResponse { - // The list of glossaries for a project. - repeated Glossary glossaries = 1; - - // A token to retrieve a page of results. Pass this value in the - // [ListGlossariesRequest.page_token] field in the subsequent call to - // `ListGlossaries` method to retrieve the next page of results. - string next_page_token = 2; -} - -// Stored in the -// [google.longrunning.Operation.metadata][google.longrunning.Operation.metadata] -// field returned by CreateGlossary. -message CreateGlossaryMetadata { - // Enumerates the possible states that the creation request can be in. - enum State { - // Invalid. - STATE_UNSPECIFIED = 0; - - // Request is being processed. - RUNNING = 1; - - // The glossary was successfully created. - SUCCEEDED = 2; - - // Failed to create the glossary. - FAILED = 3; - - // Request is in the process of being canceled after caller invoked - // longrunning.Operations.CancelOperation on the request id. - CANCELLING = 4; - - // The glossary creation request was successfully canceled. - CANCELLED = 5; - } - - // The name of the glossary that is being created. - string name = 1; - - // The current state of the glossary creation operation. - State state = 2; - - // The time when the operation was submitted to the server. - google.protobuf.Timestamp submit_time = 3; -} - -// Stored in the -// [google.longrunning.Operation.metadata][google.longrunning.Operation.metadata] -// field returned by DeleteGlossary. -message DeleteGlossaryMetadata { - // Enumerates the possible states that the creation request can be in. - enum State { - // Invalid. - STATE_UNSPECIFIED = 0; - - // Request is being processed. - RUNNING = 1; - - // The glossary was successfully deleted. - SUCCEEDED = 2; - - // Failed to delete the glossary. - FAILED = 3; - - // Request is in the process of being canceled after caller invoked - // longrunning.Operations.CancelOperation on the request id. - CANCELLING = 4; - - // The glossary deletion request was successfully canceled. - CANCELLED = 5; - } - - // The name of the glossary that is being deleted. - string name = 1; - - // The current state of the glossary deletion operation. - State state = 2; - - // The time when the operation was submitted to the server. - google.protobuf.Timestamp submit_time = 3; -} - -// Stored in the -// [google.longrunning.Operation.response][google.longrunning.Operation.response] -// field returned by DeleteGlossary. -message DeleteGlossaryResponse { - // The name of the deleted glossary. - string name = 1; - - // The time when the operation was submitted to the server. - google.protobuf.Timestamp submit_time = 2; - - // The time when the glossary deletion is finished and - // [google.longrunning.Operation.done][google.longrunning.Operation.done] is - // set to true. - google.protobuf.Timestamp end_time = 3; -} - -// The BatchTranslateDocument request. -message BatchTranslateDocumentRequest { - // Required. Location to make a regional call. - // - // Format: `projects/{project-number-or-id}/locations/{location-id}`. - // - // The `global` location is not supported for batch translation. - // - // Only AutoML Translation models or glossaries within the same region (have - // the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) - // error is returned. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // Required. The BCP-47 language code of the input document if known, for - // example, "en-US" or "sr-Latn". Supported language codes are listed in - // Language Support (https://cloud.google.com/translate/docs/languages). - string source_language_code = 2 [(google.api.field_behavior) = REQUIRED]; - - // Required. The BCP-47 language code to use for translation of the input - // document. Specify up to 10 language codes here. - repeated string target_language_codes = 3 - [(google.api.field_behavior) = REQUIRED]; - - // Required. Input configurations. - // The total number of files matched should be <= 100. - // The total content size to translate should be <= 100M Unicode codepoints. - // The files must use UTF-8 encoding. - repeated BatchDocumentInputConfig input_configs = 4 - [(google.api.field_behavior) = REQUIRED]; - - // Required. Output configuration. - // If 2 input configs match to the same file (that is, same input path), - // we don't generate output for duplicate inputs. - BatchDocumentOutputConfig output_config = 5 - [(google.api.field_behavior) = REQUIRED]; - - // Optional. The models to use for translation. Map's key is target language - // code. Map's value is the model name. Value can be a built-in general model, - // or an AutoML Translation model. - // - // The value format depends on model type: - // - // - AutoML Translation models: - // `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - // - // - General (built-in) models: - // `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - // - // - // If the map is empty or a specific model is not requested for a language - // pair, then default google model (nmt) is used. - map models = 6 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Glossaries to be applied. It's keyed by target language code. - map glossaries = 7 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. File format conversion map to be applied to all input files. - // Map's key is the original mime_type. Map's value is the target mime_type of - // translated documents. - // - // Supported file format conversion includes: - // - `application/pdf` to - // `application/vnd.openxmlformats-officedocument.wordprocessingml.document` - // - // If nothing specified, output files will be in the same format as the - // original file. - map format_conversions = 8 - [(google.api.field_behavior) = OPTIONAL]; -} - -// Input configuration for BatchTranslateDocument request. -message BatchDocumentInputConfig { - // Specify the input. - oneof source { - // Google Cloud Storage location for the source input. - // This can be a single file (for example, - // `gs://translation-test/input.docx`) or a wildcard (for example, - // `gs://translation-test/*`). - // - // File mime type is determined based on extension. Supported mime type - // includes: - // - `pdf`, application/pdf - // - `docx`, - // application/vnd.openxmlformats-officedocument.wordprocessingml.document - // - `pptx`, - // application/vnd.openxmlformats-officedocument.presentationml.presentation - // - `xlsx`, - // application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - // - // The max file size to support for `.docx`, `.pptx` and `.xlsx` is 100MB. - // The max file size to support for `.pdf` is 1GB and the max page limit is - // 1000 pages. - // The max file size to support for all input documents is 1GB. - GcsSource gcs_source = 1; - } -} - -// Output configuration for BatchTranslateDocument request. -message BatchDocumentOutputConfig { - // The destination of output. The destination directory provided must exist - // and be empty. - oneof destination { - // Google Cloud Storage destination for output content. - // For every single input document (for example, gs://a/b/c.[extension]), we - // generate at most 2 * n output files. (n is the # of target_language_codes - // in the BatchTranslateDocumentRequest). - // - // While the input documents are being processed, we write/update an index - // file `index.csv` under `gcs_destination.output_uri_prefix` (for example, - // gs://translation_output/index.csv) The index file is generated/updated as - // new files are being translated. The format is: - // - // input_document,target_language_code,translation_output,error_output, - // glossary_translation_output,glossary_error_output - // - // `input_document` is one file we matched using gcs_source.input_uri. - // `target_language_code` is provided in the request. - // `translation_output` contains the translations. (details provided below) - // `error_output` contains the error message during processing of the file. - // Both translations_file and errors_file could be empty strings if we have - // no content to output. - // `glossary_translation_output` and `glossary_error_output` are the - // translated output/error when we apply glossaries. They could also be - // empty if we have no content to output. - // - // Once a row is present in index.csv, the input/output matching never - // changes. Callers should also expect all the content in input_file are - // processed and ready to be consumed (that is, no partial output file is - // written). - // - // Since index.csv will be keeping updated during the process, please make - // sure there is no custom retention policy applied on the output bucket - // that may avoid file updating. - // (https://cloud.google.com/storage/docs/bucket-lock?hl=en#retention-policy) - // - // The naming format of translation output files follows (for target - // language code [trg]): `translation_output`: - // gs://translation_output/a_b_c_[trg]_translation.[extension] - // `glossary_translation_output`: - // gs://translation_test/a_b_c_[trg]_glossary_translation.[extension] The - // output document will maintain the same file format as the input document. - // - // The naming format of error output files follows (for target language code - // [trg]): `error_output`: gs://translation_test/a_b_c_[trg]_errors.txt - // `glossary_error_output`: - // gs://translation_test/a_b_c_[trg]_glossary_translation.txt The error - // output is a txt file containing error details. - GcsDestination gcs_destination = 1; - } -} - -// Stored in the -// [google.longrunning.Operation.response][google.longrunning.Operation.response] -// field returned by BatchTranslateDocument if at least one document is -// translated successfully. -message BatchTranslateDocumentResponse { - // Total number of pages to translate in all documents. Documents without - // clear page definition (such as XLSX) are not counted. - int64 total_pages = 1; - - // Number of successfully translated pages in all documents. Documents without - // clear page definition (such as XLSX) are not counted. - int64 translated_pages = 2; - - // Number of pages that failed to process in all documents. Documents without - // clear page definition (such as XLSX) are not counted. - int64 failed_pages = 3; - - // Number of billable pages in documents with clear page definition (such as - // PDF, DOCX, PPTX) - int64 total_billable_pages = 4; - - // Total number of characters (Unicode codepoints) in all documents. - int64 total_characters = 5; - - // Number of successfully translated characters (Unicode codepoints) in all - // documents. - int64 translated_characters = 6; - - // Number of characters that have failed to process (Unicode codepoints) in - // all documents. - int64 failed_characters = 7; - - // Number of billable characters (Unicode codepoints) in documents without - // clear page definition, such as XLSX. - int64 total_billable_characters = 8; - - // Time when the operation was submitted. - google.protobuf.Timestamp submit_time = 9; - - // The time when the operation is finished and - // [google.longrunning.Operation.done][google.longrunning.Operation.done] is - // set to true. - google.protobuf.Timestamp end_time = 10; -} - -// State metadata for the batch translation operation. -message BatchTranslateDocumentMetadata { - // State of the job. - enum State { - // Invalid. - STATE_UNSPECIFIED = 0; - - // Request is being processed. - RUNNING = 1; - - // The batch is processed, and at least one item was successfully processed. - SUCCEEDED = 2; - - // The batch is done and no item was successfully processed. - FAILED = 3; - - // Request is in the process of being canceled after caller invoked - // longrunning.Operations.CancelOperation on the request id. - CANCELLING = 4; - - // The batch is done after the user has called the - // longrunning.Operations.CancelOperation. Any records processed before the - // cancel command are output as specified in the request. - CANCELLED = 5; - } - - // The state of the operation. - State state = 1; - - // Total number of pages to translate in all documents so far. Documents - // without clear page definition (such as XLSX) are not counted. - int64 total_pages = 2; - - // Number of successfully translated pages in all documents so far. Documents - // without clear page definition (such as XLSX) are not counted. - int64 translated_pages = 3; - - // Number of pages that failed to process in all documents so far. Documents - // without clear page definition (such as XLSX) are not counted. - int64 failed_pages = 4; - - // Number of billable pages in documents with clear page definition (such as - // PDF, DOCX, PPTX) so far. - int64 total_billable_pages = 5; - - // Total number of characters (Unicode codepoints) in all documents so far. - int64 total_characters = 6; - - // Number of successfully translated characters (Unicode codepoints) in all - // documents so far. - int64 translated_characters = 7; - - // Number of characters that have failed to process (Unicode codepoints) in - // all documents so far. - int64 failed_characters = 8; - - // Number of billable characters (Unicode codepoints) in documents without - // clear page definition (such as XLSX) so far. - int64 total_billable_characters = 9; - - // Time when the operation was submitted. - google.protobuf.Timestamp submit_time = 10; -} diff --git a/owl-bot-staging/v3beta1/samples/generated/v3beta1/snippet_metadata.google.cloud.translation.v3beta1.json b/owl-bot-staging/v3beta1/samples/generated/v3beta1/snippet_metadata.google.cloud.translation.v3beta1.json deleted file mode 100644 index a9b9e06b..00000000 --- a/owl-bot-staging/v3beta1/samples/generated/v3beta1/snippet_metadata.google.cloud.translation.v3beta1.json +++ /dev/null @@ -1,567 +0,0 @@ -{ - "clientLibrary": { - "name": "nodejs-translation", - "version": "0.1.0", - "language": "TYPESCRIPT", - "apis": [ - { - "id": "google.cloud.translation.v3beta1", - "version": "v3beta1" - } - ] - }, - "snippets": [ - { - "regionTag": "translate_v3beta1_generated_TranslationService_TranslateText_async", - "title": "TranslationService translateText Sample", - "origin": "API_DEFINITION", - "description": " Translates input text and returns translated text.", - "canonical": true, - "file": "translation_service.translate_text.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 114, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "TranslateText", - "fullName": "google.cloud.translation.v3beta1.TranslationService.TranslateText", - "async": true, - "parameters": [ - { - "name": "contents", - "type": "TYPE_STRING[]" - }, - { - "name": "mime_type", - "type": "TYPE_STRING" - }, - { - "name": "source_language_code", - "type": "TYPE_STRING" - }, - { - "name": "target_language_code", - "type": "TYPE_STRING" - }, - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "model", - "type": "TYPE_STRING" - }, - { - "name": "glossary_config", - "type": ".google.cloud.translation.v3beta1.TranslateTextGlossaryConfig" - }, - { - "name": "labels", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.cloud.translation.v3beta1.TranslateTextResponse", - "client": { - "shortName": "TranslationServiceClient", - "fullName": "google.cloud.translation.v3beta1.TranslationServiceClient" - }, - "method": { - "shortName": "TranslateText", - "fullName": "google.cloud.translation.v3beta1.TranslationService.TranslateText", - "service": { - "shortName": "TranslationService", - "fullName": "google.cloud.translation.v3beta1.TranslationService" - } - } - } - }, - { - "regionTag": "translate_v3beta1_generated_TranslationService_DetectLanguage_async", - "title": "TranslationService detectLanguage Sample", - "origin": "API_DEFINITION", - "description": " Detects the language of text within a request.", - "canonical": true, - "file": "translation_service.detect_language.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 84, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DetectLanguage", - "fullName": "google.cloud.translation.v3beta1.TranslationService.DetectLanguage", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "model", - "type": "TYPE_STRING" - }, - { - "name": "content", - "type": "TYPE_STRING" - }, - { - "name": "mime_type", - "type": "TYPE_STRING" - }, - { - "name": "labels", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.cloud.translation.v3beta1.DetectLanguageResponse", - "client": { - "shortName": "TranslationServiceClient", - "fullName": "google.cloud.translation.v3beta1.TranslationServiceClient" - }, - "method": { - "shortName": "DetectLanguage", - "fullName": "google.cloud.translation.v3beta1.TranslationService.DetectLanguage", - "service": { - "shortName": "TranslationService", - "fullName": "google.cloud.translation.v3beta1.TranslationService" - } - } - } - }, - { - "regionTag": "translate_v3beta1_generated_TranslationService_GetSupportedLanguages_async", - "title": "TranslationService getSupportedLanguages Sample", - "origin": "API_DEFINITION", - "description": " Returns a list of supported languages for translation.", - "canonical": true, - "file": "translation_service.get_supported_languages.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 75, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetSupportedLanguages", - "fullName": "google.cloud.translation.v3beta1.TranslationService.GetSupportedLanguages", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "display_language_code", - "type": "TYPE_STRING" - }, - { - "name": "model", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.translation.v3beta1.SupportedLanguages", - "client": { - "shortName": "TranslationServiceClient", - "fullName": "google.cloud.translation.v3beta1.TranslationServiceClient" - }, - "method": { - "shortName": "GetSupportedLanguages", - "fullName": "google.cloud.translation.v3beta1.TranslationService.GetSupportedLanguages", - "service": { - "shortName": "TranslationService", - "fullName": "google.cloud.translation.v3beta1.TranslationService" - } - } - } - }, - { - "regionTag": "translate_v3beta1_generated_TranslationService_TranslateDocument_async", - "title": "TranslationService translateDocument Sample", - "origin": "API_DEFINITION", - "description": " Translates documents in synchronous mode.", - "canonical": true, - "file": "translation_service.translate_document.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 111, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "TranslateDocument", - "fullName": "google.cloud.translation.v3beta1.TranslationService.TranslateDocument", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "source_language_code", - "type": "TYPE_STRING" - }, - { - "name": "target_language_code", - "type": "TYPE_STRING" - }, - { - "name": "document_input_config", - "type": ".google.cloud.translation.v3beta1.DocumentInputConfig" - }, - { - "name": "document_output_config", - "type": ".google.cloud.translation.v3beta1.DocumentOutputConfig" - }, - { - "name": "model", - "type": "TYPE_STRING" - }, - { - "name": "glossary_config", - "type": ".google.cloud.translation.v3beta1.TranslateTextGlossaryConfig" - }, - { - "name": "labels", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.cloud.translation.v3beta1.TranslateDocumentResponse", - "client": { - "shortName": "TranslationServiceClient", - "fullName": "google.cloud.translation.v3beta1.TranslationServiceClient" - }, - "method": { - "shortName": "TranslateDocument", - "fullName": "google.cloud.translation.v3beta1.TranslationService.TranslateDocument", - "service": { - "shortName": "TranslationService", - "fullName": "google.cloud.translation.v3beta1.TranslationService" - } - } - } - }, - { - "regionTag": "translate_v3beta1_generated_TranslationService_BatchTranslateText_async", - "title": "TranslationService batchTranslateText Sample", - "origin": "API_DEFINITION", - "description": " Translates a large volume of text in asynchronous batch mode. This function provides real-time output as the inputs are being processed. If caller cancels a request, the partial results (for an input file, it's all or nothing) may still be available on the specified output location. This call returns immediately and you can use google.longrunning.Operation.name to poll the status of the call.", - "canonical": true, - "file": "translation_service.batch_translate_text.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 108, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "BatchTranslateText", - "fullName": "google.cloud.translation.v3beta1.TranslationService.BatchTranslateText", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "source_language_code", - "type": "TYPE_STRING" - }, - { - "name": "target_language_codes", - "type": "TYPE_STRING[]" - }, - { - "name": "models", - "type": "TYPE_MESSAGE[]" - }, - { - "name": "input_configs", - "type": "TYPE_MESSAGE[]" - }, - { - "name": "output_config", - "type": ".google.cloud.translation.v3beta1.OutputConfig" - }, - { - "name": "glossaries", - "type": "TYPE_MESSAGE[]" - }, - { - "name": "labels", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "TranslationServiceClient", - "fullName": "google.cloud.translation.v3beta1.TranslationServiceClient" - }, - "method": { - "shortName": "BatchTranslateText", - "fullName": "google.cloud.translation.v3beta1.TranslationService.BatchTranslateText", - "service": { - "shortName": "TranslationService", - "fullName": "google.cloud.translation.v3beta1.TranslationService" - } - } - } - }, - { - "regionTag": "translate_v3beta1_generated_TranslationService_BatchTranslateDocument_async", - "title": "TranslationService batchTranslateDocument Sample", - "origin": "API_DEFINITION", - "description": " Translates a large volume of documents in asynchronous batch mode. This function provides real-time output as the inputs are being processed. If caller cancels a request, the partial results (for an input file, it's all or nothing) may still be available on the specified output location. This call returns immediately and you can use google.longrunning.Operation.name to poll the status of the call.", - "canonical": true, - "file": "translation_service.batch_translate_document.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 112, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "BatchTranslateDocument", - "fullName": "google.cloud.translation.v3beta1.TranslationService.BatchTranslateDocument", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "source_language_code", - "type": "TYPE_STRING" - }, - { - "name": "target_language_codes", - "type": "TYPE_STRING[]" - }, - { - "name": "input_configs", - "type": "TYPE_MESSAGE[]" - }, - { - "name": "output_config", - "type": ".google.cloud.translation.v3beta1.BatchDocumentOutputConfig" - }, - { - "name": "models", - "type": "TYPE_MESSAGE[]" - }, - { - "name": "glossaries", - "type": "TYPE_MESSAGE[]" - }, - { - "name": "format_conversions", - "type": "TYPE_MESSAGE[]" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "TranslationServiceClient", - "fullName": "google.cloud.translation.v3beta1.TranslationServiceClient" - }, - "method": { - "shortName": "BatchTranslateDocument", - "fullName": "google.cloud.translation.v3beta1.TranslationService.BatchTranslateDocument", - "service": { - "shortName": "TranslationService", - "fullName": "google.cloud.translation.v3beta1.TranslationService" - } - } - } - }, - { - "regionTag": "translate_v3beta1_generated_TranslationService_CreateGlossary_async", - "title": "TranslationService createGlossary Sample", - "origin": "API_DEFINITION", - "description": " Creates a glossary and returns the long-running operation. Returns NOT_FOUND, if the project doesn't exist.", - "canonical": true, - "file": "translation_service.create_glossary.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 56, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "CreateGlossary", - "fullName": "google.cloud.translation.v3beta1.TranslationService.CreateGlossary", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "glossary", - "type": ".google.cloud.translation.v3beta1.Glossary" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "TranslationServiceClient", - "fullName": "google.cloud.translation.v3beta1.TranslationServiceClient" - }, - "method": { - "shortName": "CreateGlossary", - "fullName": "google.cloud.translation.v3beta1.TranslationService.CreateGlossary", - "service": { - "shortName": "TranslationService", - "fullName": "google.cloud.translation.v3beta1.TranslationService" - } - } - } - }, - { - "regionTag": "translate_v3beta1_generated_TranslationService_ListGlossaries_async", - "title": "TranslationService listGlossaries Sample", - "origin": "API_DEFINITION", - "description": " Lists glossaries in a project. Returns NOT_FOUND, if the project doesn't exist.", - "canonical": true, - "file": "translation_service.list_glossaries.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 83, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "ListGlossaries", - "fullName": "google.cloud.translation.v3beta1.TranslationService.ListGlossaries", - "async": true, - "parameters": [ - { - "name": "parent", - "type": "TYPE_STRING" - }, - { - "name": "page_size", - "type": "TYPE_INT32" - }, - { - "name": "page_token", - "type": "TYPE_STRING" - }, - { - "name": "filter", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.translation.v3beta1.ListGlossariesResponse", - "client": { - "shortName": "TranslationServiceClient", - "fullName": "google.cloud.translation.v3beta1.TranslationServiceClient" - }, - "method": { - "shortName": "ListGlossaries", - "fullName": "google.cloud.translation.v3beta1.TranslationService.ListGlossaries", - "service": { - "shortName": "TranslationService", - "fullName": "google.cloud.translation.v3beta1.TranslationService" - } - } - } - }, - { - "regionTag": "translate_v3beta1_generated_TranslationService_GetGlossary_async", - "title": "TranslationService getGlossary Sample", - "origin": "API_DEFINITION", - "description": " Gets a glossary. Returns NOT_FOUND, if the glossary doesn't exist.", - "canonical": true, - "file": "translation_service.get_glossary.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 50, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "GetGlossary", - "fullName": "google.cloud.translation.v3beta1.TranslationService.GetGlossary", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.cloud.translation.v3beta1.Glossary", - "client": { - "shortName": "TranslationServiceClient", - "fullName": "google.cloud.translation.v3beta1.TranslationServiceClient" - }, - "method": { - "shortName": "GetGlossary", - "fullName": "google.cloud.translation.v3beta1.TranslationService.GetGlossary", - "service": { - "shortName": "TranslationService", - "fullName": "google.cloud.translation.v3beta1.TranslationService" - } - } - } - }, - { - "regionTag": "translate_v3beta1_generated_TranslationService_DeleteGlossary_async", - "title": "TranslationService deleteGlossary Sample", - "origin": "API_DEFINITION", - "description": " Deletes a glossary, or cancels glossary construction if the glossary isn't created yet. Returns NOT_FOUND, if the glossary doesn't exist.", - "canonical": true, - "file": "translation_service.delete_glossary.js", - "language": "JAVASCRIPT", - "segments": [ - { - "start": 25, - "end": 51, - "type": "FULL" - } - ], - "clientMethod": { - "shortName": "DeleteGlossary", - "fullName": "google.cloud.translation.v3beta1.TranslationService.DeleteGlossary", - "async": true, - "parameters": [ - { - "name": "name", - "type": "TYPE_STRING" - } - ], - "resultType": ".google.longrunning.Operation", - "client": { - "shortName": "TranslationServiceClient", - "fullName": "google.cloud.translation.v3beta1.TranslationServiceClient" - }, - "method": { - "shortName": "DeleteGlossary", - "fullName": "google.cloud.translation.v3beta1.TranslationService.DeleteGlossary", - "service": { - "shortName": "TranslationService", - "fullName": "google.cloud.translation.v3beta1.TranslationService" - } - } - } - } - ] -} diff --git a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.batch_translate_document.js b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.batch_translate_document.js deleted file mode 100644 index 9799f763..00000000 --- a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.batch_translate_document.js +++ /dev/null @@ -1,120 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, sourceLanguageCode, targetLanguageCodes, inputConfigs, outputConfig) { - // [START translate_v3beta1_generated_TranslationService_BatchTranslateDocument_async] - /** - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. Location to make a regional call. - * Format: `projects/{project-number-or-id}/locations/{location-id}`. - * The `global` location is not supported for batch translation. - * Only AutoML Translation models or glossaries within the same region (have - * the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) - * error is returned. - */ - // const parent = 'abc123' - /** - * Required. The BCP-47 language code of the input document if known, for - * example, "en-US" or "sr-Latn". Supported language codes are listed in - * Language Support (https://cloud.google.com/translate/docs/languages). - */ - // const sourceLanguageCode = 'abc123' - /** - * Required. The BCP-47 language code to use for translation of the input - * document. Specify up to 10 language codes here. - */ - // const targetLanguageCodes = 'abc123' - /** - * Required. Input configurations. - * The total number of files matched should be <= 100. - * The total content size to translate should be <= 100M Unicode codepoints. - * The files must use UTF-8 encoding. - */ - // const inputConfigs = 1234 - /** - * Required. Output configuration. - * If 2 input configs match to the same file (that is, same input path), - * we don't generate output for duplicate inputs. - */ - // const outputConfig = {} - /** - * Optional. The models to use for translation. Map's key is target language - * code. Map's value is the model name. Value can be a built-in general model, - * or an AutoML Translation model. - * The value format depends on model type: - * - AutoML Translation models: - * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - * - General (built-in) models: - * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - * If the map is empty or a specific model is not requested for a language - * pair, then default google model (nmt) is used. - */ - // const models = 1234 - /** - * Optional. Glossaries to be applied. It's keyed by target language code. - */ - // const glossaries = 1234 - /** - * Optional. File format conversion map to be applied to all input files. - * Map's key is the original mime_type. Map's value is the target mime_type of - * translated documents. - * Supported file format conversion includes: - * - `application/pdf` to - * `application/vnd.openxmlformats-officedocument.wordprocessingml.document` - * If nothing specified, output files will be in the same format as the - * original file. - */ - // const formatConversions = 1234 - - // Imports the Translation library - const {TranslationServiceClient} = require('@google-cloud/translate').v3beta1; - - // Instantiates a client - const translationClient = new TranslationServiceClient(); - - async function callBatchTranslateDocument() { - // Construct request - const request = { - parent, - sourceLanguageCode, - targetLanguageCodes, - inputConfigs, - outputConfig, - }; - - // Run request - const [operation] = await translationClient.batchTranslateDocument(request); - const [response] = await operation.promise(); - console.log(response); - } - - callBatchTranslateDocument(); - // [END translate_v3beta1_generated_TranslationService_BatchTranslateDocument_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.batch_translate_text.js b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.batch_translate_text.js deleted file mode 100644 index cd544b9f..00000000 --- a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.batch_translate_text.js +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, sourceLanguageCode, targetLanguageCodes, inputConfigs, outputConfig) { - // [START translate_v3beta1_generated_TranslationService_BatchTranslateText_async] - /** - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. Location to make a call. Must refer to a caller's project. - * Format: `projects/{project-number-or-id}/locations/{location-id}`. - * The `global` location is not supported for batch translation. - * Only AutoML Translation models or glossaries within the same region (have - * the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) - * error is returned. - */ - // const parent = 'abc123' - /** - * Required. Source language code. - */ - // const sourceLanguageCode = 'abc123' - /** - * Required. Specify up to 10 language codes here. - */ - // const targetLanguageCodes = 'abc123' - /** - * Optional. The models to use for translation. Map's key is target language - * code. Map's value is model name. Value can be a built-in general model, - * or an AutoML Translation model. - * The value format depends on model type: - * - AutoML Translation models: - * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - * - General (built-in) models: - * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - * If the map is empty or a specific model is - * not requested for a language pair, then default google model (nmt) is used. - */ - // const models = 1234 - /** - * Required. Input configurations. - * The total number of files matched should be <= 100. - * The total content size should be <= 100M Unicode codepoints. - * The files must use UTF-8 encoding. - */ - // const inputConfigs = 1234 - /** - * Required. Output configuration. - * If 2 input configs match to the same file (that is, same input path), - * we don't generate output for duplicate inputs. - */ - // const outputConfig = {} - /** - * Optional. Glossaries to be applied for translation. - * It's keyed by target language code. - */ - // const glossaries = 1234 - /** - * Optional. The labels with user-defined metadata for the request. - * Label keys and values can be no longer than 63 characters - * (Unicode codepoints), can only contain lowercase letters, numeric - * characters, underscores and dashes. International characters are allowed. - * Label values are optional. Label keys must start with a letter. - * See https://cloud.google.com/translate/docs/labels for more information. - */ - // const labels = 1234 - - // Imports the Translation library - const {TranslationServiceClient} = require('@google-cloud/translate').v3beta1; - - // Instantiates a client - const translationClient = new TranslationServiceClient(); - - async function callBatchTranslateText() { - // Construct request - const request = { - parent, - sourceLanguageCode, - targetLanguageCodes, - inputConfigs, - outputConfig, - }; - - // Run request - const [operation] = await translationClient.batchTranslateText(request); - const [response] = await operation.promise(); - console.log(response); - } - - callBatchTranslateText(); - // [END translate_v3beta1_generated_TranslationService_BatchTranslateText_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.create_glossary.js b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.create_glossary.js deleted file mode 100644 index 98d9ec5b..00000000 --- a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.create_glossary.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, glossary) { - // [START translate_v3beta1_generated_TranslationService_CreateGlossary_async] - /** - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The project name. - */ - // const parent = 'abc123' - /** - * Required. The glossary to create. - */ - // const glossary = {} - - // Imports the Translation library - const {TranslationServiceClient} = require('@google-cloud/translate').v3beta1; - - // Instantiates a client - const translationClient = new TranslationServiceClient(); - - async function callCreateGlossary() { - // Construct request - const request = { - parent, - glossary, - }; - - // Run request - const [operation] = await translationClient.createGlossary(request); - const [response] = await operation.promise(); - console.log(response); - } - - callCreateGlossary(); - // [END translate_v3beta1_generated_TranslationService_CreateGlossary_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.delete_glossary.js b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.delete_glossary.js deleted file mode 100644 index 349ddd3c..00000000 --- a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.delete_glossary.js +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START translate_v3beta1_generated_TranslationService_DeleteGlossary_async] - /** - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the glossary to delete. - */ - // const name = 'abc123' - - // Imports the Translation library - const {TranslationServiceClient} = require('@google-cloud/translate').v3beta1; - - // Instantiates a client - const translationClient = new TranslationServiceClient(); - - async function callDeleteGlossary() { - // Construct request - const request = { - name, - }; - - // Run request - const [operation] = await translationClient.deleteGlossary(request); - const [response] = await operation.promise(); - console.log(response); - } - - callDeleteGlossary(); - // [END translate_v3beta1_generated_TranslationService_DeleteGlossary_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.detect_language.js b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.detect_language.js deleted file mode 100644 index 671d81e8..00000000 --- a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.detect_language.js +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START translate_v3beta1_generated_TranslationService_DetectLanguage_async] - /** - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. Project or location to make a call. Must refer to a caller's - * project. - * Format: `projects/{project-number-or-id}/locations/{location-id}` or - * `projects/{project-number-or-id}`. - * For global calls, use `projects/{project-number-or-id}/locations/global` or - * `projects/{project-number-or-id}`. - * Only models within the same region (has same location-id) can be used. - * Otherwise an INVALID_ARGUMENT (400) error is returned. - */ - // const parent = 'abc123' - /** - * Optional. The language detection model to be used. - * Format: - * `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/{model-id}` - * Only one language detection model is currently supported: - * `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/default`. - * If not specified, the default model is used. - */ - // const model = 'abc123' - /** - * The content of the input stored as a string. - */ - // const content = 'abc123' - /** - * Optional. The format of the source text, for example, "text/html", - * "text/plain". If left blank, the MIME type defaults to "text/html". - */ - // const mimeType = 'abc123' - /** - * Optional. The labels with user-defined metadata for the request. - * Label keys and values can be no longer than 63 characters - * (Unicode codepoints), can only contain lowercase letters, numeric - * characters, underscores and dashes. International characters are allowed. - * Label values are optional. Label keys must start with a letter. - * See https://cloud.google.com/translate/docs/labels for more information. - */ - // const labels = 1234 - - // Imports the Translation library - const {TranslationServiceClient} = require('@google-cloud/translate').v3beta1; - - // Instantiates a client - const translationClient = new TranslationServiceClient(); - - async function callDetectLanguage() { - // Construct request - const request = { - parent, - }; - - // Run request - const response = await translationClient.detectLanguage(request); - console.log(response); - } - - callDetectLanguage(); - // [END translate_v3beta1_generated_TranslationService_DetectLanguage_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.get_glossary.js b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.get_glossary.js deleted file mode 100644 index bfc46986..00000000 --- a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.get_glossary.js +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(name) { - // [START translate_v3beta1_generated_TranslationService_GetGlossary_async] - /** - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the glossary to retrieve. - */ - // const name = 'abc123' - - // Imports the Translation library - const {TranslationServiceClient} = require('@google-cloud/translate').v3beta1; - - // Instantiates a client - const translationClient = new TranslationServiceClient(); - - async function callGetGlossary() { - // Construct request - const request = { - name, - }; - - // Run request - const response = await translationClient.getGlossary(request); - console.log(response); - } - - callGetGlossary(); - // [END translate_v3beta1_generated_TranslationService_GetGlossary_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.get_supported_languages.js b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.get_supported_languages.js deleted file mode 100644 index f587de0d..00000000 --- a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.get_supported_languages.js +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START translate_v3beta1_generated_TranslationService_GetSupportedLanguages_async] - /** - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. Project or location to make a call. Must refer to a caller's - * project. - * Format: `projects/{project-number-or-id}` or - * `projects/{project-number-or-id}/locations/{location-id}`. - * For global calls, use `projects/{project-number-or-id}/locations/global` or - * `projects/{project-number-or-id}`. - * Non-global location is required for AutoML models. - * Only models within the same region (have same location-id) can be used, - * otherwise an INVALID_ARGUMENT (400) error is returned. - */ - // const parent = 'abc123' - /** - * Optional. The language to use to return localized, human readable names - * of supported languages. If missing, then display names are not returned - * in a response. - */ - // const displayLanguageCode = 'abc123' - /** - * Optional. Get supported languages of this model. - * The format depends on model type: - * - AutoML Translation models: - * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - * - General (built-in) models: - * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - * Returns languages supported by the specified model. - * If missing, we get supported languages of Google general NMT model. - */ - // const model = 'abc123' - - // Imports the Translation library - const {TranslationServiceClient} = require('@google-cloud/translate').v3beta1; - - // Instantiates a client - const translationClient = new TranslationServiceClient(); - - async function callGetSupportedLanguages() { - // Construct request - const request = { - parent, - }; - - // Run request - const response = await translationClient.getSupportedLanguages(request); - console.log(response); - } - - callGetSupportedLanguages(); - // [END translate_v3beta1_generated_TranslationService_GetSupportedLanguages_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.list_glossaries.js b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.list_glossaries.js deleted file mode 100644 index d634c74e..00000000 --- a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.list_glossaries.js +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent) { - // [START translate_v3beta1_generated_TranslationService_ListGlossaries_async] - /** - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The name of the project from which to list all of the glossaries. - */ - // const parent = 'abc123' - /** - * Optional. Requested page size. The server may return fewer glossaries than - * requested. If unspecified, the server picks an appropriate default. - */ - // const pageSize = 1234 - /** - * Optional. A token identifying a page of results the server should return. - * Typically, this is the value of ListGlossariesResponse.next_page_token - * returned from the previous call to `ListGlossaries` method. - * The first page is returned if `page_token`is empty or missing. - */ - // const pageToken = 'abc123' - /** - * Optional. Filter specifying constraints of a list operation. - * Specify the constraint by the format of "key=value", where key must be - * "src" or "tgt", and the value must be a valid language code. - * For multiple restrictions, concatenate them by "AND" (uppercase only), - * such as: "src=en-US AND tgt=zh-CN". Notice that the exact match is used - * here, which means using 'en-US' and 'en' can lead to different results, - * which depends on the language code you used when you create the glossary. - * For the unidirectional glossaries, the "src" and "tgt" add restrictions - * on the source and target language code separately. - * For the equivalent term set glossaries, the "src" and/or "tgt" add - * restrictions on the term set. - * For example: "src=en-US AND tgt=zh-CN" will only pick the unidirectional - * glossaries which exactly match the source language code as "en-US" and the - * target language code "zh-CN", but all equivalent term set glossaries which - * contain "en-US" and "zh-CN" in their language set will be picked. - * If missing, no filtering is performed. - */ - // const filter = 'abc123' - - // Imports the Translation library - const {TranslationServiceClient} = require('@google-cloud/translate').v3beta1; - - // Instantiates a client - const translationClient = new TranslationServiceClient(); - - async function callListGlossaries() { - // Construct request - const request = { - parent, - }; - - // Run request - const iterable = await translationClient.listGlossariesAsync(request); - for await (const response of iterable) { - console.log(response); - } - } - - callListGlossaries(); - // [END translate_v3beta1_generated_TranslationService_ListGlossaries_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.translate_document.js b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.translate_document.js deleted file mode 100644 index 5374904f..00000000 --- a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.translate_document.js +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(parent, targetLanguageCode, documentInputConfig) { - // [START translate_v3beta1_generated_TranslationService_TranslateDocument_async] - /** - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. Location to make a regional call. - * Format: `projects/{project-number-or-id}/locations/{location-id}`. - * For global calls, use `projects/{project-number-or-id}/locations/global`. - * Non-global location is required for requests using AutoML models or custom - * glossaries. - * Models and glossaries must be within the same region (have the same - * location-id), otherwise an INVALID_ARGUMENT (400) error is returned. - */ - // const parent = 'abc123' - /** - * Optional. The BCP-47 language code of the input document if known, for - * example, "en-US" or "sr-Latn". Supported language codes are listed in - * Language Support. If the source language isn't specified, the API attempts - * to identify the source language automatically and returns the source - * language within the response. Source language must be specified if the - * request contains a glossary or a custom model. - */ - // const sourceLanguageCode = 'abc123' - /** - * Required. The BCP-47 language code to use for translation of the input - * document, set to one of the language codes listed in Language Support. - */ - // const targetLanguageCode = 'abc123' - /** - * Required. Input configurations. - */ - // const documentInputConfig = {} - /** - * Optional. Output configurations. - * Defines if the output file should be stored within Cloud Storage as well - * as the desired output format. If not provided the translated file will - * only be returned through a byte-stream and its output mime type will be - * the same as the input file's mime type. - */ - // const documentOutputConfig = {} - /** - * Optional. The `model` type requested for this translation. - * The format depends on model type: - * - AutoML Translation models: - * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - * - General (built-in) models: - * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - * If not provided, the default Google model (NMT) will be used for - * translation. - */ - // const model = 'abc123' - /** - * Optional. Glossary to be applied. The glossary must be within the same - * region (have the same location-id) as the model, otherwise an - * INVALID_ARGUMENT (400) error is returned. - */ - // const glossaryConfig = {} - /** - * Optional. The labels with user-defined metadata for the request. - * Label keys and values can be no longer than 63 characters (Unicode - * codepoints), can only contain lowercase letters, numeric characters, - * underscores and dashes. International characters are allowed. Label values - * are optional. Label keys must start with a letter. - * See https://cloud.google.com/translate/docs/advanced/labels for more - * information. - */ - // const labels = 1234 - - // Imports the Translation library - const {TranslationServiceClient} = require('@google-cloud/translate').v3beta1; - - // Instantiates a client - const translationClient = new TranslationServiceClient(); - - async function callTranslateDocument() { - // Construct request - const request = { - parent, - targetLanguageCode, - documentInputConfig, - }; - - // Run request - const response = await translationClient.translateDocument(request); - console.log(response); - } - - callTranslateDocument(); - // [END translate_v3beta1_generated_TranslationService_TranslateDocument_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.translate_text.js b/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.translate_text.js deleted file mode 100644 index 8dc72738..00000000 --- a/owl-bot-staging/v3beta1/samples/generated/v3beta1/translation_service.translate_text.js +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - - -'use strict'; - -function main(contents, targetLanguageCode, parent) { - // [START translate_v3beta1_generated_TranslationService_TranslateText_async] - /** - * TODO(developer): Uncomment these variables before running the sample. - */ - /** - * Required. The content of the input in string format. - * We recommend the total content be less than 30k codepoints. The max length - * of this field is 1024. - * Use BatchTranslateText for larger text. - */ - // const contents = 'abc123' - /** - * Optional. The format of the source text, for example, "text/html", - * "text/plain". If left blank, the MIME type defaults to "text/html". - */ - // const mimeType = 'abc123' - /** - * Optional. The BCP-47 language code of the input text if - * known, for example, "en-US" or "sr-Latn". Supported language codes are - * listed in Language Support. If the source language isn't specified, the API - * attempts to identify the source language automatically and returns the - * source language within the response. - */ - // const sourceLanguageCode = 'abc123' - /** - * Required. The BCP-47 language code to use for translation of the input - * text, set to one of the language codes listed in Language Support. - */ - // const targetLanguageCode = 'abc123' - /** - * Required. Project or location to make a call. Must refer to a caller's - * project. - * Format: `projects/{project-number-or-id}` or - * `projects/{project-number-or-id}/locations/{location-id}`. - * For global calls, use `projects/{project-number-or-id}/locations/global` or - * `projects/{project-number-or-id}`. - * Non-global location is required for requests using AutoML models or - * custom glossaries. - * Models and glossaries must be within the same region (have same - * location-id), otherwise an INVALID_ARGUMENT (400) error is returned. - */ - // const parent = 'abc123' - /** - * Optional. The `model` type requested for this translation. - * The format depends on model type: - * - AutoML Translation models: - * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - * - General (built-in) models: - * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - * For global (non-regionalized) requests, use `location-id` `global`. - * For example, - * `projects/{project-number-or-id}/locations/global/models/general/nmt`. - * If not provided, the default Google model (NMT) will be used - */ - // const model = 'abc123' - /** - * Optional. Glossary to be applied. The glossary must be - * within the same region (have the same location-id) as the model, otherwise - * an INVALID_ARGUMENT (400) error is returned. - */ - // const glossaryConfig = {} - /** - * Optional. The labels with user-defined metadata for the request. - * Label keys and values can be no longer than 63 characters - * (Unicode codepoints), can only contain lowercase letters, numeric - * characters, underscores and dashes. International characters are allowed. - * Label values are optional. Label keys must start with a letter. - * See https://cloud.google.com/translate/docs/labels for more information. - */ - // const labels = 1234 - - // Imports the Translation library - const {TranslationServiceClient} = require('@google-cloud/translate').v3beta1; - - // Instantiates a client - const translationClient = new TranslationServiceClient(); - - async function callTranslateText() { - // Construct request - const request = { - contents, - targetLanguageCode, - parent, - }; - - // Run request - const response = await translationClient.translateText(request); - console.log(response); - } - - callTranslateText(); - // [END translate_v3beta1_generated_TranslationService_TranslateText_async] -} - -process.on('unhandledRejection', err => { - console.error(err.message); - process.exitCode = 1; -}); -main(...process.argv.slice(2)); diff --git a/owl-bot-staging/v3beta1/src/index.ts b/owl-bot-staging/v3beta1/src/index.ts deleted file mode 100644 index 732abb0b..00000000 --- a/owl-bot-staging/v3beta1/src/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - -import * as v3beta1 from './v3beta1'; -const TranslationServiceClient = v3beta1.TranslationServiceClient; -type TranslationServiceClient = v3beta1.TranslationServiceClient; -export {v3beta1, TranslationServiceClient}; -export default {v3beta1, TranslationServiceClient}; -import * as protos from '../protos/protos'; -export {protos} diff --git a/owl-bot-staging/v3beta1/src/v3beta1/gapic_metadata.json b/owl-bot-staging/v3beta1/src/v3beta1/gapic_metadata.json deleted file mode 100644 index 4c7891e5..00000000 --- a/owl-bot-staging/v3beta1/src/v3beta1/gapic_metadata.json +++ /dev/null @@ -1,127 +0,0 @@ -{ - "schema": "1.0", - "comment": "This file maps proto services/RPCs to the corresponding library clients/methods", - "language": "typescript", - "protoPackage": "google.cloud.translation.v3beta1", - "libraryPackage": "@google-cloud/translate", - "services": { - "TranslationService": { - "clients": { - "grpc": { - "libraryClient": "TranslationServiceClient", - "rpcs": { - "TranslateText": { - "methods": [ - "translateText" - ] - }, - "DetectLanguage": { - "methods": [ - "detectLanguage" - ] - }, - "GetSupportedLanguages": { - "methods": [ - "getSupportedLanguages" - ] - }, - "TranslateDocument": { - "methods": [ - "translateDocument" - ] - }, - "GetGlossary": { - "methods": [ - "getGlossary" - ] - }, - "BatchTranslateText": { - "methods": [ - "batchTranslateText" - ] - }, - "BatchTranslateDocument": { - "methods": [ - "batchTranslateDocument" - ] - }, - "CreateGlossary": { - "methods": [ - "createGlossary" - ] - }, - "DeleteGlossary": { - "methods": [ - "deleteGlossary" - ] - }, - "ListGlossaries": { - "methods": [ - "listGlossaries", - "listGlossariesStream", - "listGlossariesAsync" - ] - } - } - }, - "grpc-fallback": { - "libraryClient": "TranslationServiceClient", - "rpcs": { - "TranslateText": { - "methods": [ - "translateText" - ] - }, - "DetectLanguage": { - "methods": [ - "detectLanguage" - ] - }, - "GetSupportedLanguages": { - "methods": [ - "getSupportedLanguages" - ] - }, - "TranslateDocument": { - "methods": [ - "translateDocument" - ] - }, - "GetGlossary": { - "methods": [ - "getGlossary" - ] - }, - "BatchTranslateText": { - "methods": [ - "batchTranslateText" - ] - }, - "BatchTranslateDocument": { - "methods": [ - "batchTranslateDocument" - ] - }, - "CreateGlossary": { - "methods": [ - "createGlossary" - ] - }, - "DeleteGlossary": { - "methods": [ - "deleteGlossary" - ] - }, - "ListGlossaries": { - "methods": [ - "listGlossaries", - "listGlossariesStream", - "listGlossariesAsync" - ] - } - } - } - } - } - } -} diff --git a/owl-bot-staging/v3beta1/src/v3beta1/index.ts b/owl-bot-staging/v3beta1/src/v3beta1/index.ts deleted file mode 100644 index 46c99bab..00000000 --- a/owl-bot-staging/v3beta1/src/v3beta1/index.ts +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - -export {TranslationServiceClient} from './translation_service_client'; diff --git a/owl-bot-staging/v3beta1/src/v3beta1/translation_service_client.ts b/owl-bot-staging/v3beta1/src/v3beta1/translation_service_client.ts deleted file mode 100644 index da921b4d..00000000 --- a/owl-bot-staging/v3beta1/src/v3beta1/translation_service_client.ts +++ /dev/null @@ -1,1713 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - -/* global window */ -import * as gax from 'google-gax'; -import {Callback, CallOptions, Descriptors, ClientOptions, GrpcClientOptions, LROperation, PaginationCallback, GaxCall} from 'google-gax'; - -import { Transform } from 'stream'; -import { RequestType } from 'google-gax/build/src/apitypes'; -import * as protos from '../../protos/protos'; -import jsonProtos = require('../../protos/protos.json'); -/** - * Client JSON configuration object, loaded from - * `src/v3beta1/translation_service_client_config.json`. - * This file defines retry strategy and timeouts for all API methods in this library. - */ -import * as gapicConfig from './translation_service_client_config.json'; -import { operationsProtos } from 'google-gax'; -const version = require('../../../package.json').version; - -/** - * Provides natural language translation operations. - * @class - * @memberof v3beta1 - */ -export class TranslationServiceClient { - private _terminated = false; - private _opts: ClientOptions; - private _providedCustomServicePath: boolean; - private _gaxModule: typeof gax | typeof gax.fallback; - private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient; - private _protos: {}; - private _defaults: {[method: string]: gax.CallSettings}; - auth: gax.GoogleAuth; - descriptors: Descriptors = { - page: {}, - stream: {}, - longrunning: {}, - batching: {}, - }; - warn: (code: string, message: string, warnType?: string) => void; - innerApiCalls: {[name: string]: Function}; - pathTemplates: {[name: string]: gax.PathTemplate}; - operationsClient: gax.OperationsClient; - translationServiceStub?: Promise<{[name: string]: Function}>; - - /** - * Construct an instance of TranslationServiceClient. - * - * @param {object} [options] - The configuration object. - * The options accepted by the constructor are described in detail - * in [this document](https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#creating-the-client-instance). - * The common options are: - * @param {object} [options.credentials] - Credentials object. - * @param {string} [options.credentials.client_email] - * @param {string} [options.credentials.private_key] - * @param {string} [options.email] - Account email address. Required when - * using a .pem or .p12 keyFilename. - * @param {string} [options.keyFilename] - Full path to the a .json, .pem, or - * .p12 key downloaded from the Google Developers Console. If you provide - * a path to a JSON file, the projectId option below is not necessary. - * NOTE: .pem and .p12 require you to specify options.email as well. - * @param {number} [options.port] - The port on which to connect to - * the remote host. - * @param {string} [options.projectId] - The project ID from the Google - * Developer's Console, e.g. 'grape-spaceship-123'. We will also check - * the environment variable GCLOUD_PROJECT for your project ID. If your - * app is running in an environment which supports - * {@link https://developers.google.com/identity/protocols/application-default-credentials Application Default Credentials}, - * your project ID will be detected automatically. - * @param {string} [options.apiEndpoint] - The domain name of the - * API remote host. - * @param {gax.ClientConfig} [options.clientConfig] - Client configuration override. - * Follows the structure of {@link gapicConfig}. - * @param {boolean | "rest"} [options.fallback] - Use HTTP fallback mode. - * Pass "rest" to use HTTP/1.1 REST API instead of gRPC. - * For more information, please check the - * {@link https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#http11-rest-api-mode documentation}. - */ - constructor(opts?: ClientOptions) { - // Ensure that options include all the required fields. - const staticMembers = this.constructor as typeof TranslationServiceClient; - const servicePath = opts?.servicePath || opts?.apiEndpoint || staticMembers.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); - - // If scopes are unset in options and we're connecting to a non-default endpoint, set scopes just in case. - if (servicePath !== staticMembers.servicePath && !('scopes' in opts)) { - opts['scopes'] = staticMembers.scopes; - } - - // Choose either gRPC or proto-over-HTTP implementation of google-gax. - this._gaxModule = opts.fallback ? gax.fallback : gax; - - // Create a `gaxGrpc` object, with any grpc-specific options sent to the client. - this._gaxGrpc = new this._gaxModule.GrpcClient(opts); - - // Save options to use in initialize() method. - this._opts = opts; - - // Save the auth object to the client, for use by other methods. - this.auth = (this._gaxGrpc.auth as gax.GoogleAuth); - - // Set useJWTAccessWithScope on the auth object. - this.auth.useJWTAccessWithScope = true; - - // Set defaultServicePath on the auth object. - this.auth.defaultServicePath = staticMembers.servicePath; - - // Set the default scopes in auth client if needed. - if (servicePath === staticMembers.servicePath) { - this.auth.defaultScopes = staticMembers.scopes; - } - - // Determine the client header string. - const clientHeader = [ - `gax/${this._gaxModule.version}`, - `gapic/${version}`, - ]; - if (typeof process !== 'undefined' && 'versions' in process) { - clientHeader.push(`gl-node/${process.versions.node}`); - } else { - clientHeader.push(`gl-web/${this._gaxModule.version}`); - } - if (!opts.fallback) { - clientHeader.push(`grpc/${this._gaxGrpc.grpcVersion}`); - } else if (opts.fallback === 'rest' ) { - clientHeader.push(`rest/${this._gaxGrpc.grpcVersion}`); - } - if (opts.libName && opts.libVersion) { - clientHeader.push(`${opts.libName}/${opts.libVersion}`); - } - // Load the applicable protos. - this._protos = this._gaxGrpc.loadProtoJSON(jsonProtos); - - // This API contains "path templates"; forward-slash-separated - // identifiers to uniquely identify resources within the API. - // Create useful helper objects for these. - this.pathTemplates = { - glossaryPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}/glossaries/{glossary}' - ), - locationPathTemplate: new this._gaxModule.PathTemplate( - 'projects/{project}/locations/{location}' - ), - }; - - // Some of the methods on this service return "paged" results, - // (e.g. 50 results at a time, with tokens to get subsequent - // pages). Denote the keys used for pagination and results. - this.descriptors.page = { - listGlossaries: - new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'glossaries') - }; - - const protoFilesRoot = this._gaxModule.protobuf.Root.fromJSON(jsonProtos); - // This API contains "long-running operations", which return a - // an Operation object that allows for tracking of the operation, - // rather than holding a request open. - const lroOptions: GrpcClientOptions = { - auth: this.auth, - grpc: 'grpc' in this._gaxGrpc ? this._gaxGrpc.grpc : undefined - }; - if (opts.fallback === 'rest') { - lroOptions.protoJson = protoFilesRoot; - lroOptions.httpRules = [{selector: 'google.cloud.location.Locations.GetLocation',get: '/v3beta1/{name=projects/*/locations/*}',},{selector: 'google.cloud.location.Locations.ListLocations',get: '/v3beta1/{name=projects/*}/locations',},{selector: 'google.longrunning.Operations.CancelOperation',post: '/v3beta1/{name=projects/*/locations/*/operations/*}:cancel',body: '*',},{selector: 'google.longrunning.Operations.DeleteOperation',delete: '/v3beta1/{name=projects/*/locations/*/operations/*}',},{selector: 'google.longrunning.Operations.GetOperation',get: '/v3beta1/{name=projects/*/locations/*/operations/*}',},{selector: 'google.longrunning.Operations.ListOperations',get: '/v3beta1/{name=projects/*/locations/*}/operations',},{selector: 'google.longrunning.Operations.WaitOperation',post: '/v3beta1/{name=projects/*/locations/*/operations/*}:wait',body: '*',}]; - } - this.operationsClient = this._gaxModule.lro(lroOptions).operationsClient(opts); - const batchTranslateTextResponse = protoFilesRoot.lookup( - '.google.cloud.translation.v3beta1.BatchTranslateResponse') as gax.protobuf.Type; - const batchTranslateTextMetadata = protoFilesRoot.lookup( - '.google.cloud.translation.v3beta1.BatchTranslateMetadata') as gax.protobuf.Type; - const batchTranslateDocumentResponse = protoFilesRoot.lookup( - '.google.cloud.translation.v3beta1.BatchTranslateDocumentResponse') as gax.protobuf.Type; - const batchTranslateDocumentMetadata = protoFilesRoot.lookup( - '.google.cloud.translation.v3beta1.BatchTranslateDocumentMetadata') as gax.protobuf.Type; - const createGlossaryResponse = protoFilesRoot.lookup( - '.google.cloud.translation.v3beta1.Glossary') as gax.protobuf.Type; - const createGlossaryMetadata = protoFilesRoot.lookup( - '.google.cloud.translation.v3beta1.CreateGlossaryMetadata') as gax.protobuf.Type; - const deleteGlossaryResponse = protoFilesRoot.lookup( - '.google.cloud.translation.v3beta1.DeleteGlossaryResponse') as gax.protobuf.Type; - const deleteGlossaryMetadata = protoFilesRoot.lookup( - '.google.cloud.translation.v3beta1.DeleteGlossaryMetadata') as gax.protobuf.Type; - - this.descriptors.longrunning = { - batchTranslateText: new this._gaxModule.LongrunningDescriptor( - this.operationsClient, - batchTranslateTextResponse.decode.bind(batchTranslateTextResponse), - batchTranslateTextMetadata.decode.bind(batchTranslateTextMetadata)), - batchTranslateDocument: new this._gaxModule.LongrunningDescriptor( - this.operationsClient, - batchTranslateDocumentResponse.decode.bind(batchTranslateDocumentResponse), - batchTranslateDocumentMetadata.decode.bind(batchTranslateDocumentMetadata)), - createGlossary: new this._gaxModule.LongrunningDescriptor( - this.operationsClient, - createGlossaryResponse.decode.bind(createGlossaryResponse), - createGlossaryMetadata.decode.bind(createGlossaryMetadata)), - deleteGlossary: new this._gaxModule.LongrunningDescriptor( - this.operationsClient, - deleteGlossaryResponse.decode.bind(deleteGlossaryResponse), - deleteGlossaryMetadata.decode.bind(deleteGlossaryMetadata)) - }; - - // Put together the default options sent with requests. - this._defaults = this._gaxGrpc.constructSettings( - 'google.cloud.translation.v3beta1.TranslationService', gapicConfig as gax.ClientConfig, - opts.clientConfig || {}, {'x-goog-api-client': clientHeader.join(' ')}); - - // Set up a dictionary of "inner API calls"; the core implementation - // of calling the API is handled in `google-gax`, with this code - // merely providing the destination and request information. - this.innerApiCalls = {}; - - // Add a warn function to the client constructor so it can be easily tested. - this.warn = gax.warn; - } - - /** - * Initialize the client. - * Performs asynchronous operations (such as authentication) and prepares the client. - * This function will be called automatically when any class method is called for the - * first time, but if you need to initialize it before calling an actual method, - * feel free to call initialize() directly. - * - * You can await on this method if you want to make sure the client is initialized. - * - * @returns {Promise} A promise that resolves to an authenticated service stub. - */ - initialize() { - // If the client stub promise is already initialized, return immediately. - if (this.translationServiceStub) { - return this.translationServiceStub; - } - - // Put together the "service stub" for - // google.cloud.translation.v3beta1.TranslationService. - this.translationServiceStub = this._gaxGrpc.createStub( - this._opts.fallback ? - (this._protos as protobuf.Root).lookupService('google.cloud.translation.v3beta1.TranslationService') : - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (this._protos as any).google.cloud.translation.v3beta1.TranslationService, - 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 translationServiceStubMethods = - ['translateText', 'detectLanguage', 'getSupportedLanguages', 'translateDocument', 'batchTranslateText', 'batchTranslateDocument', 'createGlossary', 'listGlossaries', 'getGlossary', 'deleteGlossary']; - for (const methodName of translationServiceStubMethods) { - const callPromise = this.translationServiceStub.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) => () => { - throw err; - }); - - const descriptor = - this.descriptors.page[methodName] || - this.descriptors.longrunning[methodName] || - undefined; - const apiCall = this._gaxModule.createApiCall( - callPromise, - this._defaults[methodName], - descriptor - ); - - this.innerApiCalls[methodName] = apiCall; - } - - return this.translationServiceStub; - } - - /** - * The DNS address for this API service. - * @returns {string} The DNS address for this service. - */ - static get servicePath() { - return 'translate.googleapis.com'; - } - - /** - * The DNS address for this API service - same as servicePath(), - * exists for compatibility reasons. - * @returns {string} The DNS address for this service. - */ - static get apiEndpoint() { - return 'translate.googleapis.com'; - } - - /** - * The port for this API service. - * @returns {number} The default port for this service. - */ - static get port() { - return 443; - } - - /** - * The scopes needed to make gRPC calls for every method defined - * in this service. - * @returns {string[]} List of default scopes. - */ - static get scopes() { - return [ - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/cloud-translation' - ]; - } - - getProjectId(): Promise; - getProjectId(callback: Callback): void; - /** - * Return the project ID used by this class. - * @returns {Promise} A promise that resolves to string containing the project ID. - */ - getProjectId(callback?: Callback): - Promise|void { - if (callback) { - this.auth.getProjectId(callback); - return; - } - return this.auth.getProjectId(); - } - - // ------------------- - // -- Service calls -- - // ------------------- -/** - * Translates input text and returns translated text. - * - * @param {Object} request - * The request object that will be sent. - * @param {string[]} request.contents - * Required. The content of the input in string format. - * We recommend the total content be less than 30k codepoints. The max length - * of this field is 1024. - * Use BatchTranslateText for larger text. - * @param {string} [request.mimeType] - * Optional. The format of the source text, for example, "text/html", - * "text/plain". If left blank, the MIME type defaults to "text/html". - * @param {string} [request.sourceLanguageCode] - * Optional. The BCP-47 language code of the input text if - * known, for example, "en-US" or "sr-Latn". Supported language codes are - * listed in Language Support. If the source language isn't specified, the API - * attempts to identify the source language automatically and returns the - * source language within the response. - * @param {string} request.targetLanguageCode - * Required. The BCP-47 language code to use for translation of the input - * text, set to one of the language codes listed in Language Support. - * @param {string} request.parent - * Required. Project or location to make a call. Must refer to a caller's - * project. - * - * Format: `projects/{project-number-or-id}` or - * `projects/{project-number-or-id}/locations/{location-id}`. - * - * For global calls, use `projects/{project-number-or-id}/locations/global` or - * `projects/{project-number-or-id}`. - * - * Non-global location is required for requests using AutoML models or - * custom glossaries. - * - * Models and glossaries must be within the same region (have same - * location-id), otherwise an INVALID_ARGUMENT (400) error is returned. - * @param {string} [request.model] - * Optional. The `model` type requested for this translation. - * - * The format depends on model type: - * - * - AutoML Translation models: - * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - * - * - General (built-in) models: - * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - * - * - * For global (non-regionalized) requests, use `location-id` `global`. - * For example, - * `projects/{project-number-or-id}/locations/global/models/general/nmt`. - * - * If not provided, the default Google model (NMT) will be used - * @param {google.cloud.translation.v3beta1.TranslateTextGlossaryConfig} [request.glossaryConfig] - * Optional. Glossary to be applied. The glossary must be - * within the same region (have the same location-id) as the model, otherwise - * an INVALID_ARGUMENT (400) error is returned. - * @param {number[]} [request.labels] - * Optional. The labels with user-defined metadata for the request. - * - * Label keys and values can be no longer than 63 characters - * (Unicode codepoints), can only contain lowercase letters, numeric - * characters, underscores and dashes. International characters are allowed. - * Label values are optional. Label keys must start with a letter. - * - * See https://cloud.google.com/translate/docs/labels for more information. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing [TranslateTextResponse]{@link google.cloud.translation.v3beta1.TranslateTextResponse}. - * Please see the - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) - * for more details and examples. - * @example include:samples/generated/v3beta1/translation_service.translate_text.js - * region_tag:translate_v3beta1_generated_TranslationService_TranslateText_async - */ - translateText( - request?: protos.google.cloud.translation.v3beta1.ITranslateTextRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.translation.v3beta1.ITranslateTextResponse, - protos.google.cloud.translation.v3beta1.ITranslateTextRequest|undefined, {}|undefined - ]>; - translateText( - request: protos.google.cloud.translation.v3beta1.ITranslateTextRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.translation.v3beta1.ITranslateTextResponse, - protos.google.cloud.translation.v3beta1.ITranslateTextRequest|null|undefined, - {}|null|undefined>): void; - translateText( - request: protos.google.cloud.translation.v3beta1.ITranslateTextRequest, - callback: Callback< - protos.google.cloud.translation.v3beta1.ITranslateTextResponse, - protos.google.cloud.translation.v3beta1.ITranslateTextRequest|null|undefined, - {}|null|undefined>): void; - translateText( - request?: protos.google.cloud.translation.v3beta1.ITranslateTextRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.translation.v3beta1.ITranslateTextResponse, - protos.google.cloud.translation.v3beta1.ITranslateTextRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< - protos.google.cloud.translation.v3beta1.ITranslateTextResponse, - protos.google.cloud.translation.v3beta1.ITranslateTextRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.translation.v3beta1.ITranslateTextResponse, - protos.google.cloud.translation.v3beta1.ITranslateTextRequest|undefined, {}|undefined - ]>|void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } - else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', - }); - this.initialize(); - return this.innerApiCalls.translateText(request, options, callback); - } -/** - * Detects the language of text within a request. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Project or location to make a call. Must refer to a caller's - * project. - * - * Format: `projects/{project-number-or-id}/locations/{location-id}` or - * `projects/{project-number-or-id}`. - * - * For global calls, use `projects/{project-number-or-id}/locations/global` or - * `projects/{project-number-or-id}`. - * - * Only models within the same region (has same location-id) can be used. - * Otherwise an INVALID_ARGUMENT (400) error is returned. - * @param {string} [request.model] - * Optional. The language detection model to be used. - * - * Format: - * `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/{model-id}` - * - * Only one language detection model is currently supported: - * `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/default`. - * - * If not specified, the default model is used. - * @param {string} request.content - * The content of the input stored as a string. - * @param {string} [request.mimeType] - * Optional. The format of the source text, for example, "text/html", - * "text/plain". If left blank, the MIME type defaults to "text/html". - * @param {number[]} [request.labels] - * Optional. The labels with user-defined metadata for the request. - * - * Label keys and values can be no longer than 63 characters - * (Unicode codepoints), can only contain lowercase letters, numeric - * characters, underscores and dashes. International characters are allowed. - * Label values are optional. Label keys must start with a letter. - * - * See https://cloud.google.com/translate/docs/labels for more information. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing [DetectLanguageResponse]{@link google.cloud.translation.v3beta1.DetectLanguageResponse}. - * Please see the - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) - * for more details and examples. - * @example include:samples/generated/v3beta1/translation_service.detect_language.js - * region_tag:translate_v3beta1_generated_TranslationService_DetectLanguage_async - */ - detectLanguage( - request?: protos.google.cloud.translation.v3beta1.IDetectLanguageRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.translation.v3beta1.IDetectLanguageResponse, - protos.google.cloud.translation.v3beta1.IDetectLanguageRequest|undefined, {}|undefined - ]>; - detectLanguage( - request: protos.google.cloud.translation.v3beta1.IDetectLanguageRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.translation.v3beta1.IDetectLanguageResponse, - protos.google.cloud.translation.v3beta1.IDetectLanguageRequest|null|undefined, - {}|null|undefined>): void; - detectLanguage( - request: protos.google.cloud.translation.v3beta1.IDetectLanguageRequest, - callback: Callback< - protos.google.cloud.translation.v3beta1.IDetectLanguageResponse, - protos.google.cloud.translation.v3beta1.IDetectLanguageRequest|null|undefined, - {}|null|undefined>): void; - detectLanguage( - request?: protos.google.cloud.translation.v3beta1.IDetectLanguageRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.translation.v3beta1.IDetectLanguageResponse, - protos.google.cloud.translation.v3beta1.IDetectLanguageRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< - protos.google.cloud.translation.v3beta1.IDetectLanguageResponse, - protos.google.cloud.translation.v3beta1.IDetectLanguageRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.translation.v3beta1.IDetectLanguageResponse, - protos.google.cloud.translation.v3beta1.IDetectLanguageRequest|undefined, {}|undefined - ]>|void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } - else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', - }); - this.initialize(); - return this.innerApiCalls.detectLanguage(request, options, callback); - } -/** - * Returns a list of supported languages for translation. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Project or location to make a call. Must refer to a caller's - * project. - * - * Format: `projects/{project-number-or-id}` or - * `projects/{project-number-or-id}/locations/{location-id}`. - * - * For global calls, use `projects/{project-number-or-id}/locations/global` or - * `projects/{project-number-or-id}`. - * - * Non-global location is required for AutoML models. - * - * Only models within the same region (have same location-id) can be used, - * otherwise an INVALID_ARGUMENT (400) error is returned. - * @param {string} [request.displayLanguageCode] - * Optional. The language to use to return localized, human readable names - * of supported languages. If missing, then display names are not returned - * in a response. - * @param {string} [request.model] - * Optional. Get supported languages of this model. - * - * The format depends on model type: - * - * - AutoML Translation models: - * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - * - * - General (built-in) models: - * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - * - * - * Returns languages supported by the specified model. - * If missing, we get supported languages of Google general NMT model. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing [SupportedLanguages]{@link google.cloud.translation.v3beta1.SupportedLanguages}. - * Please see the - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) - * for more details and examples. - * @example include:samples/generated/v3beta1/translation_service.get_supported_languages.js - * region_tag:translate_v3beta1_generated_TranslationService_GetSupportedLanguages_async - */ - getSupportedLanguages( - request?: protos.google.cloud.translation.v3beta1.IGetSupportedLanguagesRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.translation.v3beta1.ISupportedLanguages, - protos.google.cloud.translation.v3beta1.IGetSupportedLanguagesRequest|undefined, {}|undefined - ]>; - getSupportedLanguages( - request: protos.google.cloud.translation.v3beta1.IGetSupportedLanguagesRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.translation.v3beta1.ISupportedLanguages, - protos.google.cloud.translation.v3beta1.IGetSupportedLanguagesRequest|null|undefined, - {}|null|undefined>): void; - getSupportedLanguages( - request: protos.google.cloud.translation.v3beta1.IGetSupportedLanguagesRequest, - callback: Callback< - protos.google.cloud.translation.v3beta1.ISupportedLanguages, - protos.google.cloud.translation.v3beta1.IGetSupportedLanguagesRequest|null|undefined, - {}|null|undefined>): void; - getSupportedLanguages( - request?: protos.google.cloud.translation.v3beta1.IGetSupportedLanguagesRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.translation.v3beta1.ISupportedLanguages, - protos.google.cloud.translation.v3beta1.IGetSupportedLanguagesRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< - protos.google.cloud.translation.v3beta1.ISupportedLanguages, - protos.google.cloud.translation.v3beta1.IGetSupportedLanguagesRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.translation.v3beta1.ISupportedLanguages, - protos.google.cloud.translation.v3beta1.IGetSupportedLanguagesRequest|undefined, {}|undefined - ]>|void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } - else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', - }); - this.initialize(); - return this.innerApiCalls.getSupportedLanguages(request, options, callback); - } -/** - * Translates documents in synchronous mode. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Location to make a regional call. - * - * Format: `projects/{project-number-or-id}/locations/{location-id}`. - * - * For global calls, use `projects/{project-number-or-id}/locations/global`. - * - * Non-global location is required for requests using AutoML models or custom - * glossaries. - * - * Models and glossaries must be within the same region (have the same - * location-id), otherwise an INVALID_ARGUMENT (400) error is returned. - * @param {string} [request.sourceLanguageCode] - * Optional. The BCP-47 language code of the input document if known, for - * example, "en-US" or "sr-Latn". Supported language codes are listed in - * Language Support. If the source language isn't specified, the API attempts - * to identify the source language automatically and returns the source - * language within the response. Source language must be specified if the - * request contains a glossary or a custom model. - * @param {string} request.targetLanguageCode - * Required. The BCP-47 language code to use for translation of the input - * document, set to one of the language codes listed in Language Support. - * @param {google.cloud.translation.v3beta1.DocumentInputConfig} request.documentInputConfig - * Required. Input configurations. - * @param {google.cloud.translation.v3beta1.DocumentOutputConfig} [request.documentOutputConfig] - * Optional. Output configurations. - * Defines if the output file should be stored within Cloud Storage as well - * as the desired output format. If not provided the translated file will - * only be returned through a byte-stream and its output mime type will be - * the same as the input file's mime type. - * @param {string} [request.model] - * Optional. The `model` type requested for this translation. - * - * The format depends on model type: - * - * - AutoML Translation models: - * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - * - * - General (built-in) models: - * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - * - * - * If not provided, the default Google model (NMT) will be used for - * translation. - * @param {google.cloud.translation.v3beta1.TranslateTextGlossaryConfig} [request.glossaryConfig] - * Optional. Glossary to be applied. The glossary must be within the same - * region (have the same location-id) as the model, otherwise an - * INVALID_ARGUMENT (400) error is returned. - * @param {number[]} [request.labels] - * Optional. The labels with user-defined metadata for the request. - * - * Label keys and values can be no longer than 63 characters (Unicode - * codepoints), can only contain lowercase letters, numeric characters, - * underscores and dashes. International characters are allowed. Label values - * are optional. Label keys must start with a letter. - * - * See https://cloud.google.com/translate/docs/advanced/labels for more - * information. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing [TranslateDocumentResponse]{@link google.cloud.translation.v3beta1.TranslateDocumentResponse}. - * Please see the - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) - * for more details and examples. - * @example include:samples/generated/v3beta1/translation_service.translate_document.js - * region_tag:translate_v3beta1_generated_TranslationService_TranslateDocument_async - */ - translateDocument( - request?: protos.google.cloud.translation.v3beta1.ITranslateDocumentRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.translation.v3beta1.ITranslateDocumentResponse, - protos.google.cloud.translation.v3beta1.ITranslateDocumentRequest|undefined, {}|undefined - ]>; - translateDocument( - request: protos.google.cloud.translation.v3beta1.ITranslateDocumentRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.translation.v3beta1.ITranslateDocumentResponse, - protos.google.cloud.translation.v3beta1.ITranslateDocumentRequest|null|undefined, - {}|null|undefined>): void; - translateDocument( - request: protos.google.cloud.translation.v3beta1.ITranslateDocumentRequest, - callback: Callback< - protos.google.cloud.translation.v3beta1.ITranslateDocumentResponse, - protos.google.cloud.translation.v3beta1.ITranslateDocumentRequest|null|undefined, - {}|null|undefined>): void; - translateDocument( - request?: protos.google.cloud.translation.v3beta1.ITranslateDocumentRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.translation.v3beta1.ITranslateDocumentResponse, - protos.google.cloud.translation.v3beta1.ITranslateDocumentRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< - protos.google.cloud.translation.v3beta1.ITranslateDocumentResponse, - protos.google.cloud.translation.v3beta1.ITranslateDocumentRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.translation.v3beta1.ITranslateDocumentResponse, - protos.google.cloud.translation.v3beta1.ITranslateDocumentRequest|undefined, {}|undefined - ]>|void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } - else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', - }); - this.initialize(); - return this.innerApiCalls.translateDocument(request, options, callback); - } -/** - * Gets a glossary. Returns NOT_FOUND, if the glossary doesn't - * exist. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the glossary to retrieve. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. - * @returns {Promise} - The promise which resolves to an array. - * The first element of the array is an object representing [Glossary]{@link google.cloud.translation.v3beta1.Glossary}. - * Please see the - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods) - * for more details and examples. - * @example include:samples/generated/v3beta1/translation_service.get_glossary.js - * region_tag:translate_v3beta1_generated_TranslationService_GetGlossary_async - */ - getGlossary( - request?: protos.google.cloud.translation.v3beta1.IGetGlossaryRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.translation.v3beta1.IGlossary, - protos.google.cloud.translation.v3beta1.IGetGlossaryRequest|undefined, {}|undefined - ]>; - getGlossary( - request: protos.google.cloud.translation.v3beta1.IGetGlossaryRequest, - options: CallOptions, - callback: Callback< - protos.google.cloud.translation.v3beta1.IGlossary, - protos.google.cloud.translation.v3beta1.IGetGlossaryRequest|null|undefined, - {}|null|undefined>): void; - getGlossary( - request: protos.google.cloud.translation.v3beta1.IGetGlossaryRequest, - callback: Callback< - protos.google.cloud.translation.v3beta1.IGlossary, - protos.google.cloud.translation.v3beta1.IGetGlossaryRequest|null|undefined, - {}|null|undefined>): void; - getGlossary( - request?: protos.google.cloud.translation.v3beta1.IGetGlossaryRequest, - optionsOrCallback?: CallOptions|Callback< - protos.google.cloud.translation.v3beta1.IGlossary, - protos.google.cloud.translation.v3beta1.IGetGlossaryRequest|null|undefined, - {}|null|undefined>, - callback?: Callback< - protos.google.cloud.translation.v3beta1.IGlossary, - protos.google.cloud.translation.v3beta1.IGetGlossaryRequest|null|undefined, - {}|null|undefined>): - Promise<[ - protos.google.cloud.translation.v3beta1.IGlossary, - protos.google.cloud.translation.v3beta1.IGetGlossaryRequest|undefined, {}|undefined - ]>|void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } - else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'name': request.name || '', - }); - this.initialize(); - return this.innerApiCalls.getGlossary(request, options, callback); - } - -/** - * Translates a large volume of text in asynchronous batch mode. - * This function provides real-time output as the inputs are being processed. - * If caller cancels a request, the partial results (for an input file, it's - * all or nothing) may still be available on the specified output location. - * - * This call returns immediately and you can - * use google.longrunning.Operation.name to poll the status of the call. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Location to make a call. Must refer to a caller's project. - * - * Format: `projects/{project-number-or-id}/locations/{location-id}`. - * - * The `global` location is not supported for batch translation. - * - * Only AutoML Translation models or glossaries within the same region (have - * the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) - * error is returned. - * @param {string} request.sourceLanguageCode - * Required. Source language code. - * @param {string[]} request.targetLanguageCodes - * Required. Specify up to 10 language codes here. - * @param {number[]} [request.models] - * Optional. The models to use for translation. Map's key is target language - * code. Map's value is model name. Value can be a built-in general model, - * or an AutoML Translation model. - * - * The value format depends on model type: - * - * - AutoML Translation models: - * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - * - * - General (built-in) models: - * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - * - * - * If the map is empty or a specific model is - * not requested for a language pair, then default google model (nmt) is used. - * @param {number[]} request.inputConfigs - * Required. Input configurations. - * The total number of files matched should be <= 100. - * The total content size should be <= 100M Unicode codepoints. - * The files must use UTF-8 encoding. - * @param {google.cloud.translation.v3beta1.OutputConfig} request.outputConfig - * Required. Output configuration. - * If 2 input configs match to the same file (that is, same input path), - * we don't generate output for duplicate inputs. - * @param {number[]} [request.glossaries] - * Optional. Glossaries to be applied for translation. - * It's keyed by target language code. - * @param {number[]} [request.labels] - * Optional. The labels with user-defined metadata for the request. - * - * Label keys and values can be no longer than 63 characters - * (Unicode codepoints), can only contain lowercase letters, numeric - * characters, underscores and dashes. International characters are allowed. - * Label values are optional. Label keys must start with a letter. - * - * See https://cloud.google.com/translate/docs/labels for more information. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.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 - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) - * for more details and examples. - * @example include:samples/generated/v3beta1/translation_service.batch_translate_text.js - * region_tag:translate_v3beta1_generated_TranslationService_BatchTranslateText_async - */ - batchTranslateText( - request?: protos.google.cloud.translation.v3beta1.IBatchTranslateTextRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; - batchTranslateText( - request: protos.google.cloud.translation.v3beta1.IBatchTranslateTextRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; - batchTranslateText( - request: protos.google.cloud.translation.v3beta1.IBatchTranslateTextRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; - batchTranslateText( - request?: protos.google.cloud.translation.v3beta1.IBatchTranslateTextRequest, - 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 = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } - else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', - }); - this.initialize(); - return this.innerApiCalls.batchTranslateText(request, options, callback); - } -/** - * Check the status of the long running operation returned by `batchTranslateText()`. - * @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 - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) - * for more details and examples. - * @example include:samples/generated/v3beta1/translation_service.batch_translate_text.js - * region_tag:translate_v3beta1_generated_TranslationService_BatchTranslateText_async - */ - async checkBatchTranslateTextProgress(name: string): Promise>{ - const request = new operationsProtos.google.longrunning.GetOperationRequest({name}); - const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new gax.Operation(operation, this.descriptors.longrunning.batchTranslateText, gax.createDefaultBackoffSettings()); - return decodeOperation as LROperation; - } -/** - * Translates a large volume of documents in asynchronous batch mode. - * This function provides real-time output as the inputs are being processed. - * If caller cancels a request, the partial results (for an input file, it's - * all or nothing) may still be available on the specified output location. - * - * This call returns immediately and you can use - * google.longrunning.Operation.name to poll the status of the call. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. Location to make a regional call. - * - * Format: `projects/{project-number-or-id}/locations/{location-id}`. - * - * The `global` location is not supported for batch translation. - * - * Only AutoML Translation models or glossaries within the same region (have - * the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) - * error is returned. - * @param {string} request.sourceLanguageCode - * Required. The BCP-47 language code of the input document if known, for - * example, "en-US" or "sr-Latn". Supported language codes are listed in - * Language Support (https://cloud.google.com/translate/docs/languages). - * @param {string[]} request.targetLanguageCodes - * Required. The BCP-47 language code to use for translation of the input - * document. Specify up to 10 language codes here. - * @param {number[]} request.inputConfigs - * Required. Input configurations. - * The total number of files matched should be <= 100. - * The total content size to translate should be <= 100M Unicode codepoints. - * The files must use UTF-8 encoding. - * @param {google.cloud.translation.v3beta1.BatchDocumentOutputConfig} request.outputConfig - * Required. Output configuration. - * If 2 input configs match to the same file (that is, same input path), - * we don't generate output for duplicate inputs. - * @param {number[]} [request.models] - * Optional. The models to use for translation. Map's key is target language - * code. Map's value is the model name. Value can be a built-in general model, - * or an AutoML Translation model. - * - * The value format depends on model type: - * - * - AutoML Translation models: - * `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - * - * - General (built-in) models: - * `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - * - * - * If the map is empty or a specific model is not requested for a language - * pair, then default google model (nmt) is used. - * @param {number[]} [request.glossaries] - * Optional. Glossaries to be applied. It's keyed by target language code. - * @param {number[]} [request.formatConversions] - * Optional. File format conversion map to be applied to all input files. - * Map's key is the original mime_type. Map's value is the target mime_type of - * translated documents. - * - * Supported file format conversion includes: - * - `application/pdf` to - * `application/vnd.openxmlformats-officedocument.wordprocessingml.document` - * - * If nothing specified, output files will be in the same format as the - * original file. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.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 - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) - * for more details and examples. - * @example include:samples/generated/v3beta1/translation_service.batch_translate_document.js - * region_tag:translate_v3beta1_generated_TranslationService_BatchTranslateDocument_async - */ - batchTranslateDocument( - request?: protos.google.cloud.translation.v3beta1.IBatchTranslateDocumentRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; - batchTranslateDocument( - request: protos.google.cloud.translation.v3beta1.IBatchTranslateDocumentRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; - batchTranslateDocument( - request: protos.google.cloud.translation.v3beta1.IBatchTranslateDocumentRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; - batchTranslateDocument( - request?: protos.google.cloud.translation.v3beta1.IBatchTranslateDocumentRequest, - 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 = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } - else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', - }); - this.initialize(); - return this.innerApiCalls.batchTranslateDocument(request, options, callback); - } -/** - * Check the status of the long running operation returned by `batchTranslateDocument()`. - * @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 - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) - * for more details and examples. - * @example include:samples/generated/v3beta1/translation_service.batch_translate_document.js - * region_tag:translate_v3beta1_generated_TranslationService_BatchTranslateDocument_async - */ - async checkBatchTranslateDocumentProgress(name: string): Promise>{ - const request = new operationsProtos.google.longrunning.GetOperationRequest({name}); - const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new gax.Operation(operation, this.descriptors.longrunning.batchTranslateDocument, gax.createDefaultBackoffSettings()); - return decodeOperation as LROperation; - } -/** - * Creates a glossary and returns the long-running operation. Returns - * NOT_FOUND, if the project doesn't exist. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The project name. - * @param {google.cloud.translation.v3beta1.Glossary} request.glossary - * Required. The glossary 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 - * a long running operation. Its `promise()` method returns a promise - * you can `await` for. - * Please see the - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) - * for more details and examples. - * @example include:samples/generated/v3beta1/translation_service.create_glossary.js - * region_tag:translate_v3beta1_generated_TranslationService_CreateGlossary_async - */ - createGlossary( - request?: protos.google.cloud.translation.v3beta1.ICreateGlossaryRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; - createGlossary( - request: protos.google.cloud.translation.v3beta1.ICreateGlossaryRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; - createGlossary( - request: protos.google.cloud.translation.v3beta1.ICreateGlossaryRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; - createGlossary( - request?: protos.google.cloud.translation.v3beta1.ICreateGlossaryRequest, - 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 = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } - else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', - }); - this.initialize(); - return this.innerApiCalls.createGlossary(request, options, callback); - } -/** - * Check the status of the long running operation returned by `createGlossary()`. - * @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 - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) - * for more details and examples. - * @example include:samples/generated/v3beta1/translation_service.create_glossary.js - * region_tag:translate_v3beta1_generated_TranslationService_CreateGlossary_async - */ - async checkCreateGlossaryProgress(name: string): Promise>{ - const request = new operationsProtos.google.longrunning.GetOperationRequest({name}); - const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new gax.Operation(operation, this.descriptors.longrunning.createGlossary, gax.createDefaultBackoffSettings()); - return decodeOperation as LROperation; - } -/** - * Deletes a glossary, or cancels glossary construction - * if the glossary isn't created yet. - * Returns NOT_FOUND, if the glossary doesn't exist. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.name - * Required. The name of the glossary to delete. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.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 - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) - * for more details and examples. - * @example include:samples/generated/v3beta1/translation_service.delete_glossary.js - * region_tag:translate_v3beta1_generated_TranslationService_DeleteGlossary_async - */ - deleteGlossary( - request?: protos.google.cloud.translation.v3beta1.IDeleteGlossaryRequest, - options?: CallOptions): - Promise<[ - LROperation, - protos.google.longrunning.IOperation|undefined, {}|undefined - ]>; - deleteGlossary( - request: protos.google.cloud.translation.v3beta1.IDeleteGlossaryRequest, - options: CallOptions, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; - deleteGlossary( - request: protos.google.cloud.translation.v3beta1.IDeleteGlossaryRequest, - callback: Callback< - LROperation, - protos.google.longrunning.IOperation|null|undefined, - {}|null|undefined>): void; - deleteGlossary( - request?: protos.google.cloud.translation.v3beta1.IDeleteGlossaryRequest, - 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 = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } - else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'name': request.name || '', - }); - this.initialize(); - return this.innerApiCalls.deleteGlossary(request, options, callback); - } -/** - * Check the status of the long running operation returned by `deleteGlossary()`. - * @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 - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations) - * for more details and examples. - * @example include:samples/generated/v3beta1/translation_service.delete_glossary.js - * region_tag:translate_v3beta1_generated_TranslationService_DeleteGlossary_async - */ - async checkDeleteGlossaryProgress(name: string): Promise>{ - const request = new operationsProtos.google.longrunning.GetOperationRequest({name}); - const [operation] = await this.operationsClient.getOperation(request); - const decodeOperation = new gax.Operation(operation, this.descriptors.longrunning.deleteGlossary, gax.createDefaultBackoffSettings()); - return decodeOperation as LROperation; - } - /** - * Lists glossaries in a project. Returns NOT_FOUND, if the project doesn't - * exist. - * - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The name of the project from which to list all of the glossaries. - * @param {number} [request.pageSize] - * Optional. Requested page size. The server may return fewer glossaries than - * requested. If unspecified, the server picks an appropriate default. - * @param {string} [request.pageToken] - * Optional. A token identifying a page of results the server should return. - * Typically, this is the value of [ListGlossariesResponse.next_page_token] - * returned from the previous call to `ListGlossaries` method. - * The first page is returned if `page_token`is empty or missing. - * @param {string} [request.filter] - * Optional. Filter specifying constraints of a list operation. - * Specify the constraint by the format of "key=value", where key must be - * "src" or "tgt", and the value must be a valid language code. - * For multiple restrictions, concatenate them by "AND" (uppercase only), - * such as: "src=en-US AND tgt=zh-CN". Notice that the exact match is used - * here, which means using 'en-US' and 'en' can lead to different results, - * which depends on the language code you used when you create the glossary. - * For the unidirectional glossaries, the "src" and "tgt" add restrictions - * on the source and target language code separately. - * For the equivalent term set glossaries, the "src" and/or "tgt" add - * restrictions on the term set. - * For example: "src=en-US AND tgt=zh-CN" will only pick the unidirectional - * glossaries which exactly match the source language code as "en-US" and the - * target language code "zh-CN", but all equivalent term set glossaries which - * contain "en-US" and "zh-CN" in their language set will be picked. - * If missing, no filtering is performed. - * @param {object} [options] - * Call options. See {@link https://googleapis.dev/nodejs/google-gax/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 [Glossary]{@link google.cloud.translation.v3beta1.Glossary}. - * 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 `listGlossariesAsync()` - * method described below for async iteration which you can stop as needed. - * Please see the - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) - * for more details and examples. - */ - listGlossaries( - request?: protos.google.cloud.translation.v3beta1.IListGlossariesRequest, - options?: CallOptions): - Promise<[ - protos.google.cloud.translation.v3beta1.IGlossary[], - protos.google.cloud.translation.v3beta1.IListGlossariesRequest|null, - protos.google.cloud.translation.v3beta1.IListGlossariesResponse - ]>; - listGlossaries( - request: protos.google.cloud.translation.v3beta1.IListGlossariesRequest, - options: CallOptions, - callback: PaginationCallback< - protos.google.cloud.translation.v3beta1.IListGlossariesRequest, - protos.google.cloud.translation.v3beta1.IListGlossariesResponse|null|undefined, - protos.google.cloud.translation.v3beta1.IGlossary>): void; - listGlossaries( - request: protos.google.cloud.translation.v3beta1.IListGlossariesRequest, - callback: PaginationCallback< - protos.google.cloud.translation.v3beta1.IListGlossariesRequest, - protos.google.cloud.translation.v3beta1.IListGlossariesResponse|null|undefined, - protos.google.cloud.translation.v3beta1.IGlossary>): void; - listGlossaries( - request?: protos.google.cloud.translation.v3beta1.IListGlossariesRequest, - optionsOrCallback?: CallOptions|PaginationCallback< - protos.google.cloud.translation.v3beta1.IListGlossariesRequest, - protos.google.cloud.translation.v3beta1.IListGlossariesResponse|null|undefined, - protos.google.cloud.translation.v3beta1.IGlossary>, - callback?: PaginationCallback< - protos.google.cloud.translation.v3beta1.IListGlossariesRequest, - protos.google.cloud.translation.v3beta1.IListGlossariesResponse|null|undefined, - protos.google.cloud.translation.v3beta1.IGlossary>): - Promise<[ - protos.google.cloud.translation.v3beta1.IGlossary[], - protos.google.cloud.translation.v3beta1.IListGlossariesRequest|null, - protos.google.cloud.translation.v3beta1.IListGlossariesResponse - ]>|void { - request = request || {}; - let options: CallOptions; - if (typeof optionsOrCallback === 'function' && callback === undefined) { - callback = optionsOrCallback; - options = {}; - } - else { - options = optionsOrCallback as CallOptions; - } - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', - }); - this.initialize(); - return this.innerApiCalls.listGlossaries(request, options, callback); - } - -/** - * Equivalent to `method.name.toCamelCase()`, but returns a NodeJS Stream object. - * @param {Object} request - * The request object that will be sent. - * @param {string} request.parent - * Required. The name of the project from which to list all of the glossaries. - * @param {number} [request.pageSize] - * Optional. Requested page size. The server may return fewer glossaries than - * requested. If unspecified, the server picks an appropriate default. - * @param {string} [request.pageToken] - * Optional. A token identifying a page of results the server should return. - * Typically, this is the value of [ListGlossariesResponse.next_page_token] - * returned from the previous call to `ListGlossaries` method. - * The first page is returned if `page_token`is empty or missing. - * @param {string} [request.filter] - * Optional. Filter specifying constraints of a list operation. - * Specify the constraint by the format of "key=value", where key must be - * "src" or "tgt", and the value must be a valid language code. - * For multiple restrictions, concatenate them by "AND" (uppercase only), - * such as: "src=en-US AND tgt=zh-CN". Notice that the exact match is used - * here, which means using 'en-US' and 'en' can lead to different results, - * which depends on the language code you used when you create the glossary. - * For the unidirectional glossaries, the "src" and "tgt" add restrictions - * on the source and target language code separately. - * For the equivalent term set glossaries, the "src" and/or "tgt" add - * restrictions on the term set. - * For example: "src=en-US AND tgt=zh-CN" will only pick the unidirectional - * glossaries which exactly match the source language code as "en-US" and the - * target language code "zh-CN", but all equivalent term set glossaries which - * contain "en-US" and "zh-CN" in their language set will be picked. - * If missing, no filtering is performed. - * @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 [Glossary]{@link google.cloud.translation.v3beta1.Glossary} 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 `listGlossariesAsync()` - * method described below for async iteration which you can stop as needed. - * Please see the - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) - * for more details and examples. - */ - listGlossariesStream( - request?: protos.google.cloud.translation.v3beta1.IListGlossariesRequest, - options?: CallOptions): - Transform{ - request = request || {}; - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', - }); - const defaultCallSettings = this._defaults['listGlossaries']; - const callSettings = defaultCallSettings.merge(options); - this.initialize(); - return this.descriptors.page.listGlossaries.createStream( - this.innerApiCalls.listGlossaries as gax.GaxCall, - request, - callSettings - ); - } - -/** - * Equivalent to `listGlossaries`, 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 name of the project from which to list all of the glossaries. - * @param {number} [request.pageSize] - * Optional. Requested page size. The server may return fewer glossaries than - * requested. If unspecified, the server picks an appropriate default. - * @param {string} [request.pageToken] - * Optional. A token identifying a page of results the server should return. - * Typically, this is the value of [ListGlossariesResponse.next_page_token] - * returned from the previous call to `ListGlossaries` method. - * The first page is returned if `page_token`is empty or missing. - * @param {string} [request.filter] - * Optional. Filter specifying constraints of a list operation. - * Specify the constraint by the format of "key=value", where key must be - * "src" or "tgt", and the value must be a valid language code. - * For multiple restrictions, concatenate them by "AND" (uppercase only), - * such as: "src=en-US AND tgt=zh-CN". Notice that the exact match is used - * here, which means using 'en-US' and 'en' can lead to different results, - * which depends on the language code you used when you create the glossary. - * For the unidirectional glossaries, the "src" and "tgt" add restrictions - * on the source and target language code separately. - * For the equivalent term set glossaries, the "src" and/or "tgt" add - * restrictions on the term set. - * For example: "src=en-US AND tgt=zh-CN" will only pick the unidirectional - * glossaries which exactly match the source language code as "en-US" and the - * target language code "zh-CN", but all equivalent term set glossaries which - * contain "en-US" and "zh-CN" in their language set will be picked. - * If missing, no filtering is performed. - * @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 [async iteration](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols). - * When you iterate the returned iterable, each element will be an object representing - * [Glossary]{@link google.cloud.translation.v3beta1.Glossary}. 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 - * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) - * for more details and examples. - * @example include:samples/generated/v3beta1/translation_service.list_glossaries.js - * region_tag:translate_v3beta1_generated_TranslationService_ListGlossaries_async - */ - listGlossariesAsync( - request?: protos.google.cloud.translation.v3beta1.IListGlossariesRequest, - options?: CallOptions): - AsyncIterable{ - request = request || {}; - options = options || {}; - options.otherArgs = options.otherArgs || {}; - options.otherArgs.headers = options.otherArgs.headers || {}; - options.otherArgs.headers[ - 'x-goog-request-params' - ] = gax.routingHeader.fromParams({ - 'parent': request.parent || '', - }); - const defaultCallSettings = this._defaults['listGlossaries']; - const callSettings = defaultCallSettings.merge(options); - this.initialize(); - return this.descriptors.page.listGlossaries.asyncIterate( - this.innerApiCalls['listGlossaries'] as GaxCall, - request as unknown as RequestType, - callSettings - ) as AsyncIterable; - } - // -------------------- - // -- Path templates -- - // -------------------- - - /** - * Return a fully-qualified glossary resource name string. - * - * @param {string} project - * @param {string} location - * @param {string} glossary - * @returns {string} Resource name string. - */ - glossaryPath(project:string,location:string,glossary:string) { - return this.pathTemplates.glossaryPathTemplate.render({ - project: project, - location: location, - glossary: glossary, - }); - } - - /** - * Parse the project from Glossary resource. - * - * @param {string} glossaryName - * A fully-qualified path representing Glossary resource. - * @returns {string} A string representing the project. - */ - matchProjectFromGlossaryName(glossaryName: string) { - return this.pathTemplates.glossaryPathTemplate.match(glossaryName).project; - } - - /** - * Parse the location from Glossary resource. - * - * @param {string} glossaryName - * A fully-qualified path representing Glossary resource. - * @returns {string} A string representing the location. - */ - matchLocationFromGlossaryName(glossaryName: string) { - return this.pathTemplates.glossaryPathTemplate.match(glossaryName).location; - } - - /** - * Parse the glossary from Glossary resource. - * - * @param {string} glossaryName - * A fully-qualified path representing Glossary resource. - * @returns {string} A string representing the glossary. - */ - matchGlossaryFromGlossaryName(glossaryName: string) { - return this.pathTemplates.glossaryPathTemplate.match(glossaryName).glossary; - } - - /** - * Return a fully-qualified location resource name string. - * - * @param {string} project - * @param {string} location - * @returns {string} Resource name string. - */ - locationPath(project:string,location:string) { - return this.pathTemplates.locationPathTemplate.render({ - project: project, - location: location, - }); - } - - /** - * Parse the project from Location resource. - * - * @param {string} locationName - * A fully-qualified path representing Location resource. - * @returns {string} A string representing the project. - */ - matchProjectFromLocationName(locationName: string) { - return this.pathTemplates.locationPathTemplate.match(locationName).project; - } - - /** - * Parse the location from Location resource. - * - * @param {string} locationName - * A fully-qualified path representing Location resource. - * @returns {string} A string representing the location. - */ - matchLocationFromLocationName(locationName: string) { - return this.pathTemplates.locationPathTemplate.match(locationName).location; - } - - /** - * Terminate the gRPC channel and close the client. - * - * The client will no longer be usable and all future behavior is undefined. - * @returns {Promise} A promise that resolves when the client is closed. - */ - close(): Promise { - if (this.translationServiceStub && !this._terminated) { - return this.translationServiceStub.then(stub => { - this._terminated = true; - stub.close(); - this.operationsClient.close(); - }); - } - return Promise.resolve(); - } -} diff --git a/owl-bot-staging/v3beta1/src/v3beta1/translation_service_client_config.json b/owl-bot-staging/v3beta1/src/v3beta1/translation_service_client_config.json deleted file mode 100644 index bbf1a651..00000000 --- a/owl-bot-staging/v3beta1/src/v3beta1/translation_service_client_config.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "interfaces": { - "google.cloud.translation.v3beta1.TranslationService": { - "retry_codes": { - "non_idempotent": [], - "idempotent": [ - "DEADLINE_EXCEEDED", - "UNAVAILABLE" - ] - }, - "retry_params": { - "default": { - "initial_retry_delay_millis": 100, - "retry_delay_multiplier": 1.3, - "max_retry_delay_millis": 60000, - "initial_rpc_timeout_millis": 60000, - "rpc_timeout_multiplier": 1, - "max_rpc_timeout_millis": 60000, - "total_timeout_millis": 600000 - } - }, - "methods": { - "TranslateText": { - "timeout_millis": 600000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - }, - "DetectLanguage": { - "timeout_millis": 600000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - }, - "GetSupportedLanguages": { - "timeout_millis": 600000, - "retry_codes_name": "idempotent", - "retry_params_name": "default" - }, - "TranslateDocument": { - "timeout_millis": 600000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - }, - "BatchTranslateText": { - "timeout_millis": 600000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - }, - "BatchTranslateDocument": { - "timeout_millis": 600000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - }, - "CreateGlossary": { - "timeout_millis": 600000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - }, - "ListGlossaries": { - "timeout_millis": 600000, - "retry_codes_name": "idempotent", - "retry_params_name": "default" - }, - "GetGlossary": { - "timeout_millis": 600000, - "retry_codes_name": "idempotent", - "retry_params_name": "default" - }, - "DeleteGlossary": { - "timeout_millis": 600000, - "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } - } - } -} diff --git a/owl-bot-staging/v3beta1/src/v3beta1/translation_service_proto_list.json b/owl-bot-staging/v3beta1/src/v3beta1/translation_service_proto_list.json deleted file mode 100644 index a50dcfc7..00000000 --- a/owl-bot-staging/v3beta1/src/v3beta1/translation_service_proto_list.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - "../../protos/google/cloud/translate/v3beta1/translation_service.proto" -] diff --git a/owl-bot-staging/v3beta1/system-test/fixtures/sample/src/index.js b/owl-bot-staging/v3beta1/system-test/fixtures/sample/src/index.js deleted file mode 100644 index ffce988e..00000000 --- a/owl-bot-staging/v3beta1/system-test/fixtures/sample/src/index.js +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - - -/* eslint-disable node/no-missing-require, no-unused-vars */ -const translation = require('@google-cloud/translate'); - -function main() { - const translationServiceClient = new translation.TranslationServiceClient(); -} - -main(); diff --git a/owl-bot-staging/v3beta1/system-test/fixtures/sample/src/index.ts b/owl-bot-staging/v3beta1/system-test/fixtures/sample/src/index.ts deleted file mode 100644 index 38feffe8..00000000 --- a/owl-bot-staging/v3beta1/system-test/fixtures/sample/src/index.ts +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - -import {TranslationServiceClient} from '@google-cloud/translate'; - -// check that the client class type name can be used -function doStuffWithTranslationServiceClient(client: TranslationServiceClient) { - client.close(); -} - -function main() { - // check that the client instance can be created - const translationServiceClient = new TranslationServiceClient(); - doStuffWithTranslationServiceClient(translationServiceClient); -} - -main(); diff --git a/owl-bot-staging/v3beta1/system-test/install.ts b/owl-bot-staging/v3beta1/system-test/install.ts deleted file mode 100644 index 8ec45222..00000000 --- a/owl-bot-staging/v3beta1/system-test/install.ts +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - -import { packNTest } from 'pack-n-play'; -import { readFileSync } from 'fs'; -import { describe, it } from 'mocha'; - -describe('📦 pack-n-play test', () => { - - 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() - } - }; - await packNTest(options); - }); - - it('JavaScript code', async function() { - this.timeout(300000); - const options = { - packageDir: process.cwd(), - sample: { - description: 'JavaScript user can use the library', - ts: readFileSync('./system-test/fixtures/sample/src/index.js').toString() - } - }; - await packNTest(options); - }); - -}); diff --git a/owl-bot-staging/v3beta1/test/gapic_translation_service_v3beta1.ts b/owl-bot-staging/v3beta1/test/gapic_translation_service_v3beta1.ts deleted file mode 100644 index bd5c8802..00000000 --- a/owl-bot-staging/v3beta1/test/gapic_translation_service_v3beta1.ts +++ /dev/null @@ -1,1569 +0,0 @@ -// Copyright 2022 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ** This file is automatically generated by gapic-generator-typescript. ** -// ** https://github.com/googleapis/gapic-generator-typescript ** -// ** All changes to this file may be overwritten. ** - -import * as protos from '../protos/protos'; -import * as assert from 'assert'; -import * as sinon from 'sinon'; -import {SinonStub} from 'sinon'; -import { describe, it } from 'mocha'; -import * as translationserviceModule from '../src'; - -import {PassThrough} from 'stream'; - -import {protobuf, LROperation, operationsProtos} from 'google-gax'; - -function generateSampleMessage(instance: T) { - const filledObject = (instance.constructor as typeof protobuf.Message) - .toObject(instance as protobuf.Message, {defaults: true}); - return (instance.constructor as typeof protobuf.Message).fromObject(filledObject) as T; -} - -function stubSimpleCall(response?: ResponseType, error?: Error) { - return error ? sinon.stub().rejects(error) : sinon.stub().resolves([response]); -} - -function 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 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]); - } - } - 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(); }); - } - return sinon.stub().returns(mockStream); -} - -function stubAsyncIterationCall(responses?: ResponseType[], error?: Error) { - let counter = 0; - const asyncIterable = { - [Symbol.asyncIterator]() { - return { - async next() { - if (error) { - return Promise.reject(error); - } - if (counter >= responses!.length) { - return Promise.resolve({done: true, value: undefined}); - } - return Promise.resolve({done: false, value: responses![counter++]}); - } - }; - } - }; - return sinon.stub().returns(asyncIterable); -} - -describe('v3beta1.TranslationServiceClient', () => { - it('has servicePath', () => { - const servicePath = translationserviceModule.v3beta1.TranslationServiceClient.servicePath; - assert(servicePath); - }); - - it('has apiEndpoint', () => { - const apiEndpoint = translationserviceModule.v3beta1.TranslationServiceClient.apiEndpoint; - assert(apiEndpoint); - }); - - it('has port', () => { - const port = translationserviceModule.v3beta1.TranslationServiceClient.port; - assert(port); - assert(typeof port === 'number'); - }); - - it('should create a client with no option', () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient(); - assert(client); - }); - - it('should create a client with gRPC fallback', () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - fallback: true, - }); - assert(client); - }); - - it('has initialize method and supports deferred initialization', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.translationServiceStub, undefined); - await client.initialize(); - assert(client.translationServiceStub); - }); - - it('has close method for the initialized client', done => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - assert(client.translationServiceStub); - client.close().then(() => { - done(); - }); - }); - - it('has close method for the non-initialized client', done => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - assert.strictEqual(client.translationServiceStub, undefined); - client.close().then(() => { - done(); - }); - }); - - it('has getProjectId method', async () => { - const fakeProjectId = 'fake-project-id'; - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - 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 translationserviceModule.v3beta1.TranslationServiceClient({ - 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('translateText', () => { - it('invokes translateText without error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateTextRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateTextResponse()); - client.innerApiCalls.translateText = stubSimpleCall(expectedResponse); - const [response] = await client.translateText(request); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.translateText as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes translateText without error using callback', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateTextRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateTextResponse()); - client.innerApiCalls.translateText = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.translateText( - request, - (err?: Error|null, result?: protos.google.cloud.translation.v3beta1.ITranslateTextResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.translateText as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); - - it('invokes translateText with error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateTextRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.translateText = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.translateText(request), expectedError); - assert((client.innerApiCalls.translateText as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes translateText with closed client', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateTextRequest()); - request.parent = ''; - const expectedError = new Error('The client has already been closed.'); - client.close(); - await assert.rejects(client.translateText(request), expectedError); - }); - }); - - describe('detectLanguage', () => { - it('invokes detectLanguage without error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.DetectLanguageRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3beta1.DetectLanguageResponse()); - client.innerApiCalls.detectLanguage = stubSimpleCall(expectedResponse); - const [response] = await client.detectLanguage(request); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.detectLanguage as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes detectLanguage without error using callback', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.DetectLanguageRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3beta1.DetectLanguageResponse()); - client.innerApiCalls.detectLanguage = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.detectLanguage( - request, - (err?: Error|null, result?: protos.google.cloud.translation.v3beta1.IDetectLanguageResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.detectLanguage as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); - - it('invokes detectLanguage with error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.DetectLanguageRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.detectLanguage = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.detectLanguage(request), expectedError); - assert((client.innerApiCalls.detectLanguage as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes detectLanguage with closed client', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.DetectLanguageRequest()); - request.parent = ''; - const expectedError = new Error('The client has already been closed.'); - client.close(); - await assert.rejects(client.detectLanguage(request), expectedError); - }); - }); - - describe('getSupportedLanguages', () => { - it('invokes getSupportedLanguages without error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.GetSupportedLanguagesRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3beta1.SupportedLanguages()); - client.innerApiCalls.getSupportedLanguages = stubSimpleCall(expectedResponse); - const [response] = await client.getSupportedLanguages(request); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.getSupportedLanguages as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes getSupportedLanguages without error using callback', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.GetSupportedLanguagesRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3beta1.SupportedLanguages()); - client.innerApiCalls.getSupportedLanguages = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getSupportedLanguages( - request, - (err?: Error|null, result?: protos.google.cloud.translation.v3beta1.ISupportedLanguages|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.getSupportedLanguages as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); - - it('invokes getSupportedLanguages with error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.GetSupportedLanguagesRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.getSupportedLanguages = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getSupportedLanguages(request), expectedError); - assert((client.innerApiCalls.getSupportedLanguages as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes getSupportedLanguages with closed client', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.GetSupportedLanguagesRequest()); - request.parent = ''; - const expectedError = new Error('The client has already been closed.'); - client.close(); - await assert.rejects(client.getSupportedLanguages(request), expectedError); - }); - }); - - describe('translateDocument', () => { - it('invokes translateDocument without error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateDocumentRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateDocumentResponse()); - client.innerApiCalls.translateDocument = stubSimpleCall(expectedResponse); - const [response] = await client.translateDocument(request); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.translateDocument as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes translateDocument without error using callback', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateDocumentRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateDocumentResponse()); - client.innerApiCalls.translateDocument = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.translateDocument( - request, - (err?: Error|null, result?: protos.google.cloud.translation.v3beta1.ITranslateDocumentResponse|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.translateDocument as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); - - it('invokes translateDocument with error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateDocumentRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.translateDocument = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.translateDocument(request), expectedError); - assert((client.innerApiCalls.translateDocument as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes translateDocument with closed client', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.TranslateDocumentRequest()); - request.parent = ''; - const expectedError = new Error('The client has already been closed.'); - client.close(); - await assert.rejects(client.translateDocument(request), expectedError); - }); - }); - - describe('getGlossary', () => { - it('invokes getGlossary without error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.GetGlossaryRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()); - client.innerApiCalls.getGlossary = stubSimpleCall(expectedResponse); - const [response] = await client.getGlossary(request); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.getGlossary as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes getGlossary without error using callback', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.GetGlossaryRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()); - client.innerApiCalls.getGlossary = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.getGlossary( - request, - (err?: Error|null, result?: protos.google.cloud.translation.v3beta1.IGlossary|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.getGlossary as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); - - it('invokes getGlossary with error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.GetGlossaryRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.getGlossary = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.getGlossary(request), expectedError); - assert((client.innerApiCalls.getGlossary as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes getGlossary with closed client', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.GetGlossaryRequest()); - request.name = ''; - const expectedError = new Error('The client has already been closed.'); - client.close(); - await assert.rejects(client.getGlossary(request), expectedError); - }); - }); - - describe('batchTranslateText', () => { - it('invokes batchTranslateText without error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.BatchTranslateTextRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); - client.innerApiCalls.batchTranslateText = stubLongRunningCall(expectedResponse); - const [operation] = await client.batchTranslateText(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.batchTranslateText as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes batchTranslateText without error using callback', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.BatchTranslateTextRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); - client.innerApiCalls.batchTranslateText = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.batchTranslateText( - 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); - assert((client.innerApiCalls.batchTranslateText as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); - - it('invokes batchTranslateText with call error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.BatchTranslateTextRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.batchTranslateText = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.batchTranslateText(request), expectedError); - assert((client.innerApiCalls.batchTranslateText as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes batchTranslateText with LRO error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.BatchTranslateTextRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.batchTranslateText = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.batchTranslateText(request); - await assert.rejects(operation.promise(), expectedError); - assert((client.innerApiCalls.batchTranslateText as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes checkBatchTranslateTextProgress without error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - 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.checkBatchTranslateTextProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); - - it('invokes checkBatchTranslateTextProgress with error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkBatchTranslateTextProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); - }); - - describe('batchTranslateDocument', () => { - it('invokes batchTranslateDocument without error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.BatchTranslateDocumentRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); - client.innerApiCalls.batchTranslateDocument = stubLongRunningCall(expectedResponse); - const [operation] = await client.batchTranslateDocument(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.batchTranslateDocument as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes batchTranslateDocument without error using callback', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.BatchTranslateDocumentRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); - client.innerApiCalls.batchTranslateDocument = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.batchTranslateDocument( - 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); - assert((client.innerApiCalls.batchTranslateDocument as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); - - it('invokes batchTranslateDocument with call error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.BatchTranslateDocumentRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.batchTranslateDocument = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.batchTranslateDocument(request), expectedError); - assert((client.innerApiCalls.batchTranslateDocument as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes batchTranslateDocument with LRO error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.BatchTranslateDocumentRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.batchTranslateDocument = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.batchTranslateDocument(request); - await assert.rejects(operation.promise(), expectedError); - assert((client.innerApiCalls.batchTranslateDocument as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes checkBatchTranslateDocumentProgress without error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - 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.checkBatchTranslateDocumentProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); - - it('invokes checkBatchTranslateDocumentProgress with error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkBatchTranslateDocumentProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); - }); - - describe('createGlossary', () => { - it('invokes createGlossary without error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.CreateGlossaryRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); - client.innerApiCalls.createGlossary = stubLongRunningCall(expectedResponse); - const [operation] = await client.createGlossary(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.createGlossary as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes createGlossary without error using callback', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.CreateGlossaryRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); - client.innerApiCalls.createGlossary = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.createGlossary( - 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); - assert((client.innerApiCalls.createGlossary as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); - - it('invokes createGlossary with call error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.CreateGlossaryRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.createGlossary = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.createGlossary(request), expectedError); - assert((client.innerApiCalls.createGlossary as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes createGlossary with LRO error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.CreateGlossaryRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.createGlossary = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.createGlossary(request); - await assert.rejects(operation.promise(), expectedError); - assert((client.innerApiCalls.createGlossary as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes checkCreateGlossaryProgress without error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - 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.checkCreateGlossaryProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); - - it('invokes checkCreateGlossaryProgress with error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkCreateGlossaryProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); - }); - - describe('deleteGlossary', () => { - it('invokes deleteGlossary without error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.DeleteGlossaryRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); - client.innerApiCalls.deleteGlossary = stubLongRunningCall(expectedResponse); - const [operation] = await client.deleteGlossary(request); - const [response] = await operation.promise(); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.deleteGlossary as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes deleteGlossary without error using callback', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.DeleteGlossaryRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = generateSampleMessage(new protos.google.longrunning.Operation()); - client.innerApiCalls.deleteGlossary = stubLongRunningCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.deleteGlossary( - 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); - assert((client.innerApiCalls.deleteGlossary as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); - - it('invokes deleteGlossary with call error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.DeleteGlossaryRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.deleteGlossary = stubLongRunningCall(undefined, expectedError); - await assert.rejects(client.deleteGlossary(request), expectedError); - assert((client.innerApiCalls.deleteGlossary as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes deleteGlossary with LRO error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.DeleteGlossaryRequest()); - request.name = ''; - const expectedHeaderRequestParams = "name="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.deleteGlossary = stubLongRunningCall(undefined, undefined, expectedError); - const [operation] = await client.deleteGlossary(request); - await assert.rejects(operation.promise(), expectedError); - assert((client.innerApiCalls.deleteGlossary as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes checkDeleteGlossaryProgress without error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - 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.checkDeleteGlossaryProgress(expectedResponse.name); - assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); - assert(decodedOperation.metadata); - assert((client.operationsClient.getOperation as SinonStub).getCall(0)); - }); - - it('invokes checkDeleteGlossaryProgress with error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const expectedError = new Error('expected'); - - client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.checkDeleteGlossaryProgress(''), expectedError); - assert((client.operationsClient.getOperation as SinonStub) - .getCall(0)); - }); - }); - - describe('listGlossaries', () => { - it('invokes listGlossaries without error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.ListGlossariesRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), - generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), - generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), - ]; - client.innerApiCalls.listGlossaries = stubSimpleCall(expectedResponse); - const [response] = await client.listGlossaries(request); - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.listGlossaries as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes listGlossaries without error using callback', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.ListGlossariesRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), - generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), - generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), - ]; - client.innerApiCalls.listGlossaries = stubSimpleCallWithCallback(expectedResponse); - const promise = new Promise((resolve, reject) => { - client.listGlossaries( - request, - (err?: Error|null, result?: protos.google.cloud.translation.v3beta1.IGlossary[]|null) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }); - }); - const response = await promise; - assert.deepStrictEqual(response, expectedResponse); - assert((client.innerApiCalls.listGlossaries as SinonStub) - .getCall(0).calledWith(request, expectedOptions /*, callback defined above */)); - }); - - it('invokes listGlossaries with error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.ListGlossariesRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedOptions = { - otherArgs: { - headers: { - 'x-goog-request-params': expectedHeaderRequestParams, - }, - }, - }; - const expectedError = new Error('expected'); - client.innerApiCalls.listGlossaries = stubSimpleCall(undefined, expectedError); - await assert.rejects(client.listGlossaries(request), expectedError); - assert((client.innerApiCalls.listGlossaries as SinonStub) - .getCall(0).calledWith(request, expectedOptions, undefined)); - }); - - it('invokes listGlossariesStream without error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.ListGlossariesRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), - generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), - generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), - ]; - client.descriptors.page.listGlossaries.createStream = stubPageStreamingCall(expectedResponse); - const stream = client.listGlossariesStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.translation.v3beta1.Glossary[] = []; - stream.on('data', (response: protos.google.cloud.translation.v3beta1.Glossary) => { - 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.listGlossaries.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listGlossaries, request)); - assert.strictEqual( - (client.descriptors.page.listGlossaries.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams - ); - }); - - it('invokes listGlossariesStream with error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.ListGlossariesRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedError = new Error('expected'); - client.descriptors.page.listGlossaries.createStream = stubPageStreamingCall(undefined, expectedError); - const stream = client.listGlossariesStream(request); - const promise = new Promise((resolve, reject) => { - const responses: protos.google.cloud.translation.v3beta1.Glossary[] = []; - stream.on('data', (response: protos.google.cloud.translation.v3beta1.Glossary) => { - responses.push(response); - }); - stream.on('end', () => { - resolve(responses); - }); - stream.on('error', (err: Error) => { - reject(err); - }); - }); - await assert.rejects(promise, expectedError); - assert((client.descriptors.page.listGlossaries.createStream as SinonStub) - .getCall(0).calledWith(client.innerApiCalls.listGlossaries, request)); - assert.strictEqual( - (client.descriptors.page.listGlossaries.createStream as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams - ); - }); - - it('uses async iteration with listGlossaries without error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.ListGlossariesRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent="; - const expectedResponse = [ - generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), - generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), - generateSampleMessage(new protos.google.cloud.translation.v3beta1.Glossary()), - ]; - client.descriptors.page.listGlossaries.asyncIterate = stubAsyncIterationCall(expectedResponse); - const responses: protos.google.cloud.translation.v3beta1.IGlossary[] = []; - const iterable = client.listGlossariesAsync(request); - for await (const resource of iterable) { - responses.push(resource!); - } - assert.deepStrictEqual(responses, expectedResponse); - assert.deepStrictEqual( - (client.descriptors.page.listGlossaries.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert.strictEqual( - (client.descriptors.page.listGlossaries.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams - ); - }); - - it('uses async iteration with listGlossaries with error', async () => { - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - const request = generateSampleMessage(new protos.google.cloud.translation.v3beta1.ListGlossariesRequest()); - request.parent = ''; - const expectedHeaderRequestParams = "parent=";const expectedError = new Error('expected'); - client.descriptors.page.listGlossaries.asyncIterate = stubAsyncIterationCall(undefined, expectedError); - const iterable = client.listGlossariesAsync(request); - await assert.rejects(async () => { - const responses: protos.google.cloud.translation.v3beta1.IGlossary[] = []; - for await (const resource of iterable) { - responses.push(resource!); - } - }); - assert.deepStrictEqual( - (client.descriptors.page.listGlossaries.asyncIterate as SinonStub) - .getCall(0).args[1], request); - assert.strictEqual( - (client.descriptors.page.listGlossaries.asyncIterate as SinonStub) - .getCall(0).args[2].otherArgs.headers['x-goog-request-params'], - expectedHeaderRequestParams - ); - }); - }); - - describe('Path templates', () => { - - describe('glossary', () => { - const fakePath = "/rendered/path/glossary"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - glossary: "glossaryValue", - }; - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - client.initialize(); - client.pathTemplates.glossaryPathTemplate.render = - sinon.stub().returns(fakePath); - client.pathTemplates.glossaryPathTemplate.match = - sinon.stub().returns(expectedParameters); - - it('glossaryPath', () => { - const result = client.glossaryPath("projectValue", "locationValue", "glossaryValue"); - assert.strictEqual(result, fakePath); - assert((client.pathTemplates.glossaryPathTemplate.render as SinonStub) - .getCall(-1).calledWith(expectedParameters)); - }); - - it('matchProjectFromGlossaryName', () => { - const result = client.matchProjectFromGlossaryName(fakePath); - assert.strictEqual(result, "projectValue"); - assert((client.pathTemplates.glossaryPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchLocationFromGlossaryName', () => { - const result = client.matchLocationFromGlossaryName(fakePath); - assert.strictEqual(result, "locationValue"); - assert((client.pathTemplates.glossaryPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - - it('matchGlossaryFromGlossaryName', () => { - const result = client.matchGlossaryFromGlossaryName(fakePath); - assert.strictEqual(result, "glossaryValue"); - assert((client.pathTemplates.glossaryPathTemplate.match as SinonStub) - .getCall(-1).calledWith(fakePath)); - }); - }); - - describe('location', () => { - const fakePath = "/rendered/path/location"; - const expectedParameters = { - project: "projectValue", - location: "locationValue", - }; - const client = new translationserviceModule.v3beta1.TranslationServiceClient({ - credentials: {client_email: 'bogus', private_key: 'bogus'}, - projectId: 'bogus', - }); - 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)); - }); - }); - }); -}); diff --git a/owl-bot-staging/v3beta1/tsconfig.json b/owl-bot-staging/v3beta1/tsconfig.json deleted file mode 100644 index c78f1c88..00000000 --- a/owl-bot-staging/v3beta1/tsconfig.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "extends": "./node_modules/gts/tsconfig-google.json", - "compilerOptions": { - "rootDir": ".", - "outDir": "build", - "resolveJsonModule": true, - "lib": [ - "es2018", - "dom" - ] - }, - "include": [ - "src/*.ts", - "src/**/*.ts", - "test/*.ts", - "test/**/*.ts", - "system-test/*.ts" - ] -} diff --git a/owl-bot-staging/v3beta1/webpack.config.js b/owl-bot-staging/v3beta1/webpack.config.js deleted file mode 100644 index 3504dead..00000000 --- a/owl-bot-staging/v3beta1/webpack.config.js +++ /dev/null @@ -1,64 +0,0 @@ -// 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. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -const path = require('path'); - -module.exports = { - entry: './src/index.ts', - output: { - library: 'TranslationService', - filename: './translation-service.js', - }, - node: { - child_process: 'empty', - fs: 'empty', - crypto: 'empty', - }, - resolve: { - alias: { - '../../../package.json': path.resolve(__dirname, 'package.json'), - }, - extensions: ['.js', '.json', '.ts'], - }, - module: { - rules: [ - { - test: /\.tsx?$/, - use: 'ts-loader', - exclude: /node_modules/ - }, - { - test: /node_modules[\\/]@grpc[\\/]grpc-js/, - use: 'null-loader' - }, - { - test: /node_modules[\\/]grpc/, - use: 'null-loader' - }, - { - test: /node_modules[\\/]retry-request/, - use: 'null-loader' - }, - { - test: /node_modules[\\/]https?-proxy-agent/, - use: 'null-loader' - }, - { - test: /node_modules[\\/]gtoken/, - use: 'null-loader' - }, - ], - }, - mode: 'production', -}; diff --git a/src/v3/translation_service_client.ts b/src/v3/translation_service_client.ts index 5181d286..f67e99c5 100644 --- a/src/v3/translation_service_client.ts +++ b/src/v3/translation_service_client.ts @@ -23,6 +23,7 @@ import { CallOptions, Descriptors, ClientOptions, + GrpcClientOptions, LROperation, PaginationCallback, GaxCall, @@ -72,7 +73,7 @@ export class TranslationServiceClient { * * @param {object} [options] - The configuration object. * The options accepted by the constructor are described in detail - * in [this document](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#creating-the-client-instance). + * in [this document](https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#creating-the-client-instance). * The common options are: * @param {object} [options.credentials] - Credentials object. * @param {string} [options.credentials.client_email] @@ -95,11 +96,10 @@ export class TranslationServiceClient { * API remote host. * @param {gax.ClientConfig} [options.clientConfig] - Client configuration override. * Follows the structure of {@link gapicConfig}. - * @param {boolean} [options.fallback] - Use HTTP fallback mode. - * In fallback mode, a special browser-compatible transport implementation is used - * instead of gRPC transport. In browser context (if the `window` object is defined) - * the fallback mode is enabled automatically; set `options.fallback` to `false` - * if you need to override this behavior. + * @param {boolean | "rest"} [options.fallback] - Use HTTP fallback mode. + * Pass "rest" to use HTTP/1.1 REST API instead of gRPC. + * For more information, please check the + * {@link https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#http11-rest-api-mode documentation}. */ constructor(opts?: ClientOptions) { // Ensure that options include all the required fields. @@ -186,16 +186,50 @@ export class TranslationServiceClient { }; const protoFilesRoot = this._gaxModule.protobuf.Root.fromJSON(jsonProtos); - // This API contains "long-running operations", which return a // an Operation object that allows for tracking of the operation, // rather than holding a request open. - + const lroOptions: GrpcClientOptions = { + auth: this.auth, + grpc: 'grpc' in this._gaxGrpc ? this._gaxGrpc.grpc : undefined, + }; + if (opts.fallback === 'rest') { + lroOptions.protoJson = protoFilesRoot; + lroOptions.httpRules = [ + { + selector: 'google.cloud.location.Locations.GetLocation', + get: '/v3/{name=projects/*/locations/*}', + }, + { + selector: 'google.cloud.location.Locations.ListLocations', + get: '/v3/{name=projects/*}/locations', + }, + { + selector: 'google.longrunning.Operations.CancelOperation', + post: '/v3/{name=projects/*/locations/*/operations/*}:cancel', + body: '*', + }, + { + selector: 'google.longrunning.Operations.DeleteOperation', + delete: '/v3/{name=projects/*/locations/*/operations/*}', + }, + { + selector: 'google.longrunning.Operations.GetOperation', + get: '/v3/{name=projects/*/locations/*/operations/*}', + }, + { + selector: 'google.longrunning.Operations.ListOperations', + get: '/v3/{name=projects/*/locations/*}/operations', + }, + { + selector: 'google.longrunning.Operations.WaitOperation', + post: '/v3/{name=projects/*/locations/*/operations/*}:wait', + body: '*', + }, + ]; + } this.operationsClient = this._gaxModule - .lro({ - auth: this.auth, - grpc: 'grpc' in this._gaxGrpc ? this._gaxGrpc.grpc : undefined, - }) + .lro(lroOptions) .operationsClient(opts); const batchTranslateTextResponse = protoFilesRoot.lookup( '.google.cloud.translation.v3.BatchTranslateResponse' diff --git a/src/v3beta1/translation_service_client.ts b/src/v3beta1/translation_service_client.ts index ab1fa9ce..765f4dfd 100644 --- a/src/v3beta1/translation_service_client.ts +++ b/src/v3beta1/translation_service_client.ts @@ -23,6 +23,7 @@ import { CallOptions, Descriptors, ClientOptions, + GrpcClientOptions, LROperation, PaginationCallback, GaxCall, @@ -72,7 +73,7 @@ export class TranslationServiceClient { * * @param {object} [options] - The configuration object. * The options accepted by the constructor are described in detail - * in [this document](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#creating-the-client-instance). + * in [this document](https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#creating-the-client-instance). * The common options are: * @param {object} [options.credentials] - Credentials object. * @param {string} [options.credentials.client_email] @@ -95,11 +96,10 @@ export class TranslationServiceClient { * API remote host. * @param {gax.ClientConfig} [options.clientConfig] - Client configuration override. * Follows the structure of {@link gapicConfig}. - * @param {boolean} [options.fallback] - Use HTTP fallback mode. - * In fallback mode, a special browser-compatible transport implementation is used - * instead of gRPC transport. In browser context (if the `window` object is defined) - * the fallback mode is enabled automatically; set `options.fallback` to `false` - * if you need to override this behavior. + * @param {boolean | "rest"} [options.fallback] - Use HTTP fallback mode. + * Pass "rest" to use HTTP/1.1 REST API instead of gRPC. + * For more information, please check the + * {@link https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#http11-rest-api-mode documentation}. */ constructor(opts?: ClientOptions) { // Ensure that options include all the required fields. @@ -186,16 +186,50 @@ export class TranslationServiceClient { }; const protoFilesRoot = this._gaxModule.protobuf.Root.fromJSON(jsonProtos); - // This API contains "long-running operations", which return a // an Operation object that allows for tracking of the operation, // rather than holding a request open. - + const lroOptions: GrpcClientOptions = { + auth: this.auth, + grpc: 'grpc' in this._gaxGrpc ? this._gaxGrpc.grpc : undefined, + }; + if (opts.fallback === 'rest') { + lroOptions.protoJson = protoFilesRoot; + lroOptions.httpRules = [ + { + selector: 'google.cloud.location.Locations.GetLocation', + get: '/v3beta1/{name=projects/*/locations/*}', + }, + { + selector: 'google.cloud.location.Locations.ListLocations', + get: '/v3beta1/{name=projects/*}/locations', + }, + { + selector: 'google.longrunning.Operations.CancelOperation', + post: '/v3beta1/{name=projects/*/locations/*/operations/*}:cancel', + body: '*', + }, + { + selector: 'google.longrunning.Operations.DeleteOperation', + delete: '/v3beta1/{name=projects/*/locations/*/operations/*}', + }, + { + selector: 'google.longrunning.Operations.GetOperation', + get: '/v3beta1/{name=projects/*/locations/*/operations/*}', + }, + { + selector: 'google.longrunning.Operations.ListOperations', + get: '/v3beta1/{name=projects/*/locations/*}/operations', + }, + { + selector: 'google.longrunning.Operations.WaitOperation', + post: '/v3beta1/{name=projects/*/locations/*/operations/*}:wait', + body: '*', + }, + ]; + } this.operationsClient = this._gaxModule - .lro({ - auth: this.auth, - grpc: 'grpc' in this._gaxGrpc ? this._gaxGrpc.grpc : undefined, - }) + .lro(lroOptions) .operationsClient(opts); const batchTranslateTextResponse = protoFilesRoot.lookup( '.google.cloud.translation.v3beta1.BatchTranslateResponse'