google-cloud-retail-v2 0.17.0 → 0.18.1

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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/AUTHENTICATION.md +72 -101
  3. data/lib/google/cloud/retail/v2/catalog_service/client.rb +38 -14
  4. data/lib/google/cloud/retail/v2/catalog_service/rest/client.rb +36 -9
  5. data/lib/google/cloud/retail/v2/catalog_service/rest/service_stub.rb +23 -2
  6. data/lib/google/cloud/retail/v2/completion_service/client.rb +39 -14
  7. data/lib/google/cloud/retail/v2/completion_service/operations.rb +28 -6
  8. data/lib/google/cloud/retail/v2/completion_service/rest/client.rb +37 -9
  9. data/lib/google/cloud/retail/v2/completion_service/rest/operations.rb +33 -8
  10. data/lib/google/cloud/retail/v2/completion_service/rest/service_stub.rb +23 -2
  11. data/lib/google/cloud/retail/v2/control_service/client.rb +38 -14
  12. data/lib/google/cloud/retail/v2/control_service/rest/client.rb +36 -9
  13. data/lib/google/cloud/retail/v2/control_service/rest/service_stub.rb +23 -2
  14. data/lib/google/cloud/retail/v2/model_service/client.rb +39 -14
  15. data/lib/google/cloud/retail/v2/model_service/operations.rb +28 -6
  16. data/lib/google/cloud/retail/v2/model_service/rest/client.rb +37 -9
  17. data/lib/google/cloud/retail/v2/model_service/rest/operations.rb +33 -8
  18. data/lib/google/cloud/retail/v2/model_service/rest/service_stub.rb +23 -2
  19. data/lib/google/cloud/retail/v2/prediction_service/client.rb +38 -14
  20. data/lib/google/cloud/retail/v2/prediction_service/rest/client.rb +36 -9
  21. data/lib/google/cloud/retail/v2/prediction_service/rest/service_stub.rb +23 -2
  22. data/lib/google/cloud/retail/v2/product_service/client.rb +39 -14
  23. data/lib/google/cloud/retail/v2/product_service/operations.rb +28 -6
  24. data/lib/google/cloud/retail/v2/product_service/rest/client.rb +37 -9
  25. data/lib/google/cloud/retail/v2/product_service/rest/operations.rb +33 -8
  26. data/lib/google/cloud/retail/v2/product_service/rest/service_stub.rb +23 -2
  27. data/lib/google/cloud/retail/v2/search_service/client.rb +38 -14
  28. data/lib/google/cloud/retail/v2/search_service/rest/client.rb +36 -9
  29. data/lib/google/cloud/retail/v2/search_service/rest/service_stub.rb +23 -2
  30. data/lib/google/cloud/retail/v2/serving_config_service/client.rb +38 -14
  31. data/lib/google/cloud/retail/v2/serving_config_service/rest/client.rb +36 -9
  32. data/lib/google/cloud/retail/v2/serving_config_service/rest/service_stub.rb +23 -2
  33. data/lib/google/cloud/retail/v2/user_event_service/client.rb +39 -14
  34. data/lib/google/cloud/retail/v2/user_event_service/operations.rb +28 -6
  35. data/lib/google/cloud/retail/v2/user_event_service/rest/client.rb +37 -9
  36. data/lib/google/cloud/retail/v2/user_event_service/rest/operations.rb +33 -8
  37. data/lib/google/cloud/retail/v2/user_event_service/rest/service_stub.rb +23 -2
  38. data/lib/google/cloud/retail/v2/version.rb +1 -1
  39. data/proto_docs/google/api/client.rb +14 -0
  40. data/proto_docs/google/cloud/retail/v2/common.rb +2 -0
  41. data/proto_docs/google/cloud/retail/v2/import_config.rb +2 -0
  42. data/proto_docs/google/cloud/retail/v2/prediction_service.rb +1 -0
  43. data/proto_docs/google/cloud/retail/v2/product.rb +1 -0
  44. data/proto_docs/google/cloud/retail/v2/search_service.rb +1 -0
  45. metadata +7 -7
@@ -30,16 +30,37 @@ module Google
30
30
  # including transcoding, making the REST call, and deserialing the response.
31
31
  #
32
32
  class ServiceStub
33
- def initialize endpoint:, credentials:
33
+ def initialize endpoint:, endpoint_template:, universe_domain:, credentials:
34
34
  # These require statements are intentionally placed here to initialize
35
35
  # the REST modules only when it's required.
36
36
  require "gapic/rest"
37
37
 
38
- @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, credentials: credentials,
38
+ @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint,
39
+ endpoint_template: endpoint_template,
40
+ universe_domain: universe_domain,
41
+ credentials: credentials,
39
42
  numeric_enums: true,
40
43
  raise_faraday_errors: false
41
44
  end
42
45
 
46
+ ##
47
+ # The effective universe domain
48
+ #
49
+ # @return [String]
50
+ #
51
+ def universe_domain
52
+ @client_stub.universe_domain
53
+ end
54
+
55
+ ##
56
+ # The effective endpoint
57
+ #
58
+ # @return [String]
59
+ #
60
+ def endpoint
61
+ @client_stub.endpoint
62
+ end
63
+
43
64
  ##
44
65
  # Baseline implementation for the predict REST call
45
66
  #
@@ -32,6 +32,9 @@ module Google
32
32
  # of the customer's website.
33
33
  #
34
34
  class Client
35
+ # @private
36
+ DEFAULT_ENDPOINT_TEMPLATE = "retail.$UNIVERSE_DOMAIN$"
37
+
35
38
  include Paths
36
39
 
37
40
  # @private
@@ -102,6 +105,15 @@ module Google
102
105
  @config
103
106
  end
104
107
 
108
+ ##
109
+ # The effective universe domain
110
+ #
111
+ # @return [String]
112
+ #
113
+ def universe_domain
114
+ @product_service_stub.universe_domain
115
+ end
116
+
105
117
  ##
106
118
  # Create a new ProductService client object.
107
119
  #
@@ -135,8 +147,9 @@ module Google
135
147
  credentials = @config.credentials
136
148
  # Use self-signed JWT if the endpoint is unchanged from default,
137
149
  # but only if the default endpoint does not have a region prefix.
138
- enable_self_signed_jwt = @config.endpoint == Configuration::DEFAULT_ENDPOINT &&
139
- !@config.endpoint.split(".").first.include?("-")
150
+ enable_self_signed_jwt = @config.endpoint.nil? ||
151
+ (@config.endpoint == Configuration::DEFAULT_ENDPOINT &&
152
+ !@config.endpoint.split(".").first.include?("-"))
140
153
  credentials ||= Credentials.default scope: @config.scope,
141
154
  enable_self_signed_jwt: enable_self_signed_jwt
142
155
  if credentials.is_a?(::String) || credentials.is_a?(::Hash)
@@ -149,22 +162,26 @@ module Google
149
162
  config.credentials = credentials
150
163
  config.quota_project = @quota_project_id
151
164
  config.endpoint = @config.endpoint
152
- end
153
-
154
- @location_client = Google::Cloud::Location::Locations::Client.new do |config|
155
- config.credentials = credentials
156
- config.quota_project = @quota_project_id
157
- config.endpoint = @config.endpoint
165
+ config.universe_domain = @config.universe_domain
158
166
  end
159
167
 
160
168
  @product_service_stub = ::Gapic::ServiceStub.new(
161
169
  ::Google::Cloud::Retail::V2::ProductService::Stub,
162
- credentials: credentials,
163
- endpoint: @config.endpoint,
170
+ credentials: credentials,
171
+ endpoint: @config.endpoint,
172
+ endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
173
+ universe_domain: @config.universe_domain,
164
174
  channel_args: @config.channel_args,
165
175
  interceptors: @config.interceptors,
166
176
  channel_pool_config: @config.channel_pool
167
177
  )
178
+
179
+ @location_client = Google::Cloud::Location::Locations::Client.new do |config|
180
+ config.credentials = credentials
181
+ config.quota_project = @quota_project_id
182
+ config.endpoint = @product_service_stub.endpoint
183
+ config.universe_domain = @product_service_stub.universe_domain
184
+ end
168
185
  end
169
186
 
170
187
  ##
@@ -1772,9 +1789,9 @@ module Google
1772
1789
  # end
1773
1790
  #
1774
1791
  # @!attribute [rw] endpoint
1775
- # The hostname or hostname:port of the service endpoint.
1776
- # Defaults to `"retail.googleapis.com"`.
1777
- # @return [::String]
1792
+ # A custom service endpoint, as a hostname or hostname:port. The default is
1793
+ # nil, indicating to use the default endpoint in the current universe domain.
1794
+ # @return [::String,nil]
1778
1795
  # @!attribute [rw] credentials
1779
1796
  # Credentials to send with calls. You may provide any of the following types:
1780
1797
  # * (`String`) The path to a service account key file in JSON format
@@ -1820,13 +1837,20 @@ module Google
1820
1837
  # @!attribute [rw] quota_project
1821
1838
  # A separate project against which to charge quota.
1822
1839
  # @return [::String]
1840
+ # @!attribute [rw] universe_domain
1841
+ # The universe domain within which to make requests. This determines the
1842
+ # default endpoint URL. The default value of nil uses the environment
1843
+ # universe (usually the default "googleapis.com" universe).
1844
+ # @return [::String,nil]
1823
1845
  #
1824
1846
  class Configuration
1825
1847
  extend ::Gapic::Config
1826
1848
 
1849
+ # @private
1850
+ # The endpoint specific to the default "googleapis.com" universe. Deprecated.
1827
1851
  DEFAULT_ENDPOINT = "retail.googleapis.com"
1828
1852
 
1829
- config_attr :endpoint, DEFAULT_ENDPOINT, ::String
1853
+ config_attr :endpoint, nil, ::String, nil
1830
1854
  config_attr :credentials, nil do |value|
1831
1855
  allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
1832
1856
  allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
@@ -1841,6 +1865,7 @@ module Google
1841
1865
  config_attr :metadata, nil, ::Hash, nil
1842
1866
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
1843
1867
  config_attr :quota_project, nil, ::String, nil
1868
+ config_attr :universe_domain, nil, ::String, nil
1844
1869
 
1845
1870
  # @private
1846
1871
  def initialize parent_config = nil
@@ -26,6 +26,9 @@ module Google
26
26
  module ProductService
27
27
  # Service that implements Longrunning Operations API.
28
28
  class Operations
29
+ # @private
30
+ DEFAULT_ENDPOINT_TEMPLATE = "retail.$UNIVERSE_DOMAIN$"
31
+
29
32
  # @private
30
33
  attr_reader :operations_stub
31
34
 
@@ -60,6 +63,15 @@ module Google
60
63
  @config
61
64
  end
62
65
 
66
+ ##
67
+ # The effective universe domain
68
+ #
69
+ # @return [String]
70
+ #
71
+ def universe_domain
72
+ @operations_stub.universe_domain
73
+ end
74
+
63
75
  ##
64
76
  # Create a new Operations client object.
65
77
  #
@@ -90,8 +102,10 @@ module Google
90
102
 
91
103
  @operations_stub = ::Gapic::ServiceStub.new(
92
104
  ::Google::Longrunning::Operations::Stub,
93
- credentials: credentials,
94
- endpoint: @config.endpoint,
105
+ credentials: credentials,
106
+ endpoint: @config.endpoint,
107
+ endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
108
+ universe_domain: @config.universe_domain,
95
109
  channel_args: @config.channel_args,
96
110
  interceptors: @config.interceptors,
97
111
  channel_pool_config: @config.channel_pool
@@ -613,9 +627,9 @@ module Google
613
627
  # end
614
628
  #
615
629
  # @!attribute [rw] endpoint
616
- # The hostname or hostname:port of the service endpoint.
617
- # Defaults to `"retail.googleapis.com"`.
618
- # @return [::String]
630
+ # A custom service endpoint, as a hostname or hostname:port. The default is
631
+ # nil, indicating to use the default endpoint in the current universe domain.
632
+ # @return [::String,nil]
619
633
  # @!attribute [rw] credentials
620
634
  # Credentials to send with calls. You may provide any of the following types:
621
635
  # * (`String`) The path to a service account key file in JSON format
@@ -661,13 +675,20 @@ module Google
661
675
  # @!attribute [rw] quota_project
662
676
  # A separate project against which to charge quota.
663
677
  # @return [::String]
678
+ # @!attribute [rw] universe_domain
679
+ # The universe domain within which to make requests. This determines the
680
+ # default endpoint URL. The default value of nil uses the environment
681
+ # universe (usually the default "googleapis.com" universe).
682
+ # @return [::String,nil]
664
683
  #
665
684
  class Configuration
666
685
  extend ::Gapic::Config
667
686
 
687
+ # @private
688
+ # The endpoint specific to the default "googleapis.com" universe. Deprecated.
668
689
  DEFAULT_ENDPOINT = "retail.googleapis.com"
669
690
 
670
- config_attr :endpoint, DEFAULT_ENDPOINT, ::String
691
+ config_attr :endpoint, nil, ::String, nil
671
692
  config_attr :credentials, nil do |value|
672
693
  allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
673
694
  allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
@@ -682,6 +703,7 @@ module Google
682
703
  config_attr :metadata, nil, ::Hash, nil
683
704
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
684
705
  config_attr :quota_project, nil, ::String, nil
706
+ config_attr :universe_domain, nil, ::String, nil
685
707
 
686
708
  # @private
687
709
  def initialize parent_config = nil
@@ -34,6 +34,9 @@ module Google
34
34
  # of the customer's website.
35
35
  #
36
36
  class Client
37
+ # @private
38
+ DEFAULT_ENDPOINT_TEMPLATE = "retail.$UNIVERSE_DOMAIN$"
39
+
37
40
  include Paths
38
41
 
39
42
  # @private
@@ -104,6 +107,15 @@ module Google
104
107
  @config
105
108
  end
106
109
 
110
+ ##
111
+ # The effective universe domain
112
+ #
113
+ # @return [String]
114
+ #
115
+ def universe_domain
116
+ @product_service_stub.universe_domain
117
+ end
118
+
107
119
  ##
108
120
  # Create a new ProductService REST client object.
109
121
  #
@@ -131,8 +143,9 @@ module Google
131
143
  credentials = @config.credentials
132
144
  # Use self-signed JWT if the endpoint is unchanged from default,
133
145
  # but only if the default endpoint does not have a region prefix.
134
- enable_self_signed_jwt = @config.endpoint == Configuration::DEFAULT_ENDPOINT &&
135
- !@config.endpoint.split(".").first.include?("-")
146
+ enable_self_signed_jwt = @config.endpoint.nil? ||
147
+ (@config.endpoint == Configuration::DEFAULT_ENDPOINT &&
148
+ !@config.endpoint.split(".").first.include?("-"))
136
149
  credentials ||= Credentials.default scope: @config.scope,
137
150
  enable_self_signed_jwt: enable_self_signed_jwt
138
151
  if credentials.is_a?(::String) || credentials.is_a?(::Hash)
@@ -146,15 +159,22 @@ module Google
146
159
  config.credentials = credentials
147
160
  config.quota_project = @quota_project_id
148
161
  config.endpoint = @config.endpoint
162
+ config.universe_domain = @config.universe_domain
149
163
  end
150
164
 
165
+ @product_service_stub = ::Google::Cloud::Retail::V2::ProductService::Rest::ServiceStub.new(
166
+ endpoint: @config.endpoint,
167
+ endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
168
+ universe_domain: @config.universe_domain,
169
+ credentials: credentials
170
+ )
171
+
151
172
  @location_client = Google::Cloud::Location::Locations::Rest::Client.new do |config|
152
173
  config.credentials = credentials
153
174
  config.quota_project = @quota_project_id
154
- config.endpoint = @config.endpoint
175
+ config.endpoint = @product_service_stub.endpoint
176
+ config.universe_domain = @product_service_stub.universe_domain
155
177
  end
156
-
157
- @product_service_stub = ::Google::Cloud::Retail::V2::ProductService::Rest::ServiceStub.new endpoint: @config.endpoint, credentials: credentials
158
178
  end
159
179
 
160
180
  ##
@@ -1685,9 +1705,9 @@ module Google
1685
1705
  # end
1686
1706
  #
1687
1707
  # @!attribute [rw] endpoint
1688
- # The hostname or hostname:port of the service endpoint.
1689
- # Defaults to `"retail.googleapis.com"`.
1690
- # @return [::String]
1708
+ # A custom service endpoint, as a hostname or hostname:port. The default is
1709
+ # nil, indicating to use the default endpoint in the current universe domain.
1710
+ # @return [::String,nil]
1691
1711
  # @!attribute [rw] credentials
1692
1712
  # Credentials to send with calls. You may provide any of the following types:
1693
1713
  # * (`String`) The path to a service account key file in JSON format
@@ -1724,13 +1744,20 @@ module Google
1724
1744
  # @!attribute [rw] quota_project
1725
1745
  # A separate project against which to charge quota.
1726
1746
  # @return [::String]
1747
+ # @!attribute [rw] universe_domain
1748
+ # The universe domain within which to make requests. This determines the
1749
+ # default endpoint URL. The default value of nil uses the environment
1750
+ # universe (usually the default "googleapis.com" universe).
1751
+ # @return [::String,nil]
1727
1752
  #
1728
1753
  class Configuration
1729
1754
  extend ::Gapic::Config
1730
1755
 
1756
+ # @private
1757
+ # The endpoint specific to the default "googleapis.com" universe. Deprecated.
1731
1758
  DEFAULT_ENDPOINT = "retail.googleapis.com"
1732
1759
 
1733
- config_attr :endpoint, DEFAULT_ENDPOINT, ::String
1760
+ config_attr :endpoint, nil, ::String, nil
1734
1761
  config_attr :credentials, nil do |value|
1735
1762
  allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
1736
1763
  allowed.any? { |klass| klass === value }
@@ -1742,6 +1769,7 @@ module Google
1742
1769
  config_attr :metadata, nil, ::Hash, nil
1743
1770
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
1744
1771
  config_attr :quota_project, nil, ::String, nil
1772
+ config_attr :universe_domain, nil, ::String, nil
1745
1773
 
1746
1774
  # @private
1747
1775
  def initialize parent_config = nil
@@ -26,6 +26,9 @@ module Google
26
26
  module Rest
27
27
  # Service that implements Longrunning Operations API.
28
28
  class Operations
29
+ # @private
30
+ DEFAULT_ENDPOINT_TEMPLATE = "retail.$UNIVERSE_DOMAIN$"
31
+
29
32
  # @private
30
33
  attr_reader :operations_stub
31
34
 
@@ -60,6 +63,15 @@ module Google
60
63
  @config
61
64
  end
62
65
 
66
+ ##
67
+ # The effective universe domain
68
+ #
69
+ # @return [String]
70
+ #
71
+ def universe_domain
72
+ @operations_stub.universe_domain
73
+ end
74
+
63
75
  ##
64
76
  # Create a new Operations client object.
65
77
  #
@@ -84,8 +96,10 @@ module Google
84
96
  @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
85
97
 
86
98
  @operations_stub = OperationsServiceStub.new(
87
- endpoint: @config.endpoint,
88
- credentials: credentials
99
+ endpoint: @config.endpoint,
100
+ endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
101
+ universe_domain: @config.universe_domain,
102
+ credentials: credentials
89
103
  )
90
104
 
91
105
  # Used by an LRO wrapper for some methods of this service
@@ -478,9 +492,9 @@ module Google
478
492
  # end
479
493
  #
480
494
  # @!attribute [rw] endpoint
481
- # The hostname or hostname:port of the service endpoint.
482
- # Defaults to `"retail.googleapis.com"`.
483
- # @return [::String]
495
+ # A custom service endpoint, as a hostname or hostname:port. The default is
496
+ # nil, indicating to use the default endpoint in the current universe domain.
497
+ # @return [::String,nil]
484
498
  # @!attribute [rw] credentials
485
499
  # Credentials to send with calls. You may provide any of the following types:
486
500
  # * (`String`) The path to a service account key file in JSON format
@@ -517,13 +531,20 @@ module Google
517
531
  # @!attribute [rw] quota_project
518
532
  # A separate project against which to charge quota.
519
533
  # @return [::String]
534
+ # @!attribute [rw] universe_domain
535
+ # The universe domain within which to make requests. This determines the
536
+ # default endpoint URL. The default value of nil uses the environment
537
+ # universe (usually the default "googleapis.com" universe).
538
+ # @return [::String,nil]
520
539
  #
521
540
  class Configuration
522
541
  extend ::Gapic::Config
523
542
 
543
+ # @private
544
+ # The endpoint specific to the default "googleapis.com" universe. Deprecated.
524
545
  DEFAULT_ENDPOINT = "retail.googleapis.com"
525
546
 
526
- config_attr :endpoint, DEFAULT_ENDPOINT, ::String
547
+ config_attr :endpoint, nil, ::String, nil
527
548
  config_attr :credentials, nil do |value|
528
549
  allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
529
550
  allowed.any? { |klass| klass === value }
@@ -535,6 +556,7 @@ module Google
535
556
  config_attr :metadata, nil, ::Hash, nil
536
557
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
537
558
  config_attr :quota_project, nil, ::String, nil
559
+ config_attr :universe_domain, nil, ::String, nil
538
560
 
539
561
  # @private
540
562
  def initialize parent_config = nil
@@ -617,12 +639,15 @@ module Google
617
639
  # Service stub contains baseline method implementations
618
640
  # including transcoding, making the REST call, and deserialing the response.
619
641
  class OperationsServiceStub
620
- def initialize endpoint:, credentials:
642
+ def initialize endpoint:, endpoint_template:, universe_domain:, credentials:
621
643
  # These require statements are intentionally placed here to initialize
622
644
  # the REST modules only when it's required.
623
645
  require "gapic/rest"
624
646
 
625
- @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, credentials: credentials
647
+ @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint,
648
+ endpoint_template: endpoint_template,
649
+ universe_domain: universe_domain,
650
+ credentials: credentials
626
651
  end
627
652
 
628
653
  ##
@@ -30,16 +30,37 @@ module Google
30
30
  # including transcoding, making the REST call, and deserialing the response.
31
31
  #
32
32
  class ServiceStub
33
- def initialize endpoint:, credentials:
33
+ def initialize endpoint:, endpoint_template:, universe_domain:, credentials:
34
34
  # These require statements are intentionally placed here to initialize
35
35
  # the REST modules only when it's required.
36
36
  require "gapic/rest"
37
37
 
38
- @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, credentials: credentials,
38
+ @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint,
39
+ endpoint_template: endpoint_template,
40
+ universe_domain: universe_domain,
41
+ credentials: credentials,
39
42
  numeric_enums: true,
40
43
  raise_faraday_errors: false
41
44
  end
42
45
 
46
+ ##
47
+ # The effective universe domain
48
+ #
49
+ # @return [String]
50
+ #
51
+ def universe_domain
52
+ @client_stub.universe_domain
53
+ end
54
+
55
+ ##
56
+ # The effective endpoint
57
+ #
58
+ # @return [String]
59
+ #
60
+ def endpoint
61
+ @client_stub.endpoint
62
+ end
63
+
43
64
  ##
44
65
  # Baseline implementation for the create_product REST call
45
66
  #
@@ -34,6 +34,9 @@ module Google
34
34
  # Enable Retail Search on Cloud Console before using this feature.
35
35
  #
36
36
  class Client
37
+ # @private
38
+ DEFAULT_ENDPOINT_TEMPLATE = "retail.$UNIVERSE_DOMAIN$"
39
+
37
40
  include Paths
38
41
 
39
42
  # @private
@@ -99,6 +102,15 @@ module Google
99
102
  @config
100
103
  end
101
104
 
105
+ ##
106
+ # The effective universe domain
107
+ #
108
+ # @return [String]
109
+ #
110
+ def universe_domain
111
+ @search_service_stub.universe_domain
112
+ end
113
+
102
114
  ##
103
115
  # Create a new SearchService client object.
104
116
  #
@@ -132,8 +144,9 @@ module Google
132
144
  credentials = @config.credentials
133
145
  # Use self-signed JWT if the endpoint is unchanged from default,
134
146
  # but only if the default endpoint does not have a region prefix.
135
- enable_self_signed_jwt = @config.endpoint == Configuration::DEFAULT_ENDPOINT &&
136
- !@config.endpoint.split(".").first.include?("-")
147
+ enable_self_signed_jwt = @config.endpoint.nil? ||
148
+ (@config.endpoint == Configuration::DEFAULT_ENDPOINT &&
149
+ !@config.endpoint.split(".").first.include?("-"))
137
150
  credentials ||= Credentials.default scope: @config.scope,
138
151
  enable_self_signed_jwt: enable_self_signed_jwt
139
152
  if credentials.is_a?(::String) || credentials.is_a?(::Hash)
@@ -142,20 +155,23 @@ module Google
142
155
  @quota_project_id = @config.quota_project
143
156
  @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
144
157
 
145
- @location_client = Google::Cloud::Location::Locations::Client.new do |config|
146
- config.credentials = credentials
147
- config.quota_project = @quota_project_id
148
- config.endpoint = @config.endpoint
149
- end
150
-
151
158
  @search_service_stub = ::Gapic::ServiceStub.new(
152
159
  ::Google::Cloud::Retail::V2::SearchService::Stub,
153
- credentials: credentials,
154
- endpoint: @config.endpoint,
160
+ credentials: credentials,
161
+ endpoint: @config.endpoint,
162
+ endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
163
+ universe_domain: @config.universe_domain,
155
164
  channel_args: @config.channel_args,
156
165
  interceptors: @config.interceptors,
157
166
  channel_pool_config: @config.channel_pool
158
167
  )
168
+
169
+ @location_client = Google::Cloud::Location::Locations::Client.new do |config|
170
+ config.credentials = credentials
171
+ config.quota_project = @quota_project_id
172
+ config.endpoint = @search_service_stub.endpoint
173
+ config.universe_domain = @search_service_stub.universe_domain
174
+ end
159
175
  end
160
176
 
161
177
  ##
@@ -526,9 +542,9 @@ module Google
526
542
  # end
527
543
  #
528
544
  # @!attribute [rw] endpoint
529
- # The hostname or hostname:port of the service endpoint.
530
- # Defaults to `"retail.googleapis.com"`.
531
- # @return [::String]
545
+ # A custom service endpoint, as a hostname or hostname:port. The default is
546
+ # nil, indicating to use the default endpoint in the current universe domain.
547
+ # @return [::String,nil]
532
548
  # @!attribute [rw] credentials
533
549
  # Credentials to send with calls. You may provide any of the following types:
534
550
  # * (`String`) The path to a service account key file in JSON format
@@ -574,13 +590,20 @@ module Google
574
590
  # @!attribute [rw] quota_project
575
591
  # A separate project against which to charge quota.
576
592
  # @return [::String]
593
+ # @!attribute [rw] universe_domain
594
+ # The universe domain within which to make requests. This determines the
595
+ # default endpoint URL. The default value of nil uses the environment
596
+ # universe (usually the default "googleapis.com" universe).
597
+ # @return [::String,nil]
577
598
  #
578
599
  class Configuration
579
600
  extend ::Gapic::Config
580
601
 
602
+ # @private
603
+ # The endpoint specific to the default "googleapis.com" universe. Deprecated.
581
604
  DEFAULT_ENDPOINT = "retail.googleapis.com"
582
605
 
583
- config_attr :endpoint, DEFAULT_ENDPOINT, ::String
606
+ config_attr :endpoint, nil, ::String, nil
584
607
  config_attr :credentials, nil do |value|
585
608
  allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
586
609
  allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
@@ -595,6 +618,7 @@ module Google
595
618
  config_attr :metadata, nil, ::Hash, nil
596
619
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
597
620
  config_attr :quota_project, nil, ::String, nil
621
+ config_attr :universe_domain, nil, ::String, nil
598
622
 
599
623
  # @private
600
624
  def initialize parent_config = nil