google-cloud-translate-v3 0.3.1 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
138
- #
139
- # To create a new TranslationService client with the default
140
- # configuration:
128
+ # @example
141
129
  #
142
- # client = ::Google::Cloud::Translate::V3::TranslationService::Client.new
130
+ # # Create a client using the default configuration
131
+ # client = ::Google::Cloud::Translate::V3::TranslationService::Client.new
143
132
  #
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]
@@ -291,6 +278,21 @@ module Google
291
278
  #
292
279
  # @raise [::Google::Cloud::Error] if the RPC is aborted.
293
280
  #
281
+ # @example Basic example
282
+ # require "google/cloud/translate/v3"
283
+ #
284
+ # # Create a client object. The client can be reused for multiple calls.
285
+ # client = Google::Cloud::Translate::V3::TranslationService::Client.new
286
+ #
287
+ # # Create a request. To set request fields, pass in keyword arguments.
288
+ # request = Google::Cloud::Translate::V3::TranslateTextRequest.new
289
+ #
290
+ # # Call the translate_text method.
291
+ # result = client.translate_text request
292
+ #
293
+ # # The returned object is of type Google::Cloud::Translate::V3::TranslateTextResponse.
294
+ # p result
295
+ #
294
296
  def translate_text request, options = nil
295
297
  raise ::ArgumentError, "request must be provided" if request.nil?
296
298
 
@@ -308,16 +310,20 @@ module Google
308
310
  gapic_version: ::Google::Cloud::Translate::V3::VERSION
309
311
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
310
312
 
311
- header_params = {
312
- "parent" => request.parent
313
- }
313
+ header_params = {}
314
+ if request.parent
315
+ header_params["parent"] = request.parent
316
+ end
317
+
314
318
  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
315
319
  metadata[:"x-goog-request-params"] ||= request_params_header
316
320
 
317
321
  options.apply_defaults timeout: @config.rpcs.translate_text.timeout,
318
322
  metadata: metadata,
319
323
  retry_policy: @config.rpcs.translate_text.retry_policy
320
- options.apply_defaults metadata: @config.metadata,
324
+
325
+ options.apply_defaults timeout: @config.timeout,
326
+ metadata: @config.metadata,
321
327
  retry_policy: @config.retry_policy
322
328
 
323
329
  @translation_service_stub.call_rpc :translate_text, request, options: options do |response, operation|
@@ -381,7 +387,8 @@ module Google
381
387
  # characters, underscores and dashes. International characters are allowed.
382
388
  # Label values are optional. Label keys must start with a letter.
383
389
  #
384
- # See https://cloud.google.com/translate/docs/labels for more information.
390
+ # See https://cloud.google.com/translate/docs/advanced/labels for more
391
+ # information.
385
392
  #
386
393
  # @yield [response, operation] Access the result along with the RPC operation
387
394
  # @yieldparam response [::Google::Cloud::Translate::V3::DetectLanguageResponse]
@@ -391,6 +398,21 @@ module Google
391
398
  #
392
399
  # @raise [::Google::Cloud::Error] if the RPC is aborted.
393
400
  #
401
+ # @example Basic example
402
+ # require "google/cloud/translate/v3"
403
+ #
404
+ # # Create a client object. The client can be reused for multiple calls.
405
+ # client = Google::Cloud::Translate::V3::TranslationService::Client.new
406
+ #
407
+ # # Create a request. To set request fields, pass in keyword arguments.
408
+ # request = Google::Cloud::Translate::V3::DetectLanguageRequest.new
409
+ #
410
+ # # Call the detect_language method.
411
+ # result = client.detect_language request
412
+ #
413
+ # # The returned object is of type Google::Cloud::Translate::V3::DetectLanguageResponse.
414
+ # p result
415
+ #
394
416
  def detect_language request, options = nil
395
417
  raise ::ArgumentError, "request must be provided" if request.nil?
396
418
 
@@ -408,16 +430,20 @@ module Google
408
430
  gapic_version: ::Google::Cloud::Translate::V3::VERSION
409
431
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
410
432
 
411
- header_params = {
412
- "parent" => request.parent
413
- }
433
+ header_params = {}
434
+ if request.parent
435
+ header_params["parent"] = request.parent
436
+ end
437
+
414
438
  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
415
439
  metadata[:"x-goog-request-params"] ||= request_params_header
416
440
 
417
441
  options.apply_defaults timeout: @config.rpcs.detect_language.timeout,
418
442
  metadata: metadata,
419
443
  retry_policy: @config.rpcs.detect_language.retry_policy
420
- options.apply_defaults metadata: @config.metadata,
444
+
445
+ options.apply_defaults timeout: @config.timeout,
446
+ metadata: @config.metadata,
421
447
  retry_policy: @config.retry_policy
422
448
 
423
449
  @translation_service_stub.call_rpc :detect_language, request, options: options do |response, operation|
@@ -474,11 +500,10 @@ module Google
474
500
  #
475
501
  # - General (built-in) models:
476
502
  # `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`,
477
- # `projects/{project-number-or-id}/locations/{location-id}/models/general/base`
478
503
  #
479
504
  #
480
505
  # Returns languages supported by the specified model.
481
- # If missing, we get supported languages of Google general base (PBMT) model.
506
+ # If missing, we get supported languages of Google general NMT model.
482
507
  #
483
508
  # @yield [response, operation] Access the result along with the RPC operation
484
509
  # @yieldparam response [::Google::Cloud::Translate::V3::SupportedLanguages]
@@ -488,6 +513,21 @@ module Google
488
513
  #
489
514
  # @raise [::Google::Cloud::Error] if the RPC is aborted.
490
515
  #
516
+ # @example Basic example
517
+ # require "google/cloud/translate/v3"
518
+ #
519
+ # # Create a client object. The client can be reused for multiple calls.
520
+ # client = Google::Cloud::Translate::V3::TranslationService::Client.new
521
+ #
522
+ # # Create a request. To set request fields, pass in keyword arguments.
523
+ # request = Google::Cloud::Translate::V3::GetSupportedLanguagesRequest.new
524
+ #
525
+ # # Call the get_supported_languages method.
526
+ # result = client.get_supported_languages request
527
+ #
528
+ # # The returned object is of type Google::Cloud::Translate::V3::SupportedLanguages.
529
+ # p result
530
+ #
491
531
  def get_supported_languages request, options = nil
492
532
  raise ::ArgumentError, "request must be provided" if request.nil?
493
533
 
@@ -505,16 +545,20 @@ module Google
505
545
  gapic_version: ::Google::Cloud::Translate::V3::VERSION
506
546
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
507
547
 
508
- header_params = {
509
- "parent" => request.parent
510
- }
548
+ header_params = {}
549
+ if request.parent
550
+ header_params["parent"] = request.parent
551
+ end
552
+
511
553
  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
512
554
  metadata[:"x-goog-request-params"] ||= request_params_header
513
555
 
514
556
  options.apply_defaults timeout: @config.rpcs.get_supported_languages.timeout,
515
557
  metadata: metadata,
516
558
  retry_policy: @config.rpcs.get_supported_languages.retry_policy
517
- options.apply_defaults metadata: @config.metadata,
559
+
560
+ options.apply_defaults timeout: @config.timeout,
561
+ metadata: @config.metadata,
518
562
  retry_policy: @config.retry_policy
519
563
 
520
564
  @translation_service_stub.call_rpc :get_supported_languages, request, options: options do |response, operation|
@@ -525,6 +569,148 @@ module Google
525
569
  raise ::Google::Cloud::Error.from_error(e)
526
570
  end
527
571
 
572
+ ##
573
+ # Translates documents in synchronous mode.
574
+ #
575
+ # @overload translate_document(request, options = nil)
576
+ # Pass arguments to `translate_document` via a request object, either of type
577
+ # {::Google::Cloud::Translate::V3::TranslateDocumentRequest} or an equivalent Hash.
578
+ #
579
+ # @param request [::Google::Cloud::Translate::V3::TranslateDocumentRequest, ::Hash]
580
+ # A request object representing the call parameters. Required. To specify no
581
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
582
+ # @param options [::Gapic::CallOptions, ::Hash]
583
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
584
+ #
585
+ # @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)
586
+ # Pass arguments to `translate_document` via keyword arguments. Note that at
587
+ # least one keyword argument is required. To specify no parameters, or to keep all
588
+ # the default parameter values, pass an empty Hash as a request object (see above).
589
+ #
590
+ # @param parent [::String]
591
+ # Required. Location to make a regional call.
592
+ #
593
+ # Format: `projects/{project-number-or-id}/locations/{location-id}`.
594
+ #
595
+ # For global calls, use `projects/{project-number-or-id}/locations/global` or
596
+ # `projects/{project-number-or-id}`.
597
+ #
598
+ # Non-global location is required for requests using AutoML models or custom
599
+ # glossaries.
600
+ #
601
+ # Models and glossaries must be within the same region (have the same
602
+ # location-id), otherwise an INVALID_ARGUMENT (400) error is returned.
603
+ # @param source_language_code [::String]
604
+ # Optional. The BCP-47 language code of the input document if known, for
605
+ # example, "en-US" or "sr-Latn". Supported language codes are listed in
606
+ # Language Support. If the source language isn't specified, the API attempts
607
+ # to identify the source language automatically and returns the source
608
+ # language within the response. Source language must be specified if the
609
+ # request contains a glossary or a custom model.
610
+ # @param target_language_code [::String]
611
+ # Required. The BCP-47 language code to use for translation of the input
612
+ # document, set to one of the language codes listed in Language Support.
613
+ # @param document_input_config [::Google::Cloud::Translate::V3::DocumentInputConfig, ::Hash]
614
+ # Required. Input configurations.
615
+ # @param document_output_config [::Google::Cloud::Translate::V3::DocumentOutputConfig, ::Hash]
616
+ # Optional. Output configurations.
617
+ # Defines if the output file should be stored within Cloud Storage as well
618
+ # as the desired output format. If not provided the translated file will
619
+ # only be returned through a byte-stream and its output mime type will be
620
+ # the same as the input file's mime type.
621
+ # @param model [::String]
622
+ # Optional. The `model` type requested for this translation.
623
+ #
624
+ # The format depends on model type:
625
+ #
626
+ # - AutoML Translation models:
627
+ # `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}`
628
+ #
629
+ # - General (built-in) models:
630
+ # `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`,
631
+ #
632
+ #
633
+ # If not provided, the default Google model (NMT) will be used for
634
+ # translation.
635
+ # @param glossary_config [::Google::Cloud::Translate::V3::TranslateTextGlossaryConfig, ::Hash]
636
+ # Optional. Glossary to be applied. The glossary must be within the same
637
+ # region (have the same location-id) as the model, otherwise an
638
+ # INVALID_ARGUMENT (400) error is returned.
639
+ # @param labels [::Hash{::String => ::String}]
640
+ # Optional. The labels with user-defined metadata for the request.
641
+ #
642
+ # Label keys and values can be no longer than 63 characters (Unicode
643
+ # codepoints), can only contain lowercase letters, numeric characters,
644
+ # underscores and dashes. International characters are allowed. Label values
645
+ # are optional. Label keys must start with a letter.
646
+ #
647
+ # See https://cloud.google.com/translate/docs/advanced/labels for more
648
+ # information.
649
+ #
650
+ # @yield [response, operation] Access the result along with the RPC operation
651
+ # @yieldparam response [::Google::Cloud::Translate::V3::TranslateDocumentResponse]
652
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
653
+ #
654
+ # @return [::Google::Cloud::Translate::V3::TranslateDocumentResponse]
655
+ #
656
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
657
+ #
658
+ # @example Basic example
659
+ # require "google/cloud/translate/v3"
660
+ #
661
+ # # Create a client object. The client can be reused for multiple calls.
662
+ # client = Google::Cloud::Translate::V3::TranslationService::Client.new
663
+ #
664
+ # # Create a request. To set request fields, pass in keyword arguments.
665
+ # request = Google::Cloud::Translate::V3::TranslateDocumentRequest.new
666
+ #
667
+ # # Call the translate_document method.
668
+ # result = client.translate_document request
669
+ #
670
+ # # The returned object is of type Google::Cloud::Translate::V3::TranslateDocumentResponse.
671
+ # p result
672
+ #
673
+ def translate_document request, options = nil
674
+ raise ::ArgumentError, "request must be provided" if request.nil?
675
+
676
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Translate::V3::TranslateDocumentRequest
677
+
678
+ # Converts hash and nil to an options object
679
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
680
+
681
+ # Customize the options with defaults
682
+ metadata = @config.rpcs.translate_document.metadata.to_h
683
+
684
+ # Set x-goog-api-client and x-goog-user-project headers
685
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
686
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
687
+ gapic_version: ::Google::Cloud::Translate::V3::VERSION
688
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
689
+
690
+ header_params = {}
691
+ if request.parent
692
+ header_params["parent"] = request.parent
693
+ end
694
+
695
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
696
+ metadata[:"x-goog-request-params"] ||= request_params_header
697
+
698
+ options.apply_defaults timeout: @config.rpcs.translate_document.timeout,
699
+ metadata: metadata,
700
+ retry_policy: @config.rpcs.translate_document.retry_policy
701
+
702
+ options.apply_defaults timeout: @config.timeout,
703
+ metadata: @config.metadata,
704
+ retry_policy: @config.retry_policy
705
+
706
+ @translation_service_stub.call_rpc :translate_document, request, options: options do |response, operation|
707
+ yield response, operation if block_given?
708
+ return response
709
+ end
710
+ rescue ::GRPC::BadStatus => e
711
+ raise ::Google::Cloud::Error.from_error(e)
712
+ end
713
+
528
714
  ##
529
715
  # Translates a large volume of text in asynchronous batch mode.
530
716
  # This function provides real-time output as the inputs are being processed.
@@ -575,14 +761,13 @@ module Google
575
761
  #
576
762
  # - General (built-in) models:
577
763
  # `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`,
578
- # `projects/{project-number-or-id}/locations/{location-id}/models/general/base`
579
764
  #
580
765
  #
581
766
  # If the map is empty or a specific model is
582
767
  # not requested for a language pair, then default google model (nmt) is used.
583
768
  # @param input_configs [::Array<::Google::Cloud::Translate::V3::InputConfig, ::Hash>]
584
769
  # Required. Input configurations.
585
- # The total number of files matched should be <= 1000.
770
+ # The total number of files matched should be <= 100.
586
771
  # The total content size should be <= 100M Unicode codepoints.
587
772
  # The files must use UTF-8 encoding.
588
773
  # @param output_config [::Google::Cloud::Translate::V3::OutputConfig, ::Hash]
@@ -600,7 +785,8 @@ module Google
600
785
  # characters, underscores and dashes. International characters are allowed.
601
786
  # Label values are optional. Label keys must start with a letter.
602
787
  #
603
- # See https://cloud.google.com/translate/docs/labels for more information.
788
+ # See https://cloud.google.com/translate/docs/advanced/labels for more
789
+ # information.
604
790
  #
605
791
  # @yield [response, operation] Access the result along with the RPC operation
606
792
  # @yieldparam response [::Gapic::Operation]
@@ -610,6 +796,28 @@ module Google
610
796
  #
611
797
  # @raise [::Google::Cloud::Error] if the RPC is aborted.
612
798
  #
799
+ # @example Basic example
800
+ # require "google/cloud/translate/v3"
801
+ #
802
+ # # Create a client object. The client can be reused for multiple calls.
803
+ # client = Google::Cloud::Translate::V3::TranslationService::Client.new
804
+ #
805
+ # # Create a request. To set request fields, pass in keyword arguments.
806
+ # request = Google::Cloud::Translate::V3::BatchTranslateTextRequest.new
807
+ #
808
+ # # Call the batch_translate_text method.
809
+ # result = client.batch_translate_text request
810
+ #
811
+ # # The returned object is of type Gapic::Operation. You can use this
812
+ # # object to check the status of an operation, cancel it, or wait
813
+ # # for results. Here is how to block until completion:
814
+ # result.wait_until_done! timeout: 60
815
+ # if result.response?
816
+ # p result.response
817
+ # else
818
+ # puts "Error!"
819
+ # end
820
+ #
613
821
  def batch_translate_text request, options = nil
614
822
  raise ::ArgumentError, "request must be provided" if request.nil?
615
823
 
@@ -627,16 +835,20 @@ module Google
627
835
  gapic_version: ::Google::Cloud::Translate::V3::VERSION
628
836
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
629
837
 
630
- header_params = {
631
- "parent" => request.parent
632
- }
838
+ header_params = {}
839
+ if request.parent
840
+ header_params["parent"] = request.parent
841
+ end
842
+
633
843
  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
634
844
  metadata[:"x-goog-request-params"] ||= request_params_header
635
845
 
636
846
  options.apply_defaults timeout: @config.rpcs.batch_translate_text.timeout,
637
847
  metadata: metadata,
638
848
  retry_policy: @config.rpcs.batch_translate_text.retry_policy
639
- options.apply_defaults metadata: @config.metadata,
849
+
850
+ options.apply_defaults timeout: @config.timeout,
851
+ metadata: @config.metadata,
640
852
  retry_policy: @config.retry_policy
641
853
 
642
854
  @translation_service_stub.call_rpc :batch_translate_text, request, options: options do |response, operation|
@@ -648,6 +860,158 @@ module Google
648
860
  raise ::Google::Cloud::Error.from_error(e)
649
861
  end
650
862
 
863
+ ##
864
+ # Translates a large volume of document in asynchronous batch mode.
865
+ # This function provides real-time output as the inputs are being processed.
866
+ # If caller cancels a request, the partial results (for an input file, it's
867
+ # all or nothing) may still be available on the specified output location.
868
+ #
869
+ # This call returns immediately and you can use
870
+ # google.longrunning.Operation.name to poll the status of the call.
871
+ #
872
+ # @overload batch_translate_document(request, options = nil)
873
+ # Pass arguments to `batch_translate_document` via a request object, either of type
874
+ # {::Google::Cloud::Translate::V3::BatchTranslateDocumentRequest} or an equivalent Hash.
875
+ #
876
+ # @param request [::Google::Cloud::Translate::V3::BatchTranslateDocumentRequest, ::Hash]
877
+ # A request object representing the call parameters. Required. To specify no
878
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
879
+ # @param options [::Gapic::CallOptions, ::Hash]
880
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
881
+ #
882
+ # @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)
883
+ # Pass arguments to `batch_translate_document` via keyword arguments. Note that at
884
+ # least one keyword argument is required. To specify no parameters, or to keep all
885
+ # the default parameter values, pass an empty Hash as a request object (see above).
886
+ #
887
+ # @param parent [::String]
888
+ # Required. Location to make a regional call.
889
+ #
890
+ # Format: `projects/{project-number-or-id}/locations/{location-id}`.
891
+ #
892
+ # The `global` location is not supported for batch translation.
893
+ #
894
+ # Only AutoML Translation models or glossaries within the same region (have
895
+ # the same location-id) can be used, otherwise an INVALID_ARGUMENT (400)
896
+ # error is returned.
897
+ # @param source_language_code [::String]
898
+ # Required. The BCP-47 language code of the input document if known, for
899
+ # example, "en-US" or "sr-Latn". Supported language codes are listed in
900
+ # Language Support (https://cloud.google.com/translate/docs/languages).
901
+ # @param target_language_codes [::Array<::String>]
902
+ # Required. The BCP-47 language code to use for translation of the input
903
+ # document. Specify up to 10 language codes here.
904
+ # @param input_configs [::Array<::Google::Cloud::Translate::V3::BatchDocumentInputConfig, ::Hash>]
905
+ # Required. Input configurations.
906
+ # The total number of files matched should be <= 100.
907
+ # The total content size to translate should be <= 100M Unicode codepoints.
908
+ # The files must use UTF-8 encoding.
909
+ # @param output_config [::Google::Cloud::Translate::V3::BatchDocumentOutputConfig, ::Hash]
910
+ # Required. Output configuration.
911
+ # If 2 input configs match to the same file (that is, same input path),
912
+ # we don't generate output for duplicate inputs.
913
+ # @param models [::Hash{::String => ::String}]
914
+ # Optional. The models to use for translation. Map's key is target language
915
+ # code. Map's value is the model name. Value can be a built-in general model,
916
+ # or an AutoML Translation model.
917
+ #
918
+ # The value format depends on model type:
919
+ #
920
+ # - AutoML Translation models:
921
+ # `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}`
922
+ #
923
+ # - General (built-in) models:
924
+ # `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`,
925
+ #
926
+ #
927
+ # If the map is empty or a specific model is
928
+ # not requested for a language pair, then default google model (nmt) is used.
929
+ # @param glossaries [::Hash{::String => ::Google::Cloud::Translate::V3::TranslateTextGlossaryConfig, ::Hash}]
930
+ # Optional. Glossaries to be applied. It's keyed by target language code.
931
+ # @param format_conversions [::Hash{::String => ::String}]
932
+ # Optional. File format conversion map to be applied to all input files.
933
+ # Map's key is the original mime_type. Map's value is the target mime_type of
934
+ # translated documents.
935
+ #
936
+ # Supported file format conversion includes:
937
+ # - `application/pdf` to
938
+ # `application/vnd.openxmlformats-officedocument.wordprocessingml.document`
939
+ #
940
+ # If nothing specified, output files will be in the same format as the
941
+ # original file.
942
+ #
943
+ # @yield [response, operation] Access the result along with the RPC operation
944
+ # @yieldparam response [::Gapic::Operation]
945
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
946
+ #
947
+ # @return [::Gapic::Operation]
948
+ #
949
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
950
+ #
951
+ # @example Basic example
952
+ # require "google/cloud/translate/v3"
953
+ #
954
+ # # Create a client object. The client can be reused for multiple calls.
955
+ # client = Google::Cloud::Translate::V3::TranslationService::Client.new
956
+ #
957
+ # # Create a request. To set request fields, pass in keyword arguments.
958
+ # request = Google::Cloud::Translate::V3::BatchTranslateDocumentRequest.new
959
+ #
960
+ # # Call the batch_translate_document method.
961
+ # result = client.batch_translate_document request
962
+ #
963
+ # # The returned object is of type Gapic::Operation. You can use this
964
+ # # object to check the status of an operation, cancel it, or wait
965
+ # # for results. Here is how to block until completion:
966
+ # result.wait_until_done! timeout: 60
967
+ # if result.response?
968
+ # p result.response
969
+ # else
970
+ # puts "Error!"
971
+ # end
972
+ #
973
+ def batch_translate_document request, options = nil
974
+ raise ::ArgumentError, "request must be provided" if request.nil?
975
+
976
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Translate::V3::BatchTranslateDocumentRequest
977
+
978
+ # Converts hash and nil to an options object
979
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
980
+
981
+ # Customize the options with defaults
982
+ metadata = @config.rpcs.batch_translate_document.metadata.to_h
983
+
984
+ # Set x-goog-api-client and x-goog-user-project headers
985
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
986
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
987
+ gapic_version: ::Google::Cloud::Translate::V3::VERSION
988
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
989
+
990
+ header_params = {}
991
+ if request.parent
992
+ header_params["parent"] = request.parent
993
+ end
994
+
995
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
996
+ metadata[:"x-goog-request-params"] ||= request_params_header
997
+
998
+ options.apply_defaults timeout: @config.rpcs.batch_translate_document.timeout,
999
+ metadata: metadata,
1000
+ retry_policy: @config.rpcs.batch_translate_document.retry_policy
1001
+
1002
+ options.apply_defaults timeout: @config.timeout,
1003
+ metadata: @config.metadata,
1004
+ retry_policy: @config.retry_policy
1005
+
1006
+ @translation_service_stub.call_rpc :batch_translate_document, request, options: options do |response, operation|
1007
+ response = ::Gapic::Operation.new response, @operations_client, options: options
1008
+ yield response, operation if block_given?
1009
+ return response
1010
+ end
1011
+ rescue ::GRPC::BadStatus => e
1012
+ raise ::Google::Cloud::Error.from_error(e)
1013
+ end
1014
+
651
1015
  ##
652
1016
  # Creates a glossary and returns the long-running operation. Returns
653
1017
  # NOT_FOUND, if the project doesn't exist.
@@ -680,6 +1044,28 @@ module Google
680
1044
  #
681
1045
  # @raise [::Google::Cloud::Error] if the RPC is aborted.
682
1046
  #
1047
+ # @example Basic example
1048
+ # require "google/cloud/translate/v3"
1049
+ #
1050
+ # # Create a client object. The client can be reused for multiple calls.
1051
+ # client = Google::Cloud::Translate::V3::TranslationService::Client.new
1052
+ #
1053
+ # # Create a request. To set request fields, pass in keyword arguments.
1054
+ # request = Google::Cloud::Translate::V3::CreateGlossaryRequest.new
1055
+ #
1056
+ # # Call the create_glossary method.
1057
+ # result = client.create_glossary request
1058
+ #
1059
+ # # The returned object is of type Gapic::Operation. You can use this
1060
+ # # object to check the status of an operation, cancel it, or wait
1061
+ # # for results. Here is how to block until completion:
1062
+ # result.wait_until_done! timeout: 60
1063
+ # if result.response?
1064
+ # p result.response
1065
+ # else
1066
+ # puts "Error!"
1067
+ # end
1068
+ #
683
1069
  def create_glossary request, options = nil
684
1070
  raise ::ArgumentError, "request must be provided" if request.nil?
685
1071
 
@@ -697,16 +1083,20 @@ module Google
697
1083
  gapic_version: ::Google::Cloud::Translate::V3::VERSION
698
1084
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
699
1085
 
700
- header_params = {
701
- "parent" => request.parent
702
- }
1086
+ header_params = {}
1087
+ if request.parent
1088
+ header_params["parent"] = request.parent
1089
+ end
1090
+
703
1091
  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
704
1092
  metadata[:"x-goog-request-params"] ||= request_params_header
705
1093
 
706
1094
  options.apply_defaults timeout: @config.rpcs.create_glossary.timeout,
707
1095
  metadata: metadata,
708
1096
  retry_policy: @config.rpcs.create_glossary.retry_policy
709
- options.apply_defaults metadata: @config.metadata,
1097
+
1098
+ options.apply_defaults timeout: @config.timeout,
1099
+ metadata: @config.metadata,
710
1100
  retry_policy: @config.retry_policy
711
1101
 
712
1102
  @translation_service_stub.call_rpc :create_glossary, request, options: options do |response, operation|
@@ -749,7 +1139,20 @@ module Google
749
1139
  # The first page is returned if `page_token`is empty or missing.
750
1140
  # @param filter [::String]
751
1141
  # Optional. Filter specifying constraints of a list operation.
752
- # Filtering is not supported yet, and the parameter currently has no effect.
1142
+ # Specify the constraint by the format of "key=value", where key must be
1143
+ # "src" or "tgt", and the value must be a valid language code.
1144
+ # For multiple restrictions, concatenate them by "AND" (uppercase only),
1145
+ # such as: "src=en-US AND tgt=zh-CN". Notice that the exact match is used
1146
+ # here, which means using 'en-US' and 'en' can lead to different results,
1147
+ # which depends on the language code you used when you create the glossary.
1148
+ # For the unidirectional glossaries, the "src" and "tgt" add restrictions
1149
+ # on the source and target language code separately.
1150
+ # For the equivalent term set glossaries, the "src" and/or "tgt" add
1151
+ # restrictions on the term set.
1152
+ # For example: "src=en-US AND tgt=zh-CN" will only pick the unidirectional
1153
+ # glossaries which exactly match the source language code as "en-US" and the
1154
+ # target language code "zh-CN", but all equivalent term set glossaries which
1155
+ # contain "en-US" and "zh-CN" in their language set will be picked.
753
1156
  # If missing, no filtering is performed.
754
1157
  #
755
1158
  # @yield [response, operation] Access the result along with the RPC operation
@@ -760,6 +1163,27 @@ module Google
760
1163
  #
761
1164
  # @raise [::Google::Cloud::Error] if the RPC is aborted.
762
1165
  #
1166
+ # @example Basic example
1167
+ # require "google/cloud/translate/v3"
1168
+ #
1169
+ # # Create a client object. The client can be reused for multiple calls.
1170
+ # client = Google::Cloud::Translate::V3::TranslationService::Client.new
1171
+ #
1172
+ # # Create a request. To set request fields, pass in keyword arguments.
1173
+ # request = Google::Cloud::Translate::V3::ListGlossariesRequest.new
1174
+ #
1175
+ # # Call the list_glossaries method.
1176
+ # result = client.list_glossaries request
1177
+ #
1178
+ # # The returned object is of type Gapic::PagedEnumerable. You can
1179
+ # # iterate over all elements by calling #each, and the enumerable
1180
+ # # will lazily make API calls to fetch subsequent pages. Other
1181
+ # # methods are also available for managing paging directly.
1182
+ # result.each do |response|
1183
+ # # Each element is of type ::Google::Cloud::Translate::V3::Glossary.
1184
+ # p response
1185
+ # end
1186
+ #
763
1187
  def list_glossaries request, options = nil
764
1188
  raise ::ArgumentError, "request must be provided" if request.nil?
765
1189
 
@@ -777,16 +1201,20 @@ module Google
777
1201
  gapic_version: ::Google::Cloud::Translate::V3::VERSION
778
1202
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
779
1203
 
780
- header_params = {
781
- "parent" => request.parent
782
- }
1204
+ header_params = {}
1205
+ if request.parent
1206
+ header_params["parent"] = request.parent
1207
+ end
1208
+
783
1209
  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
784
1210
  metadata[:"x-goog-request-params"] ||= request_params_header
785
1211
 
786
1212
  options.apply_defaults timeout: @config.rpcs.list_glossaries.timeout,
787
1213
  metadata: metadata,
788
1214
  retry_policy: @config.rpcs.list_glossaries.retry_policy
789
- options.apply_defaults metadata: @config.metadata,
1215
+
1216
+ options.apply_defaults timeout: @config.timeout,
1217
+ metadata: @config.metadata,
790
1218
  retry_policy: @config.retry_policy
791
1219
 
792
1220
  @translation_service_stub.call_rpc :list_glossaries, request, options: options do |response, operation|
@@ -828,6 +1256,21 @@ module Google
828
1256
  #
829
1257
  # @raise [::Google::Cloud::Error] if the RPC is aborted.
830
1258
  #
1259
+ # @example Basic example
1260
+ # require "google/cloud/translate/v3"
1261
+ #
1262
+ # # Create a client object. The client can be reused for multiple calls.
1263
+ # client = Google::Cloud::Translate::V3::TranslationService::Client.new
1264
+ #
1265
+ # # Create a request. To set request fields, pass in keyword arguments.
1266
+ # request = Google::Cloud::Translate::V3::GetGlossaryRequest.new
1267
+ #
1268
+ # # Call the get_glossary method.
1269
+ # result = client.get_glossary request
1270
+ #
1271
+ # # The returned object is of type Google::Cloud::Translate::V3::Glossary.
1272
+ # p result
1273
+ #
831
1274
  def get_glossary request, options = nil
832
1275
  raise ::ArgumentError, "request must be provided" if request.nil?
833
1276
 
@@ -845,16 +1288,20 @@ module Google
845
1288
  gapic_version: ::Google::Cloud::Translate::V3::VERSION
846
1289
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
847
1290
 
848
- header_params = {
849
- "name" => request.name
850
- }
1291
+ header_params = {}
1292
+ if request.name
1293
+ header_params["name"] = request.name
1294
+ end
1295
+
851
1296
  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
852
1297
  metadata[:"x-goog-request-params"] ||= request_params_header
853
1298
 
854
1299
  options.apply_defaults timeout: @config.rpcs.get_glossary.timeout,
855
1300
  metadata: metadata,
856
1301
  retry_policy: @config.rpcs.get_glossary.retry_policy
857
- options.apply_defaults metadata: @config.metadata,
1302
+
1303
+ options.apply_defaults timeout: @config.timeout,
1304
+ metadata: @config.metadata,
858
1305
  retry_policy: @config.retry_policy
859
1306
 
860
1307
  @translation_service_stub.call_rpc :get_glossary, request, options: options do |response, operation|
@@ -896,6 +1343,28 @@ module Google
896
1343
  #
897
1344
  # @raise [::Google::Cloud::Error] if the RPC is aborted.
898
1345
  #
1346
+ # @example Basic example
1347
+ # require "google/cloud/translate/v3"
1348
+ #
1349
+ # # Create a client object. The client can be reused for multiple calls.
1350
+ # client = Google::Cloud::Translate::V3::TranslationService::Client.new
1351
+ #
1352
+ # # Create a request. To set request fields, pass in keyword arguments.
1353
+ # request = Google::Cloud::Translate::V3::DeleteGlossaryRequest.new
1354
+ #
1355
+ # # Call the delete_glossary method.
1356
+ # result = client.delete_glossary request
1357
+ #
1358
+ # # The returned object is of type Gapic::Operation. You can use this
1359
+ # # object to check the status of an operation, cancel it, or wait
1360
+ # # for results. Here is how to block until completion:
1361
+ # result.wait_until_done! timeout: 60
1362
+ # if result.response?
1363
+ # p result.response
1364
+ # else
1365
+ # puts "Error!"
1366
+ # end
1367
+ #
899
1368
  def delete_glossary request, options = nil
900
1369
  raise ::ArgumentError, "request must be provided" if request.nil?
901
1370
 
@@ -913,16 +1382,20 @@ module Google
913
1382
  gapic_version: ::Google::Cloud::Translate::V3::VERSION
914
1383
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
915
1384
 
916
- header_params = {
917
- "name" => request.name
918
- }
1385
+ header_params = {}
1386
+ if request.name
1387
+ header_params["name"] = request.name
1388
+ end
1389
+
919
1390
  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
920
1391
  metadata[:"x-goog-request-params"] ||= request_params_header
921
1392
 
922
1393
  options.apply_defaults timeout: @config.rpcs.delete_glossary.timeout,
923
1394
  metadata: metadata,
924
1395
  retry_policy: @config.rpcs.delete_glossary.retry_policy
925
- options.apply_defaults metadata: @config.metadata,
1396
+
1397
+ options.apply_defaults timeout: @config.timeout,
1398
+ metadata: @config.metadata,
926
1399
  retry_policy: @config.retry_policy
927
1400
 
928
1401
  @translation_service_stub.call_rpc :delete_glossary, request, options: options do |response, operation|
@@ -947,22 +1420,21 @@ module Google
947
1420
  # Configuration can be applied globally to all clients, or to a single client
948
1421
  # on construction.
949
1422
  #
950
- # # Examples
951
- #
952
- # To modify the global config, setting the timeout for translate_text
953
- # to 20 seconds, and all remaining timeouts to 10 seconds:
1423
+ # @example
954
1424
  #
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
1425
+ # # Modify the global config, setting the timeout for
1426
+ # # translate_text to 20 seconds,
1427
+ # # and all remaining timeouts to 10 seconds.
1428
+ # ::Google::Cloud::Translate::V3::TranslationService::Client.configure do |config|
1429
+ # config.timeout = 10.0
1430
+ # config.rpcs.translate_text.timeout = 20.0
1431
+ # end
959
1432
  #
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
1433
+ # # Apply the above configuration only to a new client.
1434
+ # client = ::Google::Cloud::Translate::V3::TranslationService::Client.new do |config|
1435
+ # config.timeout = 10.0
1436
+ # config.rpcs.translate_text.timeout = 20.0
1437
+ # end
966
1438
  #
967
1439
  # @!attribute [rw] endpoint
968
1440
  # The hostname or hostname:port of the service endpoint.
@@ -1086,11 +1558,21 @@ module Google
1086
1558
  #
1087
1559
  attr_reader :get_supported_languages
1088
1560
  ##
1561
+ # RPC-specific configuration for `translate_document`
1562
+ # @return [::Gapic::Config::Method]
1563
+ #
1564
+ attr_reader :translate_document
1565
+ ##
1089
1566
  # RPC-specific configuration for `batch_translate_text`
1090
1567
  # @return [::Gapic::Config::Method]
1091
1568
  #
1092
1569
  attr_reader :batch_translate_text
1093
1570
  ##
1571
+ # RPC-specific configuration for `batch_translate_document`
1572
+ # @return [::Gapic::Config::Method]
1573
+ #
1574
+ attr_reader :batch_translate_document
1575
+ ##
1094
1576
  # RPC-specific configuration for `create_glossary`
1095
1577
  # @return [::Gapic::Config::Method]
1096
1578
  #
@@ -1119,8 +1601,12 @@ module Google
1119
1601
  @detect_language = ::Gapic::Config::Method.new detect_language_config
1120
1602
  get_supported_languages_config = parent_rpcs.get_supported_languages if parent_rpcs.respond_to? :get_supported_languages
1121
1603
  @get_supported_languages = ::Gapic::Config::Method.new get_supported_languages_config
1604
+ translate_document_config = parent_rpcs.translate_document if parent_rpcs.respond_to? :translate_document
1605
+ @translate_document = ::Gapic::Config::Method.new translate_document_config
1122
1606
  batch_translate_text_config = parent_rpcs.batch_translate_text if parent_rpcs.respond_to? :batch_translate_text
1123
1607
  @batch_translate_text = ::Gapic::Config::Method.new batch_translate_text_config
1608
+ batch_translate_document_config = parent_rpcs.batch_translate_document if parent_rpcs.respond_to? :batch_translate_document
1609
+ @batch_translate_document = ::Gapic::Config::Method.new batch_translate_document_config
1124
1610
  create_glossary_config = parent_rpcs.create_glossary if parent_rpcs.respond_to? :create_glossary
1125
1611
  @create_glossary = ::Gapic::Config::Method.new create_glossary_config
1126
1612
  list_glossaries_config = parent_rpcs.list_glossaries if parent_rpcs.respond_to? :list_glossaries