google-cloud-iot-v1 0.7.1 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
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