google-cloud-iot-v1 0.7.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e8f967a178d0aa1ab9085fd46d29f1a4b088d8032128e84c01e630b9f31f9cd9
4
- data.tar.gz: d76e1201370252f86d2e583856e91e89404b0706d7be735be7c7ccf0ca1f4440
3
+ metadata.gz: 1b88921e024e20e7ed21816263b95d8dd097f842b46582cdb841426bc9d5a76e
4
+ data.tar.gz: eb7861ca0268e283d22d5f7554fdac68940b2842e62be178363643c2c8de2d0c
5
5
  SHA512:
6
- metadata.gz: 7f21a66a065355626fe1dac2531e367dd76bf4be872234af7c32a607bab39c33ecb9c7e2bcfbd42373df0540c14ec605b1cb5b4f923109ab0e4081fbdbbf5a43
7
- data.tar.gz: 676333012b4c8cde3cae624af36c4d759f8df9e4fd81c79e33758a2e36b4e0b5345a22e07d18c48d9233d76bf77c4cd207a6bf6a53f837e56aae3d43bb949b28
6
+ metadata.gz: 60d1fb49a08d023e88fbfedd9b82e7075fadebda368e6901c87c3b8648e3a93230b16fee573a1ed46625bcc8328b4f0ba1ab20873739c6e4a1b3c4e9b07d25ac
7
+ data.tar.gz: 77e5d40a6080894b9698c9738c9e522117cb046831f4ff597f973dbf0f880c117699070495061e03baad281b5a57c43c9eb6257a55536d362ab5786cdcc7dee7
data/AUTHENTICATION.md CHANGED
@@ -1,151 +1,122 @@
1
1
  # Authentication
2
2
 
3
- In general, the google-cloud-iot-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-iot-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 IOT_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/iot/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::Iot::V1::DeviceManager::Client.new
18
+ ```sh
19
+ gcloud auth application-default login
31
20
  ```
32
21
 
33
- ## Credential Lookup
34
-
35
- The google-cloud-iot-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-iot-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-iot-v1
66
- checks for credentials are configured on the service Credentials class (such as
67
- {::Google::Cloud::Iot::V1::DeviceManager::Credentials}):
34
+ Credentials are accepted in the following ways, in the following order or precedence:
68
35
 
69
- * `IOT_CREDENTIALS` - Path to JSON file, or JSON contents
70
- * `IOT_KEYFILE` - Path to JSON file, or JSON contents
71
- * `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents
72
- * `GOOGLE_CLOUD_KEYFILE` - Path to JSON file, or JSON contents
73
- * `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file
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)
74
41
 
75
- ```ruby
76
- require "google/cloud/iot/v1"
77
-
78
- ENV["IOT_CREDENTIALS"] = "path/to/keyfile.json"
42
+ ### Configuration
79
43
 
80
- client = ::Google::Cloud::Iot::V1::DeviceManager::Client.new
81
- ```
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).
82
49
 
83
- ### 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.
84
53
 
85
- The path to the **Credentials JSON** file can be configured instead of storing
86
- it in an environment variable. Either on an individual client initialization:
54
+ To configure a credentials file for an individual client initialization:
87
55
 
88
56
  ```ruby
89
57
  require "google/cloud/iot/v1"
90
58
 
91
59
  client = ::Google::Cloud::Iot::V1::DeviceManager::Client.new do |config|
92
- config.credentials = "path/to/keyfile.json"
60
+ config.credentials = "path/to/credentialfile.json"
93
61
  end
94
62
  ```
95
63
 
96
- Or globally for all clients:
64
+ To configure a credentials file globally for all clients:
97
65
 
98
66
  ```ruby
99
67
  require "google/cloud/iot/v1"
100
68
 
101
69
  ::Google::Cloud::Iot::V1::DeviceManager::Client.configure do |config|
102
- config.credentials = "path/to/keyfile.json"
70
+ config.credentials = "path/to/credentialfile.json"
103
71
  end
104
72
 
105
73
  client = ::Google::Cloud::Iot::V1::DeviceManager::Client.new
106
74
  ```
107
75
 
108
- ### Cloud SDK
76
+ ### Environment Variables
109
77
 
110
- This option allows for an easy way to authenticate during development. If
111
- credentials are not provided in code or in environment variables, then Cloud SDK
112
- 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.
113
82
 
114
- 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).
115
87
 
116
- 1. [Download and install the Cloud SDK](https://cloud.google.com/sdk)
117
- 2. Authenticate using OAuth 2.0 `$ gcloud auth application-default login`
118
- 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-iot-v1
93
+ checks for credentials are:
119
94
 
120
- **NOTE:** This is _not_ recommended for running in production. The Cloud SDK
121
- *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
122
97
 
123
- ## Creating a Service Account
98
+ ```ruby
99
+ require "google/cloud/iot/v1"
124
100
 
125
- Google Cloud requires **Service Account Credentials** to
126
- connect to the APIs. You will use the **JSON key file** to
127
- connect to most services with google-cloud-iot-v1.
101
+ ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json"
128
102
 
129
- If you are not running this client within
130
- [Google Cloud Platform environments](#google-cloud-platform-environments), you
131
- need a Google Developers service account.
103
+ client = ::Google::Cloud::Iot::V1::DeviceManager::Client.new
104
+ ```
132
105
 
133
- 1. Visit the [Google Cloud Console](https://console.cloud.google.com/project).
134
- 2. Create a new project or click on an existing project.
135
- 3. Activate the menu in the upper left and select **APIs & Services**. From
136
- here, you will enable the APIs that your application requires.
106
+ ### Local ADC file
137
107
 
138
- *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.
139
111
 
140
- 4. Select **Credentials** from the side navigation.
112
+ Follow the steps in [Quickstart](#quickstart) to set up a local ADC file.
141
113
 
142
- Find the "Create credentials" drop down near the top of the page, and select
143
- "Service account" to be guided through downloading a new JSON key file.
114
+ ### Google Cloud Platform environments
144
115
 
145
- If you want to re-use an existing service account, you can easily generate a
146
- new key file. Just select the account you wish to re-use, click the pencil
147
- tool on the right side to edit the service account, select the **Keys** tab,
148
- 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.
149
120
 
150
- The key file you download will be used by this library to authenticate API
151
- 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).
@@ -30,6 +30,9 @@ module Google
30
30
  # Internet of Things (IoT) service. Securely connect and manage IoT devices.
31
31
  #
32
32
  class Client
33
+ # @private
34
+ DEFAULT_ENDPOINT_TEMPLATE = "cloudiot.$UNIVERSE_DOMAIN$"
35
+
33
36
  include Paths
34
37
 
35
38
  # @private
@@ -158,6 +161,15 @@ module Google
158
161
  @config
159
162
  end
160
163
 
164
+ ##
165
+ # The effective universe domain
166
+ #
167
+ # @return [String]
168
+ #
169
+ def universe_domain
170
+ @device_manager_stub.universe_domain
171
+ end
172
+
161
173
  ##
162
174
  # Create a new DeviceManager client object.
163
175
  #
@@ -191,8 +203,9 @@ module Google
191
203
  credentials = @config.credentials
192
204
  # Use self-signed JWT if the endpoint is unchanged from default,
193
205
  # but only if the default endpoint does not have a region prefix.
194
- enable_self_signed_jwt = @config.endpoint == Configuration::DEFAULT_ENDPOINT &&
195
- !@config.endpoint.split(".").first.include?("-")
206
+ enable_self_signed_jwt = @config.endpoint.nil? ||
207
+ (@config.endpoint == Configuration::DEFAULT_ENDPOINT &&
208
+ !@config.endpoint.split(".").first.include?("-"))
196
209
  credentials ||= Credentials.default scope: @config.scope,
197
210
  enable_self_signed_jwt: enable_self_signed_jwt
198
211
  if credentials.is_a?(::String) || credentials.is_a?(::Hash)
@@ -203,10 +216,13 @@ module Google
203
216
 
204
217
  @device_manager_stub = ::Gapic::ServiceStub.new(
205
218
  ::Google::Cloud::Iot::V1::DeviceManager::Stub,
206
- credentials: credentials,
207
- endpoint: @config.endpoint,
219
+ credentials: credentials,
220
+ endpoint: @config.endpoint,
221
+ endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
222
+ universe_domain: @config.universe_domain,
208
223
  channel_args: @config.channel_args,
209
- interceptors: @config.interceptors
224
+ interceptors: @config.interceptors,
225
+ channel_pool_config: @config.channel_pool
210
226
  )
211
227
  end
212
228
 
@@ -2028,9 +2044,9 @@ module Google
2028
2044
  # end
2029
2045
  #
2030
2046
  # @!attribute [rw] endpoint
2031
- # The hostname or hostname:port of the service endpoint.
2032
- # Defaults to `"cloudiot.googleapis.com"`.
2033
- # @return [::String]
2047
+ # A custom service endpoint, as a hostname or hostname:port. The default is
2048
+ # nil, indicating to use the default endpoint in the current universe domain.
2049
+ # @return [::String,nil]
2034
2050
  # @!attribute [rw] credentials
2035
2051
  # Credentials to send with calls. You may provide any of the following types:
2036
2052
  # * (`String`) The path to a service account key file in JSON format
@@ -2076,13 +2092,20 @@ module Google
2076
2092
  # @!attribute [rw] quota_project
2077
2093
  # A separate project against which to charge quota.
2078
2094
  # @return [::String]
2095
+ # @!attribute [rw] universe_domain
2096
+ # The universe domain within which to make requests. This determines the
2097
+ # default endpoint URL. The default value of nil uses the environment
2098
+ # universe (usually the default "googleapis.com" universe).
2099
+ # @return [::String,nil]
2079
2100
  #
2080
2101
  class Configuration
2081
2102
  extend ::Gapic::Config
2082
2103
 
2104
+ # @private
2105
+ # The endpoint specific to the default "googleapis.com" universe. Deprecated.
2083
2106
  DEFAULT_ENDPOINT = "cloudiot.googleapis.com"
2084
2107
 
2085
- config_attr :endpoint, DEFAULT_ENDPOINT, ::String
2108
+ config_attr :endpoint, nil, ::String, nil
2086
2109
  config_attr :credentials, nil do |value|
2087
2110
  allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
2088
2111
  allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
@@ -2097,6 +2120,7 @@ module Google
2097
2120
  config_attr :metadata, nil, ::Hash, nil
2098
2121
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
2099
2122
  config_attr :quota_project, nil, ::String, nil
2123
+ config_attr :universe_domain, nil, ::String, nil
2100
2124
 
2101
2125
  # @private
2102
2126
  def initialize parent_config = nil
@@ -2117,6 +2141,14 @@ module Google
2117
2141
  end
2118
2142
  end
2119
2143
 
2144
+ ##
2145
+ # Configuration for the channel pool
2146
+ # @return [::Gapic::ServiceStub::ChannelPool::Configuration]
2147
+ #
2148
+ def channel_pool
2149
+ @channel_pool ||= ::Gapic::ServiceStub::ChannelPool::Configuration.new
2150
+ end
2151
+
2120
2152
  ##
2121
2153
  # Configuration RPC class for the DeviceManager API.
2122
2154
  #
@@ -32,6 +32,9 @@ module Google
32
32
  # Internet of Things (IoT) service. Securely connect and manage IoT devices.
33
33
  #
34
34
  class Client
35
+ # @private
36
+ DEFAULT_ENDPOINT_TEMPLATE = "cloudiot.$UNIVERSE_DOMAIN$"
37
+
35
38
  include Paths
36
39
 
37
40
  # @private
@@ -160,6 +163,15 @@ module Google
160
163
  @config
161
164
  end
162
165
 
166
+ ##
167
+ # The effective universe domain
168
+ #
169
+ # @return [String]
170
+ #
171
+ def universe_domain
172
+ @device_manager_stub.universe_domain
173
+ end
174
+
163
175
  ##
164
176
  # Create a new DeviceManager REST client object.
165
177
  #
@@ -187,8 +199,9 @@ module Google
187
199
  credentials = @config.credentials
188
200
  # Use self-signed JWT if the endpoint is unchanged from default,
189
201
  # but only if the default endpoint does not have a region prefix.
190
- enable_self_signed_jwt = @config.endpoint == Configuration::DEFAULT_ENDPOINT &&
191
- !@config.endpoint.split(".").first.include?("-")
202
+ enable_self_signed_jwt = @config.endpoint.nil? ||
203
+ (@config.endpoint == Configuration::DEFAULT_ENDPOINT &&
204
+ !@config.endpoint.split(".").first.include?("-"))
192
205
  credentials ||= Credentials.default scope: @config.scope,
193
206
  enable_self_signed_jwt: enable_self_signed_jwt
194
207
  if credentials.is_a?(::String) || credentials.is_a?(::Hash)
@@ -198,7 +211,12 @@ module Google
198
211
  @quota_project_id = @config.quota_project
199
212
  @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
200
213
 
201
- @device_manager_stub = ::Google::Cloud::Iot::V1::DeviceManager::Rest::ServiceStub.new endpoint: @config.endpoint, credentials: credentials
214
+ @device_manager_stub = ::Google::Cloud::Iot::V1::DeviceManager::Rest::ServiceStub.new(
215
+ endpoint: @config.endpoint,
216
+ endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
217
+ universe_domain: @config.universe_domain,
218
+ credentials: credentials
219
+ )
202
220
  end
203
221
 
204
222
  # Service calls
@@ -235,6 +253,22 @@ module Google
235
253
  # @return [::Google::Cloud::Iot::V1::DeviceRegistry]
236
254
  #
237
255
  # @raise [::Google::Cloud::Error] if the REST call is aborted.
256
+ #
257
+ # @example Basic example
258
+ # require "google/cloud/iot/v1"
259
+ #
260
+ # # Create a client object. The client can be reused for multiple calls.
261
+ # client = Google::Cloud::Iot::V1::DeviceManager::Rest::Client.new
262
+ #
263
+ # # Create a request. To set request fields, pass in keyword arguments.
264
+ # request = Google::Cloud::Iot::V1::CreateDeviceRegistryRequest.new
265
+ #
266
+ # # Call the create_device_registry method.
267
+ # result = client.create_device_registry request
268
+ #
269
+ # # The returned object is of type Google::Cloud::Iot::V1::DeviceRegistry.
270
+ # p result
271
+ #
238
272
  def create_device_registry request, options = nil
239
273
  raise ::ArgumentError, "request must be provided" if request.nil?
240
274
 
@@ -298,6 +332,22 @@ module Google
298
332
  # @return [::Google::Cloud::Iot::V1::DeviceRegistry]
299
333
  #
300
334
  # @raise [::Google::Cloud::Error] if the REST call is aborted.
335
+ #
336
+ # @example Basic example
337
+ # require "google/cloud/iot/v1"
338
+ #
339
+ # # Create a client object. The client can be reused for multiple calls.
340
+ # client = Google::Cloud::Iot::V1::DeviceManager::Rest::Client.new
341
+ #
342
+ # # Create a request. To set request fields, pass in keyword arguments.
343
+ # request = Google::Cloud::Iot::V1::GetDeviceRegistryRequest.new
344
+ #
345
+ # # Call the get_device_registry method.
346
+ # result = client.get_device_registry request
347
+ #
348
+ # # The returned object is of type Google::Cloud::Iot::V1::DeviceRegistry.
349
+ # p result
350
+ #
301
351
  def get_device_registry request, options = nil
302
352
  raise ::ArgumentError, "request must be provided" if request.nil?
303
353
 
@@ -368,6 +418,22 @@ module Google
368
418
  # @return [::Google::Cloud::Iot::V1::DeviceRegistry]
369
419
  #
370
420
  # @raise [::Google::Cloud::Error] if the REST call is aborted.
421
+ #
422
+ # @example Basic example
423
+ # require "google/cloud/iot/v1"
424
+ #
425
+ # # Create a client object. The client can be reused for multiple calls.
426
+ # client = Google::Cloud::Iot::V1::DeviceManager::Rest::Client.new
427
+ #
428
+ # # Create a request. To set request fields, pass in keyword arguments.
429
+ # request = Google::Cloud::Iot::V1::UpdateDeviceRegistryRequest.new
430
+ #
431
+ # # Call the update_device_registry method.
432
+ # result = client.update_device_registry request
433
+ #
434
+ # # The returned object is of type Google::Cloud::Iot::V1::DeviceRegistry.
435
+ # p result
436
+ #
371
437
  def update_device_registry request, options = nil
372
438
  raise ::ArgumentError, "request must be provided" if request.nil?
373
439
 
@@ -431,6 +497,22 @@ module Google
431
497
  # @return [::Google::Protobuf::Empty]
432
498
  #
433
499
  # @raise [::Google::Cloud::Error] if the REST call is aborted.
500
+ #
501
+ # @example Basic example
502
+ # require "google/cloud/iot/v1"
503
+ #
504
+ # # Create a client object. The client can be reused for multiple calls.
505
+ # client = Google::Cloud::Iot::V1::DeviceManager::Rest::Client.new
506
+ #
507
+ # # Create a request. To set request fields, pass in keyword arguments.
508
+ # request = Google::Cloud::Iot::V1::DeleteDeviceRegistryRequest.new
509
+ #
510
+ # # Call the delete_device_registry method.
511
+ # result = client.delete_device_registry request
512
+ #
513
+ # # The returned object is of type Google::Protobuf::Empty.
514
+ # p result
515
+ #
434
516
  def delete_device_registry request, options = nil
435
517
  raise ::ArgumentError, "request must be provided" if request.nil?
436
518
 
@@ -503,6 +585,26 @@ module Google
503
585
  # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Iot::V1::DeviceRegistry>]
504
586
  #
505
587
  # @raise [::Google::Cloud::Error] if the REST call is aborted.
588
+ #
589
+ # @example Basic example
590
+ # require "google/cloud/iot/v1"
591
+ #
592
+ # # Create a client object. The client can be reused for multiple calls.
593
+ # client = Google::Cloud::Iot::V1::DeviceManager::Rest::Client.new
594
+ #
595
+ # # Create a request. To set request fields, pass in keyword arguments.
596
+ # request = Google::Cloud::Iot::V1::ListDeviceRegistriesRequest.new
597
+ #
598
+ # # Call the list_device_registries method.
599
+ # result = client.list_device_registries request
600
+ #
601
+ # # The returned object is of type Gapic::PagedEnumerable. You can iterate
602
+ # # over elements, and API calls will be issued to fetch pages as needed.
603
+ # result.each do |item|
604
+ # # Each element is of type ::Google::Cloud::Iot::V1::DeviceRegistry.
605
+ # p item
606
+ # end
607
+ #
506
608
  def list_device_registries request, options = nil
507
609
  raise ::ArgumentError, "request must be provided" if request.nil?
508
610
 
@@ -572,6 +674,22 @@ module Google
572
674
  # @return [::Google::Cloud::Iot::V1::Device]
573
675
  #
574
676
  # @raise [::Google::Cloud::Error] if the REST call is aborted.
677
+ #
678
+ # @example Basic example
679
+ # require "google/cloud/iot/v1"
680
+ #
681
+ # # Create a client object. The client can be reused for multiple calls.
682
+ # client = Google::Cloud::Iot::V1::DeviceManager::Rest::Client.new
683
+ #
684
+ # # Create a request. To set request fields, pass in keyword arguments.
685
+ # request = Google::Cloud::Iot::V1::CreateDeviceRequest.new
686
+ #
687
+ # # Call the create_device method.
688
+ # result = client.create_device request
689
+ #
690
+ # # The returned object is of type Google::Cloud::Iot::V1::Device.
691
+ # p result
692
+ #
575
693
  def create_device request, options = nil
576
694
  raise ::ArgumentError, "request must be provided" if request.nil?
577
695
 
@@ -640,6 +758,22 @@ module Google
640
758
  # @return [::Google::Cloud::Iot::V1::Device]
641
759
  #
642
760
  # @raise [::Google::Cloud::Error] if the REST call is aborted.
761
+ #
762
+ # @example Basic example
763
+ # require "google/cloud/iot/v1"
764
+ #
765
+ # # Create a client object. The client can be reused for multiple calls.
766
+ # client = Google::Cloud::Iot::V1::DeviceManager::Rest::Client.new
767
+ #
768
+ # # Create a request. To set request fields, pass in keyword arguments.
769
+ # request = Google::Cloud::Iot::V1::GetDeviceRequest.new
770
+ #
771
+ # # Call the get_device method.
772
+ # result = client.get_device request
773
+ #
774
+ # # The returned object is of type Google::Cloud::Iot::V1::Device.
775
+ # p result
776
+ #
643
777
  def get_device request, options = nil
644
778
  raise ::ArgumentError, "request must be provided" if request.nil?
645
779
 
@@ -710,6 +844,22 @@ module Google
710
844
  # @return [::Google::Cloud::Iot::V1::Device]
711
845
  #
712
846
  # @raise [::Google::Cloud::Error] if the REST call is aborted.
847
+ #
848
+ # @example Basic example
849
+ # require "google/cloud/iot/v1"
850
+ #
851
+ # # Create a client object. The client can be reused for multiple calls.
852
+ # client = Google::Cloud::Iot::V1::DeviceManager::Rest::Client.new
853
+ #
854
+ # # Create a request. To set request fields, pass in keyword arguments.
855
+ # request = Google::Cloud::Iot::V1::UpdateDeviceRequest.new
856
+ #
857
+ # # Call the update_device method.
858
+ # result = client.update_device request
859
+ #
860
+ # # The returned object is of type Google::Cloud::Iot::V1::Device.
861
+ # p result
862
+ #
713
863
  def update_device request, options = nil
714
864
  raise ::ArgumentError, "request must be provided" if request.nil?
715
865
 
@@ -774,6 +924,22 @@ module Google
774
924
  # @return [::Google::Protobuf::Empty]
775
925
  #
776
926
  # @raise [::Google::Cloud::Error] if the REST call is aborted.
927
+ #
928
+ # @example Basic example
929
+ # require "google/cloud/iot/v1"
930
+ #
931
+ # # Create a client object. The client can be reused for multiple calls.
932
+ # client = Google::Cloud::Iot::V1::DeviceManager::Rest::Client.new
933
+ #
934
+ # # Create a request. To set request fields, pass in keyword arguments.
935
+ # request = Google::Cloud::Iot::V1::DeleteDeviceRequest.new
936
+ #
937
+ # # Call the delete_device method.
938
+ # result = client.delete_device request
939
+ #
940
+ # # The returned object is of type Google::Protobuf::Empty.
941
+ # p result
942
+ #
777
943
  def delete_device request, options = nil
778
944
  raise ::ArgumentError, "request must be provided" if request.nil?
779
945
 
@@ -859,6 +1025,26 @@ module Google
859
1025
  # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Iot::V1::Device>]
860
1026
  #
861
1027
  # @raise [::Google::Cloud::Error] if the REST call is aborted.
1028
+ #
1029
+ # @example Basic example
1030
+ # require "google/cloud/iot/v1"
1031
+ #
1032
+ # # Create a client object. The client can be reused for multiple calls.
1033
+ # client = Google::Cloud::Iot::V1::DeviceManager::Rest::Client.new
1034
+ #
1035
+ # # Create a request. To set request fields, pass in keyword arguments.
1036
+ # request = Google::Cloud::Iot::V1::ListDevicesRequest.new
1037
+ #
1038
+ # # Call the list_devices method.
1039
+ # result = client.list_devices request
1040
+ #
1041
+ # # The returned object is of type Gapic::PagedEnumerable. You can iterate
1042
+ # # over elements, and API calls will be issued to fetch pages as needed.
1043
+ # result.each do |item|
1044
+ # # Each element is of type ::Google::Cloud::Iot::V1::Device.
1045
+ # p item
1046
+ # end
1047
+ #
862
1048
  def list_devices request, options = nil
863
1049
  raise ::ArgumentError, "request must be provided" if request.nil?
864
1050
 
@@ -934,6 +1120,22 @@ module Google
934
1120
  # @return [::Google::Cloud::Iot::V1::DeviceConfig]
935
1121
  #
936
1122
  # @raise [::Google::Cloud::Error] if the REST call is aborted.
1123
+ #
1124
+ # @example Basic example
1125
+ # require "google/cloud/iot/v1"
1126
+ #
1127
+ # # Create a client object. The client can be reused for multiple calls.
1128
+ # client = Google::Cloud::Iot::V1::DeviceManager::Rest::Client.new
1129
+ #
1130
+ # # Create a request. To set request fields, pass in keyword arguments.
1131
+ # request = Google::Cloud::Iot::V1::ModifyCloudToDeviceConfigRequest.new
1132
+ #
1133
+ # # Call the modify_cloud_to_device_config method.
1134
+ # result = client.modify_cloud_to_device_config request
1135
+ #
1136
+ # # The returned object is of type Google::Cloud::Iot::V1::DeviceConfig.
1137
+ # p result
1138
+ #
937
1139
  def modify_cloud_to_device_config request, options = nil
938
1140
  raise ::ArgumentError, "request must be provided" if request.nil?
939
1141
 
@@ -1003,6 +1205,22 @@ module Google
1003
1205
  # @return [::Google::Cloud::Iot::V1::ListDeviceConfigVersionsResponse]
1004
1206
  #
1005
1207
  # @raise [::Google::Cloud::Error] if the REST call is aborted.
1208
+ #
1209
+ # @example Basic example
1210
+ # require "google/cloud/iot/v1"
1211
+ #
1212
+ # # Create a client object. The client can be reused for multiple calls.
1213
+ # client = Google::Cloud::Iot::V1::DeviceManager::Rest::Client.new
1214
+ #
1215
+ # # Create a request. To set request fields, pass in keyword arguments.
1216
+ # request = Google::Cloud::Iot::V1::ListDeviceConfigVersionsRequest.new
1217
+ #
1218
+ # # Call the list_device_config_versions method.
1219
+ # result = client.list_device_config_versions request
1220
+ #
1221
+ # # The returned object is of type Google::Cloud::Iot::V1::ListDeviceConfigVersionsResponse.
1222
+ # p result
1223
+ #
1006
1224
  def list_device_config_versions request, options = nil
1007
1225
  raise ::ArgumentError, "request must be provided" if request.nil?
1008
1226
 
@@ -1072,6 +1290,22 @@ module Google
1072
1290
  # @return [::Google::Cloud::Iot::V1::ListDeviceStatesResponse]
1073
1291
  #
1074
1292
  # @raise [::Google::Cloud::Error] if the REST call is aborted.
1293
+ #
1294
+ # @example Basic example
1295
+ # require "google/cloud/iot/v1"
1296
+ #
1297
+ # # Create a client object. The client can be reused for multiple calls.
1298
+ # client = Google::Cloud::Iot::V1::DeviceManager::Rest::Client.new
1299
+ #
1300
+ # # Create a request. To set request fields, pass in keyword arguments.
1301
+ # request = Google::Cloud::Iot::V1::ListDeviceStatesRequest.new
1302
+ #
1303
+ # # Call the list_device_states method.
1304
+ # result = client.list_device_states request
1305
+ #
1306
+ # # The returned object is of type Google::Cloud::Iot::V1::ListDeviceStatesResponse.
1307
+ # p result
1308
+ #
1075
1309
  def list_device_states request, options = nil
1076
1310
  raise ::ArgumentError, "request must be provided" if request.nil?
1077
1311
 
@@ -1147,6 +1381,22 @@ module Google
1147
1381
  # @return [::Google::Iam::V1::Policy]
1148
1382
  #
1149
1383
  # @raise [::Google::Cloud::Error] if the REST call is aborted.
1384
+ #
1385
+ # @example Basic example
1386
+ # require "google/cloud/iot/v1"
1387
+ #
1388
+ # # Create a client object. The client can be reused for multiple calls.
1389
+ # client = Google::Cloud::Iot::V1::DeviceManager::Rest::Client.new
1390
+ #
1391
+ # # Create a request. To set request fields, pass in keyword arguments.
1392
+ # request = Google::Iam::V1::SetIamPolicyRequest.new
1393
+ #
1394
+ # # Call the set_iam_policy method.
1395
+ # result = client.set_iam_policy request
1396
+ #
1397
+ # # The returned object is of type Google::Iam::V1::Policy.
1398
+ # p result
1399
+ #
1150
1400
  def set_iam_policy request, options = nil
1151
1401
  raise ::ArgumentError, "request must be provided" if request.nil?
1152
1402
 
@@ -1215,6 +1465,22 @@ module Google
1215
1465
  # @return [::Google::Iam::V1::Policy]
1216
1466
  #
1217
1467
  # @raise [::Google::Cloud::Error] if the REST call is aborted.
1468
+ #
1469
+ # @example Basic example
1470
+ # require "google/cloud/iot/v1"
1471
+ #
1472
+ # # Create a client object. The client can be reused for multiple calls.
1473
+ # client = Google::Cloud::Iot::V1::DeviceManager::Rest::Client.new
1474
+ #
1475
+ # # Create a request. To set request fields, pass in keyword arguments.
1476
+ # request = Google::Iam::V1::GetIamPolicyRequest.new
1477
+ #
1478
+ # # Call the get_iam_policy method.
1479
+ # result = client.get_iam_policy request
1480
+ #
1481
+ # # The returned object is of type Google::Iam::V1::Policy.
1482
+ # p result
1483
+ #
1218
1484
  def get_iam_policy request, options = nil
1219
1485
  raise ::ArgumentError, "request must be provided" if request.nil?
1220
1486
 
@@ -1285,6 +1551,22 @@ module Google
1285
1551
  # @return [::Google::Iam::V1::TestIamPermissionsResponse]
1286
1552
  #
1287
1553
  # @raise [::Google::Cloud::Error] if the REST call is aborted.
1554
+ #
1555
+ # @example Basic example
1556
+ # require "google/cloud/iot/v1"
1557
+ #
1558
+ # # Create a client object. The client can be reused for multiple calls.
1559
+ # client = Google::Cloud::Iot::V1::DeviceManager::Rest::Client.new
1560
+ #
1561
+ # # Create a request. To set request fields, pass in keyword arguments.
1562
+ # request = Google::Iam::V1::TestIamPermissionsRequest.new
1563
+ #
1564
+ # # Call the test_iam_permissions method.
1565
+ # result = client.test_iam_permissions request
1566
+ #
1567
+ # # The returned object is of type Google::Iam::V1::TestIamPermissionsResponse.
1568
+ # p result
1569
+ #
1288
1570
  def test_iam_permissions request, options = nil
1289
1571
  raise ::ArgumentError, "request must be provided" if request.nil?
1290
1572
 
@@ -1369,6 +1651,22 @@ module Google
1369
1651
  # @return [::Google::Cloud::Iot::V1::SendCommandToDeviceResponse]
1370
1652
  #
1371
1653
  # @raise [::Google::Cloud::Error] if the REST call is aborted.
1654
+ #
1655
+ # @example Basic example
1656
+ # require "google/cloud/iot/v1"
1657
+ #
1658
+ # # Create a client object. The client can be reused for multiple calls.
1659
+ # client = Google::Cloud::Iot::V1::DeviceManager::Rest::Client.new
1660
+ #
1661
+ # # Create a request. To set request fields, pass in keyword arguments.
1662
+ # request = Google::Cloud::Iot::V1::SendCommandToDeviceRequest.new
1663
+ #
1664
+ # # Call the send_command_to_device method.
1665
+ # result = client.send_command_to_device request
1666
+ #
1667
+ # # The returned object is of type Google::Cloud::Iot::V1::SendCommandToDeviceResponse.
1668
+ # p result
1669
+ #
1372
1670
  def send_command_to_device request, options = nil
1373
1671
  raise ::ArgumentError, "request must be provided" if request.nil?
1374
1672
 
@@ -1439,6 +1737,22 @@ module Google
1439
1737
  # @return [::Google::Cloud::Iot::V1::BindDeviceToGatewayResponse]
1440
1738
  #
1441
1739
  # @raise [::Google::Cloud::Error] if the REST call is aborted.
1740
+ #
1741
+ # @example Basic example
1742
+ # require "google/cloud/iot/v1"
1743
+ #
1744
+ # # Create a client object. The client can be reused for multiple calls.
1745
+ # client = Google::Cloud::Iot::V1::DeviceManager::Rest::Client.new
1746
+ #
1747
+ # # Create a request. To set request fields, pass in keyword arguments.
1748
+ # request = Google::Cloud::Iot::V1::BindDeviceToGatewayRequest.new
1749
+ #
1750
+ # # Call the bind_device_to_gateway method.
1751
+ # result = client.bind_device_to_gateway request
1752
+ #
1753
+ # # The returned object is of type Google::Cloud::Iot::V1::BindDeviceToGatewayResponse.
1754
+ # p result
1755
+ #
1442
1756
  def bind_device_to_gateway request, options = nil
1443
1757
  raise ::ArgumentError, "request must be provided" if request.nil?
1444
1758
 
@@ -1509,6 +1823,22 @@ module Google
1509
1823
  # @return [::Google::Cloud::Iot::V1::UnbindDeviceFromGatewayResponse]
1510
1824
  #
1511
1825
  # @raise [::Google::Cloud::Error] if the REST call is aborted.
1826
+ #
1827
+ # @example Basic example
1828
+ # require "google/cloud/iot/v1"
1829
+ #
1830
+ # # Create a client object. The client can be reused for multiple calls.
1831
+ # client = Google::Cloud::Iot::V1::DeviceManager::Rest::Client.new
1832
+ #
1833
+ # # Create a request. To set request fields, pass in keyword arguments.
1834
+ # request = Google::Cloud::Iot::V1::UnbindDeviceFromGatewayRequest.new
1835
+ #
1836
+ # # Call the unbind_device_from_gateway method.
1837
+ # result = client.unbind_device_from_gateway request
1838
+ #
1839
+ # # The returned object is of type Google::Cloud::Iot::V1::UnbindDeviceFromGatewayResponse.
1840
+ # p result
1841
+ #
1512
1842
  def unbind_device_from_gateway request, options = nil
1513
1843
  raise ::ArgumentError, "request must be provided" if request.nil?
1514
1844
 
@@ -1574,9 +1904,9 @@ module Google
1574
1904
  # end
1575
1905
  #
1576
1906
  # @!attribute [rw] endpoint
1577
- # The hostname or hostname:port of the service endpoint.
1578
- # Defaults to `"cloudiot.googleapis.com"`.
1579
- # @return [::String]
1907
+ # A custom service endpoint, as a hostname or hostname:port. The default is
1908
+ # nil, indicating to use the default endpoint in the current universe domain.
1909
+ # @return [::String,nil]
1580
1910
  # @!attribute [rw] credentials
1581
1911
  # Credentials to send with calls. You may provide any of the following types:
1582
1912
  # * (`String`) The path to a service account key file in JSON format
@@ -1613,13 +1943,20 @@ module Google
1613
1943
  # @!attribute [rw] quota_project
1614
1944
  # A separate project against which to charge quota.
1615
1945
  # @return [::String]
1946
+ # @!attribute [rw] universe_domain
1947
+ # The universe domain within which to make requests. This determines the
1948
+ # default endpoint URL. The default value of nil uses the environment
1949
+ # universe (usually the default "googleapis.com" universe).
1950
+ # @return [::String,nil]
1616
1951
  #
1617
1952
  class Configuration
1618
1953
  extend ::Gapic::Config
1619
1954
 
1955
+ # @private
1956
+ # The endpoint specific to the default "googleapis.com" universe. Deprecated.
1620
1957
  DEFAULT_ENDPOINT = "cloudiot.googleapis.com"
1621
1958
 
1622
- config_attr :endpoint, DEFAULT_ENDPOINT, ::String
1959
+ config_attr :endpoint, nil, ::String, nil
1623
1960
  config_attr :credentials, nil do |value|
1624
1961
  allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
1625
1962
  allowed.any? { |klass| klass === value }
@@ -1631,6 +1968,7 @@ module Google
1631
1968
  config_attr :metadata, nil, ::Hash, nil
1632
1969
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
1633
1970
  config_attr :quota_project, nil, ::String, nil
1971
+ config_attr :universe_domain, nil, ::String, nil
1634
1972
 
1635
1973
  # @private
1636
1974
  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 create_device_registry REST call
45
57
  #
@@ -21,7 +21,7 @@ module Google
21
21
  module Cloud
22
22
  module Iot
23
23
  module V1
24
- VERSION = "0.7.1"
24
+ VERSION = "0.9.0"
25
25
  end
26
26
  end
27
27
  end
@@ -21,6 +21,7 @@ module Google
21
21
  module Api
22
22
  # Required information for every language.
23
23
  # @!attribute [rw] reference_docs_uri
24
+ # @deprecated This field is deprecated and may be removed in the next major version update.
24
25
  # @return [::String]
25
26
  # Link to automatically generated reference documentation. Example:
26
27
  # https://cloud.google.com/nodejs/docs/reference/asset/latest
@@ -304,6 +305,19 @@ module Google
304
305
  # seconds: 360 # 6 minutes
305
306
  # total_poll_timeout:
306
307
  # seconds: 54000 # 90 minutes
308
+ # @!attribute [rw] auto_populated_fields
309
+ # @return [::Array<::String>]
310
+ # List of top-level fields of the request message, that should be
311
+ # automatically populated by the client libraries based on their
312
+ # (google.api.field_info).format. Currently supported format: UUID4.
313
+ #
314
+ # Example of a YAML configuration:
315
+ #
316
+ # publishing:
317
+ # method_settings:
318
+ # - selector: google.example.v1.ExampleService.CreateExample
319
+ # auto_populated_fields:
320
+ # - request_id
307
321
  class MethodSettings
308
322
  include ::Google::Protobuf::MessageExts
309
323
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -66,6 +66,20 @@ module Google
66
66
  # a non-empty value will be returned. The user will not be aware of what
67
67
  # non-empty value to expect.
68
68
  NON_EMPTY_DEFAULT = 7
69
+
70
+ # Denotes that the field in a resource (a message annotated with
71
+ # google.api.resource) is used in the resource name to uniquely identify the
72
+ # resource. For AIP-compliant APIs, this should only be applied to the
73
+ # `name` field on the resource.
74
+ #
75
+ # This behavior should not be applied to references to other resources within
76
+ # the message.
77
+ #
78
+ # The identifier field of resources often have different field behavior
79
+ # depending on the request it is embedded in (e.g. for Create methods name
80
+ # is optional and unused, while for Update methods it is required). Instead
81
+ # of method-specific annotations, only `IDENTIFIER` is required.
82
+ IDENTIFIER = 8
69
83
  end
70
84
  end
71
85
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-iot-v1
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google LLC
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-04 00:00:00.000000000 Z
11
+ date: 2024-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gapic-common
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.19.1
19
+ version: 0.21.1
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: 2.a
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 0.19.1
29
+ version: 0.21.1
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 2.a
@@ -233,7 +233,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
233
233
  - !ruby/object:Gem::Version
234
234
  version: '0'
235
235
  requirements: []
236
- rubygems_version: 3.4.2
236
+ rubygems_version: 3.5.3
237
237
  signing_key:
238
238
  specification_version: 4
239
239
  summary: Registers and manages IoT (Internet of Things) devices that connect to the