google-cloud-discovery_engine-v1 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/AUTHENTICATION.md +72 -99
  3. data/lib/google/cloud/discovery_engine/v1/completion_service/client.rb +32 -8
  4. data/lib/google/cloud/discovery_engine/v1/completion_service/rest/client.rb +34 -7
  5. data/lib/google/cloud/discovery_engine/v1/completion_service/rest/service_stub.rb +14 -2
  6. data/lib/google/cloud/discovery_engine/v1/conversational_search_service/client.rb +32 -8
  7. data/lib/google/cloud/discovery_engine/v1/conversational_search_service/rest/client.rb +34 -7
  8. data/lib/google/cloud/discovery_engine/v1/conversational_search_service/rest/service_stub.rb +14 -2
  9. data/lib/google/cloud/discovery_engine/v1/document_service/client.rb +33 -8
  10. data/lib/google/cloud/discovery_engine/v1/document_service/operations.rb +28 -6
  11. data/lib/google/cloud/discovery_engine/v1/document_service/rest/client.rb +35 -7
  12. data/lib/google/cloud/discovery_engine/v1/document_service/rest/operations.rb +33 -8
  13. data/lib/google/cloud/discovery_engine/v1/document_service/rest/service_stub.rb +14 -2
  14. data/lib/google/cloud/discovery_engine/v1/schema_service/client.rb +33 -8
  15. data/lib/google/cloud/discovery_engine/v1/schema_service/operations.rb +28 -6
  16. data/lib/google/cloud/discovery_engine/v1/schema_service/rest/client.rb +35 -7
  17. data/lib/google/cloud/discovery_engine/v1/schema_service/rest/operations.rb +33 -8
  18. data/lib/google/cloud/discovery_engine/v1/schema_service/rest/service_stub.rb +14 -2
  19. data/lib/google/cloud/discovery_engine/v1/search_service/client.rb +32 -8
  20. data/lib/google/cloud/discovery_engine/v1/search_service/rest/client.rb +34 -7
  21. data/lib/google/cloud/discovery_engine/v1/search_service/rest/service_stub.rb +14 -2
  22. data/lib/google/cloud/discovery_engine/v1/user_event_service/client.rb +33 -8
  23. data/lib/google/cloud/discovery_engine/v1/user_event_service/operations.rb +28 -6
  24. data/lib/google/cloud/discovery_engine/v1/user_event_service/rest/client.rb +35 -7
  25. data/lib/google/cloud/discovery_engine/v1/user_event_service/rest/operations.rb +33 -8
  26. data/lib/google/cloud/discovery_engine/v1/user_event_service/rest/service_stub.rb +14 -2
  27. data/lib/google/cloud/discovery_engine/v1/version.rb +1 -1
  28. data/proto_docs/google/api/client.rb +14 -0
  29. data/proto_docs/google/cloud/discoveryengine/v1/search_service.rb +2 -0
  30. metadata +7 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 612779fb26fbf2d52a5d3c825d5e664bc23206248dc5a171b723e7d5f5e1a852
4
- data.tar.gz: ee192e70a8de293037cb9b2d8d97788c7501f7537e647bb20d330a304835ebf7
3
+ metadata.gz: c85ee9769bd298902cf74f1976491377cec85e0e4da830b3538e299c3f2fd233
4
+ data.tar.gz: de21abcaa1fcf53e643b34472cd06562574e7bf788aee86000f55dad1ae201c4
5
5
  SHA512:
6
- metadata.gz: a5642a09d8b0e95211e5feeae43578c80fec411a6d08334852c199c4eb3de7eba954a4b4a5fb5c24e680923313f619e6c3e15df350c0bd90593c07225f08a6fa
7
- data.tar.gz: ffb576b76c3bf6ddb71389b7e36add869500050a4bf7d42a146b5a99d401f12fdce475e872ec4b84ee46965970c00f58a963903d03e543600e33baced6315caf
6
+ metadata.gz: 4472c19ee13f5e78a8ea136226756359db2b2fae85d942db01a9fba94087b216e1fb942f3c58bebdb3bf397531d86192aa5afdcb68838a1e004a3ba23d856015
7
+ data.tar.gz: 76be6c8d7337694960fcc3b109dfd257c0687d4d3c3b76851436d56d6b7f3c5add3990a0a079f9f70c675eb01034dca7d98fbb8394270b03aa5c784e326515e6
data/AUTHENTICATION.md CHANGED
@@ -1,149 +1,122 @@
1
1
  # Authentication
2
2
 
3
- In general, the google-cloud-discovery_engine-v1 library uses
4
- [Service Account](https://cloud.google.com/iam/docs/creating-managing-service-accounts)
5
- credentials to connect to Google Cloud services. When running within
6
- [Google Cloud Platform environments](#google-cloud-platform-environments) the
7
- credentials will be discovered automatically. When running on other
8
- environments, the Service Account credentials can be specified by providing the
9
- path to the
10
- [JSON keyfile](https://cloud.google.com/iam/docs/managing-service-account-keys)
11
- for the account (or the JSON itself) in
12
- [environment variables](#environment-variables). Additionally, Cloud SDK
13
- credentials can also be discovered automatically, but this is only recommended
14
- during development.
3
+ The recommended way to authenticate to the google-cloud-discovery_engine-v1 library is to use
4
+ [Application Default Credentials (ADC)](https://cloud.google.com/docs/authentication/application-default-credentials).
5
+ To review all of your authentication options, see [Credentials lookup](#credential-lookup).
15
6
 
16
7
  ## Quickstart
17
8
 
18
- 1. [Create a service account and credentials](#creating-a-service-account).
19
- 2. Set the [environment variable](#environment-variables).
9
+ The following example shows how to set up authentication for a local development
10
+ environment with your user credentials.
20
11
 
21
- ```sh
22
- export GOOGLE_CLOUD_CREDENTIALS=path/to/keyfile.json
23
- ```
24
-
25
- 3. Initialize the client.
12
+ **NOTE:** This method is _not_ recommended for running in production. User credentials
13
+ should be used only during development.
26
14
 
27
- ```ruby
28
- require "google/cloud/discovery_engine/v1"
15
+ 1. [Download and install the Google Cloud CLI](https://cloud.google.com/sdk).
16
+ 2. Set up a local ADC file with your user credentials:
29
17
 
30
- client = ::Google::Cloud::DiscoveryEngine::V1::CompletionService::Client.new
18
+ ```sh
19
+ gcloud auth application-default login
31
20
  ```
32
21
 
33
- ## Credential Lookup
34
-
35
- The google-cloud-discovery_engine-v1 library aims to make authentication
36
- as simple as possible, and provides several mechanisms to configure your system
37
- without requiring **Service Account Credentials** directly in code.
38
-
39
- **Credentials** are discovered in the following order:
40
-
41
- 1. Specify credentials in method arguments
42
- 2. Specify credentials in configuration
43
- 3. Discover credentials path in environment variables
44
- 4. Discover credentials JSON in environment variables
45
- 5. Discover credentials file in the Cloud SDK's path
46
- 6. Discover GCP credentials
47
-
48
- ### Google Cloud Platform environments
22
+ 3. Write code as if already authenticated.
49
23
 
50
- When running on Google Cloud Platform (GCP), including Google Compute Engine
51
- (GCE), Google Kubernetes Engine (GKE), Google App Engine (GAE), Google Cloud
52
- Functions (GCF) and Cloud Run, **Credentials** are discovered automatically.
53
- Code should be written as if already authenticated.
24
+ For more information about setting up authentication for a local development environment, see
25
+ [Set up Application Default Credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc#local-dev).
54
26
 
55
- ### Environment Variables
27
+ ## Credential Lookup
56
28
 
57
- The **Credentials JSON** can be placed in environment variables instead of
58
- declaring them directly in code. Each service has its own environment variable,
59
- allowing for different service accounts to be used for different services. (See
60
- the READMEs for the individual service gems for details.) The path to the
61
- **Credentials JSON** file can be stored in the environment variable, or the
62
- **Credentials JSON** itself can be stored for environments such as Docker
63
- containers where writing files is difficult or not encouraged.
29
+ The google-cloud-discovery_engine-v1 library provides several mechanisms to configure your system.
30
+ Generally, using Application Default Credentials to facilitate automatic
31
+ credentials discovery is the easist method. But if you need to explicitly specify
32
+ credentials, there are several methods available to you.
64
33
 
65
- The environment variables that google-cloud-discovery_engine-v1
66
- checks for credentials are configured on the service Credentials class (such as
67
- {::Google::Cloud::DiscoveryEngine::V1::CompletionService::Credentials}):
34
+ Credentials are accepted in the following ways, in the following order or precedence:
68
35
 
69
- * `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents
70
- * `GOOGLE_CLOUD_KEYFILE` - Path to JSON file, or JSON contents
71
- * `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file
36
+ 1. Credentials specified in method arguments
37
+ 2. Credentials specified in configuration
38
+ 3. Credentials pointed to or included in environment variables
39
+ 4. Credentials found in local ADC file
40
+ 5. Credentials returned by the metadata server for the attached service account (GCP)
72
41
 
73
- ```ruby
74
- require "google/cloud/discovery_engine/v1"
75
-
76
- ENV["GOOGLE_CLOUD_CREDENTIALS"] = "path/to/keyfile.json"
42
+ ### Configuration
77
43
 
78
- client = ::Google::Cloud::DiscoveryEngine::V1::CompletionService::Client.new
79
- ```
44
+ You can configure a path to a JSON credentials file, either for an individual client object or
45
+ globally, for all client objects. The JSON file can contain credentials created for
46
+ [workload identity federation](https://cloud.google.com/iam/docs/workload-identity-federation),
47
+ [workforce identity federation](https://cloud.google.com/iam/docs/workforce-identity-federation), or a
48
+ [service account key](https://cloud.google.com/docs/authentication/provide-credentials-adc#local-key).
80
49
 
81
- ### Configuration
50
+ Note: Service account keys are a security risk if not managed correctly. You should
51
+ [choose a more secure alternative to service account keys](https://cloud.google.com/docs/authentication#auth-decision-tree)
52
+ whenever possible.
82
53
 
83
- The path to the **Credentials JSON** file can be configured instead of storing
84
- it in an environment variable. Either on an individual client initialization:
54
+ To configure a credentials file for an individual client initialization:
85
55
 
86
56
  ```ruby
87
57
  require "google/cloud/discovery_engine/v1"
88
58
 
89
59
  client = ::Google::Cloud::DiscoveryEngine::V1::CompletionService::Client.new do |config|
90
- config.credentials = "path/to/keyfile.json"
60
+ config.credentials = "path/to/credentialfile.json"
91
61
  end
92
62
  ```
93
63
 
94
- Or globally for all clients:
64
+ To configure a credentials file globally for all clients:
95
65
 
96
66
  ```ruby
97
67
  require "google/cloud/discovery_engine/v1"
98
68
 
99
69
  ::Google::Cloud::DiscoveryEngine::V1::CompletionService::Client.configure do |config|
100
- config.credentials = "path/to/keyfile.json"
70
+ config.credentials = "path/to/credentialfile.json"
101
71
  end
102
72
 
103
73
  client = ::Google::Cloud::DiscoveryEngine::V1::CompletionService::Client.new
104
74
  ```
105
75
 
106
- ### Cloud SDK
76
+ ### Environment Variables
107
77
 
108
- This option allows for an easy way to authenticate during development. If
109
- credentials are not provided in code or in environment variables, then Cloud SDK
110
- credentials are discovered.
78
+ You can also use an environment variable to provide a JSON credentials file.
79
+ The environment variable can contain a path to the credentials file or, for
80
+ environments such as Docker containers where writing files is not encouraged,
81
+ you can include the credentials file itself.
111
82
 
112
- To configure your system for this, simply:
83
+ The JSON file can contain credentials created for
84
+ [workload identity federation](https://cloud.google.com/iam/docs/workload-identity-federation),
85
+ [workforce identity federation](https://cloud.google.com/iam/docs/workforce-identity-federation), or a
86
+ [service account key](https://cloud.google.com/docs/authentication/provide-credentials-adc#local-key).
113
87
 
114
- 1. [Download and install the Cloud SDK](https://cloud.google.com/sdk)
115
- 2. Authenticate using OAuth 2.0 `$ gcloud auth application-default login`
116
- 3. Write code as if already authenticated.
88
+ Note: Service account keys are a security risk if not managed correctly. You should
89
+ [choose a more secure alternative to service account keys](https://cloud.google.com/docs/authentication#auth-decision-tree)
90
+ whenever possible.
91
+
92
+ The environment variables that google-cloud-discovery_engine-v1
93
+ checks for credentials are:
117
94
 
118
- **NOTE:** This is _not_ recommended for running in production. The Cloud SDK
119
- *should* only be used during development.
95
+ * `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents
96
+ * `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file
120
97
 
121
- ## Creating a Service Account
98
+ ```ruby
99
+ require "google/cloud/discovery_engine/v1"
122
100
 
123
- Google Cloud requires **Service Account Credentials** to
124
- connect to the APIs. You will use the **JSON key file** to
125
- connect to most services with google-cloud-discovery_engine-v1.
101
+ ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json"
126
102
 
127
- If you are not running this client within
128
- [Google Cloud Platform environments](#google-cloud-platform-environments), you
129
- need a Google Developers service account.
103
+ client = ::Google::Cloud::DiscoveryEngine::V1::CompletionService::Client.new
104
+ ```
130
105
 
131
- 1. Visit the [Google Cloud Console](https://console.cloud.google.com/project).
132
- 2. Create a new project or click on an existing project.
133
- 3. Activate the menu in the upper left and select **APIs & Services**. From
134
- here, you will enable the APIs that your application requires.
106
+ ### Local ADC file
135
107
 
136
- *Note: You may need to enable billing in order to use these services.*
108
+ You can set up a local ADC file with your user credentials for authentication during
109
+ development. If credentials are not provided in code or in environment variables,
110
+ then the local ADC credentials are discovered.
137
111
 
138
- 4. Select **Credentials** from the side navigation.
112
+ Follow the steps in [Quickstart](#quickstart) to set up a local ADC file.
139
113
 
140
- Find the "Create credentials" drop down near the top of the page, and select
141
- "Service account" to be guided through downloading a new JSON key file.
114
+ ### Google Cloud Platform environments
142
115
 
143
- If you want to re-use an existing service account, you can easily generate a
144
- new key file. Just select the account you wish to re-use, click the pencil
145
- tool on the right side to edit the service account, select the **Keys** tab,
146
- and then select **Add Key**.
116
+ When running on Google Cloud Platform (GCP), including Google Compute Engine
117
+ (GCE), Google Kubernetes Engine (GKE), Google App Engine (GAE), Google Cloud
118
+ Functions (GCF) and Cloud Run, credentials are retrieved from the attached
119
+ service account automatically. Code should be written as if already authenticated.
147
120
 
148
- The key file you download will be used by this library to authenticate API
149
- requests and should be stored in a secure location.
121
+ For more information, see
122
+ [Set up ADC for Google Cloud services](https://cloud.google.com/docs/authentication/provide-credentials-adc#attached-sa).
@@ -31,6 +31,9 @@ module Google
31
31
  # Service for Auto-Completion.
32
32
  #
33
33
  class Client
34
+ # @private
35
+ DEFAULT_ENDPOINT_TEMPLATE = "discoveryengine.$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
+ @completion_service_stub.universe_domain
109
+ end
110
+
99
111
  ##
100
112
  # Create a new CompletionService 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)
@@ -143,12 +156,15 @@ module Google
143
156
  config.credentials = credentials
144
157
  config.quota_project = @quota_project_id
145
158
  config.endpoint = @config.endpoint
159
+ config.universe_domain = @config.universe_domain
146
160
  end
147
161
 
148
162
  @completion_service_stub = ::Gapic::ServiceStub.new(
149
163
  ::Google::Cloud::DiscoveryEngine::V1::CompletionService::Stub,
150
- credentials: credentials,
151
- endpoint: @config.endpoint,
164
+ credentials: credentials,
165
+ endpoint: @config.endpoint,
166
+ endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
167
+ universe_domain: @config.universe_domain,
152
168
  channel_args: @config.channel_args,
153
169
  interceptors: @config.interceptors,
154
170
  channel_pool_config: @config.channel_pool
@@ -322,9 +338,9 @@ module Google
322
338
  # end
323
339
  #
324
340
  # @!attribute [rw] endpoint
325
- # The hostname or hostname:port of the service endpoint.
326
- # Defaults to `"discoveryengine.googleapis.com"`.
327
- # @return [::String]
341
+ # A custom service endpoint, as a hostname or hostname:port. The default is
342
+ # nil, indicating to use the default endpoint in the current universe domain.
343
+ # @return [::String,nil]
328
344
  # @!attribute [rw] credentials
329
345
  # Credentials to send with calls. You may provide any of the following types:
330
346
  # * (`String`) The path to a service account key file in JSON format
@@ -370,13 +386,20 @@ module Google
370
386
  # @!attribute [rw] quota_project
371
387
  # A separate project against which to charge quota.
372
388
  # @return [::String]
389
+ # @!attribute [rw] universe_domain
390
+ # The universe domain within which to make requests. This determines the
391
+ # default endpoint URL. The default value of nil uses the environment
392
+ # universe (usually the default "googleapis.com" universe).
393
+ # @return [::String,nil]
373
394
  #
374
395
  class Configuration
375
396
  extend ::Gapic::Config
376
397
 
398
+ # @private
399
+ # The endpoint specific to the default "googleapis.com" universe. Deprecated.
377
400
  DEFAULT_ENDPOINT = "discoveryengine.googleapis.com"
378
401
 
379
- config_attr :endpoint, DEFAULT_ENDPOINT, ::String
402
+ config_attr :endpoint, nil, ::String, nil
380
403
  config_attr :credentials, nil do |value|
381
404
  allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
382
405
  allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
@@ -391,6 +414,7 @@ module Google
391
414
  config_attr :metadata, nil, ::Hash, nil
392
415
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
393
416
  config_attr :quota_project, nil, ::String, nil
417
+ config_attr :universe_domain, nil, ::String, nil
394
418
 
395
419
  # @private
396
420
  def initialize parent_config = nil
@@ -33,6 +33,9 @@ module Google
33
33
  # Service for Auto-Completion.
34
34
  #
35
35
  class Client
36
+ # @private
37
+ DEFAULT_ENDPOINT_TEMPLATE = "discoveryengine.$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
+ @completion_service_stub.universe_domain
111
+ end
112
+
101
113
  ##
102
114
  # Create a new CompletionService 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)
@@ -140,9 +153,15 @@ module Google
140
153
  config.credentials = credentials
141
154
  config.quota_project = @quota_project_id
142
155
  config.endpoint = @config.endpoint
156
+ config.universe_domain = @config.universe_domain
143
157
  end
144
158
 
145
- @completion_service_stub = ::Google::Cloud::DiscoveryEngine::V1::CompletionService::Rest::ServiceStub.new endpoint: @config.endpoint, credentials: credentials
159
+ @completion_service_stub = ::Google::Cloud::DiscoveryEngine::V1::CompletionService::Rest::ServiceStub.new(
160
+ endpoint: @config.endpoint,
161
+ endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
162
+ universe_domain: @config.universe_domain,
163
+ credentials: credentials
164
+ )
146
165
  end
147
166
 
148
167
  ##
@@ -305,9 +324,9 @@ module Google
305
324
  # end
306
325
  #
307
326
  # @!attribute [rw] endpoint
308
- # The hostname or hostname:port of the service endpoint.
309
- # Defaults to `"discoveryengine.googleapis.com"`.
310
- # @return [::String]
327
+ # A custom service endpoint, as a hostname or hostname:port. The default is
328
+ # nil, indicating to use the default endpoint in the current universe domain.
329
+ # @return [::String,nil]
311
330
  # @!attribute [rw] credentials
312
331
  # Credentials to send with calls. You may provide any of the following types:
313
332
  # * (`String`) The path to a service account key file in JSON format
@@ -344,13 +363,20 @@ module Google
344
363
  # @!attribute [rw] quota_project
345
364
  # A separate project against which to charge quota.
346
365
  # @return [::String]
366
+ # @!attribute [rw] universe_domain
367
+ # The universe domain within which to make requests. This determines the
368
+ # default endpoint URL. The default value of nil uses the environment
369
+ # universe (usually the default "googleapis.com" universe).
370
+ # @return [::String,nil]
347
371
  #
348
372
  class Configuration
349
373
  extend ::Gapic::Config
350
374
 
375
+ # @private
376
+ # The endpoint specific to the default "googleapis.com" universe. Deprecated.
351
377
  DEFAULT_ENDPOINT = "discoveryengine.googleapis.com"
352
378
 
353
- config_attr :endpoint, DEFAULT_ENDPOINT, ::String
379
+ config_attr :endpoint, nil, ::String, nil
354
380
  config_attr :credentials, nil do |value|
355
381
  allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
356
382
  allowed.any? { |klass| klass === value }
@@ -362,6 +388,7 @@ module Google
362
388
  config_attr :metadata, nil, ::Hash, nil
363
389
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
364
390
  config_attr :quota_project, nil, ::String, nil
391
+ config_attr :universe_domain, nil, ::String, nil
365
392
 
366
393
  # @private
367
394
  def initialize parent_config = nil
@@ -30,16 +30,28 @@ 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
+
43
55
  ##
44
56
  # Baseline implementation for the complete_query REST call
45
57
  #
@@ -31,6 +31,9 @@ module Google
31
31
  # Service for conversational search.
32
32
  #
33
33
  class Client
34
+ # @private
35
+ DEFAULT_ENDPOINT_TEMPLATE = "discoveryengine.$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
+ @conversational_search_service_stub.universe_domain
109
+ end
110
+
99
111
  ##
100
112
  # Create a new ConversationalSearchService 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)
@@ -143,12 +156,15 @@ module Google
143
156
  config.credentials = credentials
144
157
  config.quota_project = @quota_project_id
145
158
  config.endpoint = @config.endpoint
159
+ config.universe_domain = @config.universe_domain
146
160
  end
147
161
 
148
162
  @conversational_search_service_stub = ::Gapic::ServiceStub.new(
149
163
  ::Google::Cloud::DiscoveryEngine::V1::ConversationalSearchService::Stub,
150
- credentials: credentials,
151
- endpoint: @config.endpoint,
164
+ credentials: credentials,
165
+ endpoint: @config.endpoint,
166
+ endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
167
+ universe_domain: @config.universe_domain,
152
168
  channel_args: @config.channel_args,
153
169
  interceptors: @config.interceptors,
154
170
  channel_pool_config: @config.channel_pool
@@ -795,9 +811,9 @@ module Google
795
811
  # end
796
812
  #
797
813
  # @!attribute [rw] endpoint
798
- # The hostname or hostname:port of the service endpoint.
799
- # Defaults to `"discoveryengine.googleapis.com"`.
800
- # @return [::String]
814
+ # A custom service endpoint, as a hostname or hostname:port. The default is
815
+ # nil, indicating to use the default endpoint in the current universe domain.
816
+ # @return [::String,nil]
801
817
  # @!attribute [rw] credentials
802
818
  # Credentials to send with calls. You may provide any of the following types:
803
819
  # * (`String`) The path to a service account key file in JSON format
@@ -843,13 +859,20 @@ module Google
843
859
  # @!attribute [rw] quota_project
844
860
  # A separate project against which to charge quota.
845
861
  # @return [::String]
862
+ # @!attribute [rw] universe_domain
863
+ # The universe domain within which to make requests. This determines the
864
+ # default endpoint URL. The default value of nil uses the environment
865
+ # universe (usually the default "googleapis.com" universe).
866
+ # @return [::String,nil]
846
867
  #
847
868
  class Configuration
848
869
  extend ::Gapic::Config
849
870
 
871
+ # @private
872
+ # The endpoint specific to the default "googleapis.com" universe. Deprecated.
850
873
  DEFAULT_ENDPOINT = "discoveryengine.googleapis.com"
851
874
 
852
- config_attr :endpoint, DEFAULT_ENDPOINT, ::String
875
+ config_attr :endpoint, nil, ::String, nil
853
876
  config_attr :credentials, nil do |value|
854
877
  allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
855
878
  allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
@@ -864,6 +887,7 @@ module Google
864
887
  config_attr :metadata, nil, ::Hash, nil
865
888
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
866
889
  config_attr :quota_project, nil, ::String, nil
890
+ config_attr :universe_domain, nil, ::String, nil
867
891
 
868
892
  # @private
869
893
  def initialize parent_config = nil