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
@@ -42,6 +42,9 @@ module Google
42
42
  # * Control their tuning schedule.
43
43
  #
44
44
  class Client
45
+ # @private
46
+ DEFAULT_ENDPOINT_TEMPLATE = "retail.$UNIVERSE_DOMAIN$"
47
+
45
48
  include Paths
46
49
 
47
50
  # @private
@@ -107,6 +110,15 @@ module Google
107
110
  @config
108
111
  end
109
112
 
113
+ ##
114
+ # The effective universe domain
115
+ #
116
+ # @return [String]
117
+ #
118
+ def universe_domain
119
+ @model_service_stub.universe_domain
120
+ end
121
+
110
122
  ##
111
123
  # Create a new ModelService client object.
112
124
  #
@@ -140,8 +152,9 @@ module Google
140
152
  credentials = @config.credentials
141
153
  # Use self-signed JWT if the endpoint is unchanged from default,
142
154
  # but only if the default endpoint does not have a region prefix.
143
- enable_self_signed_jwt = @config.endpoint == Configuration::DEFAULT_ENDPOINT &&
144
- !@config.endpoint.split(".").first.include?("-")
155
+ enable_self_signed_jwt = @config.endpoint.nil? ||
156
+ (@config.endpoint == Configuration::DEFAULT_ENDPOINT &&
157
+ !@config.endpoint.split(".").first.include?("-"))
145
158
  credentials ||= Credentials.default scope: @config.scope,
146
159
  enable_self_signed_jwt: enable_self_signed_jwt
147
160
  if credentials.is_a?(::String) || credentials.is_a?(::Hash)
@@ -154,22 +167,26 @@ module Google
154
167
  config.credentials = credentials
155
168
  config.quota_project = @quota_project_id
156
169
  config.endpoint = @config.endpoint
157
- end
158
-
159
- @location_client = Google::Cloud::Location::Locations::Client.new do |config|
160
- config.credentials = credentials
161
- config.quota_project = @quota_project_id
162
- config.endpoint = @config.endpoint
170
+ config.universe_domain = @config.universe_domain
163
171
  end
164
172
 
165
173
  @model_service_stub = ::Gapic::ServiceStub.new(
166
174
  ::Google::Cloud::Retail::V2::ModelService::Stub,
167
- credentials: credentials,
168
- endpoint: @config.endpoint,
175
+ credentials: credentials,
176
+ endpoint: @config.endpoint,
177
+ endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
178
+ universe_domain: @config.universe_domain,
169
179
  channel_args: @config.channel_args,
170
180
  interceptors: @config.interceptors,
171
181
  channel_pool_config: @config.channel_pool
172
182
  )
183
+
184
+ @location_client = Google::Cloud::Location::Locations::Client.new do |config|
185
+ config.credentials = credentials
186
+ config.quota_project = @quota_project_id
187
+ config.endpoint = @model_service_stub.endpoint
188
+ config.universe_domain = @model_service_stub.universe_domain
189
+ end
173
190
  end
174
191
 
175
192
  ##
@@ -950,9 +967,9 @@ module Google
950
967
  # end
951
968
  #
952
969
  # @!attribute [rw] endpoint
953
- # The hostname or hostname:port of the service endpoint.
954
- # Defaults to `"retail.googleapis.com"`.
955
- # @return [::String]
970
+ # A custom service endpoint, as a hostname or hostname:port. The default is
971
+ # nil, indicating to use the default endpoint in the current universe domain.
972
+ # @return [::String,nil]
956
973
  # @!attribute [rw] credentials
957
974
  # Credentials to send with calls. You may provide any of the following types:
958
975
  # * (`String`) The path to a service account key file in JSON format
@@ -998,13 +1015,20 @@ module Google
998
1015
  # @!attribute [rw] quota_project
999
1016
  # A separate project against which to charge quota.
1000
1017
  # @return [::String]
1018
+ # @!attribute [rw] universe_domain
1019
+ # The universe domain within which to make requests. This determines the
1020
+ # default endpoint URL. The default value of nil uses the environment
1021
+ # universe (usually the default "googleapis.com" universe).
1022
+ # @return [::String,nil]
1001
1023
  #
1002
1024
  class Configuration
1003
1025
  extend ::Gapic::Config
1004
1026
 
1027
+ # @private
1028
+ # The endpoint specific to the default "googleapis.com" universe. Deprecated.
1005
1029
  DEFAULT_ENDPOINT = "retail.googleapis.com"
1006
1030
 
1007
- config_attr :endpoint, DEFAULT_ENDPOINT, ::String
1031
+ config_attr :endpoint, nil, ::String, nil
1008
1032
  config_attr :credentials, nil do |value|
1009
1033
  allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
1010
1034
  allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
@@ -1019,6 +1043,7 @@ module Google
1019
1043
  config_attr :metadata, nil, ::Hash, nil
1020
1044
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
1021
1045
  config_attr :quota_project, nil, ::String, nil
1046
+ config_attr :universe_domain, nil, ::String, nil
1022
1047
 
1023
1048
  # @private
1024
1049
  def initialize parent_config = nil
@@ -26,6 +26,9 @@ module Google
26
26
  module ModelService
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
@@ -44,6 +44,9 @@ module Google
44
44
  # * Control their tuning schedule.
45
45
  #
46
46
  class Client
47
+ # @private
48
+ DEFAULT_ENDPOINT_TEMPLATE = "retail.$UNIVERSE_DOMAIN$"
49
+
47
50
  include Paths
48
51
 
49
52
  # @private
@@ -109,6 +112,15 @@ module Google
109
112
  @config
110
113
  end
111
114
 
115
+ ##
116
+ # The effective universe domain
117
+ #
118
+ # @return [String]
119
+ #
120
+ def universe_domain
121
+ @model_service_stub.universe_domain
122
+ end
123
+
112
124
  ##
113
125
  # Create a new ModelService REST client object.
114
126
  #
@@ -136,8 +148,9 @@ module Google
136
148
  credentials = @config.credentials
137
149
  # Use self-signed JWT if the endpoint is unchanged from default,
138
150
  # but only if the default endpoint does not have a region prefix.
139
- enable_self_signed_jwt = @config.endpoint == Configuration::DEFAULT_ENDPOINT &&
140
- !@config.endpoint.split(".").first.include?("-")
151
+ enable_self_signed_jwt = @config.endpoint.nil? ||
152
+ (@config.endpoint == Configuration::DEFAULT_ENDPOINT &&
153
+ !@config.endpoint.split(".").first.include?("-"))
141
154
  credentials ||= Credentials.default scope: @config.scope,
142
155
  enable_self_signed_jwt: enable_self_signed_jwt
143
156
  if credentials.is_a?(::String) || credentials.is_a?(::Hash)
@@ -151,15 +164,22 @@ module Google
151
164
  config.credentials = credentials
152
165
  config.quota_project = @quota_project_id
153
166
  config.endpoint = @config.endpoint
167
+ config.universe_domain = @config.universe_domain
154
168
  end
155
169
 
170
+ @model_service_stub = ::Google::Cloud::Retail::V2::ModelService::Rest::ServiceStub.new(
171
+ endpoint: @config.endpoint,
172
+ endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
173
+ universe_domain: @config.universe_domain,
174
+ credentials: credentials
175
+ )
176
+
156
177
  @location_client = Google::Cloud::Location::Locations::Rest::Client.new do |config|
157
178
  config.credentials = credentials
158
179
  config.quota_project = @quota_project_id
159
- config.endpoint = @config.endpoint
180
+ config.endpoint = @model_service_stub.endpoint
181
+ config.universe_domain = @model_service_stub.universe_domain
160
182
  end
161
-
162
- @model_service_stub = ::Google::Cloud::Retail::V2::ModelService::Rest::ServiceStub.new endpoint: @config.endpoint, credentials: credentials
163
183
  end
164
184
 
165
185
  ##
@@ -884,9 +904,9 @@ module Google
884
904
  # end
885
905
  #
886
906
  # @!attribute [rw] endpoint
887
- # The hostname or hostname:port of the service endpoint.
888
- # Defaults to `"retail.googleapis.com"`.
889
- # @return [::String]
907
+ # A custom service endpoint, as a hostname or hostname:port. The default is
908
+ # nil, indicating to use the default endpoint in the current universe domain.
909
+ # @return [::String,nil]
890
910
  # @!attribute [rw] credentials
891
911
  # Credentials to send with calls. You may provide any of the following types:
892
912
  # * (`String`) The path to a service account key file in JSON format
@@ -923,13 +943,20 @@ module Google
923
943
  # @!attribute [rw] quota_project
924
944
  # A separate project against which to charge quota.
925
945
  # @return [::String]
946
+ # @!attribute [rw] universe_domain
947
+ # The universe domain within which to make requests. This determines the
948
+ # default endpoint URL. The default value of nil uses the environment
949
+ # universe (usually the default "googleapis.com" universe).
950
+ # @return [::String,nil]
926
951
  #
927
952
  class Configuration
928
953
  extend ::Gapic::Config
929
954
 
955
+ # @private
956
+ # The endpoint specific to the default "googleapis.com" universe. Deprecated.
930
957
  DEFAULT_ENDPOINT = "retail.googleapis.com"
931
958
 
932
- config_attr :endpoint, DEFAULT_ENDPOINT, ::String
959
+ config_attr :endpoint, nil, ::String, nil
933
960
  config_attr :credentials, nil do |value|
934
961
  allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
935
962
  allowed.any? { |klass| klass === value }
@@ -941,6 +968,7 @@ module Google
941
968
  config_attr :metadata, nil, ::Hash, nil
942
969
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
943
970
  config_attr :quota_project, nil, ::String, nil
971
+ config_attr :universe_domain, nil, ::String, nil
944
972
 
945
973
  # @private
946
974
  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_model REST call
45
66
  #
@@ -31,6 +31,9 @@ module Google
31
31
  # Service for making recommendation prediction.
32
32
  #
33
33
  class Client
34
+ # @private
35
+ DEFAULT_ENDPOINT_TEMPLATE = "retail.$UNIVERSE_DOMAIN$"
36
+
34
37
  include Paths
35
38
 
36
39
  # @private
@@ -96,6 +99,15 @@ module Google
96
99
  @config
97
100
  end
98
101
 
102
+ ##
103
+ # The effective universe domain
104
+ #
105
+ # @return [String]
106
+ #
107
+ def universe_domain
108
+ @prediction_service_stub.universe_domain
109
+ end
110
+
99
111
  ##
100
112
  # Create a new PredictionService client object.
101
113
  #
@@ -129,8 +141,9 @@ module Google
129
141
  credentials = @config.credentials
130
142
  # Use self-signed JWT if the endpoint is unchanged from default,
131
143
  # but only if the default endpoint does not have a region prefix.
132
- enable_self_signed_jwt = @config.endpoint == Configuration::DEFAULT_ENDPOINT &&
133
- !@config.endpoint.split(".").first.include?("-")
144
+ enable_self_signed_jwt = @config.endpoint.nil? ||
145
+ (@config.endpoint == Configuration::DEFAULT_ENDPOINT &&
146
+ !@config.endpoint.split(".").first.include?("-"))
134
147
  credentials ||= Credentials.default scope: @config.scope,
135
148
  enable_self_signed_jwt: enable_self_signed_jwt
136
149
  if credentials.is_a?(::String) || credentials.is_a?(::Hash)
@@ -139,20 +152,23 @@ module Google
139
152
  @quota_project_id = @config.quota_project
140
153
  @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
141
154
 
142
- @location_client = Google::Cloud::Location::Locations::Client.new do |config|
143
- config.credentials = credentials
144
- config.quota_project = @quota_project_id
145
- config.endpoint = @config.endpoint
146
- end
147
-
148
155
  @prediction_service_stub = ::Gapic::ServiceStub.new(
149
156
  ::Google::Cloud::Retail::V2::PredictionService::Stub,
150
- credentials: credentials,
151
- endpoint: @config.endpoint,
157
+ credentials: credentials,
158
+ endpoint: @config.endpoint,
159
+ endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
160
+ universe_domain: @config.universe_domain,
152
161
  channel_args: @config.channel_args,
153
162
  interceptors: @config.interceptors,
154
163
  channel_pool_config: @config.channel_pool
155
164
  )
165
+
166
+ @location_client = Google::Cloud::Location::Locations::Client.new do |config|
167
+ config.credentials = credentials
168
+ config.quota_project = @quota_project_id
169
+ config.endpoint = @prediction_service_stub.endpoint
170
+ config.universe_domain = @prediction_service_stub.universe_domain
171
+ end
156
172
  end
157
173
 
158
174
  ##
@@ -405,9 +421,9 @@ module Google
405
421
  # end
406
422
  #
407
423
  # @!attribute [rw] endpoint
408
- # The hostname or hostname:port of the service endpoint.
409
- # Defaults to `"retail.googleapis.com"`.
410
- # @return [::String]
424
+ # A custom service endpoint, as a hostname or hostname:port. The default is
425
+ # nil, indicating to use the default endpoint in the current universe domain.
426
+ # @return [::String,nil]
411
427
  # @!attribute [rw] credentials
412
428
  # Credentials to send with calls. You may provide any of the following types:
413
429
  # * (`String`) The path to a service account key file in JSON format
@@ -453,13 +469,20 @@ module Google
453
469
  # @!attribute [rw] quota_project
454
470
  # A separate project against which to charge quota.
455
471
  # @return [::String]
472
+ # @!attribute [rw] universe_domain
473
+ # The universe domain within which to make requests. This determines the
474
+ # default endpoint URL. The default value of nil uses the environment
475
+ # universe (usually the default "googleapis.com" universe).
476
+ # @return [::String,nil]
456
477
  #
457
478
  class Configuration
458
479
  extend ::Gapic::Config
459
480
 
481
+ # @private
482
+ # The endpoint specific to the default "googleapis.com" universe. Deprecated.
460
483
  DEFAULT_ENDPOINT = "retail.googleapis.com"
461
484
 
462
- config_attr :endpoint, DEFAULT_ENDPOINT, ::String
485
+ config_attr :endpoint, nil, ::String, nil
463
486
  config_attr :credentials, nil do |value|
464
487
  allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
465
488
  allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
@@ -474,6 +497,7 @@ module Google
474
497
  config_attr :metadata, nil, ::Hash, nil
475
498
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
476
499
  config_attr :quota_project, nil, ::String, nil
500
+ config_attr :universe_domain, nil, ::String, nil
477
501
 
478
502
  # @private
479
503
  def initialize parent_config = nil
@@ -33,6 +33,9 @@ module Google
33
33
  # Service for making recommendation prediction.
34
34
  #
35
35
  class Client
36
+ # @private
37
+ DEFAULT_ENDPOINT_TEMPLATE = "retail.$UNIVERSE_DOMAIN$"
38
+
36
39
  include Paths
37
40
 
38
41
  # @private
@@ -98,6 +101,15 @@ module Google
98
101
  @config
99
102
  end
100
103
 
104
+ ##
105
+ # The effective universe domain
106
+ #
107
+ # @return [String]
108
+ #
109
+ def universe_domain
110
+ @prediction_service_stub.universe_domain
111
+ end
112
+
101
113
  ##
102
114
  # Create a new PredictionService REST client object.
103
115
  #
@@ -125,8 +137,9 @@ module Google
125
137
  credentials = @config.credentials
126
138
  # Use self-signed JWT if the endpoint is unchanged from default,
127
139
  # but only if the default endpoint does not have a region prefix.
128
- enable_self_signed_jwt = @config.endpoint == Configuration::DEFAULT_ENDPOINT &&
129
- !@config.endpoint.split(".").first.include?("-")
140
+ enable_self_signed_jwt = @config.endpoint.nil? ||
141
+ (@config.endpoint == Configuration::DEFAULT_ENDPOINT &&
142
+ !@config.endpoint.split(".").first.include?("-"))
130
143
  credentials ||= Credentials.default scope: @config.scope,
131
144
  enable_self_signed_jwt: enable_self_signed_jwt
132
145
  if credentials.is_a?(::String) || credentials.is_a?(::Hash)
@@ -136,13 +149,19 @@ module Google
136
149
  @quota_project_id = @config.quota_project
137
150
  @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
138
151
 
152
+ @prediction_service_stub = ::Google::Cloud::Retail::V2::PredictionService::Rest::ServiceStub.new(
153
+ endpoint: @config.endpoint,
154
+ endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
155
+ universe_domain: @config.universe_domain,
156
+ credentials: credentials
157
+ )
158
+
139
159
  @location_client = Google::Cloud::Location::Locations::Rest::Client.new do |config|
140
160
  config.credentials = credentials
141
161
  config.quota_project = @quota_project_id
142
- config.endpoint = @config.endpoint
162
+ config.endpoint = @prediction_service_stub.endpoint
163
+ config.universe_domain = @prediction_service_stub.universe_domain
143
164
  end
144
-
145
- @prediction_service_stub = ::Google::Cloud::Retail::V2::PredictionService::Rest::ServiceStub.new endpoint: @config.endpoint, credentials: credentials
146
165
  end
147
166
 
148
167
  ##
@@ -388,9 +407,9 @@ module Google
388
407
  # end
389
408
  #
390
409
  # @!attribute [rw] endpoint
391
- # The hostname or hostname:port of the service endpoint.
392
- # Defaults to `"retail.googleapis.com"`.
393
- # @return [::String]
410
+ # A custom service endpoint, as a hostname or hostname:port. The default is
411
+ # nil, indicating to use the default endpoint in the current universe domain.
412
+ # @return [::String,nil]
394
413
  # @!attribute [rw] credentials
395
414
  # Credentials to send with calls. You may provide any of the following types:
396
415
  # * (`String`) The path to a service account key file in JSON format
@@ -427,13 +446,20 @@ module Google
427
446
  # @!attribute [rw] quota_project
428
447
  # A separate project against which to charge quota.
429
448
  # @return [::String]
449
+ # @!attribute [rw] universe_domain
450
+ # The universe domain within which to make requests. This determines the
451
+ # default endpoint URL. The default value of nil uses the environment
452
+ # universe (usually the default "googleapis.com" universe).
453
+ # @return [::String,nil]
430
454
  #
431
455
  class Configuration
432
456
  extend ::Gapic::Config
433
457
 
458
+ # @private
459
+ # The endpoint specific to the default "googleapis.com" universe. Deprecated.
434
460
  DEFAULT_ENDPOINT = "retail.googleapis.com"
435
461
 
436
- config_attr :endpoint, DEFAULT_ENDPOINT, ::String
462
+ config_attr :endpoint, nil, ::String, nil
437
463
  config_attr :credentials, nil do |value|
438
464
  allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
439
465
  allowed.any? { |klass| klass === value }
@@ -445,6 +471,7 @@ module Google
445
471
  config_attr :metadata, nil, ::Hash, nil
446
472
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
447
473
  config_attr :quota_project, nil, ::String, nil
474
+ config_attr :universe_domain, nil, ::String, nil
448
475
 
449
476
  # @private
450
477
  def initialize parent_config = nil