google-cloud-translate-v3 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2127d54b3f562ff15b9e8d52a7fb3419d8c84c378c7b183d20880278c080e262
4
- data.tar.gz: f6c96cf54f9262a258ec51d5bdceaeef82116bd39b93e82f9966e92ebb22cc1e
3
+ metadata.gz: a8cfa4d08984860e5959afa7256f8f0f080f06ab005fa1d4b9d0faf0c8eb4bf1
4
+ data.tar.gz: 352e5dca02bf816caa32be3aef72876ccbc730e5169bc4eb6927b8631421c911
5
5
  SHA512:
6
- metadata.gz: 3d5c9e2790ad5404c8e27ba581acdeb55b66231235724263ed674931848735353a12b7db52539a7ac45c178415f8c1ceb85d1b6acfed396d1a31d2a6cc213bc9
7
- data.tar.gz: f667fbddb409187d5888eb44078b9a542f2a1b8738548c16f03a2f992013dc671bf6d5ba4f645711ebf904b5cbda49f0d750d714cee5c9abaf73c619c6d3a1b4
6
+ metadata.gz: 488a8eb67f8215a8bdc46951ae63c0b0af83bcdfefde0125e3fcb7806c6208a50b85b9008c50a149a6737b8c6631102ee5bf61c2cb5e80341470c7ebca0657bf
7
+ data.tar.gz: ff5fab29974c8902d18bc8a17b5438fa4b098bfccb6b73eab04ae72ac2c62327ec5c208641908d6a8b03a630071238887afdd89008f77627f52f515071de573d
data/AUTHENTICATION.md CHANGED
@@ -66,11 +66,11 @@ The environment variables that google-cloud-translate-v3
66
66
  checks for credentials are configured on the service Credentials class (such as
67
67
  {::Google::Cloud::Translate::V3::TranslationService::Credentials}):
68
68
 
69
- 1. `TRANSLATE_CREDENTIALS` - Path to JSON file, or JSON contents
70
- 2. `TRANSLATE_KEYFILE` - Path to JSON file, or JSON contents
71
- 3. `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents
72
- 4. `GOOGLE_CLOUD_KEYFILE` - Path to JSON file, or JSON contents
73
- 5. `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file
69
+ * `TRANSLATE_CREDENTIALS` - Path to JSON file, or JSON contents
70
+ * `TRANSLATE_KEYFILE` - Path to JSON file, or JSON contents
71
+ * `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents
72
+ * `GOOGLE_CLOUD_KEYFILE` - Path to JSON file, or JSON contents
73
+ * `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file
74
74
 
75
75
  ```ruby
76
76
  require "google/cloud/translate/v3"
@@ -82,8 +82,8 @@ client = ::Google::Cloud::Translate::V3::TranslationService::Client.new
82
82
 
83
83
  ### Configuration
84
84
 
85
- The **Credentials JSON** can be configured instead of placing them in
86
- environment variables. Either on an individual client initialization:
85
+ The path to the **Credentials JSON** file can be configured instead of storing
86
+ it in an environment variable. Either on an individual client initialization:
87
87
 
88
88
  ```ruby
89
89
  require "google/cloud/translate/v3"
@@ -93,7 +93,7 @@ client = ::Google::Cloud::Translate::V3::TranslationService::Client.new do |conf
93
93
  end
94
94
  ```
95
95
 
96
- Or configured globally for all clients:
96
+ Or globally for all clients:
97
97
 
98
98
  ```ruby
99
99
  require "google/cloud/translate/v3"
data/README.md CHANGED
@@ -33,7 +33,7 @@ In order to use this library, you first need to go through the following steps:
33
33
  require "google/cloud/translate/v3"
34
34
 
35
35
  client = ::Google::Cloud::Translate::V3::TranslationService::Client.new
36
- request = my_create_request
36
+ request = ::Google::Cloud::Translate::V3::TranslateTextRequest.new # (request fields as keyword arguments...)
37
37
  response = client.translate_text request
38
38
  ```
39
39
 
@@ -41,13 +41,12 @@ module Google
41
41
  # See {::Google::Cloud::Translate::V3::TranslationService::Client::Configuration}
42
42
  # for a description of the configuration fields.
43
43
  #
44
- # ## Example
44
+ # @example
45
45
  #
46
- # To modify the configuration for all TranslationService clients:
47
- #
48
- # ::Google::Cloud::Translate::V3::TranslationService::Client.configure do |config|
49
- # config.timeout = 10.0
50
- # end
46
+ # # Modify the configuration for all TranslationService clients
47
+ # ::Google::Cloud::Translate::V3::TranslationService::Client.configure do |config|
48
+ # config.timeout = 10.0
49
+ # end
51
50
  #
52
51
  # @yield [config] Configure the Client client.
53
52
  # @yieldparam config [Client::Configuration]
@@ -71,38 +70,30 @@ module Google
71
70
 
72
71
  default_config.rpcs.get_supported_languages.timeout = 600.0
73
72
  default_config.rpcs.get_supported_languages.retry_policy = {
74
- initial_delay: 0.1,
75
- max_delay: 60.0,
76
- multiplier: 1.3,
77
- retry_codes: [4, 14]
73
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
78
74
  }
79
75
 
76
+ default_config.rpcs.translate_document.timeout = 600.0
77
+
80
78
  default_config.rpcs.batch_translate_text.timeout = 600.0
81
79
 
80
+ default_config.rpcs.batch_translate_document.timeout = 600.0
81
+
82
82
  default_config.rpcs.create_glossary.timeout = 600.0
83
83
 
84
84
  default_config.rpcs.list_glossaries.timeout = 600.0
85
85
  default_config.rpcs.list_glossaries.retry_policy = {
86
- initial_delay: 0.1,
87
- max_delay: 60.0,
88
- multiplier: 1.3,
89
- retry_codes: [4, 14]
86
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
90
87
  }
91
88
 
92
89
  default_config.rpcs.get_glossary.timeout = 600.0
93
90
  default_config.rpcs.get_glossary.retry_policy = {
94
- initial_delay: 0.1,
95
- max_delay: 60.0,
96
- multiplier: 1.3,
97
- retry_codes: [4, 14]
91
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
98
92
  }
99
93
 
100
94
  default_config.rpcs.delete_glossary.timeout = 600.0
101
95
  default_config.rpcs.delete_glossary.retry_policy = {
102
- initial_delay: 0.1,
103
- max_delay: 60.0,
104
- multiplier: 1.3,
105
- retry_codes: [4, 14]
96
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
106
97
  }
107
98
 
108
99
  default_config
@@ -134,19 +125,15 @@ module Google
134
125
  ##
135
126
  # Create a new TranslationService client object.
136
127
  #
137
- # ## Examples
128
+ # @example
138
129
  #
139
- # To create a new TranslationService client with the default
140
- # configuration:
130
+ # # Create a client using the default configuration
131
+ # client = ::Google::Cloud::Translate::V3::TranslationService::Client.new
141
132
  #
142
- # client = ::Google::Cloud::Translate::V3::TranslationService::Client.new
143
- #
144
- # To create a new TranslationService client with a custom
145
- # configuration:
146
- #
147
- # client = ::Google::Cloud::Translate::V3::TranslationService::Client.new do |config|
148
- # config.timeout = 10.0
149
- # end
133
+ # # Create a client using a custom configuration
134
+ # client = ::Google::Cloud::Translate::V3::TranslationService::Client.new do |config|
135
+ # config.timeout = 10.0
136
+ # end
150
137
  #
151
138
  # @yield [config] Configure the TranslationService client.
152
139
  # @yieldparam config [Client::Configuration]
@@ -166,14 +153,13 @@ module Google
166
153
 
167
154
  # Create credentials
168
155
  credentials = @config.credentials
169
- # Use self-signed JWT if the scope and endpoint are unchanged from default,
156
+ # Use self-signed JWT if the endpoint is unchanged from default,
170
157
  # but only if the default endpoint does not have a region prefix.
171
- enable_self_signed_jwt = @config.scope == Client.configure.scope &&
172
- @config.endpoint == Client.configure.endpoint &&
158
+ enable_self_signed_jwt = @config.endpoint == Client.configure.endpoint &&
173
159
  !@config.endpoint.split(".").first.include?("-")
174
160
  credentials ||= Credentials.default scope: @config.scope,
175
161
  enable_self_signed_jwt: enable_self_signed_jwt
176
- if credentials.is_a?(String) || credentials.is_a?(Hash)
162
+ if credentials.is_a?(::String) || credentials.is_a?(::Hash)
177
163
  credentials = Credentials.new credentials, scope: @config.scope
178
164
  end
179
165
  @quota_project_id = @config.quota_project
@@ -222,7 +208,8 @@ module Google
222
208
  #
223
209
  # @param contents [::Array<::String>]
224
210
  # Required. The content of the input in string format.
225
- # We recommend the total content be less than 30k codepoints.
211
+ # We recommend the total content be less than 30k codepoints. The max length
212
+ # of this field is 1024.
226
213
  # Use BatchTranslateText for larger text.
227
214
  # @param mime_type [::String]
228
215
  # Optional. The format of the source text, for example, "text/html",
@@ -261,14 +248,13 @@ module Google
261
248
  #
262
249
  # - General (built-in) models:
263
250
  # `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`,
264
- # `projects/{project-number-or-id}/locations/{location-id}/models/general/base`
265
251
  #
266
252
  #
267
253
  # For global (non-regionalized) requests, use `location-id` `global`.
268
254
  # For example,
269
255
  # `projects/{project-number-or-id}/locations/global/models/general/nmt`.
270
256
  #
271
- # If missing, the system decides which google base model to use.
257
+ # If not provided, the default Google model (NMT) will be used.
272
258
  # @param glossary_config [::Google::Cloud::Translate::V3::TranslateTextGlossaryConfig, ::Hash]
273
259
  # Optional. Glossary to be applied. The glossary must be
274
260
  # within the same region (have the same location-id) as the model, otherwise
@@ -281,7 +267,8 @@ module Google
281
267
  # characters, underscores and dashes. International characters are allowed.
282
268
  # Label values are optional. Label keys must start with a letter.
283
269
  #
284
- # See https://cloud.google.com/translate/docs/labels for more information.
270
+ # See https://cloud.google.com/translate/docs/advanced/labels for more
271
+ # information.
285
272
  #
286
273
  # @yield [response, operation] Access the result along with the RPC operation
287
274
  # @yieldparam response [::Google::Cloud::Translate::V3::TranslateTextResponse]
@@ -317,7 +304,9 @@ module Google
317
304
  options.apply_defaults timeout: @config.rpcs.translate_text.timeout,
318
305
  metadata: metadata,
319
306
  retry_policy: @config.rpcs.translate_text.retry_policy
320
- options.apply_defaults metadata: @config.metadata,
307
+
308
+ options.apply_defaults timeout: @config.timeout,
309
+ metadata: @config.metadata,
321
310
  retry_policy: @config.retry_policy
322
311
 
323
312
  @translation_service_stub.call_rpc :translate_text, request, options: options do |response, operation|
@@ -381,7 +370,8 @@ module Google
381
370
  # characters, underscores and dashes. International characters are allowed.
382
371
  # Label values are optional. Label keys must start with a letter.
383
372
  #
384
- # See https://cloud.google.com/translate/docs/labels for more information.
373
+ # See https://cloud.google.com/translate/docs/advanced/labels for more
374
+ # information.
385
375
  #
386
376
  # @yield [response, operation] Access the result along with the RPC operation
387
377
  # @yieldparam response [::Google::Cloud::Translate::V3::DetectLanguageResponse]
@@ -417,7 +407,9 @@ module Google
417
407
  options.apply_defaults timeout: @config.rpcs.detect_language.timeout,
418
408
  metadata: metadata,
419
409
  retry_policy: @config.rpcs.detect_language.retry_policy
420
- options.apply_defaults metadata: @config.metadata,
410
+
411
+ options.apply_defaults timeout: @config.timeout,
412
+ metadata: @config.metadata,
421
413
  retry_policy: @config.retry_policy
422
414
 
423
415
  @translation_service_stub.call_rpc :detect_language, request, options: options do |response, operation|
@@ -474,11 +466,10 @@ module Google
474
466
  #
475
467
  # - General (built-in) models:
476
468
  # `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`,
477
- # `projects/{project-number-or-id}/locations/{location-id}/models/general/base`
478
469
  #
479
470
  #
480
471
  # Returns languages supported by the specified model.
481
- # If missing, we get supported languages of Google general base (PBMT) model.
472
+ # If missing, we get supported languages of Google general NMT model.
482
473
  #
483
474
  # @yield [response, operation] Access the result along with the RPC operation
484
475
  # @yieldparam response [::Google::Cloud::Translate::V3::SupportedLanguages]
@@ -514,7 +505,9 @@ module Google
514
505
  options.apply_defaults timeout: @config.rpcs.get_supported_languages.timeout,
515
506
  metadata: metadata,
516
507
  retry_policy: @config.rpcs.get_supported_languages.retry_policy
517
- options.apply_defaults metadata: @config.metadata,
508
+
509
+ options.apply_defaults timeout: @config.timeout,
510
+ metadata: @config.metadata,
518
511
  retry_policy: @config.retry_policy
519
512
 
520
513
  @translation_service_stub.call_rpc :get_supported_languages, request, options: options do |response, operation|
@@ -525,6 +518,131 @@ module Google
525
518
  raise ::Google::Cloud::Error.from_error(e)
526
519
  end
527
520
 
521
+ ##
522
+ # Translates documents in synchronous mode.
523
+ #
524
+ # @overload translate_document(request, options = nil)
525
+ # Pass arguments to `translate_document` via a request object, either of type
526
+ # {::Google::Cloud::Translate::V3::TranslateDocumentRequest} or an equivalent Hash.
527
+ #
528
+ # @param request [::Google::Cloud::Translate::V3::TranslateDocumentRequest, ::Hash]
529
+ # A request object representing the call parameters. Required. To specify no
530
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
531
+ # @param options [::Gapic::CallOptions, ::Hash]
532
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
533
+ #
534
+ # @overload translate_document(parent: nil, source_language_code: nil, target_language_code: nil, document_input_config: nil, document_output_config: nil, model: nil, glossary_config: nil, labels: nil)
535
+ # Pass arguments to `translate_document` via keyword arguments. Note that at
536
+ # least one keyword argument is required. To specify no parameters, or to keep all
537
+ # the default parameter values, pass an empty Hash as a request object (see above).
538
+ #
539
+ # @param parent [::String]
540
+ # Required. Location to make a regional call.
541
+ #
542
+ # Format: `projects/{project-number-or-id}/locations/{location-id}`.
543
+ #
544
+ # For global calls, use `projects/{project-number-or-id}/locations/global` or
545
+ # `projects/{project-number-or-id}`.
546
+ #
547
+ # Non-global location is required for requests using AutoML models or custom
548
+ # glossaries.
549
+ #
550
+ # Models and glossaries must be within the same region (have the same
551
+ # location-id), otherwise an INVALID_ARGUMENT (400) error is returned.
552
+ # @param source_language_code [::String]
553
+ # Optional. The BCP-47 language code of the input document if known, for
554
+ # example, "en-US" or "sr-Latn". Supported language codes are listed in
555
+ # Language Support. If the source language isn't specified, the API attempts
556
+ # to identify the source language automatically and returns the source
557
+ # language within the response. Source language must be specified if the
558
+ # request contains a glossary or a custom model.
559
+ # @param target_language_code [::String]
560
+ # Required. The BCP-47 language code to use for translation of the input
561
+ # document, set to one of the language codes listed in Language Support.
562
+ # @param document_input_config [::Google::Cloud::Translate::V3::DocumentInputConfig, ::Hash]
563
+ # Required. Input configurations.
564
+ # @param document_output_config [::Google::Cloud::Translate::V3::DocumentOutputConfig, ::Hash]
565
+ # Optional. Output configurations.
566
+ # Defines if the output file should be stored within Cloud Storage as well
567
+ # as the desired output format. If not provided the translated file will
568
+ # only be returned through a byte-stream and its output mime type will be
569
+ # the same as the input file's mime type.
570
+ # @param model [::String]
571
+ # Optional. The `model` type requested for this translation.
572
+ #
573
+ # The format depends on model type:
574
+ #
575
+ # - AutoML Translation models:
576
+ # `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}`
577
+ #
578
+ # - General (built-in) models:
579
+ # `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`,
580
+ #
581
+ #
582
+ # If not provided, the default Google model (NMT) will be used for
583
+ # translation.
584
+ # @param glossary_config [::Google::Cloud::Translate::V3::TranslateTextGlossaryConfig, ::Hash]
585
+ # Optional. Glossary to be applied. The glossary must be within the same
586
+ # region (have the same location-id) as the model, otherwise an
587
+ # INVALID_ARGUMENT (400) error is returned.
588
+ # @param labels [::Hash{::String => ::String}]
589
+ # Optional. The labels with user-defined metadata for the request.
590
+ #
591
+ # Label keys and values can be no longer than 63 characters (Unicode
592
+ # codepoints), can only contain lowercase letters, numeric characters,
593
+ # underscores and dashes. International characters are allowed. Label values
594
+ # are optional. Label keys must start with a letter.
595
+ #
596
+ # See https://cloud.google.com/translate/docs/advanced/labels for more
597
+ # information.
598
+ #
599
+ # @yield [response, operation] Access the result along with the RPC operation
600
+ # @yieldparam response [::Google::Cloud::Translate::V3::TranslateDocumentResponse]
601
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
602
+ #
603
+ # @return [::Google::Cloud::Translate::V3::TranslateDocumentResponse]
604
+ #
605
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
606
+ #
607
+ def translate_document request, options = nil
608
+ raise ::ArgumentError, "request must be provided" if request.nil?
609
+
610
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Translate::V3::TranslateDocumentRequest
611
+
612
+ # Converts hash and nil to an options object
613
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
614
+
615
+ # Customize the options with defaults
616
+ metadata = @config.rpcs.translate_document.metadata.to_h
617
+
618
+ # Set x-goog-api-client and x-goog-user-project headers
619
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
620
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
621
+ gapic_version: ::Google::Cloud::Translate::V3::VERSION
622
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
623
+
624
+ header_params = {
625
+ "parent" => request.parent
626
+ }
627
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
628
+ metadata[:"x-goog-request-params"] ||= request_params_header
629
+
630
+ options.apply_defaults timeout: @config.rpcs.translate_document.timeout,
631
+ metadata: metadata,
632
+ retry_policy: @config.rpcs.translate_document.retry_policy
633
+
634
+ options.apply_defaults timeout: @config.timeout,
635
+ metadata: @config.metadata,
636
+ retry_policy: @config.retry_policy
637
+
638
+ @translation_service_stub.call_rpc :translate_document, request, options: options do |response, operation|
639
+ yield response, operation if block_given?
640
+ return response
641
+ end
642
+ rescue ::GRPC::BadStatus => e
643
+ raise ::Google::Cloud::Error.from_error(e)
644
+ end
645
+
528
646
  ##
529
647
  # Translates a large volume of text in asynchronous batch mode.
530
648
  # This function provides real-time output as the inputs are being processed.
@@ -575,14 +693,13 @@ module Google
575
693
  #
576
694
  # - General (built-in) models:
577
695
  # `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`,
578
- # `projects/{project-number-or-id}/locations/{location-id}/models/general/base`
579
696
  #
580
697
  #
581
698
  # If the map is empty or a specific model is
582
699
  # not requested for a language pair, then default google model (nmt) is used.
583
700
  # @param input_configs [::Array<::Google::Cloud::Translate::V3::InputConfig, ::Hash>]
584
701
  # Required. Input configurations.
585
- # The total number of files matched should be <= 1000.
702
+ # The total number of files matched should be <= 100.
586
703
  # The total content size should be <= 100M Unicode codepoints.
587
704
  # The files must use UTF-8 encoding.
588
705
  # @param output_config [::Google::Cloud::Translate::V3::OutputConfig, ::Hash]
@@ -600,7 +717,8 @@ module Google
600
717
  # characters, underscores and dashes. International characters are allowed.
601
718
  # Label values are optional. Label keys must start with a letter.
602
719
  #
603
- # See https://cloud.google.com/translate/docs/labels for more information.
720
+ # See https://cloud.google.com/translate/docs/advanced/labels for more
721
+ # information.
604
722
  #
605
723
  # @yield [response, operation] Access the result along with the RPC operation
606
724
  # @yieldparam response [::Gapic::Operation]
@@ -636,7 +754,9 @@ module Google
636
754
  options.apply_defaults timeout: @config.rpcs.batch_translate_text.timeout,
637
755
  metadata: metadata,
638
756
  retry_policy: @config.rpcs.batch_translate_text.retry_policy
639
- options.apply_defaults metadata: @config.metadata,
757
+
758
+ options.apply_defaults timeout: @config.timeout,
759
+ metadata: @config.metadata,
640
760
  retry_policy: @config.retry_policy
641
761
 
642
762
  @translation_service_stub.call_rpc :batch_translate_text, request, options: options do |response, operation|
@@ -648,6 +768,134 @@ module Google
648
768
  raise ::Google::Cloud::Error.from_error(e)
649
769
  end
650
770
 
771
+ ##
772
+ # Translates a large volume of document in asynchronous batch mode.
773
+ # This function provides real-time output as the inputs are being processed.
774
+ # If caller cancels a request, the partial results (for an input file, it's
775
+ # all or nothing) may still be available on the specified output location.
776
+ #
777
+ # This call returns immediately and you can use
778
+ # google.longrunning.Operation.name to poll the status of the call.
779
+ #
780
+ # @overload batch_translate_document(request, options = nil)
781
+ # Pass arguments to `batch_translate_document` via a request object, either of type
782
+ # {::Google::Cloud::Translate::V3::BatchTranslateDocumentRequest} or an equivalent Hash.
783
+ #
784
+ # @param request [::Google::Cloud::Translate::V3::BatchTranslateDocumentRequest, ::Hash]
785
+ # A request object representing the call parameters. Required. To specify no
786
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
787
+ # @param options [::Gapic::CallOptions, ::Hash]
788
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
789
+ #
790
+ # @overload batch_translate_document(parent: nil, source_language_code: nil, target_language_codes: nil, input_configs: nil, output_config: nil, models: nil, glossaries: nil, format_conversions: nil)
791
+ # Pass arguments to `batch_translate_document` via keyword arguments. Note that at
792
+ # least one keyword argument is required. To specify no parameters, or to keep all
793
+ # the default parameter values, pass an empty Hash as a request object (see above).
794
+ #
795
+ # @param parent [::String]
796
+ # Required. Location to make a regional call.
797
+ #
798
+ # Format: `projects/{project-number-or-id}/locations/{location-id}`.
799
+ #
800
+ # The `global` location is not supported for batch translation.
801
+ #
802
+ # Only AutoML Translation models or glossaries within the same region (have
803
+ # the same location-id) can be used, otherwise an INVALID_ARGUMENT (400)
804
+ # error is returned.
805
+ # @param source_language_code [::String]
806
+ # Required. The BCP-47 language code of the input document if known, for
807
+ # example, "en-US" or "sr-Latn". Supported language codes are listed in
808
+ # Language Support (https://cloud.google.com/translate/docs/languages).
809
+ # @param target_language_codes [::Array<::String>]
810
+ # Required. The BCP-47 language code to use for translation of the input
811
+ # document. Specify up to 10 language codes here.
812
+ # @param input_configs [::Array<::Google::Cloud::Translate::V3::BatchDocumentInputConfig, ::Hash>]
813
+ # Required. Input configurations.
814
+ # The total number of files matched should be <= 100.
815
+ # The total content size to translate should be <= 100M Unicode codepoints.
816
+ # The files must use UTF-8 encoding.
817
+ # @param output_config [::Google::Cloud::Translate::V3::BatchDocumentOutputConfig, ::Hash]
818
+ # Required. Output configuration.
819
+ # If 2 input configs match to the same file (that is, same input path),
820
+ # we don't generate output for duplicate inputs.
821
+ # @param models [::Hash{::String => ::String}]
822
+ # Optional. The models to use for translation. Map's key is target language
823
+ # code. Map's value is the model name. Value can be a built-in general model,
824
+ # or an AutoML Translation model.
825
+ #
826
+ # The value format depends on model type:
827
+ #
828
+ # - AutoML Translation models:
829
+ # `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}`
830
+ #
831
+ # - General (built-in) models:
832
+ # `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`,
833
+ #
834
+ #
835
+ # If the map is empty or a specific model is
836
+ # not requested for a language pair, then default google model (nmt) is used.
837
+ # @param glossaries [::Hash{::String => ::Google::Cloud::Translate::V3::TranslateTextGlossaryConfig, ::Hash}]
838
+ # Optional. Glossaries to be applied. It's keyed by target language code.
839
+ # @param format_conversions [::Hash{::String => ::String}]
840
+ # Optional. File format conversion map to be applied to all input files.
841
+ # Map's key is the original mime_type. Map's value is the target mime_type of
842
+ # translated documents.
843
+ #
844
+ # Supported file format conversion includes:
845
+ # - `application/pdf` to
846
+ # `application/vnd.openxmlformats-officedocument.wordprocessingml.document`
847
+ #
848
+ # If nothing specified, output files will be in the same format as the
849
+ # original file.
850
+ #
851
+ # @yield [response, operation] Access the result along with the RPC operation
852
+ # @yieldparam response [::Gapic::Operation]
853
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
854
+ #
855
+ # @return [::Gapic::Operation]
856
+ #
857
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
858
+ #
859
+ def batch_translate_document request, options = nil
860
+ raise ::ArgumentError, "request must be provided" if request.nil?
861
+
862
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Translate::V3::BatchTranslateDocumentRequest
863
+
864
+ # Converts hash and nil to an options object
865
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
866
+
867
+ # Customize the options with defaults
868
+ metadata = @config.rpcs.batch_translate_document.metadata.to_h
869
+
870
+ # Set x-goog-api-client and x-goog-user-project headers
871
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
872
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
873
+ gapic_version: ::Google::Cloud::Translate::V3::VERSION
874
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
875
+
876
+ header_params = {
877
+ "parent" => request.parent
878
+ }
879
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
880
+ metadata[:"x-goog-request-params"] ||= request_params_header
881
+
882
+ options.apply_defaults timeout: @config.rpcs.batch_translate_document.timeout,
883
+ metadata: metadata,
884
+ retry_policy: @config.rpcs.batch_translate_document.retry_policy
885
+
886
+ options.apply_defaults timeout: @config.timeout,
887
+ metadata: @config.metadata,
888
+ retry_policy: @config.retry_policy
889
+
890
+ @translation_service_stub.call_rpc :batch_translate_document, request, options: options do |response, operation|
891
+ response = ::Gapic::Operation.new response, @operations_client, options: options
892
+ yield response, operation if block_given?
893
+ return response
894
+ end
895
+ rescue ::GRPC::BadStatus => e
896
+ raise ::Google::Cloud::Error.from_error(e)
897
+ end
898
+
651
899
  ##
652
900
  # Creates a glossary and returns the long-running operation. Returns
653
901
  # NOT_FOUND, if the project doesn't exist.
@@ -706,7 +954,9 @@ module Google
706
954
  options.apply_defaults timeout: @config.rpcs.create_glossary.timeout,
707
955
  metadata: metadata,
708
956
  retry_policy: @config.rpcs.create_glossary.retry_policy
709
- options.apply_defaults metadata: @config.metadata,
957
+
958
+ options.apply_defaults timeout: @config.timeout,
959
+ metadata: @config.metadata,
710
960
  retry_policy: @config.retry_policy
711
961
 
712
962
  @translation_service_stub.call_rpc :create_glossary, request, options: options do |response, operation|
@@ -749,7 +999,20 @@ module Google
749
999
  # The first page is returned if `page_token`is empty or missing.
750
1000
  # @param filter [::String]
751
1001
  # Optional. Filter specifying constraints of a list operation.
752
- # Filtering is not supported yet, and the parameter currently has no effect.
1002
+ # Specify the constraint by the format of "key=value", where key must be
1003
+ # "src" or "tgt", and the value must be a valid language code.
1004
+ # For multiple restrictions, concatenate them by "AND" (uppercase only),
1005
+ # such as: "src=en-US AND tgt=zh-CN". Notice that the exact match is used
1006
+ # here, which means using 'en-US' and 'en' can lead to different results,
1007
+ # which depends on the language code you used when you create the glossary.
1008
+ # For the unidirectional glossaries, the "src" and "tgt" add restrictions
1009
+ # on the source and target language code separately.
1010
+ # For the equivalent term set glossaries, the "src" and/or "tgt" add
1011
+ # restrictions on the term set.
1012
+ # For example: "src=en-US AND tgt=zh-CN" will only pick the unidirectional
1013
+ # glossaries which exactly match the source language code as "en-US" and the
1014
+ # target language code "zh-CN", but all equivalent term set glossaries which
1015
+ # contain "en-US" and "zh-CN" in their language set will be picked.
753
1016
  # If missing, no filtering is performed.
754
1017
  #
755
1018
  # @yield [response, operation] Access the result along with the RPC operation
@@ -786,7 +1049,9 @@ module Google
786
1049
  options.apply_defaults timeout: @config.rpcs.list_glossaries.timeout,
787
1050
  metadata: metadata,
788
1051
  retry_policy: @config.rpcs.list_glossaries.retry_policy
789
- options.apply_defaults metadata: @config.metadata,
1052
+
1053
+ options.apply_defaults timeout: @config.timeout,
1054
+ metadata: @config.metadata,
790
1055
  retry_policy: @config.retry_policy
791
1056
 
792
1057
  @translation_service_stub.call_rpc :list_glossaries, request, options: options do |response, operation|
@@ -854,7 +1119,9 @@ module Google
854
1119
  options.apply_defaults timeout: @config.rpcs.get_glossary.timeout,
855
1120
  metadata: metadata,
856
1121
  retry_policy: @config.rpcs.get_glossary.retry_policy
857
- options.apply_defaults metadata: @config.metadata,
1122
+
1123
+ options.apply_defaults timeout: @config.timeout,
1124
+ metadata: @config.metadata,
858
1125
  retry_policy: @config.retry_policy
859
1126
 
860
1127
  @translation_service_stub.call_rpc :get_glossary, request, options: options do |response, operation|
@@ -922,7 +1189,9 @@ module Google
922
1189
  options.apply_defaults timeout: @config.rpcs.delete_glossary.timeout,
923
1190
  metadata: metadata,
924
1191
  retry_policy: @config.rpcs.delete_glossary.retry_policy
925
- options.apply_defaults metadata: @config.metadata,
1192
+
1193
+ options.apply_defaults timeout: @config.timeout,
1194
+ metadata: @config.metadata,
926
1195
  retry_policy: @config.retry_policy
927
1196
 
928
1197
  @translation_service_stub.call_rpc :delete_glossary, request, options: options do |response, operation|
@@ -947,22 +1216,21 @@ module Google
947
1216
  # Configuration can be applied globally to all clients, or to a single client
948
1217
  # on construction.
949
1218
  #
950
- # # Examples
1219
+ # @example
951
1220
  #
952
- # To modify the global config, setting the timeout for translate_text
953
- # to 20 seconds, and all remaining timeouts to 10 seconds:
1221
+ # # Modify the global config, setting the timeout for
1222
+ # # translate_text to 20 seconds,
1223
+ # # and all remaining timeouts to 10 seconds.
1224
+ # ::Google::Cloud::Translate::V3::TranslationService::Client.configure do |config|
1225
+ # config.timeout = 10.0
1226
+ # config.rpcs.translate_text.timeout = 20.0
1227
+ # end
954
1228
  #
955
- # ::Google::Cloud::Translate::V3::TranslationService::Client.configure do |config|
956
- # config.timeout = 10.0
957
- # config.rpcs.translate_text.timeout = 20.0
958
- # end
959
- #
960
- # To apply the above configuration only to a new client:
961
- #
962
- # client = ::Google::Cloud::Translate::V3::TranslationService::Client.new do |config|
963
- # config.timeout = 10.0
964
- # config.rpcs.translate_text.timeout = 20.0
965
- # end
1229
+ # # Apply the above configuration only to a new client.
1230
+ # client = ::Google::Cloud::Translate::V3::TranslationService::Client.new do |config|
1231
+ # config.timeout = 10.0
1232
+ # config.rpcs.translate_text.timeout = 20.0
1233
+ # end
966
1234
  #
967
1235
  # @!attribute [rw] endpoint
968
1236
  # The hostname or hostname:port of the service endpoint.
@@ -1086,11 +1354,21 @@ module Google
1086
1354
  #
1087
1355
  attr_reader :get_supported_languages
1088
1356
  ##
1357
+ # RPC-specific configuration for `translate_document`
1358
+ # @return [::Gapic::Config::Method]
1359
+ #
1360
+ attr_reader :translate_document
1361
+ ##
1089
1362
  # RPC-specific configuration for `batch_translate_text`
1090
1363
  # @return [::Gapic::Config::Method]
1091
1364
  #
1092
1365
  attr_reader :batch_translate_text
1093
1366
  ##
1367
+ # RPC-specific configuration for `batch_translate_document`
1368
+ # @return [::Gapic::Config::Method]
1369
+ #
1370
+ attr_reader :batch_translate_document
1371
+ ##
1094
1372
  # RPC-specific configuration for `create_glossary`
1095
1373
  # @return [::Gapic::Config::Method]
1096
1374
  #
@@ -1119,8 +1397,12 @@ module Google
1119
1397
  @detect_language = ::Gapic::Config::Method.new detect_language_config
1120
1398
  get_supported_languages_config = parent_rpcs.get_supported_languages if parent_rpcs.respond_to? :get_supported_languages
1121
1399
  @get_supported_languages = ::Gapic::Config::Method.new get_supported_languages_config
1400
+ translate_document_config = parent_rpcs.translate_document if parent_rpcs.respond_to? :translate_document
1401
+ @translate_document = ::Gapic::Config::Method.new translate_document_config
1122
1402
  batch_translate_text_config = parent_rpcs.batch_translate_text if parent_rpcs.respond_to? :batch_translate_text
1123
1403
  @batch_translate_text = ::Gapic::Config::Method.new batch_translate_text_config
1404
+ batch_translate_document_config = parent_rpcs.batch_translate_document if parent_rpcs.respond_to? :batch_translate_document
1405
+ @batch_translate_document = ::Gapic::Config::Method.new batch_translate_document_config
1124
1406
  create_glossary_config = parent_rpcs.create_glossary if parent_rpcs.respond_to? :create_glossary
1125
1407
  @create_glossary = ::Gapic::Config::Method.new create_glossary_config
1126
1408
  list_glossaries_config = parent_rpcs.list_glossaries if parent_rpcs.respond_to? :list_glossaries