google-cloud-kms-v1 0.2.2 → 0.4.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: 2ccca6eacfbe6c0596b97cad8b4667a6caf76f4faad869ac73f4bcf23dab528e
4
- data.tar.gz: e440161238686fc3036cd9cc9de30111fd0e2b0d83f10560b89821455f5327d5
3
+ metadata.gz: 3cc60d8fa1636bb65f41b11d1894c42b92db26e4abca586e401075000470a542
4
+ data.tar.gz: 3d422378bd0ce48e981d0a8264bd0a685980b2ace0ae7aa399f283f45743ab5d
5
5
  SHA512:
6
- metadata.gz: 73d93a33b52e5ec7d557d8540c641bded8e7e3bf8635597b2e957792470784cb8bc971530dcb82b46684966a53c1390b5c474bb9219dd09ce1d895bf31d48363
7
- data.tar.gz: 83f1bb3de1f05d5a30d645428002abb064f56d680b9c3404f6c9522943a94f6c28eba15e3be4b1c02207abd9b19061923ee2d21bbef43057c1e8a0437c1cf6c5
6
+ metadata.gz: 22d859d0d9c2ff71b8524c682857d6f23af4b73ad2ca16570e80c7f0a6d28c5259b172f43a736bf5b88217b1484d1bd21f0b802863f3cae744b4197e57dcd630
7
+ data.tar.gz: 34ba652a07c97ad1d8e76ec972c92722773bfe94013ed057b20ed8980acca722e98d8ac72bb3ed4dc5641a53f0250de041bb3a05a5dd0f45eec6637933d5420c
data/README.md CHANGED
@@ -6,6 +6,12 @@ Manages keys and performs cryptographic operations in a central cloud service, f
6
6
 
7
7
  https://github.com/googleapis/google-cloud-ruby
8
8
 
9
+ This gem is a _versioned_ client. It provides basic client classes for a
10
+ specific version of the Cloud Key Management Service (KMS) V1 API. Most users should consider using
11
+ the main client gem,
12
+ [google-cloud-kms](https://rubygems.org/gems/google-cloud-kms).
13
+ See the section below titled *Which client should I use?* for more information.
14
+
9
15
  ## Installation
10
16
 
11
17
  ```
@@ -73,3 +79,61 @@ in security maintenance, and not end of life. Currently, this means Ruby 2.4
73
79
  and later. Older versions of Ruby _may_ still work, but are unsupported and not
74
80
  recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details
75
81
  about the Ruby support schedule.
82
+
83
+ ## Which client should I use?
84
+
85
+ Most modern Ruby client libraries for Google APIs come in two flavors: the main
86
+ client library with a name such as `google-cloud-kms`,
87
+ and lower-level _versioned_ client libraries with names such as
88
+ `google-cloud-kms-v1`.
89
+ _In most cases, you should install the main client._
90
+
91
+ ### What's the difference between the main client and a versioned client?
92
+
93
+ A _versioned client_ provides a basic set of data types and client classes for
94
+ a _single version_ of a specific service. (That is, for a service with multiple
95
+ versions, there might be a separate versioned client for each service version.)
96
+ Most versioned clients are written and maintained by a code generator.
97
+
98
+ The _main client_ is designed to provide you with the _recommended_ client
99
+ interfaces for the service. There will be only one main client for any given
100
+ service, even a service with multiple versions. The main client includes
101
+ factory methods for constructing the client objects we recommend for most
102
+ users. In some cases, those will be classes provided by an underlying versioned
103
+ client; in other cases, they will be handwritten higher-level client objects
104
+ with additional capabilities, convenience methods, or best practices built in.
105
+ Generally, the main client will default to a recommended service version,
106
+ although in some cases you can override this if you need to talk to a specific
107
+ service version.
108
+
109
+ ### Why would I want to use the main client?
110
+
111
+ We recommend that most users install the main client gem for a service. You can
112
+ identify this gem as the one _without_ a version in its name, e.g.
113
+ `google-cloud-kms`.
114
+ The main client is recommended because it will embody the best practices for
115
+ accessing the service, and may also provide more convenient interfaces or
116
+ tighter integration into frameworks and third-party libraries. In addition, the
117
+ documentation and samples published by Google will generally demonstrate use of
118
+ the main client.
119
+
120
+ ### Why would I want to use a versioned client?
121
+
122
+ You can use a versioned client if you are content with a possibly lower-level
123
+ class interface, you explicitly want to avoid features provided by the main
124
+ client, or you want to access a specific service version not be covered by the
125
+ main client. You can identify versioned client gems because the service version
126
+ is part of the name, e.g. `google-cloud-kms-v1`.
127
+
128
+ ### What about the google-apis-<name> clients?
129
+
130
+ Client library gems with names that begin with `google-apis-` are based on an
131
+ older code generation technology. They talk to a REST/JSON backend (whereas
132
+ most modern clients talk to a [gRPC](https://grpc.io/) backend) and they may
133
+ not offer the same performance, features, and ease of use provided by more
134
+ modern clients.
135
+
136
+ The `google-apis-` clients have wide coverage across Google services, so you
137
+ might need to use one if there is no modern client available for the service.
138
+ However, if a modern client is available, we generally recommend it over the
139
+ older `google-apis-` clients.
@@ -34,3 +34,6 @@ module Google
34
34
  end
35
35
  end
36
36
  end
37
+
38
+ helper_path = ::File.join __dir__, "v1", "_helpers.rb"
39
+ require "google/cloud/kms/v1/_helpers" if ::File.file? helper_path
@@ -148,7 +148,13 @@ module Google
148
148
 
149
149
  # Create credentials
150
150
  credentials = @config.credentials
151
- credentials ||= Credentials.default scope: @config.scope
151
+ # Use self-signed JWT if the scope and endpoint are unchanged from default,
152
+ # but only if the default endpoint does not have a region prefix.
153
+ enable_self_signed_jwt = @config.scope == Client.configure.scope &&
154
+ @config.endpoint == Client.configure.endpoint &&
155
+ !@config.endpoint.split(".").first.include?("-")
156
+ credentials ||= Credentials.default scope: @config.scope,
157
+ enable_self_signed_jwt: enable_self_signed_jwt
152
158
  if credentials.is_a?(String) || credentials.is_a?(Hash)
153
159
  credentials = Credentials.new credentials, scope: @config.scope
154
160
  end
@@ -474,7 +480,7 @@ module Google
474
480
 
475
481
  config_attr :endpoint, "cloudkms.googleapis.com", ::String
476
482
  config_attr :credentials, nil do |value|
477
- allowed = [::String, ::Hash, ::Proc, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
483
+ allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
478
484
  allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
479
485
  allowed.any? { |klass| klass === value }
480
486
  end
@@ -514,7 +520,7 @@ module Google
514
520
  # Each configuration object is of type `Gapic::Config::Method` and includes
515
521
  # the following configuration fields:
516
522
  #
517
- # * `timeout` (*type:* `Numeric`) - The call timeout in milliseconds
523
+ # * `timeout` (*type:* `Numeric`) - The call timeout in seconds
518
524
  # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers
519
525
  # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
520
526
  # include the following keys:
@@ -81,7 +81,7 @@ module Google
81
81
  initial_delay: 0.1,
82
82
  max_delay: 60.0,
83
83
  multiplier: 1.3,
84
- retry_codes: ["INTERNAL", "UNAVAILABLE", "DEADLINE_EXCEEDED"]
84
+ retry_codes: [13, 14, 4]
85
85
  }
86
86
 
87
87
  default_config.rpcs.list_crypto_keys.timeout = 60.0
@@ -89,7 +89,7 @@ module Google
89
89
  initial_delay: 0.1,
90
90
  max_delay: 60.0,
91
91
  multiplier: 1.3,
92
- retry_codes: ["INTERNAL", "UNAVAILABLE", "DEADLINE_EXCEEDED"]
92
+ retry_codes: [13, 14, 4]
93
93
  }
94
94
 
95
95
  default_config.rpcs.list_crypto_key_versions.timeout = 60.0
@@ -97,7 +97,7 @@ module Google
97
97
  initial_delay: 0.1,
98
98
  max_delay: 60.0,
99
99
  multiplier: 1.3,
100
- retry_codes: ["INTERNAL", "UNAVAILABLE", "DEADLINE_EXCEEDED"]
100
+ retry_codes: [13, 14, 4]
101
101
  }
102
102
 
103
103
  default_config.rpcs.list_import_jobs.timeout = 60.0
@@ -105,7 +105,7 @@ module Google
105
105
  initial_delay: 0.1,
106
106
  max_delay: 60.0,
107
107
  multiplier: 1.3,
108
- retry_codes: ["INTERNAL", "UNAVAILABLE", "DEADLINE_EXCEEDED"]
108
+ retry_codes: [13, 14, 4]
109
109
  }
110
110
 
111
111
  default_config.rpcs.get_key_ring.timeout = 60.0
@@ -113,7 +113,7 @@ module Google
113
113
  initial_delay: 0.1,
114
114
  max_delay: 60.0,
115
115
  multiplier: 1.3,
116
- retry_codes: ["INTERNAL", "UNAVAILABLE", "DEADLINE_EXCEEDED"]
116
+ retry_codes: [13, 14, 4]
117
117
  }
118
118
 
119
119
  default_config.rpcs.get_crypto_key.timeout = 60.0
@@ -121,7 +121,7 @@ module Google
121
121
  initial_delay: 0.1,
122
122
  max_delay: 60.0,
123
123
  multiplier: 1.3,
124
- retry_codes: ["INTERNAL", "UNAVAILABLE", "DEADLINE_EXCEEDED"]
124
+ retry_codes: [13, 14, 4]
125
125
  }
126
126
 
127
127
  default_config.rpcs.get_crypto_key_version.timeout = 60.0
@@ -129,7 +129,7 @@ module Google
129
129
  initial_delay: 0.1,
130
130
  max_delay: 60.0,
131
131
  multiplier: 1.3,
132
- retry_codes: ["INTERNAL", "UNAVAILABLE", "DEADLINE_EXCEEDED"]
132
+ retry_codes: [13, 14, 4]
133
133
  }
134
134
 
135
135
  default_config.rpcs.get_public_key.timeout = 60.0
@@ -137,7 +137,7 @@ module Google
137
137
  initial_delay: 0.1,
138
138
  max_delay: 60.0,
139
139
  multiplier: 1.3,
140
- retry_codes: ["INTERNAL", "UNAVAILABLE", "DEADLINE_EXCEEDED"]
140
+ retry_codes: [13, 14, 4]
141
141
  }
142
142
 
143
143
  default_config.rpcs.get_import_job.timeout = 60.0
@@ -145,7 +145,7 @@ module Google
145
145
  initial_delay: 0.1,
146
146
  max_delay: 60.0,
147
147
  multiplier: 1.3,
148
- retry_codes: ["INTERNAL", "UNAVAILABLE", "DEADLINE_EXCEEDED"]
148
+ retry_codes: [13, 14, 4]
149
149
  }
150
150
 
151
151
  default_config.rpcs.create_key_ring.timeout = 60.0
@@ -153,7 +153,7 @@ module Google
153
153
  initial_delay: 0.1,
154
154
  max_delay: 60.0,
155
155
  multiplier: 1.3,
156
- retry_codes: ["INTERNAL", "UNAVAILABLE", "DEADLINE_EXCEEDED"]
156
+ retry_codes: [13, 14, 4]
157
157
  }
158
158
 
159
159
  default_config.rpcs.create_crypto_key.timeout = 60.0
@@ -161,7 +161,7 @@ module Google
161
161
  initial_delay: 0.1,
162
162
  max_delay: 60.0,
163
163
  multiplier: 1.3,
164
- retry_codes: ["INTERNAL", "UNAVAILABLE", "DEADLINE_EXCEEDED"]
164
+ retry_codes: [13, 14, 4]
165
165
  }
166
166
 
167
167
  default_config.rpcs.create_crypto_key_version.timeout = 60.0
@@ -173,7 +173,7 @@ module Google
173
173
  initial_delay: 0.1,
174
174
  max_delay: 60.0,
175
175
  multiplier: 1.3,
176
- retry_codes: ["INTERNAL", "UNAVAILABLE", "DEADLINE_EXCEEDED"]
176
+ retry_codes: [13, 14, 4]
177
177
  }
178
178
 
179
179
  default_config.rpcs.update_crypto_key.timeout = 60.0
@@ -181,7 +181,7 @@ module Google
181
181
  initial_delay: 0.1,
182
182
  max_delay: 60.0,
183
183
  multiplier: 1.3,
184
- retry_codes: ["INTERNAL", "UNAVAILABLE", "DEADLINE_EXCEEDED"]
184
+ retry_codes: [13, 14, 4]
185
185
  }
186
186
 
187
187
  default_config.rpcs.update_crypto_key_version.timeout = 60.0
@@ -189,7 +189,7 @@ module Google
189
189
  initial_delay: 0.1,
190
190
  max_delay: 60.0,
191
191
  multiplier: 1.3,
192
- retry_codes: ["INTERNAL", "UNAVAILABLE", "DEADLINE_EXCEEDED"]
192
+ retry_codes: [13, 14, 4]
193
193
  }
194
194
 
195
195
  default_config.rpcs.encrypt.timeout = 60.0
@@ -197,7 +197,7 @@ module Google
197
197
  initial_delay: 0.1,
198
198
  max_delay: 60.0,
199
199
  multiplier: 1.3,
200
- retry_codes: ["INTERNAL", "UNAVAILABLE", "DEADLINE_EXCEEDED"]
200
+ retry_codes: [13, 14, 4]
201
201
  }
202
202
 
203
203
  default_config.rpcs.decrypt.timeout = 60.0
@@ -205,7 +205,7 @@ module Google
205
205
  initial_delay: 0.1,
206
206
  max_delay: 60.0,
207
207
  multiplier: 1.3,
208
- retry_codes: ["INTERNAL", "UNAVAILABLE", "DEADLINE_EXCEEDED"]
208
+ retry_codes: [13, 14, 4]
209
209
  }
210
210
 
211
211
  default_config.rpcs.asymmetric_sign.timeout = 60.0
@@ -213,7 +213,7 @@ module Google
213
213
  initial_delay: 0.1,
214
214
  max_delay: 60.0,
215
215
  multiplier: 1.3,
216
- retry_codes: ["INTERNAL", "UNAVAILABLE", "DEADLINE_EXCEEDED"]
216
+ retry_codes: [13, 14, 4]
217
217
  }
218
218
 
219
219
  default_config.rpcs.asymmetric_decrypt.timeout = 60.0
@@ -221,7 +221,7 @@ module Google
221
221
  initial_delay: 0.1,
222
222
  max_delay: 60.0,
223
223
  multiplier: 1.3,
224
- retry_codes: ["INTERNAL", "UNAVAILABLE", "DEADLINE_EXCEEDED"]
224
+ retry_codes: [13, 14, 4]
225
225
  }
226
226
 
227
227
  default_config.rpcs.update_crypto_key_primary_version.timeout = 60.0
@@ -229,7 +229,7 @@ module Google
229
229
  initial_delay: 0.1,
230
230
  max_delay: 60.0,
231
231
  multiplier: 1.3,
232
- retry_codes: ["INTERNAL", "UNAVAILABLE", "DEADLINE_EXCEEDED"]
232
+ retry_codes: [13, 14, 4]
233
233
  }
234
234
 
235
235
  default_config.rpcs.destroy_crypto_key_version.timeout = 60.0
@@ -237,7 +237,7 @@ module Google
237
237
  initial_delay: 0.1,
238
238
  max_delay: 60.0,
239
239
  multiplier: 1.3,
240
- retry_codes: ["INTERNAL", "UNAVAILABLE", "DEADLINE_EXCEEDED"]
240
+ retry_codes: [13, 14, 4]
241
241
  }
242
242
 
243
243
  default_config.rpcs.restore_crypto_key_version.timeout = 60.0
@@ -245,7 +245,7 @@ module Google
245
245
  initial_delay: 0.1,
246
246
  max_delay: 60.0,
247
247
  multiplier: 1.3,
248
- retry_codes: ["INTERNAL", "UNAVAILABLE", "DEADLINE_EXCEEDED"]
248
+ retry_codes: [13, 14, 4]
249
249
  }
250
250
 
251
251
  default_config
@@ -309,7 +309,13 @@ module Google
309
309
 
310
310
  # Create credentials
311
311
  credentials = @config.credentials
312
- credentials ||= Credentials.default scope: @config.scope
312
+ # Use self-signed JWT if the scope and endpoint are unchanged from default,
313
+ # but only if the default endpoint does not have a region prefix.
314
+ enable_self_signed_jwt = @config.scope == Client.configure.scope &&
315
+ @config.endpoint == Client.configure.endpoint &&
316
+ !@config.endpoint.split(".").first.include?("-")
317
+ credentials ||= Credentials.default scope: @config.scope,
318
+ enable_self_signed_jwt: enable_self_signed_jwt
313
319
  if credentials.is_a?(String) || credentials.is_a?(Hash)
314
320
  credentials = Credentials.new credentials, scope: @config.scope
315
321
  end
@@ -1572,7 +1578,7 @@ module Google
1572
1578
  # @param options [::Gapic::CallOptions, ::Hash]
1573
1579
  # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
1574
1580
  #
1575
- # @overload encrypt(name: nil, plaintext: nil, additional_authenticated_data: nil)
1581
+ # @overload encrypt(name: nil, plaintext: nil, additional_authenticated_data: nil, plaintext_crc32c: nil, additional_authenticated_data_crc32c: nil)
1576
1582
  # Pass arguments to `encrypt` via keyword arguments. Note that at
1577
1583
  # least one keyword argument is required. To specify no parameters, or to keep all
1578
1584
  # the default parameter values, pass an empty Hash as a request object (see above).
@@ -1602,6 +1608,39 @@ module Google
1602
1608
  # 64KiB. For {::Google::Cloud::Kms::V1::ProtectionLevel::HSM HSM} keys, the combined length of the
1603
1609
  # plaintext and additional_authenticated_data fields must be no larger than
1604
1610
  # 8KiB.
1611
+ # @param plaintext_crc32c [::Google::Protobuf::Int64Value, ::Hash]
1612
+ # Optional. An optional CRC32C checksum of the {::Google::Cloud::Kms::V1::EncryptRequest#plaintext EncryptRequest.plaintext}. If
1613
+ # specified, {::Google::Cloud::Kms::V1::KeyManagementService::Client KeyManagementService} will verify the integrity of the
1614
+ # received {::Google::Cloud::Kms::V1::EncryptRequest#plaintext EncryptRequest.plaintext} using this checksum.
1615
+ # {::Google::Cloud::Kms::V1::KeyManagementService::Client KeyManagementService} will report an error if the checksum verification
1616
+ # fails. If you receive a checksum error, your client should verify that
1617
+ # CRC32C({::Google::Cloud::Kms::V1::EncryptRequest#plaintext EncryptRequest.plaintext}) is equal to
1618
+ # {::Google::Cloud::Kms::V1::EncryptRequest#plaintext_crc32c EncryptRequest.plaintext_crc32c}, and if so, perform a limited number of
1619
+ # retries. A persistent mismatch may indicate an issue in your computation of
1620
+ # the CRC32C checksum.
1621
+ # Note: This field is defined as int64 for reasons of compatibility across
1622
+ # different languages. However, it is a non-negative integer, which will
1623
+ # never exceed 2^32-1, and can be safely downconverted to uint32 in languages
1624
+ # that support this type.
1625
+ #
1626
+ # NOTE: This field is in Beta.
1627
+ # @param additional_authenticated_data_crc32c [::Google::Protobuf::Int64Value, ::Hash]
1628
+ # Optional. An optional CRC32C checksum of the
1629
+ # {::Google::Cloud::Kms::V1::EncryptRequest#additional_authenticated_data EncryptRequest.additional_authenticated_data}. If specified,
1630
+ # {::Google::Cloud::Kms::V1::KeyManagementService::Client KeyManagementService} will verify the integrity of the received
1631
+ # {::Google::Cloud::Kms::V1::EncryptRequest#additional_authenticated_data EncryptRequest.additional_authenticated_data} using this checksum.
1632
+ # {::Google::Cloud::Kms::V1::KeyManagementService::Client KeyManagementService} will report an error if the checksum verification
1633
+ # fails. If you receive a checksum error, your client should verify that
1634
+ # CRC32C({::Google::Cloud::Kms::V1::EncryptRequest#additional_authenticated_data EncryptRequest.additional_authenticated_data}) is equal to
1635
+ # {::Google::Cloud::Kms::V1::EncryptRequest#additional_authenticated_data_crc32c EncryptRequest.additional_authenticated_data_crc32c}, and if so, perform
1636
+ # a limited number of retries. A persistent mismatch may indicate an issue in
1637
+ # your computation of the CRC32C checksum.
1638
+ # Note: This field is defined as int64 for reasons of compatibility across
1639
+ # different languages. However, it is a non-negative integer, which will
1640
+ # never exceed 2^32-1, and can be safely downconverted to uint32 in languages
1641
+ # that support this type.
1642
+ #
1643
+ # NOTE: This field is in Beta.
1605
1644
  #
1606
1645
  # @yield [response, operation] Access the result along with the RPC operation
1607
1646
  # @yieldparam response [::Google::Cloud::Kms::V1::EncryptResponse]
@@ -1662,7 +1701,7 @@ module Google
1662
1701
  # @param options [::Gapic::CallOptions, ::Hash]
1663
1702
  # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
1664
1703
  #
1665
- # @overload decrypt(name: nil, ciphertext: nil, additional_authenticated_data: nil)
1704
+ # @overload decrypt(name: nil, ciphertext: nil, additional_authenticated_data: nil, ciphertext_crc32c: nil, additional_authenticated_data_crc32c: nil)
1666
1705
  # Pass arguments to `decrypt` via keyword arguments. Note that at
1667
1706
  # least one keyword argument is required. To specify no parameters, or to keep all
1668
1707
  # the default parameter values, pass an empty Hash as a request object (see above).
@@ -1676,6 +1715,39 @@ module Google
1676
1715
  # @param additional_authenticated_data [::String]
1677
1716
  # Optional. Optional data that must match the data originally supplied in
1678
1717
  # {::Google::Cloud::Kms::V1::EncryptRequest#additional_authenticated_data EncryptRequest.additional_authenticated_data}.
1718
+ # @param ciphertext_crc32c [::Google::Protobuf::Int64Value, ::Hash]
1719
+ # Optional. An optional CRC32C checksum of the {::Google::Cloud::Kms::V1::DecryptRequest#ciphertext DecryptRequest.ciphertext}. If
1720
+ # specified, {::Google::Cloud::Kms::V1::KeyManagementService::Client KeyManagementService} will verify the integrity of the
1721
+ # received {::Google::Cloud::Kms::V1::DecryptRequest#ciphertext DecryptRequest.ciphertext} using this checksum.
1722
+ # {::Google::Cloud::Kms::V1::KeyManagementService::Client KeyManagementService} will report an error if the checksum verification
1723
+ # fails. If you receive a checksum error, your client should verify that
1724
+ # CRC32C({::Google::Cloud::Kms::V1::DecryptRequest#ciphertext DecryptRequest.ciphertext}) is equal to
1725
+ # {::Google::Cloud::Kms::V1::DecryptRequest#ciphertext_crc32c DecryptRequest.ciphertext_crc32c}, and if so, perform a limited number
1726
+ # of retries. A persistent mismatch may indicate an issue in your computation
1727
+ # of the CRC32C checksum.
1728
+ # Note: This field is defined as int64 for reasons of compatibility across
1729
+ # different languages. However, it is a non-negative integer, which will
1730
+ # never exceed 2^32-1, and can be safely downconverted to uint32 in languages
1731
+ # that support this type.
1732
+ #
1733
+ # NOTE: This field is in Beta.
1734
+ # @param additional_authenticated_data_crc32c [::Google::Protobuf::Int64Value, ::Hash]
1735
+ # Optional. An optional CRC32C checksum of the
1736
+ # {::Google::Cloud::Kms::V1::DecryptRequest#additional_authenticated_data DecryptRequest.additional_authenticated_data}. If specified,
1737
+ # {::Google::Cloud::Kms::V1::KeyManagementService::Client KeyManagementService} will verify the integrity of the received
1738
+ # {::Google::Cloud::Kms::V1::DecryptRequest#additional_authenticated_data DecryptRequest.additional_authenticated_data} using this checksum.
1739
+ # {::Google::Cloud::Kms::V1::KeyManagementService::Client KeyManagementService} will report an error if the checksum verification
1740
+ # fails. If you receive a checksum error, your client should verify that
1741
+ # CRC32C({::Google::Cloud::Kms::V1::DecryptRequest#additional_authenticated_data DecryptRequest.additional_authenticated_data}) is equal to
1742
+ # {::Google::Cloud::Kms::V1::DecryptRequest#additional_authenticated_data_crc32c DecryptRequest.additional_authenticated_data_crc32c}, and if so, perform
1743
+ # a limited number of retries. A persistent mismatch may indicate an issue in
1744
+ # your computation of the CRC32C checksum.
1745
+ # Note: This field is defined as int64 for reasons of compatibility across
1746
+ # different languages. However, it is a non-negative integer, which will
1747
+ # never exceed 2^32-1, and can be safely downconverted to uint32 in languages
1748
+ # that support this type.
1749
+ #
1750
+ # NOTE: This field is in Beta.
1679
1751
  #
1680
1752
  # @yield [response, operation] Access the result along with the RPC operation
1681
1753
  # @yieldparam response [::Google::Cloud::Kms::V1::DecryptResponse]
@@ -1737,7 +1809,7 @@ module Google
1737
1809
  # @param options [::Gapic::CallOptions, ::Hash]
1738
1810
  # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
1739
1811
  #
1740
- # @overload asymmetric_sign(name: nil, digest: nil)
1812
+ # @overload asymmetric_sign(name: nil, digest: nil, digest_crc32c: nil)
1741
1813
  # Pass arguments to `asymmetric_sign` via keyword arguments. Note that at
1742
1814
  # least one keyword argument is required. To specify no parameters, or to keep all
1743
1815
  # the default parameter values, pass an empty Hash as a request object (see above).
@@ -1748,6 +1820,22 @@ module Google
1748
1820
  # Required. The digest of the data to sign. The digest must be produced with
1749
1821
  # the same digest algorithm as specified by the key version's
1750
1822
  # {::Google::Cloud::Kms::V1::CryptoKeyVersion#algorithm algorithm}.
1823
+ # @param digest_crc32c [::Google::Protobuf::Int64Value, ::Hash]
1824
+ # Optional. An optional CRC32C checksum of the {::Google::Cloud::Kms::V1::AsymmetricSignRequest#digest AsymmetricSignRequest.digest}. If
1825
+ # specified, {::Google::Cloud::Kms::V1::KeyManagementService::Client KeyManagementService} will verify the integrity of the
1826
+ # received {::Google::Cloud::Kms::V1::AsymmetricSignRequest#digest AsymmetricSignRequest.digest} using this checksum.
1827
+ # {::Google::Cloud::Kms::V1::KeyManagementService::Client KeyManagementService} will report an error if the checksum verification
1828
+ # fails. If you receive a checksum error, your client should verify that
1829
+ # CRC32C({::Google::Cloud::Kms::V1::AsymmetricSignRequest#digest AsymmetricSignRequest.digest}) is equal to
1830
+ # {::Google::Cloud::Kms::V1::AsymmetricSignRequest#digest_crc32c AsymmetricSignRequest.digest_crc32c}, and if so, perform a limited
1831
+ # number of retries. A persistent mismatch may indicate an issue in your
1832
+ # computation of the CRC32C checksum.
1833
+ # Note: This field is defined as int64 for reasons of compatibility across
1834
+ # different languages. However, it is a non-negative integer, which will
1835
+ # never exceed 2^32-1, and can be safely downconverted to uint32 in languages
1836
+ # that support this type.
1837
+ #
1838
+ # NOTE: This field is in Beta.
1751
1839
  #
1752
1840
  # @yield [response, operation] Access the result along with the RPC operation
1753
1841
  # @yieldparam response [::Google::Cloud::Kms::V1::AsymmetricSignResponse]
@@ -1809,7 +1897,7 @@ module Google
1809
1897
  # @param options [::Gapic::CallOptions, ::Hash]
1810
1898
  # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
1811
1899
  #
1812
- # @overload asymmetric_decrypt(name: nil, ciphertext: nil)
1900
+ # @overload asymmetric_decrypt(name: nil, ciphertext: nil, ciphertext_crc32c: nil)
1813
1901
  # Pass arguments to `asymmetric_decrypt` via keyword arguments. Note that at
1814
1902
  # least one keyword argument is required. To specify no parameters, or to keep all
1815
1903
  # the default parameter values, pass an empty Hash as a request object (see above).
@@ -1820,6 +1908,22 @@ module Google
1820
1908
  # @param ciphertext [::String]
1821
1909
  # Required. The data encrypted with the named {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}'s public
1822
1910
  # key using OAEP.
1911
+ # @param ciphertext_crc32c [::Google::Protobuf::Int64Value, ::Hash]
1912
+ # Optional. An optional CRC32C checksum of the {::Google::Cloud::Kms::V1::AsymmetricDecryptRequest#ciphertext AsymmetricDecryptRequest.ciphertext}.
1913
+ # If specified, {::Google::Cloud::Kms::V1::KeyManagementService::Client KeyManagementService} will verify the integrity of the
1914
+ # received {::Google::Cloud::Kms::V1::AsymmetricDecryptRequest#ciphertext AsymmetricDecryptRequest.ciphertext} using this checksum.
1915
+ # {::Google::Cloud::Kms::V1::KeyManagementService::Client KeyManagementService} will report an error if the checksum verification
1916
+ # fails. If you receive a checksum error, your client should verify that
1917
+ # CRC32C({::Google::Cloud::Kms::V1::AsymmetricDecryptRequest#ciphertext AsymmetricDecryptRequest.ciphertext}) is equal to
1918
+ # {::Google::Cloud::Kms::V1::AsymmetricDecryptRequest#ciphertext_crc32c AsymmetricDecryptRequest.ciphertext_crc32c}, and if so, perform a
1919
+ # limited number of retries. A persistent mismatch may indicate an issue in
1920
+ # your computation of the CRC32C checksum.
1921
+ # Note: This field is defined as int64 for reasons of compatibility across
1922
+ # different languages. However, it is a non-negative integer, which will
1923
+ # never exceed 2^32-1, and can be safely downconverted to uint32 in languages
1924
+ # that support this type.
1925
+ #
1926
+ # NOTE: This field is in Beta.
1823
1927
  #
1824
1928
  # @yield [response, operation] Access the result along with the RPC operation
1825
1929
  # @yieldparam response [::Google::Cloud::Kms::V1::AsymmetricDecryptResponse]
@@ -2170,7 +2274,7 @@ module Google
2170
2274
 
2171
2275
  config_attr :endpoint, "cloudkms.googleapis.com", ::String
2172
2276
  config_attr :credentials, nil do |value|
2173
- allowed = [::String, ::Hash, ::Proc, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
2277
+ allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
2174
2278
  allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
2175
2279
  allowed.any? { |klass| klass === value }
2176
2280
  end
@@ -2210,7 +2314,7 @@ module Google
2210
2314
  # Each configuration object is of type `Gapic::Config::Method` and includes
2211
2315
  # the following configuration fields:
2212
2316
  #
2213
- # * `timeout` (*type:* `Numeric`) - The call timeout in milliseconds
2317
+ # * `timeout` (*type:* `Numeric`) - The call timeout in seconds
2214
2318
  # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers
2215
2319
  # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
2216
2320
  # include the following keys: