google-cloud-kms 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,40 @@
1
+ # Copyright 2018 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require "googleauth"
16
+
17
+ module Google
18
+ module Cloud
19
+ module Kms
20
+ module V1
21
+ class Credentials < Google::Auth::Credentials
22
+ SCOPE = [
23
+ "https://www.googleapis.com/auth/cloud-platform"
24
+ ].freeze
25
+ PATH_ENV_VARS = %w(KMS_KEYFILE
26
+ KMS_CREDENTIALS
27
+ GOOGLE_CLOUD_CREDENTIALS
28
+ GOOGLE_CLOUD_KEYFILE
29
+ GCLOUD_KEYFILE)
30
+ JSON_ENV_VARS = %w(KMS_KEYFILE_JSON
31
+ KMS_CREDENTIALS_JSON
32
+ GOOGLE_CLOUD_CREDENTIALS_JSON
33
+ GOOGLE_CLOUD_KEYFILE_JSON
34
+ GCLOUD_KEYFILE_JSON)
35
+ DEFAULT_PATHS = ["~/.config/gcloud/application_default_credentials.json"]
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,148 @@
1
+ # Copyright 2018 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ module Google
16
+ module Cloud
17
+ module Kms
18
+ module V1
19
+ # A {Google::Cloud::Kms::V1::KeyRing KeyRing} is a toplevel logical grouping of {Google::Cloud::Kms::V1::CryptoKey CryptoKeys}.
20
+ # @!attribute [rw] name
21
+ # @return [String]
22
+ # Output only. The resource name for the {Google::Cloud::Kms::V1::KeyRing KeyRing} in the format
23
+ # +projects/*/locations/*/keyRings/*+.
24
+ # @!attribute [rw] create_time
25
+ # @return [Google::Protobuf::Timestamp]
26
+ # Output only. The time at which this {Google::Cloud::Kms::V1::KeyRing KeyRing} was created.
27
+ class KeyRing; end
28
+
29
+ # A {Google::Cloud::Kms::V1::CryptoKey CryptoKey} represents a logical key that can be used for cryptographic
30
+ # operations.
31
+ #
32
+ # A {Google::Cloud::Kms::V1::CryptoKey CryptoKey} is made up of one or more {Google::Cloud::Kms::V1::CryptoKeyVersion versions}, which
33
+ # represent the actual key material used in cryptographic operations.
34
+ # @!attribute [rw] name
35
+ # @return [String]
36
+ # Output only. The resource name for this {Google::Cloud::Kms::V1::CryptoKey CryptoKey} in the format
37
+ # +projects/*/locations/*/keyRings/*/cryptoKeys/*+.
38
+ # @!attribute [rw] primary
39
+ # @return [Google::Cloud::Kms::V1::CryptoKeyVersion]
40
+ # Output only. A copy of the "primary" {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} that will be used
41
+ # by {Google::Cloud::Kms::V1::KeyManagementService::Encrypt Encrypt} when this {Google::Cloud::Kms::V1::CryptoKey CryptoKey} is given
42
+ # in {Google::Cloud::Kms::V1::EncryptRequest#name EncryptRequest#name}.
43
+ #
44
+ # The {Google::Cloud::Kms::V1::CryptoKey CryptoKey}'s primary version can be updated via
45
+ # {Google::Cloud::Kms::V1::KeyManagementService::UpdateCryptoKeyPrimaryVersion UpdateCryptoKeyPrimaryVersion}.
46
+ # @!attribute [rw] purpose
47
+ # @return [Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose]
48
+ # The immutable purpose of this {Google::Cloud::Kms::V1::CryptoKey CryptoKey}. Currently, the only acceptable
49
+ # purpose is {Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::ENCRYPT_DECRYPT ENCRYPT_DECRYPT}.
50
+ # @!attribute [rw] create_time
51
+ # @return [Google::Protobuf::Timestamp]
52
+ # Output only. The time at which this {Google::Cloud::Kms::V1::CryptoKey CryptoKey} was created.
53
+ # @!attribute [rw] next_rotation_time
54
+ # @return [Google::Protobuf::Timestamp]
55
+ # At {Google::Cloud::Kms::V1::CryptoKey#next_rotation_time next_rotation_time}, the Key Management Service will automatically:
56
+ #
57
+ # 1. Create a new version of this {Google::Cloud::Kms::V1::CryptoKey CryptoKey}.
58
+ # 2. Mark the new version as primary.
59
+ #
60
+ # Key rotations performed manually via
61
+ # {Google::Cloud::Kms::V1::KeyManagementService::CreateCryptoKeyVersion CreateCryptoKeyVersion} and
62
+ # {Google::Cloud::Kms::V1::KeyManagementService::UpdateCryptoKeyPrimaryVersion UpdateCryptoKeyPrimaryVersion}
63
+ # do not affect {Google::Cloud::Kms::V1::CryptoKey#next_rotation_time next_rotation_time}.
64
+ # @!attribute [rw] rotation_period
65
+ # @return [Google::Protobuf::Duration]
66
+ # {Google::Cloud::Kms::V1::CryptoKey#next_rotation_time next_rotation_time} will be advanced by this period when the service
67
+ # automatically rotates a key. Must be at least one day.
68
+ #
69
+ # If {Google::Cloud::Kms::V1::CryptoKey#rotation_period rotation_period} is set, {Google::Cloud::Kms::V1::CryptoKey#next_rotation_time next_rotation_time} must also be set.
70
+ # @!attribute [rw] labels
71
+ # @return [Hash{String => String}]
72
+ # Labels with user-defined metadata. For more information, see
73
+ # [Labeling Keys](https://cloud.google.com/kms/docs/labeling-keys).
74
+ class CryptoKey
75
+ # {Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose CryptoKeyPurpose} describes the capabilities of a {Google::Cloud::Kms::V1::CryptoKey CryptoKey}. Two
76
+ # keys with the same purpose may use different underlying algorithms, but
77
+ # must support the same set of operations.
78
+ module CryptoKeyPurpose
79
+ # Not specified.
80
+ CRYPTO_KEY_PURPOSE_UNSPECIFIED = 0
81
+
82
+ # {Google::Cloud::Kms::V1::CryptoKey CryptoKeys} with this purpose may be used with
83
+ # {Google::Cloud::Kms::V1::KeyManagementService::Encrypt Encrypt} and
84
+ # {Google::Cloud::Kms::V1::KeyManagementService::Decrypt Decrypt}.
85
+ ENCRYPT_DECRYPT = 1
86
+ end
87
+ end
88
+
89
+ # A {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} represents an individual cryptographic key, and the
90
+ # associated key material.
91
+ #
92
+ # It can be used for cryptographic operations either directly, or via its
93
+ # parent {Google::Cloud::Kms::V1::CryptoKey CryptoKey}, in which case the server will choose the appropriate
94
+ # version for the operation.
95
+ #
96
+ # For security reasons, the raw cryptographic key material represented by a
97
+ # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} can never be viewed or exported. It can only be used to
98
+ # encrypt or decrypt data when an authorized user or application invokes Cloud
99
+ # KMS.
100
+ # @!attribute [rw] name
101
+ # @return [String]
102
+ # Output only. The resource name for this {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} in the format
103
+ # +projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*+.
104
+ # @!attribute [rw] state
105
+ # @return [Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState]
106
+ # The current state of the {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}.
107
+ # @!attribute [rw] create_time
108
+ # @return [Google::Protobuf::Timestamp]
109
+ # Output only. The time at which this {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} was created.
110
+ # @!attribute [rw] destroy_time
111
+ # @return [Google::Protobuf::Timestamp]
112
+ # Output only. The time this {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}'s key material is scheduled
113
+ # for destruction. Only present if {Google::Cloud::Kms::V1::CryptoKeyVersion#state state} is
114
+ # {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::DESTROY_SCHEDULED DESTROY_SCHEDULED}.
115
+ # @!attribute [rw] destroy_event_time
116
+ # @return [Google::Protobuf::Timestamp]
117
+ # Output only. The time this CryptoKeyVersion's key material was
118
+ # destroyed. Only present if {Google::Cloud::Kms::V1::CryptoKeyVersion#state state} is
119
+ # {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::DESTROYED DESTROYED}.
120
+ class CryptoKeyVersion
121
+ # The state of a {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}, indicating if it can be used.
122
+ module CryptoKeyVersionState
123
+ # Not specified.
124
+ CRYPTO_KEY_VERSION_STATE_UNSPECIFIED = 0
125
+
126
+ # This version may be used in {Google::Cloud::Kms::V1::KeyManagementService::Encrypt Encrypt} and
127
+ # {Google::Cloud::Kms::V1::KeyManagementService::Decrypt Decrypt} requests.
128
+ ENABLED = 1
129
+
130
+ # This version may not be used, but the key material is still available,
131
+ # and the version can be placed back into the {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::ENABLED ENABLED} state.
132
+ DISABLED = 2
133
+
134
+ # This version is destroyed, and the key material is no longer stored.
135
+ # A version may not leave this state once entered.
136
+ DESTROYED = 3
137
+
138
+ # This version is scheduled for destruction, and will be destroyed soon.
139
+ # Call
140
+ # {Google::Cloud::Kms::V1::KeyManagementService::RestoreCryptoKeyVersion RestoreCryptoKeyVersion}
141
+ # to put it back into the {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::DISABLED DISABLED} state.
142
+ DESTROY_SCHEDULED = 4
143
+ end
144
+ end
145
+ end
146
+ end
147
+ end
148
+ end
@@ -0,0 +1,268 @@
1
+ # Copyright 2018 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ module Google
16
+ module Cloud
17
+ module Kms
18
+ ##
19
+ # # Google Cloud Key Management Service (KMS) API Contents
20
+ #
21
+ # | Class | Description |
22
+ # | ----- | ----------- |
23
+ # | [KeyManagementServiceClient][] | Google Cloud Key Management Service |
24
+ # | [Data Types][] | Data types for Google::Cloud::Kms::V1 |
25
+ #
26
+ # [KeyManagementServiceClient]: https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-kms/latest/google/cloud/kms/v1/keymanagementserviceclient
27
+ # [Data Types]: https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-kms/latest/google/cloud/kms/v1/datatypes
28
+ #
29
+ module V1
30
+ # Request message for {Google::Cloud::Kms::V1::KeyManagementService::ListKeyRings KeyManagementService::ListKeyRings}.
31
+ # @!attribute [rw] parent
32
+ # @return [String]
33
+ # Required. The resource name of the location associated with the
34
+ # {Google::Cloud::Kms::V1::KeyRing KeyRings}, in the format +projects/*/locations/*+.
35
+ # @!attribute [rw] page_size
36
+ # @return [Integer]
37
+ # Optional limit on the number of {Google::Cloud::Kms::V1::KeyRing KeyRings} to include in the
38
+ # response. Further {Google::Cloud::Kms::V1::KeyRing KeyRings} can subsequently be obtained by
39
+ # including the {Google::Cloud::Kms::V1::ListKeyRingsResponse#next_page_token ListKeyRingsResponse#next_page_token} in a subsequent
40
+ # request. If unspecified, the server will pick an appropriate default.
41
+ # @!attribute [rw] page_token
42
+ # @return [String]
43
+ # Optional pagination token, returned earlier via
44
+ # {Google::Cloud::Kms::V1::ListKeyRingsResponse#next_page_token ListKeyRingsResponse#next_page_token}.
45
+ class ListKeyRingsRequest; end
46
+
47
+ # Request message for {Google::Cloud::Kms::V1::KeyManagementService::ListCryptoKeys KeyManagementService::ListCryptoKeys}.
48
+ # @!attribute [rw] parent
49
+ # @return [String]
50
+ # Required. The resource name of the {Google::Cloud::Kms::V1::KeyRing KeyRing} to list, in the format
51
+ # +projects/*/locations/*/keyRings/*+.
52
+ # @!attribute [rw] page_size
53
+ # @return [Integer]
54
+ # Optional limit on the number of {Google::Cloud::Kms::V1::CryptoKey CryptoKeys} to include in the
55
+ # response. Further {Google::Cloud::Kms::V1::CryptoKey CryptoKeys} can subsequently be obtained by
56
+ # including the {Google::Cloud::Kms::V1::ListCryptoKeysResponse#next_page_token ListCryptoKeysResponse#next_page_token} in a subsequent
57
+ # request. If unspecified, the server will pick an appropriate default.
58
+ # @!attribute [rw] page_token
59
+ # @return [String]
60
+ # Optional pagination token, returned earlier via
61
+ # {Google::Cloud::Kms::V1::ListCryptoKeysResponse#next_page_token ListCryptoKeysResponse#next_page_token}.
62
+ class ListCryptoKeysRequest; end
63
+
64
+ # Request message for {Google::Cloud::Kms::V1::KeyManagementService::ListCryptoKeyVersions KeyManagementService::ListCryptoKeyVersions}.
65
+ # @!attribute [rw] parent
66
+ # @return [String]
67
+ # Required. The resource name of the {Google::Cloud::Kms::V1::CryptoKey CryptoKey} to list, in the format
68
+ # +projects/*/locations/*/keyRings/*/cryptoKeys/*+.
69
+ # @!attribute [rw] page_size
70
+ # @return [Integer]
71
+ # Optional limit on the number of {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersions} to
72
+ # include in the response. Further {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersions} can
73
+ # subsequently be obtained by including the
74
+ # {Google::Cloud::Kms::V1::ListCryptoKeyVersionsResponse#next_page_token ListCryptoKeyVersionsResponse#next_page_token} in a subsequent request.
75
+ # If unspecified, the server will pick an appropriate default.
76
+ # @!attribute [rw] page_token
77
+ # @return [String]
78
+ # Optional pagination token, returned earlier via
79
+ # {Google::Cloud::Kms::V1::ListCryptoKeyVersionsResponse#next_page_token ListCryptoKeyVersionsResponse#next_page_token}.
80
+ class ListCryptoKeyVersionsRequest; end
81
+
82
+ # Response message for {Google::Cloud::Kms::V1::KeyManagementService::ListKeyRings KeyManagementService::ListKeyRings}.
83
+ # @!attribute [rw] key_rings
84
+ # @return [Array<Google::Cloud::Kms::V1::KeyRing>]
85
+ # The list of {Google::Cloud::Kms::V1::KeyRing KeyRings}.
86
+ # @!attribute [rw] next_page_token
87
+ # @return [String]
88
+ # A token to retrieve next page of results. Pass this value in
89
+ # {Google::Cloud::Kms::V1::ListKeyRingsRequest#page_token ListKeyRingsRequest#page_token} to retrieve the next page of results.
90
+ # @!attribute [rw] total_size
91
+ # @return [Integer]
92
+ # The total number of {Google::Cloud::Kms::V1::KeyRing KeyRings} that matched the query.
93
+ class ListKeyRingsResponse; end
94
+
95
+ # Response message for {Google::Cloud::Kms::V1::KeyManagementService::ListCryptoKeys KeyManagementService::ListCryptoKeys}.
96
+ # @!attribute [rw] crypto_keys
97
+ # @return [Array<Google::Cloud::Kms::V1::CryptoKey>]
98
+ # The list of {Google::Cloud::Kms::V1::CryptoKey CryptoKeys}.
99
+ # @!attribute [rw] next_page_token
100
+ # @return [String]
101
+ # A token to retrieve next page of results. Pass this value in
102
+ # {Google::Cloud::Kms::V1::ListCryptoKeysRequest#page_token ListCryptoKeysRequest#page_token} to retrieve the next page of results.
103
+ # @!attribute [rw] total_size
104
+ # @return [Integer]
105
+ # The total number of {Google::Cloud::Kms::V1::CryptoKey CryptoKeys} that matched the query.
106
+ class ListCryptoKeysResponse; end
107
+
108
+ # Response message for {Google::Cloud::Kms::V1::KeyManagementService::ListCryptoKeyVersions KeyManagementService::ListCryptoKeyVersions}.
109
+ # @!attribute [rw] crypto_key_versions
110
+ # @return [Array<Google::Cloud::Kms::V1::CryptoKeyVersion>]
111
+ # The list of {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersions}.
112
+ # @!attribute [rw] next_page_token
113
+ # @return [String]
114
+ # A token to retrieve next page of results. Pass this value in
115
+ # {Google::Cloud::Kms::V1::ListCryptoKeyVersionsRequest#page_token ListCryptoKeyVersionsRequest#page_token} to retrieve the next page of
116
+ # results.
117
+ # @!attribute [rw] total_size
118
+ # @return [Integer]
119
+ # The total number of {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersions} that matched the
120
+ # query.
121
+ class ListCryptoKeyVersionsResponse; end
122
+
123
+ # Request message for {Google::Cloud::Kms::V1::KeyManagementService::GetKeyRing KeyManagementService::GetKeyRing}.
124
+ # @!attribute [rw] name
125
+ # @return [String]
126
+ # The {Google::Cloud::Kms::V1::KeyRing#name name} of the {Google::Cloud::Kms::V1::KeyRing KeyRing} to get.
127
+ class GetKeyRingRequest; end
128
+
129
+ # Request message for {Google::Cloud::Kms::V1::KeyManagementService::GetCryptoKey KeyManagementService::GetCryptoKey}.
130
+ # @!attribute [rw] name
131
+ # @return [String]
132
+ # The {Google::Cloud::Kms::V1::CryptoKey#name name} of the {Google::Cloud::Kms::V1::CryptoKey CryptoKey} to get.
133
+ class GetCryptoKeyRequest; end
134
+
135
+ # Request message for {Google::Cloud::Kms::V1::KeyManagementService::GetCryptoKeyVersion KeyManagementService::GetCryptoKeyVersion}.
136
+ # @!attribute [rw] name
137
+ # @return [String]
138
+ # The {Google::Cloud::Kms::V1::CryptoKeyVersion#name name} of the {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} to get.
139
+ class GetCryptoKeyVersionRequest; end
140
+
141
+ # Request message for {Google::Cloud::Kms::V1::KeyManagementService::CreateKeyRing KeyManagementService::CreateKeyRing}.
142
+ # @!attribute [rw] parent
143
+ # @return [String]
144
+ # Required. The resource name of the location associated with the
145
+ # {Google::Cloud::Kms::V1::KeyRing KeyRings}, in the format +projects/*/locations/*+.
146
+ # @!attribute [rw] key_ring_id
147
+ # @return [String]
148
+ # Required. It must be unique within a location and match the regular
149
+ # expression +[a-zA-Z0-9_-]{1,63}+
150
+ # @!attribute [rw] key_ring
151
+ # @return [Google::Cloud::Kms::V1::KeyRing]
152
+ # A {Google::Cloud::Kms::V1::KeyRing KeyRing} with initial field values.
153
+ class CreateKeyRingRequest; end
154
+
155
+ # Request message for {Google::Cloud::Kms::V1::KeyManagementService::CreateCryptoKey KeyManagementService::CreateCryptoKey}.
156
+ # @!attribute [rw] parent
157
+ # @return [String]
158
+ # Required. The {Google::Cloud::Kms::V1::KeyRing#name name} of the KeyRing associated with the
159
+ # {Google::Cloud::Kms::V1::CryptoKey CryptoKeys}.
160
+ # @!attribute [rw] crypto_key_id
161
+ # @return [String]
162
+ # Required. It must be unique within a KeyRing and match the regular
163
+ # expression +[a-zA-Z0-9_-]{1,63}+
164
+ # @!attribute [rw] crypto_key
165
+ # @return [Google::Cloud::Kms::V1::CryptoKey]
166
+ # A {Google::Cloud::Kms::V1::CryptoKey CryptoKey} with initial field values.
167
+ class CreateCryptoKeyRequest; end
168
+
169
+ # Request message for {Google::Cloud::Kms::V1::KeyManagementService::CreateCryptoKeyVersion KeyManagementService::CreateCryptoKeyVersion}.
170
+ # @!attribute [rw] parent
171
+ # @return [String]
172
+ # Required. The {Google::Cloud::Kms::V1::CryptoKey#name name} of the {Google::Cloud::Kms::V1::CryptoKey CryptoKey} associated with
173
+ # the {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersions}.
174
+ # @!attribute [rw] crypto_key_version
175
+ # @return [Google::Cloud::Kms::V1::CryptoKeyVersion]
176
+ # A {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} with initial field values.
177
+ class CreateCryptoKeyVersionRequest; end
178
+
179
+ # Request message for {Google::Cloud::Kms::V1::KeyManagementService::UpdateCryptoKey KeyManagementService::UpdateCryptoKey}.
180
+ # @!attribute [rw] crypto_key
181
+ # @return [Google::Cloud::Kms::V1::CryptoKey]
182
+ # {Google::Cloud::Kms::V1::CryptoKey CryptoKey} with updated values.
183
+ # @!attribute [rw] update_mask
184
+ # @return [Google::Protobuf::FieldMask]
185
+ # Required list of fields to be updated in this request.
186
+ class UpdateCryptoKeyRequest; end
187
+
188
+ # Request message for {Google::Cloud::Kms::V1::KeyManagementService::UpdateCryptoKeyVersion KeyManagementService::UpdateCryptoKeyVersion}.
189
+ # @!attribute [rw] crypto_key_version
190
+ # @return [Google::Cloud::Kms::V1::CryptoKeyVersion]
191
+ # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} with updated values.
192
+ # @!attribute [rw] update_mask
193
+ # @return [Google::Protobuf::FieldMask]
194
+ # Required list of fields to be updated in this request.
195
+ class UpdateCryptoKeyVersionRequest; end
196
+
197
+ # Request message for {Google::Cloud::Kms::V1::KeyManagementService::Encrypt KeyManagementService::Encrypt}.
198
+ # @!attribute [rw] name
199
+ # @return [String]
200
+ # Required. The resource name of the {Google::Cloud::Kms::V1::CryptoKey CryptoKey} or {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}
201
+ # to use for encryption.
202
+ #
203
+ # If a {Google::Cloud::Kms::V1::CryptoKey CryptoKey} is specified, the server will use its
204
+ # {Google::Cloud::Kms::V1::CryptoKey#primary primary version}.
205
+ # @!attribute [rw] plaintext
206
+ # @return [String]
207
+ # Required. The data to encrypt. Must be no larger than 64KiB.
208
+ # @!attribute [rw] additional_authenticated_data
209
+ # @return [String]
210
+ # Optional data that, if specified, must also be provided during decryption
211
+ # through {Google::Cloud::Kms::V1::DecryptRequest#additional_authenticated_data DecryptRequest#additional_authenticated_data}. Must be no
212
+ # larger than 64KiB.
213
+ class EncryptRequest; end
214
+
215
+ # Request message for {Google::Cloud::Kms::V1::KeyManagementService::Decrypt KeyManagementService::Decrypt}.
216
+ # @!attribute [rw] name
217
+ # @return [String]
218
+ # Required. The resource name of the {Google::Cloud::Kms::V1::CryptoKey CryptoKey} to use for decryption.
219
+ # The server will choose the appropriate version.
220
+ # @!attribute [rw] ciphertext
221
+ # @return [String]
222
+ # Required. The encrypted data originally returned in
223
+ # {Google::Cloud::Kms::V1::EncryptResponse#ciphertext EncryptResponse#ciphertext}.
224
+ # @!attribute [rw] additional_authenticated_data
225
+ # @return [String]
226
+ # Optional data that must match the data originally supplied in
227
+ # {Google::Cloud::Kms::V1::EncryptRequest#additional_authenticated_data EncryptRequest#additional_authenticated_data}.
228
+ class DecryptRequest; end
229
+
230
+ # Response message for {Google::Cloud::Kms::V1::KeyManagementService::Decrypt KeyManagementService::Decrypt}.
231
+ # @!attribute [rw] plaintext
232
+ # @return [String]
233
+ # The decrypted data originally supplied in {Google::Cloud::Kms::V1::EncryptRequest#plaintext EncryptRequest#plaintext}.
234
+ class DecryptResponse; end
235
+
236
+ # Response message for {Google::Cloud::Kms::V1::KeyManagementService::Encrypt KeyManagementService::Encrypt}.
237
+ # @!attribute [rw] name
238
+ # @return [String]
239
+ # The resource name of the {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} used in encryption.
240
+ # @!attribute [rw] ciphertext
241
+ # @return [String]
242
+ # The encrypted data.
243
+ class EncryptResponse; end
244
+
245
+ # Request message for {Google::Cloud::Kms::V1::KeyManagementService::UpdateCryptoKeyPrimaryVersion KeyManagementService::UpdateCryptoKeyPrimaryVersion}.
246
+ # @!attribute [rw] name
247
+ # @return [String]
248
+ # The resource name of the {Google::Cloud::Kms::V1::CryptoKey CryptoKey} to update.
249
+ # @!attribute [rw] crypto_key_version_id
250
+ # @return [String]
251
+ # The id of the child {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} to use as primary.
252
+ class UpdateCryptoKeyPrimaryVersionRequest; end
253
+
254
+ # Request message for {Google::Cloud::Kms::V1::KeyManagementService::DestroyCryptoKeyVersion KeyManagementService::DestroyCryptoKeyVersion}.
255
+ # @!attribute [rw] name
256
+ # @return [String]
257
+ # The resource name of the {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} to destroy.
258
+ class DestroyCryptoKeyVersionRequest; end
259
+
260
+ # Request message for {Google::Cloud::Kms::V1::KeyManagementService::RestoreCryptoKeyVersion KeyManagementService::RestoreCryptoKeyVersion}.
261
+ # @!attribute [rw] name
262
+ # @return [String]
263
+ # The resource name of the {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} to restore.
264
+ class RestoreCryptoKeyVersionRequest; end
265
+ end
266
+ end
267
+ end
268
+ end