google-api-client 0.9.28 → 0.10.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.
Files changed (138) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +7 -4
  3. data/CHANGELOG.md +10 -0
  4. data/api_names.yaml +36512 -36326
  5. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +1 -1
  6. data/generated/google/apis/adexchangebuyer2_v2beta1/classes.rb +41 -41
  7. data/generated/google/apis/adexchangebuyer2_v2beta1/representations.rb +13 -13
  8. data/generated/google/apis/adexchangebuyer2_v2beta1/service.rb +110 -110
  9. data/generated/google/apis/adsense_v1_4.rb +1 -1
  10. data/generated/google/apis/adsensehost_v4_1.rb +1 -1
  11. data/generated/google/apis/analyticsreporting_v4.rb +3 -3
  12. data/generated/google/apis/analyticsreporting_v4/classes.rb +845 -845
  13. data/generated/google/apis/analyticsreporting_v4/representations.rb +184 -184
  14. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  15. data/generated/google/apis/androidenterprise_v1/classes.rb +5 -5
  16. data/generated/google/apis/androidenterprise_v1/service.rb +3 -1
  17. data/generated/google/apis/appstate_v1.rb +1 -1
  18. data/generated/google/apis/calendar_v3.rb +1 -1
  19. data/generated/google/apis/classroom_v1.rb +22 -25
  20. data/generated/google/apis/classroom_v1/classes.rb +998 -907
  21. data/generated/google/apis/classroom_v1/representations.rb +240 -240
  22. data/generated/google/apis/classroom_v1/service.rb +1269 -1061
  23. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  24. data/generated/google/apis/cloudbuild_v1/classes.rb +322 -322
  25. data/generated/google/apis/cloudbuild_v1/representations.rb +88 -88
  26. data/generated/google/apis/cloudbuild_v1/service.rb +57 -57
  27. data/generated/google/apis/clouddebugger_v2.rb +4 -4
  28. data/generated/google/apis/clouddebugger_v2/classes.rb +311 -311
  29. data/generated/google/apis/clouddebugger_v2/representations.rb +92 -92
  30. data/generated/google/apis/clouddebugger_v2/service.rb +41 -41
  31. data/generated/google/apis/cloudkms_v1beta1.rb +1 -1
  32. data/generated/google/apis/cloudkms_v1beta1/classes.rb +611 -611
  33. data/generated/google/apis/cloudkms_v1beta1/representations.rb +124 -124
  34. data/generated/google/apis/cloudkms_v1beta1/service.rb +254 -248
  35. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  36. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +116 -116
  37. data/generated/google/apis/cloudresourcemanager_v1/representations.rb +28 -28
  38. data/generated/google/apis/cloudresourcemanager_v1/service.rb +257 -257
  39. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +4 -4
  40. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +394 -394
  41. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +79 -79
  42. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +269 -269
  43. data/generated/google/apis/cloudtrace_v1.rb +8 -8
  44. data/generated/google/apis/cloudtrace_v1/classes.rb +90 -84
  45. data/generated/google/apis/cloudtrace_v1/representations.rb +22 -22
  46. data/generated/google/apis/cloudtrace_v1/service.rb +40 -35
  47. data/generated/google/apis/compute_beta.rb +1 -1
  48. data/generated/google/apis/compute_beta/classes.rb +406 -31
  49. data/generated/google/apis/compute_beta/representations.rb +154 -0
  50. data/generated/google/apis/compute_beta/service.rb +262 -9
  51. data/generated/google/apis/compute_v1.rb +1 -1
  52. data/generated/google/apis/compute_v1/classes.rb +17 -20
  53. data/generated/google/apis/content_v2.rb +1 -1
  54. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  55. data/generated/google/apis/dataflow_v1b3/classes.rb +3226 -2847
  56. data/generated/google/apis/dataflow_v1b3/representations.rb +825 -677
  57. data/generated/google/apis/dataflow_v1b3/service.rb +175 -175
  58. data/generated/google/apis/dataproc_v1.rb +2 -2
  59. data/generated/google/apis/dataproc_v1/classes.rb +1213 -1136
  60. data/generated/google/apis/dataproc_v1/representations.rb +262 -244
  61. data/generated/google/apis/dataproc_v1/service.rb +298 -243
  62. data/generated/google/apis/datastore_v1.rb +4 -4
  63. data/generated/google/apis/datastore_v1/classes.rb +728 -728
  64. data/generated/google/apis/datastore_v1/representations.rb +167 -167
  65. data/generated/google/apis/datastore_v1/service.rb +68 -68
  66. data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
  67. data/generated/google/apis/drive_v2.rb +1 -1
  68. data/generated/google/apis/drive_v3.rb +1 -1
  69. data/generated/google/apis/games_configuration_v1configuration.rb +1 -1
  70. data/generated/google/apis/games_management_v1management.rb +1 -1
  71. data/generated/google/apis/games_v1.rb +1 -1
  72. data/generated/google/apis/genomics_v1.rb +7 -7
  73. data/generated/google/apis/genomics_v1/classes.rb +932 -932
  74. data/generated/google/apis/genomics_v1/representations.rb +205 -205
  75. data/generated/google/apis/genomics_v1/service.rb +1228 -1228
  76. data/generated/google/apis/gmail_v1.rb +1 -1
  77. data/generated/google/apis/iam_v1/classes.rb +440 -440
  78. data/generated/google/apis/iam_v1/representations.rb +94 -94
  79. data/generated/google/apis/iam_v1/service.rb +60 -60
  80. data/generated/google/apis/identitytoolkit_v3.rb +1 -1
  81. data/generated/google/apis/identitytoolkit_v3/classes.rb +21 -1
  82. data/generated/google/apis/identitytoolkit_v3/representations.rb +3 -0
  83. data/generated/google/apis/kgsearch_v1/classes.rb +6 -6
  84. data/generated/google/apis/kgsearch_v1/representations.rb +1 -1
  85. data/generated/google/apis/kgsearch_v1/service.rb +21 -21
  86. data/generated/google/apis/language_v1beta1.rb +1 -1
  87. data/generated/google/apis/language_v1beta1/classes.rb +232 -232
  88. data/generated/google/apis/language_v1beta1/representations.rb +75 -75
  89. data/generated/google/apis/logging_v2beta1.rb +1 -1
  90. data/generated/google/apis/logging_v2beta1/classes.rb +345 -337
  91. data/generated/google/apis/logging_v2beta1/representations.rb +55 -55
  92. data/generated/google/apis/logging_v2beta1/service.rb +331 -306
  93. data/generated/google/apis/monitoring_v3.rb +1 -1
  94. data/generated/google/apis/monitoring_v3/classes.rb +253 -253
  95. data/generated/google/apis/monitoring_v3/representations.rb +58 -58
  96. data/generated/google/apis/monitoring_v3/service.rb +135 -135
  97. data/generated/google/apis/people_v1.rb +15 -16
  98. data/generated/google/apis/people_v1/classes.rb +985 -855
  99. data/generated/google/apis/people_v1/representations.rb +227 -220
  100. data/generated/google/apis/people_v1/service.rb +58 -52
  101. data/generated/google/apis/plus_domains_v1.rb +1 -1
  102. data/generated/google/apis/plus_v1.rb +1 -1
  103. data/generated/google/apis/pubsub_v1.rb +1 -1
  104. data/generated/google/apis/pubsub_v1/classes.rb +257 -257
  105. data/generated/google/apis/pubsub_v1/representations.rb +83 -83
  106. data/generated/google/apis/pubsub_v1/service.rb +390 -390
  107. data/generated/google/apis/script_v1.rb +17 -17
  108. data/generated/google/apis/script_v1/classes.rb +149 -141
  109. data/generated/google/apis/script_v1/representations.rb +26 -27
  110. data/generated/google/apis/script_v1/service.rb +9 -8
  111. data/generated/google/apis/sheets_v4.rb +1 -1
  112. data/generated/google/apis/sheets_v4/classes.rb +4223 -4188
  113. data/generated/google/apis/sheets_v4/representations.rb +850 -834
  114. data/generated/google/apis/sheets_v4/service.rb +192 -192
  115. data/generated/google/apis/slides_v1.rb +1 -1
  116. data/generated/google/apis/slides_v1/classes.rb +927 -800
  117. data/generated/google/apis/slides_v1/representations.rb +253 -211
  118. data/generated/google/apis/speech_v1beta1.rb +1 -1
  119. data/generated/google/apis/speech_v1beta1/classes.rb +94 -107
  120. data/generated/google/apis/speech_v1beta1/representations.rb +24 -36
  121. data/generated/google/apis/speech_v1beta1/service.rb +51 -54
  122. data/generated/google/apis/storage_v1.rb +1 -1
  123. data/generated/google/apis/vision_v1.rb +1 -1
  124. data/generated/google/apis/vision_v1/classes.rb +888 -885
  125. data/generated/google/apis/vision_v1/representations.rb +139 -139
  126. data/generated/google/apis/youtube_analytics_v1.rb +1 -1
  127. data/generated/google/apis/youtube_analytics_v1/service.rb +5 -1
  128. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  129. data/generated/google/apis/youtubereporting_v1.rb +1 -1
  130. data/generated/google/apis/youtubereporting_v1/classes.rb +80 -80
  131. data/generated/google/apis/youtubereporting_v1/representations.rb +23 -23
  132. data/generated/google/apis/youtubereporting_v1/service.rb +51 -51
  133. data/google-api-client.gemspec +2 -2
  134. data/lib/google/apis/core/api_command.rb +1 -1
  135. data/lib/google/apis/core/json_representation.rb +2 -2
  136. data/lib/google/apis/version.rb +1 -1
  137. data/samples/cli/lib/samples/you_tube.rb +4 -1
  138. metadata +36 -30
@@ -26,7 +26,7 @@ module Google
26
26
  # @see https://cloud.google.com/kms/
27
27
  module CloudkmsV1beta1
28
28
  VERSION = 'V1beta1'
29
- REVISION = '20170124'
29
+ REVISION = '20170208'
30
30
 
31
31
  # View and manage your data across Google Cloud Platform services
32
32
  AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
@@ -22,41 +22,14 @@ module Google
22
22
  module Apis
23
23
  module CloudkmsV1beta1
24
24
 
25
- # Specifies what kind of log the caller must write
26
- # Increment a streamz counter with the specified metric and field names.
27
- # Metric names should start with a '/', generally be lowercase-only,
28
- # and end in "_count". Field names should not contain an initial slash.
29
- # The actual exported metric names will have "/iam/policy" prepended.
30
- # Field names correspond to IAM request parameters and field values are
31
- # their respective values.
32
- # At present the only supported field names are
33
- # - "iam_principal", corresponding to IAMContext.principal;
34
- # - "" (empty string), resulting in one aggretated counter with no field.
35
- # Examples:
36
- # counter ` metric: "/debug_access_count" field: "iam_principal" `
37
- # ==> increment counter /iam/policy/backend_debug_access_count
38
- # `iam_principal=[value of IAMContext.principal]`
39
- # At this time we do not support:
40
- # * multiple field names (though this may be supported in the future)
41
- # * decrementing the counter
42
- # * incrementing it by anything other than 1
43
- class LogConfig
25
+ # Response message for KeyManagementService.Decrypt.
26
+ class DecryptResponse
44
27
  include Google::Apis::Core::Hashable
45
28
 
46
- # Write a Data Access (Gin) log
47
- # Corresponds to the JSON property `dataAccess`
48
- # @return [Google::Apis::CloudkmsV1beta1::DataAccessOptions]
49
- attr_accessor :data_access
50
-
51
- # Write a Cloud Audit log
52
- # Corresponds to the JSON property `cloudAudit`
53
- # @return [Google::Apis::CloudkmsV1beta1::CloudAuditOptions]
54
- attr_accessor :cloud_audit
55
-
56
- # Options for counters
57
- # Corresponds to the JSON property `counter`
58
- # @return [Google::Apis::CloudkmsV1beta1::CounterOptions]
59
- attr_accessor :counter
29
+ # The decrypted data originally supplied in EncryptRequest.plaintext.
30
+ # Corresponds to the JSON property `plaintext`
31
+ # @return [String]
32
+ attr_accessor :plaintext
60
33
 
61
34
  def initialize(**args)
62
35
  update!(**args)
@@ -64,54 +37,21 @@ module Google
64
37
 
65
38
  # Update properties of this object
66
39
  def update!(**args)
67
- @data_access = args[:data_access] if args.key?(:data_access)
68
- @cloud_audit = args[:cloud_audit] if args.key?(:cloud_audit)
69
- @counter = args[:counter] if args.key?(:counter)
40
+ @plaintext = args[:plaintext] if args.key?(:plaintext)
70
41
  end
71
42
  end
72
43
 
73
- # Request message for `SetIamPolicy` method.
74
- class SetIamPolicyRequest
44
+ # Request message for `TestIamPermissions` method.
45
+ class TestIamPermissionsRequest
75
46
  include Google::Apis::Core::Hashable
76
47
 
77
- # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
78
- # the fields in the mask will be modified. If no mask is provided, a default
79
- # mask is used:
80
- # paths: "bindings, etag"
81
- # This field is only used by Cloud IAM.
82
- # Corresponds to the JSON property `updateMask`
83
- # @return [String]
84
- attr_accessor :update_mask
85
-
86
- # Defines an Identity and Access Management (IAM) policy. It is used to
87
- # specify access control policies for Cloud Platform resources.
88
- # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
89
- # `members` to a `role`, where the members can be user accounts, Google groups,
90
- # Google domains, and service accounts. A `role` is a named list of permissions
91
- # defined by IAM.
92
- # **Example**
93
- # `
94
- # "bindings": [
95
- # `
96
- # "role": "roles/owner",
97
- # "members": [
98
- # "user:mike@example.com",
99
- # "group:admins@example.com",
100
- # "domain:google.com",
101
- # "serviceAccount:my-other-app@appspot.gserviceaccount.com",
102
- # ]
103
- # `,
104
- # `
105
- # "role": "roles/viewer",
106
- # "members": ["user:sean@example.com"]
107
- # `
108
- # ]
109
- # `
110
- # For a description of IAM and its features, see the
111
- # [IAM developer's guide](https://cloud.google.com/iam).
112
- # Corresponds to the JSON property `policy`
113
- # @return [Google::Apis::CloudkmsV1beta1::Policy]
114
- attr_accessor :policy
48
+ # The set of permissions to check for the `resource`. Permissions with
49
+ # wildcards (such as '*' or 'storage.*') are not allowed. For more
50
+ # information see
51
+ # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
52
+ # Corresponds to the JSON property `permissions`
53
+ # @return [Array<String>]
54
+ attr_accessor :permissions
115
55
 
116
56
  def initialize(**args)
117
57
  update!(**args)
@@ -119,26 +59,87 @@ module Google
119
59
 
120
60
  # Update properties of this object
121
61
  def update!(**args)
122
- @update_mask = args[:update_mask] if args.key?(:update_mask)
123
- @policy = args[:policy] if args.key?(:policy)
62
+ @permissions = args[:permissions] if args.key?(:permissions)
124
63
  end
125
64
  end
126
65
 
127
- # Request message for KeyManagementService.Decrypt.
128
- class DecryptRequest
66
+ # Defines an Identity and Access Management (IAM) policy. It is used to
67
+ # specify access control policies for Cloud Platform resources.
68
+ # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
69
+ # `members` to a `role`, where the members can be user accounts, Google groups,
70
+ # Google domains, and service accounts. A `role` is a named list of permissions
71
+ # defined by IAM.
72
+ # **Example**
73
+ # `
74
+ # "bindings": [
75
+ # `
76
+ # "role": "roles/owner",
77
+ # "members": [
78
+ # "user:mike@example.com",
79
+ # "group:admins@example.com",
80
+ # "domain:google.com",
81
+ # "serviceAccount:my-other-app@appspot.gserviceaccount.com",
82
+ # ]
83
+ # `,
84
+ # `
85
+ # "role": "roles/viewer",
86
+ # "members": ["user:sean@example.com"]
87
+ # `
88
+ # ]
89
+ # `
90
+ # For a description of IAM and its features, see the
91
+ # [IAM developer's guide](https://cloud.google.com/iam).
92
+ class Policy
129
93
  include Google::Apis::Core::Hashable
130
94
 
131
- # Required. The encrypted data originally returned in
132
- # EncryptResponse.ciphertext.
133
- # Corresponds to the JSON property `ciphertext`
134
- # @return [String]
135
- attr_accessor :ciphertext
95
+ #
96
+ # Corresponds to the JSON property `iamOwned`
97
+ # @return [Boolean]
98
+ attr_accessor :iam_owned
99
+ alias_method :iam_owned?, :iam_owned
136
100
 
137
- # Optional data that must match the data originally supplied in
138
- # EncryptRequest.additional_authenticated_data.
139
- # Corresponds to the JSON property `additionalAuthenticatedData`
101
+ # If more than one rule is specified, the rules are applied in the following
102
+ # manner:
103
+ # - All matching LOG rules are always applied.
104
+ # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
105
+ # Logging will be applied if one or more matching rule requires logging.
106
+ # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
107
+ # granted.
108
+ # Logging will be applied if one or more matching rule requires logging.
109
+ # - Otherwise, if no rule applies, permission is denied.
110
+ # Corresponds to the JSON property `rules`
111
+ # @return [Array<Google::Apis::CloudkmsV1beta1::Rule>]
112
+ attr_accessor :rules
113
+
114
+ # Version of the `Policy`. The default version is 0.
115
+ # Corresponds to the JSON property `version`
116
+ # @return [Fixnum]
117
+ attr_accessor :version
118
+
119
+ # Specifies cloud audit logging configuration for this policy.
120
+ # Corresponds to the JSON property `auditConfigs`
121
+ # @return [Array<Google::Apis::CloudkmsV1beta1::AuditConfig>]
122
+ attr_accessor :audit_configs
123
+
124
+ # Associates a list of `members` to a `role`.
125
+ # Multiple `bindings` must not be specified for the same `role`.
126
+ # `bindings` with no members will result in an error.
127
+ # Corresponds to the JSON property `bindings`
128
+ # @return [Array<Google::Apis::CloudkmsV1beta1::Binding>]
129
+ attr_accessor :bindings
130
+
131
+ # `etag` is used for optimistic concurrency control as a way to help
132
+ # prevent simultaneous updates of a policy from overwriting each other.
133
+ # It is strongly suggested that systems make use of the `etag` in the
134
+ # read-modify-write cycle to perform policy updates in order to avoid race
135
+ # conditions: An `etag` is returned in the response to `getIamPolicy`, and
136
+ # systems are expected to put that etag in the request to `setIamPolicy` to
137
+ # ensure that their change will be applied to the same version of the policy.
138
+ # If no `etag` is provided in the call to `setIamPolicy`, then the existing
139
+ # policy is overwritten blindly.
140
+ # Corresponds to the JSON property `etag`
140
141
  # @return [String]
141
- attr_accessor :additional_authenticated_data
142
+ attr_accessor :etag
142
143
 
143
144
  def initialize(**args)
144
145
  update!(**args)
@@ -146,70 +147,54 @@ module Google
146
147
 
147
148
  # Update properties of this object
148
149
  def update!(**args)
149
- @ciphertext = args[:ciphertext] if args.key?(:ciphertext)
150
- @additional_authenticated_data = args[:additional_authenticated_data] if args.key?(:additional_authenticated_data)
150
+ @iam_owned = args[:iam_owned] if args.key?(:iam_owned)
151
+ @rules = args[:rules] if args.key?(:rules)
152
+ @version = args[:version] if args.key?(:version)
153
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
154
+ @bindings = args[:bindings] if args.key?(:bindings)
155
+ @etag = args[:etag] if args.key?(:etag)
151
156
  end
152
157
  end
153
158
 
154
- # A resource that represents Google Cloud Platform location.
155
- class Location
159
+ # Response message for KeyManagementService.Encrypt.
160
+ class EncryptResponse
156
161
  include Google::Apis::Core::Hashable
157
162
 
158
- # The canonical id for this location. For example: `"us-east1"`.
159
- # Corresponds to the JSON property `locationId`
160
- # @return [String]
161
- attr_accessor :location_id
162
-
163
- # Service-specific metadata. For example the available capacity at the given
164
- # location.
165
- # Corresponds to the JSON property `metadata`
166
- # @return [Hash<String,Object>]
167
- attr_accessor :metadata
168
-
169
- # Cross-service attributes for the location. For example
170
- # `"cloud.googleapis.com/region": "us-east1"`
171
- # Corresponds to the JSON property `labels`
172
- # @return [Hash<String,String>]
173
- attr_accessor :labels
174
-
175
- # Resource name for the location, which may vary between implementations.
176
- # For example: `"projects/example-project/locations/us-east1"`
163
+ # The resource name of the CryptoKeyVersion used in encryption.
177
164
  # Corresponds to the JSON property `name`
178
165
  # @return [String]
179
166
  attr_accessor :name
180
167
 
168
+ # The encrypted data.
169
+ # Corresponds to the JSON property `ciphertext`
170
+ # @return [String]
171
+ attr_accessor :ciphertext
172
+
181
173
  def initialize(**args)
182
174
  update!(**args)
183
175
  end
184
176
 
185
177
  # Update properties of this object
186
178
  def update!(**args)
187
- @location_id = args[:location_id] if args.key?(:location_id)
188
- @metadata = args[:metadata] if args.key?(:metadata)
189
- @labels = args[:labels] if args.key?(:labels)
190
179
  @name = args[:name] if args.key?(:name)
180
+ @ciphertext = args[:ciphertext] if args.key?(:ciphertext)
191
181
  end
192
182
  end
193
183
 
194
- # Response message for KeyManagementService.ListCryptoKeys.
195
- class ListCryptoKeysResponse
184
+ # A KeyRing is a toplevel logical grouping of CryptoKeys.
185
+ class KeyRing
196
186
  include Google::Apis::Core::Hashable
197
187
 
198
- # A token to retrieve next page of results. Pass this value in
199
- # ListCryptoKeysRequest.page_token to retrieve the next page of results.
200
- # Corresponds to the JSON property `nextPageToken`
188
+ # Output only. The resource name for the KeyRing in the format
189
+ # `projects/*/locations/*/keyRings/*`.
190
+ # Corresponds to the JSON property `name`
201
191
  # @return [String]
202
- attr_accessor :next_page_token
203
-
204
- # The list of CryptoKeys.
205
- # Corresponds to the JSON property `cryptoKeys`
206
- # @return [Array<Google::Apis::CloudkmsV1beta1::CryptoKey>]
207
- attr_accessor :crypto_keys
192
+ attr_accessor :name
208
193
 
209
- # The total number of CryptoKeys that matched the query.
210
- # Corresponds to the JSON property `totalSize`
211
- # @return [Fixnum]
212
- attr_accessor :total_size
194
+ # Output only. The time at which this KeyRing was created.
195
+ # Corresponds to the JSON property `createTime`
196
+ # @return [String]
197
+ attr_accessor :create_time
213
198
 
214
199
  def initialize(**args)
215
200
  update!(**args)
@@ -217,46 +202,57 @@ module Google
217
202
 
218
203
  # Update properties of this object
219
204
  def update!(**args)
220
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
221
- @crypto_keys = args[:crypto_keys] if args.key?(:crypto_keys)
222
- @total_size = args[:total_size] if args.key?(:total_size)
205
+ @name = args[:name] if args.key?(:name)
206
+ @create_time = args[:create_time] if args.key?(:create_time)
223
207
  end
224
208
  end
225
209
 
226
- # A condition to be met.
227
- class Condition
210
+ # The response message for Locations.ListLocations.
211
+ class ListLocationsResponse
228
212
  include Google::Apis::Core::Hashable
229
213
 
230
- # DEPRECATED. Use 'values' instead.
231
- # Corresponds to the JSON property `value`
232
- # @return [String]
233
- attr_accessor :value
214
+ # A list of locations that matches the specified filter in the request.
215
+ # Corresponds to the JSON property `locations`
216
+ # @return [Array<Google::Apis::CloudkmsV1beta1::Location>]
217
+ attr_accessor :locations
234
218
 
235
- # Trusted attributes supplied by any service that owns resources and uses
236
- # the IAM system for access control.
237
- # Corresponds to the JSON property `sys`
219
+ # The standard List next-page token.
220
+ # Corresponds to the JSON property `nextPageToken`
238
221
  # @return [String]
239
- attr_accessor :sys
222
+ attr_accessor :next_page_token
240
223
 
241
- # The objects of the condition. This is mutually exclusive with 'value'.
242
- # Corresponds to the JSON property `values`
243
- # @return [Array<String>]
244
- attr_accessor :values
224
+ def initialize(**args)
225
+ update!(**args)
226
+ end
245
227
 
246
- # Trusted attributes supplied by the IAM system.
247
- # Corresponds to the JSON property `iam`
248
- # @return [String]
249
- attr_accessor :iam
228
+ # Update properties of this object
229
+ def update!(**args)
230
+ @locations = args[:locations] if args.key?(:locations)
231
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
232
+ end
233
+ end
250
234
 
251
- # An operator to apply the subject with.
252
- # Corresponds to the JSON property `op`
253
- # @return [String]
254
- attr_accessor :op
235
+ # Request message for KeyManagementService.RestoreCryptoKeyVersion.
236
+ class RestoreCryptoKeyVersionRequest
237
+ include Google::Apis::Core::Hashable
255
238
 
256
- # Trusted attributes discharged by the service.
257
- # Corresponds to the JSON property `svc`
239
+ def initialize(**args)
240
+ update!(**args)
241
+ end
242
+
243
+ # Update properties of this object
244
+ def update!(**args)
245
+ end
246
+ end
247
+
248
+ # Request message for KeyManagementService.UpdateCryptoKeyPrimaryVersion.
249
+ class UpdateCryptoKeyPrimaryVersionRequest
250
+ include Google::Apis::Core::Hashable
251
+
252
+ # The id of the child CryptoKeyVersion to use as primary.
253
+ # Corresponds to the JSON property `cryptoKeyVersionId`
258
254
  # @return [String]
259
- attr_accessor :svc
255
+ attr_accessor :crypto_key_version_id
260
256
 
261
257
  def initialize(**args)
262
258
  update!(**args)
@@ -264,28 +260,42 @@ module Google
264
260
 
265
261
  # Update properties of this object
266
262
  def update!(**args)
267
- @value = args[:value] if args.key?(:value)
268
- @sys = args[:sys] if args.key?(:sys)
269
- @values = args[:values] if args.key?(:values)
270
- @iam = args[:iam] if args.key?(:iam)
271
- @op = args[:op] if args.key?(:op)
272
- @svc = args[:svc] if args.key?(:svc)
263
+ @crypto_key_version_id = args[:crypto_key_version_id] if args.key?(:crypto_key_version_id)
273
264
  end
274
265
  end
275
266
 
276
- # Options for counters
277
- class CounterOptions
267
+ # Write a Data Access (Gin) log
268
+ class DataAccessOptions
278
269
  include Google::Apis::Core::Hashable
279
270
 
280
- # The metric to update.
281
- # Corresponds to the JSON property `metric`
282
- # @return [String]
283
- attr_accessor :metric
271
+ def initialize(**args)
272
+ update!(**args)
273
+ end
284
274
 
285
- # The field value to attribute.
286
- # Corresponds to the JSON property `field`
275
+ # Update properties of this object
276
+ def update!(**args)
277
+ end
278
+ end
279
+
280
+ # Response message for KeyManagementService.ListKeyRings.
281
+ class ListKeyRingsResponse
282
+ include Google::Apis::Core::Hashable
283
+
284
+ # A token to retrieve next page of results. Pass this value in
285
+ # ListKeyRingsRequest.page_token to retrieve the next page of results.
286
+ # Corresponds to the JSON property `nextPageToken`
287
287
  # @return [String]
288
- attr_accessor :field
288
+ attr_accessor :next_page_token
289
+
290
+ # The total number of KeyRings that matched the query.
291
+ # Corresponds to the JSON property `totalSize`
292
+ # @return [Fixnum]
293
+ attr_accessor :total_size
294
+
295
+ # The list of KeyRings.
296
+ # Corresponds to the JSON property `keyRings`
297
+ # @return [Array<Google::Apis::CloudkmsV1beta1::KeyRing>]
298
+ attr_accessor :key_rings
289
299
 
290
300
  def initialize(**args)
291
301
  update!(**args)
@@ -293,42 +303,39 @@ module Google
293
303
 
294
304
  # Update properties of this object
295
305
  def update!(**args)
296
- @metric = args[:metric] if args.key?(:metric)
297
- @field = args[:field] if args.key?(:field)
306
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
307
+ @total_size = args[:total_size] if args.key?(:total_size)
308
+ @key_rings = args[:key_rings] if args.key?(:key_rings)
298
309
  end
299
310
  end
300
311
 
301
- # Provides the configuration for logging a type of permissions.
302
- # Example:
303
- # `
304
- # "audit_log_configs": [
305
- # `
306
- # "log_type": "DATA_READ",
307
- # "exempted_members": [
308
- # "user:foo@gmail.com"
309
- # ]
310
- # `,
311
- # `
312
- # "log_type": "DATA_WRITE",
313
- # `
314
- # ]
315
- # `
316
- # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
317
- # foo@gmail.com from DATA_READ logging.
318
- class AuditLogConfig
312
+ # Specifies the audit configuration for a service.
313
+ # It consists of which permission types are logged, and what identities, if
314
+ # any, are exempted from logging.
315
+ # An AuditConifg must have one or more AuditLogConfigs.
316
+ class AuditConfig
319
317
  include Google::Apis::Core::Hashable
320
318
 
321
- # Specifies the identities that do not cause logging for this type of
322
- # permission.
319
+ # Specifies the identities that are exempted from "data access" audit
320
+ # logging for the `service` specified above.
323
321
  # Follows the same format of Binding.members.
322
+ # This field is deprecated in favor of per-permission-type exemptions.
324
323
  # Corresponds to the JSON property `exemptedMembers`
325
324
  # @return [Array<String>]
326
325
  attr_accessor :exempted_members
327
326
 
328
- # The log type that this config enables.
329
- # Corresponds to the JSON property `logType`
327
+ # Specifies a service that will be enabled for audit logging.
328
+ # For example, `resourcemanager`, `storage`, `compute`.
329
+ # `allServices` is a special value that covers all services.
330
+ # Corresponds to the JSON property `service`
330
331
  # @return [String]
331
- attr_accessor :log_type
332
+ attr_accessor :service
333
+
334
+ # The configuration for logging of each type of permission.
335
+ # Next ID: 4
336
+ # Corresponds to the JSON property `auditLogConfigs`
337
+ # @return [Array<Google::Apis::CloudkmsV1beta1::AuditLogConfig>]
338
+ attr_accessor :audit_log_configs
332
339
 
333
340
  def initialize(**args)
334
341
  update!(**args)
@@ -337,18 +344,48 @@ module Google
337
344
  # Update properties of this object
338
345
  def update!(**args)
339
346
  @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
340
- @log_type = args[:log_type] if args.key?(:log_type)
347
+ @service = args[:service] if args.key?(:service)
348
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
341
349
  end
342
350
  end
343
351
 
344
- # Response message for KeyManagementService.Decrypt.
345
- class DecryptResponse
352
+ # A CryptoKeyVersion represents an individual cryptographic key, and the
353
+ # associated key material.
354
+ # It can be used for cryptographic operations either directly, or via its
355
+ # parent CryptoKey, in which case the server will choose the appropriate
356
+ # version for the operation.
357
+ class CryptoKeyVersion
346
358
  include Google::Apis::Core::Hashable
347
359
 
348
- # The decrypted data originally supplied in EncryptRequest.plaintext.
349
- # Corresponds to the JSON property `plaintext`
360
+ # Output only. The time this CryptoKeyVersion's key material is scheduled
361
+ # for destruction. Only present if state is
362
+ # DESTROY_SCHEDULED.
363
+ # Corresponds to the JSON property `destroyTime`
350
364
  # @return [String]
351
- attr_accessor :plaintext
365
+ attr_accessor :destroy_time
366
+
367
+ # Output only. The time at which this CryptoKeyVersion was created.
368
+ # Corresponds to the JSON property `createTime`
369
+ # @return [String]
370
+ attr_accessor :create_time
371
+
372
+ # The current state of the CryptoKeyVersion.
373
+ # Corresponds to the JSON property `state`
374
+ # @return [String]
375
+ attr_accessor :state
376
+
377
+ # Output only. The resource name for this CryptoKeyVersion in the format
378
+ # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
379
+ # Corresponds to the JSON property `name`
380
+ # @return [String]
381
+ attr_accessor :name
382
+
383
+ # Output only. The time this CryptoKeyVersion's key material was
384
+ # destroyed. Only present if state is
385
+ # DESTROYED.
386
+ # Corresponds to the JSON property `destroyEventTime`
387
+ # @return [String]
388
+ attr_accessor :destroy_event_time
352
389
 
353
390
  def initialize(**args)
354
391
  update!(**args)
@@ -356,45 +393,55 @@ module Google
356
393
 
357
394
  # Update properties of this object
358
395
  def update!(**args)
359
- @plaintext = args[:plaintext] if args.key?(:plaintext)
396
+ @destroy_time = args[:destroy_time] if args.key?(:destroy_time)
397
+ @create_time = args[:create_time] if args.key?(:create_time)
398
+ @state = args[:state] if args.key?(:state)
399
+ @name = args[:name] if args.key?(:name)
400
+ @destroy_event_time = args[:destroy_event_time] if args.key?(:destroy_event_time)
360
401
  end
361
402
  end
362
403
 
363
- # Request message for `TestIamPermissions` method.
364
- class TestIamPermissionsRequest
404
+ # Write a Cloud Audit log
405
+ class CloudAuditOptions
365
406
  include Google::Apis::Core::Hashable
366
407
 
367
- # The set of permissions to check for the `resource`. Permissions with
368
- # wildcards (such as '*' or 'storage.*') are not allowed. For more
369
- # information see
370
- # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
371
- # Corresponds to the JSON property `permissions`
372
- # @return [Array<String>]
373
- attr_accessor :permissions
374
-
375
408
  def initialize(**args)
376
409
  update!(**args)
377
410
  end
378
411
 
379
412
  # Update properties of this object
380
413
  def update!(**args)
381
- @permissions = args[:permissions] if args.key?(:permissions)
382
414
  end
383
415
  end
384
416
 
385
- # The response message for Locations.ListLocations.
386
- class ListLocationsResponse
417
+ # Associates `members` with a `role`.
418
+ class Binding
387
419
  include Google::Apis::Core::Hashable
388
420
 
389
- # The standard List next-page token.
390
- # Corresponds to the JSON property `nextPageToken`
391
- # @return [String]
392
- attr_accessor :next_page_token
421
+ # Specifies the identities requesting access for a Cloud Platform resource.
422
+ # `members` can have the following values:
423
+ # * `allUsers`: A special identifier that represents anyone who is
424
+ # on the internet; with or without a Google account.
425
+ # * `allAuthenticatedUsers`: A special identifier that represents anyone
426
+ # who is authenticated with a Google account or a service account.
427
+ # * `user:`emailid``: An email address that represents a specific Google
428
+ # account. For example, `alice@gmail.com` or `joe@example.com`.
429
+ # * `serviceAccount:`emailid``: An email address that represents a service
430
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`.
431
+ # * `group:`emailid``: An email address that represents a Google group.
432
+ # For example, `admins@example.com`.
433
+ # * `domain:`domain``: A Google Apps domain name that represents all the
434
+ # users of that domain. For example, `google.com` or `example.com`.
435
+ # Corresponds to the JSON property `members`
436
+ # @return [Array<String>]
437
+ attr_accessor :members
393
438
 
394
- # A list of locations that matches the specified filter in the request.
395
- # Corresponds to the JSON property `locations`
396
- # @return [Array<Google::Apis::CloudkmsV1beta1::Location>]
397
- attr_accessor :locations
439
+ # Role that is assigned to `members`.
440
+ # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
441
+ # Required
442
+ # Corresponds to the JSON property `role`
443
+ # @return [String]
444
+ attr_accessor :role
398
445
 
399
446
  def initialize(**args)
400
447
  update!(**args)
@@ -402,88 +449,26 @@ module Google
402
449
 
403
450
  # Update properties of this object
404
451
  def update!(**args)
405
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
406
- @locations = args[:locations] if args.key?(:locations)
452
+ @members = args[:members] if args.key?(:members)
453
+ @role = args[:role] if args.key?(:role)
407
454
  end
408
455
  end
409
456
 
410
- # Defines an Identity and Access Management (IAM) policy. It is used to
411
- # specify access control policies for Cloud Platform resources.
412
- # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
413
- # `members` to a `role`, where the members can be user accounts, Google groups,
414
- # Google domains, and service accounts. A `role` is a named list of permissions
415
- # defined by IAM.
416
- # **Example**
417
- # `
418
- # "bindings": [
419
- # `
420
- # "role": "roles/owner",
421
- # "members": [
422
- # "user:mike@example.com",
423
- # "group:admins@example.com",
424
- # "domain:google.com",
425
- # "serviceAccount:my-other-app@appspot.gserviceaccount.com",
426
- # ]
427
- # `,
428
- # `
429
- # "role": "roles/viewer",
430
- # "members": ["user:sean@example.com"]
431
- # `
432
- # ]
433
- # `
434
- # For a description of IAM and its features, see the
435
- # [IAM developer's guide](https://cloud.google.com/iam).
436
- class Policy
457
+ # Request message for KeyManagementService.Encrypt.
458
+ class EncryptRequest
437
459
  include Google::Apis::Core::Hashable
438
460
 
439
- #
440
- # Corresponds to the JSON property `iamOwned`
441
- # @return [Boolean]
442
- attr_accessor :iam_owned
443
- alias_method :iam_owned?, :iam_owned
444
-
445
- # If more than one rule is specified, the rules are applied in the following
446
- # manner:
447
- # - All matching LOG rules are always applied.
448
- # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
449
- # Logging will be applied if one or more matching rule requires logging.
450
- # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
451
- # granted.
452
- # Logging will be applied if one or more matching rule requires logging.
453
- # - Otherwise, if no rule applies, permission is denied.
454
- # Corresponds to the JSON property `rules`
455
- # @return [Array<Google::Apis::CloudkmsV1beta1::Rule>]
456
- attr_accessor :rules
457
-
458
- # Version of the `Policy`. The default version is 0.
459
- # Corresponds to the JSON property `version`
460
- # @return [Fixnum]
461
- attr_accessor :version
462
-
463
- # Specifies cloud audit logging configuration for this policy.
464
- # Corresponds to the JSON property `auditConfigs`
465
- # @return [Array<Google::Apis::CloudkmsV1beta1::AuditConfig>]
466
- attr_accessor :audit_configs
467
-
468
- # Associates a list of `members` to a `role`.
469
- # Multiple `bindings` must not be specified for the same `role`.
470
- # `bindings` with no members will result in an error.
471
- # Corresponds to the JSON property `bindings`
472
- # @return [Array<Google::Apis::CloudkmsV1beta1::Binding>]
473
- attr_accessor :bindings
461
+ # Required. The data to encrypt. Must be no larger than 64KiB.
462
+ # Corresponds to the JSON property `plaintext`
463
+ # @return [String]
464
+ attr_accessor :plaintext
474
465
 
475
- # `etag` is used for optimistic concurrency control as a way to help
476
- # prevent simultaneous updates of a policy from overwriting each other.
477
- # It is strongly suggested that systems make use of the `etag` in the
478
- # read-modify-write cycle to perform policy updates in order to avoid race
479
- # conditions: An `etag` is returned in the response to `getIamPolicy`, and
480
- # systems are expected to put that etag in the request to `setIamPolicy` to
481
- # ensure that their change will be applied to the same version of the policy.
482
- # If no `etag` is provided in the call to `setIamPolicy`, then the existing
483
- # policy is overwritten blindly.
484
- # Corresponds to the JSON property `etag`
466
+ # Optional data that, if specified, must also be provided during decryption
467
+ # through DecryptRequest.additional_authenticated_data. Must be no
468
+ # larger than 64KiB.
469
+ # Corresponds to the JSON property `additionalAuthenticatedData`
485
470
  # @return [String]
486
- attr_accessor :etag
471
+ attr_accessor :additional_authenticated_data
487
472
 
488
473
  def initialize(**args)
489
474
  update!(**args)
@@ -491,28 +476,32 @@ module Google
491
476
 
492
477
  # Update properties of this object
493
478
  def update!(**args)
494
- @iam_owned = args[:iam_owned] if args.key?(:iam_owned)
495
- @rules = args[:rules] if args.key?(:rules)
496
- @version = args[:version] if args.key?(:version)
497
- @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
498
- @bindings = args[:bindings] if args.key?(:bindings)
499
- @etag = args[:etag] if args.key?(:etag)
479
+ @plaintext = args[:plaintext] if args.key?(:plaintext)
480
+ @additional_authenticated_data = args[:additional_authenticated_data] if args.key?(:additional_authenticated_data)
500
481
  end
501
482
  end
502
483
 
503
- # Response message for KeyManagementService.Encrypt.
504
- class EncryptResponse
484
+ # Response message for KeyManagementService.ListCryptoKeyVersions.
485
+ class ListCryptoKeyVersionsResponse
505
486
  include Google::Apis::Core::Hashable
506
487
 
507
- # The encrypted data.
508
- # Corresponds to the JSON property `ciphertext`
509
- # @return [String]
510
- attr_accessor :ciphertext
488
+ # The list of CryptoKeyVersions.
489
+ # Corresponds to the JSON property `cryptoKeyVersions`
490
+ # @return [Array<Google::Apis::CloudkmsV1beta1::CryptoKeyVersion>]
491
+ attr_accessor :crypto_key_versions
511
492
 
512
- # The resource name of the CryptoKeyVersion used in encryption.
513
- # Corresponds to the JSON property `name`
493
+ # A token to retrieve next page of results. Pass this value in
494
+ # ListCryptoKeyVersionsRequest.page_token to retrieve the next page of
495
+ # results.
496
+ # Corresponds to the JSON property `nextPageToken`
514
497
  # @return [String]
515
- attr_accessor :name
498
+ attr_accessor :next_page_token
499
+
500
+ # The total number of CryptoKeyVersions that matched the
501
+ # query.
502
+ # Corresponds to the JSON property `totalSize`
503
+ # @return [Fixnum]
504
+ attr_accessor :total_size
516
505
 
517
506
  def initialize(**args)
518
507
  update!(**args)
@@ -520,25 +509,21 @@ module Google
520
509
 
521
510
  # Update properties of this object
522
511
  def update!(**args)
523
- @ciphertext = args[:ciphertext] if args.key?(:ciphertext)
524
- @name = args[:name] if args.key?(:name)
512
+ @crypto_key_versions = args[:crypto_key_versions] if args.key?(:crypto_key_versions)
513
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
514
+ @total_size = args[:total_size] if args.key?(:total_size)
525
515
  end
526
516
  end
527
517
 
528
- # A KeyRing is a toplevel logical grouping of CryptoKeys.
529
- class KeyRing
518
+ # Response message for `TestIamPermissions` method.
519
+ class TestIamPermissionsResponse
530
520
  include Google::Apis::Core::Hashable
531
521
 
532
- # Output only. The time at which this KeyRing was created.
533
- # Corresponds to the JSON property `createTime`
534
- # @return [String]
535
- attr_accessor :create_time
536
-
537
- # Output only. The resource name for the KeyRing in the format
538
- # `projects/*/locations/*/keyRings/*`.
539
- # Corresponds to the JSON property `name`
540
- # @return [String]
541
- attr_accessor :name
522
+ # A subset of `TestPermissionsRequest.permissions` that the caller is
523
+ # allowed.
524
+ # Corresponds to the JSON property `permissions`
525
+ # @return [Array<String>]
526
+ attr_accessor :permissions
542
527
 
543
528
  def initialize(**args)
544
529
  update!(**args)
@@ -546,75 +531,68 @@ module Google
546
531
 
547
532
  # Update properties of this object
548
533
  def update!(**args)
549
- @create_time = args[:create_time] if args.key?(:create_time)
550
- @name = args[:name] if args.key?(:name)
534
+ @permissions = args[:permissions] if args.key?(:permissions)
551
535
  end
552
536
  end
553
537
 
554
- # Request message for KeyManagementService.UpdateCryptoKeyPrimaryVersion.
555
- class UpdateCryptoKeyPrimaryVersionRequest
538
+ # Request message for KeyManagementService.DestroyCryptoKeyVersion.
539
+ class DestroyCryptoKeyVersionRequest
556
540
  include Google::Apis::Core::Hashable
557
541
 
558
- # The id of the child CryptoKeyVersion to use as primary.
559
- # Corresponds to the JSON property `cryptoKeyVersionId`
560
- # @return [String]
561
- attr_accessor :crypto_key_version_id
562
-
563
542
  def initialize(**args)
564
543
  update!(**args)
565
544
  end
566
545
 
567
546
  # Update properties of this object
568
547
  def update!(**args)
569
- @crypto_key_version_id = args[:crypto_key_version_id] if args.key?(:crypto_key_version_id)
570
548
  end
571
549
  end
572
550
 
573
- # Request message for KeyManagementService.RestoreCryptoKeyVersion.
574
- class RestoreCryptoKeyVersionRequest
551
+ # A rule to be applied in a Policy.
552
+ class Rule
575
553
  include Google::Apis::Core::Hashable
576
554
 
577
- def initialize(**args)
578
- update!(**args)
579
- end
580
-
581
- # Update properties of this object
582
- def update!(**args)
583
- end
584
- end
555
+ # If one or more 'not_in' clauses are specified, the rule matches
556
+ # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
557
+ # The format for in and not_in entries is the same as for members in a
558
+ # Binding (see google/iam/v1/policy.proto).
559
+ # Corresponds to the JSON property `notIn`
560
+ # @return [Array<String>]
561
+ attr_accessor :not_in
585
562
 
586
- # Write a Data Access (Gin) log
587
- class DataAccessOptions
588
- include Google::Apis::Core::Hashable
563
+ # Human-readable description of the rule.
564
+ # Corresponds to the JSON property `description`
565
+ # @return [String]
566
+ attr_accessor :description
589
567
 
590
- def initialize(**args)
591
- update!(**args)
592
- end
568
+ # Additional restrictions that must be met
569
+ # Corresponds to the JSON property `conditions`
570
+ # @return [Array<Google::Apis::CloudkmsV1beta1::Condition>]
571
+ attr_accessor :conditions
593
572
 
594
- # Update properties of this object
595
- def update!(**args)
596
- end
597
- end
573
+ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
574
+ # that match the LOG action.
575
+ # Corresponds to the JSON property `logConfig`
576
+ # @return [Array<Google::Apis::CloudkmsV1beta1::LogConfig>]
577
+ attr_accessor :log_config
598
578
 
599
- # Response message for KeyManagementService.ListKeyRings.
600
- class ListKeyRingsResponse
601
- include Google::Apis::Core::Hashable
579
+ # If one or more 'in' clauses are specified, the rule matches if
580
+ # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
581
+ # Corresponds to the JSON property `in`
582
+ # @return [Array<String>]
583
+ attr_accessor :in
602
584
 
603
- # The list of KeyRings.
604
- # Corresponds to the JSON property `keyRings`
605
- # @return [Array<Google::Apis::CloudkmsV1beta1::KeyRing>]
606
- attr_accessor :key_rings
585
+ # A permission is a string of form '<service>.<resource type>.<verb>'
586
+ # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
587
+ # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
588
+ # Corresponds to the JSON property `permissions`
589
+ # @return [Array<String>]
590
+ attr_accessor :permissions
607
591
 
608
- # A token to retrieve next page of results. Pass this value in
609
- # ListKeyRingsRequest.page_token to retrieve the next page of results.
610
- # Corresponds to the JSON property `nextPageToken`
592
+ # Required
593
+ # Corresponds to the JSON property `action`
611
594
  # @return [String]
612
- attr_accessor :next_page_token
613
-
614
- # The total number of KeyRings that matched the query.
615
- # Corresponds to the JSON property `totalSize`
616
- # @return [Fixnum]
617
- attr_accessor :total_size
595
+ attr_accessor :action
618
596
 
619
597
  def initialize(**args)
620
598
  update!(**args)
@@ -622,39 +600,66 @@ module Google
622
600
 
623
601
  # Update properties of this object
624
602
  def update!(**args)
625
- @key_rings = args[:key_rings] if args.key?(:key_rings)
626
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
627
- @total_size = args[:total_size] if args.key?(:total_size)
603
+ @not_in = args[:not_in] if args.key?(:not_in)
604
+ @description = args[:description] if args.key?(:description)
605
+ @conditions = args[:conditions] if args.key?(:conditions)
606
+ @log_config = args[:log_config] if args.key?(:log_config)
607
+ @in = args[:in] if args.key?(:in)
608
+ @permissions = args[:permissions] if args.key?(:permissions)
609
+ @action = args[:action] if args.key?(:action)
628
610
  end
629
611
  end
630
612
 
631
- # Specifies the audit configuration for a service.
632
- # It consists of which permission types are logged, and what identities, if
633
- # any, are exempted from logging.
634
- # An AuditConifg must have one or more AuditLogConfigs.
635
- class AuditConfig
613
+ # A CryptoKey represents a logical key that can be used for cryptographic
614
+ # operations.
615
+ # A CryptoKey is made up of one or more versions, which
616
+ # represent the actual key material used in cryptographic operations.
617
+ class CryptoKey
636
618
  include Google::Apis::Core::Hashable
637
619
 
638
- # The configuration for logging of each type of permission.
639
- # Next ID: 4
640
- # Corresponds to the JSON property `auditLogConfigs`
641
- # @return [Array<Google::Apis::CloudkmsV1beta1::AuditLogConfig>]
642
- attr_accessor :audit_log_configs
620
+ # The immutable purpose of this CryptoKey. Currently, the only acceptable
621
+ # purpose is ENCRYPT_DECRYPT.
622
+ # Corresponds to the JSON property `purpose`
623
+ # @return [String]
624
+ attr_accessor :purpose
643
625
 
644
- # Specifies the identities that are exempted from "data access" audit
645
- # logging for the `service` specified above.
646
- # Follows the same format of Binding.members.
647
- # This field is deprecated in favor of per-permission-type exemptions.
648
- # Corresponds to the JSON property `exemptedMembers`
649
- # @return [Array<String>]
650
- attr_accessor :exempted_members
626
+ # At next_rotation_time, the Key Management Service will automatically:
627
+ # 1. Create a new version of this CryptoKey.
628
+ # 2. Mark the new version as primary.
629
+ # Key rotations performed manually via
630
+ # CreateCryptoKeyVersion and
631
+ # UpdateCryptoKeyPrimaryVersion
632
+ # do not affect next_rotation_time.
633
+ # Corresponds to the JSON property `nextRotationTime`
634
+ # @return [String]
635
+ attr_accessor :next_rotation_time
651
636
 
652
- # Specifies a service that will be enabled for audit logging.
653
- # For example, `resourcemanager`, `storage`, `compute`.
654
- # `allServices` is a special value that covers all services.
655
- # Corresponds to the JSON property `service`
637
+ # Output only. The time at which this CryptoKey was created.
638
+ # Corresponds to the JSON property `createTime`
656
639
  # @return [String]
657
- attr_accessor :service
640
+ attr_accessor :create_time
641
+
642
+ # next_rotation_time will be advanced by this period when the service
643
+ # automatically rotates a key. Must be at least one day.
644
+ # If rotation_period is set, next_rotation_time must also be set.
645
+ # Corresponds to the JSON property `rotationPeriod`
646
+ # @return [String]
647
+ attr_accessor :rotation_period
648
+
649
+ # A CryptoKeyVersion represents an individual cryptographic key, and the
650
+ # associated key material.
651
+ # It can be used for cryptographic operations either directly, or via its
652
+ # parent CryptoKey, in which case the server will choose the appropriate
653
+ # version for the operation.
654
+ # Corresponds to the JSON property `primary`
655
+ # @return [Google::Apis::CloudkmsV1beta1::CryptoKeyVersion]
656
+ attr_accessor :primary
657
+
658
+ # Output only. The resource name for this CryptoKey in the format
659
+ # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
660
+ # Corresponds to the JSON property `name`
661
+ # @return [String]
662
+ attr_accessor :name
658
663
 
659
664
  def initialize(**args)
660
665
  update!(**args)
@@ -662,49 +667,50 @@ module Google
662
667
 
663
668
  # Update properties of this object
664
669
  def update!(**args)
665
- @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
666
- @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
667
- @service = args[:service] if args.key?(:service)
670
+ @purpose = args[:purpose] if args.key?(:purpose)
671
+ @next_rotation_time = args[:next_rotation_time] if args.key?(:next_rotation_time)
672
+ @create_time = args[:create_time] if args.key?(:create_time)
673
+ @rotation_period = args[:rotation_period] if args.key?(:rotation_period)
674
+ @primary = args[:primary] if args.key?(:primary)
675
+ @name = args[:name] if args.key?(:name)
668
676
  end
669
677
  end
670
678
 
671
- # A CryptoKeyVersion represents an individual cryptographic key, and the
672
- # associated key material.
673
- # It can be used for cryptographic operations either directly, or via its
674
- # parent CryptoKey, in which case the server will choose the appropriate
675
- # version for the operation.
676
- class CryptoKeyVersion
679
+ # Specifies what kind of log the caller must write
680
+ # Increment a streamz counter with the specified metric and field names.
681
+ # Metric names should start with a '/', generally be lowercase-only,
682
+ # and end in "_count". Field names should not contain an initial slash.
683
+ # The actual exported metric names will have "/iam/policy" prepended.
684
+ # Field names correspond to IAM request parameters and field values are
685
+ # their respective values.
686
+ # At present the only supported field names are
687
+ # - "iam_principal", corresponding to IAMContext.principal;
688
+ # - "" (empty string), resulting in one aggretated counter with no field.
689
+ # Examples:
690
+ # counter ` metric: "/debug_access_count" field: "iam_principal" `
691
+ # ==> increment counter /iam/policy/backend_debug_access_count
692
+ # `iam_principal=[value of IAMContext.principal]`
693
+ # At this time we do not support:
694
+ # * multiple field names (though this may be supported in the future)
695
+ # * decrementing the counter
696
+ # * incrementing it by anything other than 1
697
+ class LogConfig
677
698
  include Google::Apis::Core::Hashable
678
699
 
679
- # Output only. The time at which this CryptoKeyVersion was created.
680
- # Corresponds to the JSON property `createTime`
681
- # @return [String]
682
- attr_accessor :create_time
683
-
684
- # The current state of the CryptoKeyVersion.
685
- # Corresponds to the JSON property `state`
686
- # @return [String]
687
- attr_accessor :state
688
-
689
- # Output only. The resource name for this CryptoKeyVersion in the format
690
- # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
691
- # Corresponds to the JSON property `name`
692
- # @return [String]
693
- attr_accessor :name
700
+ # Write a Cloud Audit log
701
+ # Corresponds to the JSON property `cloudAudit`
702
+ # @return [Google::Apis::CloudkmsV1beta1::CloudAuditOptions]
703
+ attr_accessor :cloud_audit
694
704
 
695
- # Output only. The time this CryptoKeyVersion's key material was
696
- # destroyed. Only present if state is
697
- # DESTROYED.
698
- # Corresponds to the JSON property `destroyEventTime`
699
- # @return [String]
700
- attr_accessor :destroy_event_time
705
+ # Options for counters
706
+ # Corresponds to the JSON property `counter`
707
+ # @return [Google::Apis::CloudkmsV1beta1::CounterOptions]
708
+ attr_accessor :counter
701
709
 
702
- # Output only. The time this CryptoKeyVersion's key material is scheduled
703
- # for destruction. Only present if state is
704
- # DESTROY_SCHEDULED.
705
- # Corresponds to the JSON property `destroyTime`
706
- # @return [String]
707
- attr_accessor :destroy_time
710
+ # Write a Data Access (Gin) log
711
+ # Corresponds to the JSON property `dataAccess`
712
+ # @return [Google::Apis::CloudkmsV1beta1::DataAccessOptions]
713
+ attr_accessor :data_access
708
714
 
709
715
  def initialize(**args)
710
716
  update!(**args)
@@ -712,55 +718,81 @@ module Google
712
718
 
713
719
  # Update properties of this object
714
720
  def update!(**args)
715
- @create_time = args[:create_time] if args.key?(:create_time)
716
- @state = args[:state] if args.key?(:state)
717
- @name = args[:name] if args.key?(:name)
718
- @destroy_event_time = args[:destroy_event_time] if args.key?(:destroy_event_time)
719
- @destroy_time = args[:destroy_time] if args.key?(:destroy_time)
721
+ @cloud_audit = args[:cloud_audit] if args.key?(:cloud_audit)
722
+ @counter = args[:counter] if args.key?(:counter)
723
+ @data_access = args[:data_access] if args.key?(:data_access)
720
724
  end
721
725
  end
722
726
 
723
- # Write a Cloud Audit log
724
- class CloudAuditOptions
727
+ # Request message for `SetIamPolicy` method.
728
+ class SetIamPolicyRequest
725
729
  include Google::Apis::Core::Hashable
726
730
 
731
+ # Defines an Identity and Access Management (IAM) policy. It is used to
732
+ # specify access control policies for Cloud Platform resources.
733
+ # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
734
+ # `members` to a `role`, where the members can be user accounts, Google groups,
735
+ # Google domains, and service accounts. A `role` is a named list of permissions
736
+ # defined by IAM.
737
+ # **Example**
738
+ # `
739
+ # "bindings": [
740
+ # `
741
+ # "role": "roles/owner",
742
+ # "members": [
743
+ # "user:mike@example.com",
744
+ # "group:admins@example.com",
745
+ # "domain:google.com",
746
+ # "serviceAccount:my-other-app@appspot.gserviceaccount.com",
747
+ # ]
748
+ # `,
749
+ # `
750
+ # "role": "roles/viewer",
751
+ # "members": ["user:sean@example.com"]
752
+ # `
753
+ # ]
754
+ # `
755
+ # For a description of IAM and its features, see the
756
+ # [IAM developer's guide](https://cloud.google.com/iam).
757
+ # Corresponds to the JSON property `policy`
758
+ # @return [Google::Apis::CloudkmsV1beta1::Policy]
759
+ attr_accessor :policy
760
+
761
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
762
+ # the fields in the mask will be modified. If no mask is provided, a default
763
+ # mask is used:
764
+ # paths: "bindings, etag"
765
+ # This field is only used by Cloud IAM.
766
+ # Corresponds to the JSON property `updateMask`
767
+ # @return [String]
768
+ attr_accessor :update_mask
769
+
727
770
  def initialize(**args)
728
771
  update!(**args)
729
772
  end
730
773
 
731
774
  # Update properties of this object
732
775
  def update!(**args)
776
+ @policy = args[:policy] if args.key?(:policy)
777
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
733
778
  end
734
779
  end
735
780
 
736
- # Associates `members` with a `role`.
737
- class Binding
781
+ # Request message for KeyManagementService.Decrypt.
782
+ class DecryptRequest
738
783
  include Google::Apis::Core::Hashable
739
784
 
740
- # Specifies the identities requesting access for a Cloud Platform resource.
741
- # `members` can have the following values:
742
- # * `allUsers`: A special identifier that represents anyone who is
743
- # on the internet; with or without a Google account.
744
- # * `allAuthenticatedUsers`: A special identifier that represents anyone
745
- # who is authenticated with a Google account or a service account.
746
- # * `user:`emailid``: An email address that represents a specific Google
747
- # account. For example, `alice@gmail.com` or `joe@example.com`.
748
- # * `serviceAccount:`emailid``: An email address that represents a service
749
- # account. For example, `my-other-app@appspot.gserviceaccount.com`.
750
- # * `group:`emailid``: An email address that represents a Google group.
751
- # For example, `admins@example.com`.
752
- # * `domain:`domain``: A Google Apps domain name that represents all the
753
- # users of that domain. For example, `google.com` or `example.com`.
754
- # Corresponds to the JSON property `members`
755
- # @return [Array<String>]
756
- attr_accessor :members
785
+ # Required. The encrypted data originally returned in
786
+ # EncryptResponse.ciphertext.
787
+ # Corresponds to the JSON property `ciphertext`
788
+ # @return [String]
789
+ attr_accessor :ciphertext
757
790
 
758
- # Role that is assigned to `members`.
759
- # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
760
- # Required
761
- # Corresponds to the JSON property `role`
791
+ # Optional data that must match the data originally supplied in
792
+ # EncryptRequest.additional_authenticated_data.
793
+ # Corresponds to the JSON property `additionalAuthenticatedData`
762
794
  # @return [String]
763
- attr_accessor :role
795
+ attr_accessor :additional_authenticated_data
764
796
 
765
797
  def initialize(**args)
766
798
  update!(**args)
@@ -768,26 +800,37 @@ module Google
768
800
 
769
801
  # Update properties of this object
770
802
  def update!(**args)
771
- @members = args[:members] if args.key?(:members)
772
- @role = args[:role] if args.key?(:role)
803
+ @ciphertext = args[:ciphertext] if args.key?(:ciphertext)
804
+ @additional_authenticated_data = args[:additional_authenticated_data] if args.key?(:additional_authenticated_data)
773
805
  end
774
806
  end
775
807
 
776
- # Request message for KeyManagementService.Encrypt.
777
- class EncryptRequest
808
+ # A resource that represents Google Cloud Platform location.
809
+ class Location
778
810
  include Google::Apis::Core::Hashable
779
811
 
780
- # Required. The data to encrypt. Must be no larger than 64KiB.
781
- # Corresponds to the JSON property `plaintext`
812
+ # Cross-service attributes for the location. For example
813
+ # `"cloud.googleapis.com/region": "us-east1"`
814
+ # Corresponds to the JSON property `labels`
815
+ # @return [Hash<String,String>]
816
+ attr_accessor :labels
817
+
818
+ # Resource name for the location, which may vary between implementations.
819
+ # For example: `"projects/example-project/locations/us-east1"`
820
+ # Corresponds to the JSON property `name`
782
821
  # @return [String]
783
- attr_accessor :plaintext
822
+ attr_accessor :name
784
823
 
785
- # Optional data that, if specified, must also be provided during decryption
786
- # through DecryptRequest.additional_authenticated_data. Must be no
787
- # larger than 64KiB.
788
- # Corresponds to the JSON property `additionalAuthenticatedData`
824
+ # The canonical id for this location. For example: `"us-east1"`.
825
+ # Corresponds to the JSON property `locationId`
789
826
  # @return [String]
790
- attr_accessor :additional_authenticated_data
827
+ attr_accessor :location_id
828
+
829
+ # Service-specific metadata. For example the available capacity at the given
830
+ # location.
831
+ # Corresponds to the JSON property `metadata`
832
+ # @return [Hash<String,Object>]
833
+ attr_accessor :metadata
791
834
 
792
835
  def initialize(**args)
793
836
  update!(**args)
@@ -795,29 +838,29 @@ module Google
795
838
 
796
839
  # Update properties of this object
797
840
  def update!(**args)
798
- @plaintext = args[:plaintext] if args.key?(:plaintext)
799
- @additional_authenticated_data = args[:additional_authenticated_data] if args.key?(:additional_authenticated_data)
841
+ @labels = args[:labels] if args.key?(:labels)
842
+ @name = args[:name] if args.key?(:name)
843
+ @location_id = args[:location_id] if args.key?(:location_id)
844
+ @metadata = args[:metadata] if args.key?(:metadata)
800
845
  end
801
846
  end
802
847
 
803
- # Response message for KeyManagementService.ListCryptoKeyVersions.
804
- class ListCryptoKeyVersionsResponse
848
+ # Response message for KeyManagementService.ListCryptoKeys.
849
+ class ListCryptoKeysResponse
805
850
  include Google::Apis::Core::Hashable
806
851
 
807
- # The list of CryptoKeyVersions.
808
- # Corresponds to the JSON property `cryptoKeyVersions`
809
- # @return [Array<Google::Apis::CloudkmsV1beta1::CryptoKeyVersion>]
810
- attr_accessor :crypto_key_versions
811
-
812
852
  # A token to retrieve next page of results. Pass this value in
813
- # ListCryptoKeyVersionsRequest.page_token to retrieve the next page of
814
- # results.
853
+ # ListCryptoKeysRequest.page_token to retrieve the next page of results.
815
854
  # Corresponds to the JSON property `nextPageToken`
816
855
  # @return [String]
817
856
  attr_accessor :next_page_token
818
857
 
819
- # The total number of CryptoKeyVersions that matched the
820
- # query.
858
+ # The list of CryptoKeys.
859
+ # Corresponds to the JSON property `cryptoKeys`
860
+ # @return [Array<Google::Apis::CloudkmsV1beta1::CryptoKey>]
861
+ attr_accessor :crypto_keys
862
+
863
+ # The total number of CryptoKeys that matched the query.
821
864
  # Corresponds to the JSON property `totalSize`
822
865
  # @return [Fixnum]
823
866
  attr_accessor :total_size
@@ -828,35 +871,46 @@ module Google
828
871
 
829
872
  # Update properties of this object
830
873
  def update!(**args)
831
- @crypto_key_versions = args[:crypto_key_versions] if args.key?(:crypto_key_versions)
832
874
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
875
+ @crypto_keys = args[:crypto_keys] if args.key?(:crypto_keys)
833
876
  @total_size = args[:total_size] if args.key?(:total_size)
834
877
  end
835
878
  end
836
879
 
837
- # Response message for `TestIamPermissions` method.
838
- class TestIamPermissionsResponse
880
+ # A condition to be met.
881
+ class Condition
839
882
  include Google::Apis::Core::Hashable
840
883
 
841
- # A subset of `TestPermissionsRequest.permissions` that the caller is
842
- # allowed.
843
- # Corresponds to the JSON property `permissions`
844
- # @return [Array<String>]
845
- attr_accessor :permissions
884
+ # An operator to apply the subject with.
885
+ # Corresponds to the JSON property `op`
886
+ # @return [String]
887
+ attr_accessor :op
846
888
 
847
- def initialize(**args)
848
- update!(**args)
849
- end
889
+ # Trusted attributes discharged by the service.
890
+ # Corresponds to the JSON property `svc`
891
+ # @return [String]
892
+ attr_accessor :svc
850
893
 
851
- # Update properties of this object
852
- def update!(**args)
853
- @permissions = args[:permissions] if args.key?(:permissions)
854
- end
855
- end
894
+ # Trusted attributes supplied by any service that owns resources and uses
895
+ # the IAM system for access control.
896
+ # Corresponds to the JSON property `sys`
897
+ # @return [String]
898
+ attr_accessor :sys
856
899
 
857
- # Request message for KeyManagementService.DestroyCryptoKeyVersion.
858
- class DestroyCryptoKeyVersionRequest
859
- include Google::Apis::Core::Hashable
900
+ # DEPRECATED. Use 'values' instead.
901
+ # Corresponds to the JSON property `value`
902
+ # @return [String]
903
+ attr_accessor :value
904
+
905
+ # Trusted attributes supplied by the IAM system.
906
+ # Corresponds to the JSON property `iam`
907
+ # @return [String]
908
+ attr_accessor :iam
909
+
910
+ # The objects of the condition. This is mutually exclusive with 'value'.
911
+ # Corresponds to the JSON property `values`
912
+ # @return [Array<String>]
913
+ attr_accessor :values
860
914
 
861
915
  def initialize(**args)
862
916
  update!(**args)
@@ -864,54 +918,28 @@ module Google
864
918
 
865
919
  # Update properties of this object
866
920
  def update!(**args)
921
+ @op = args[:op] if args.key?(:op)
922
+ @svc = args[:svc] if args.key?(:svc)
923
+ @sys = args[:sys] if args.key?(:sys)
924
+ @value = args[:value] if args.key?(:value)
925
+ @iam = args[:iam] if args.key?(:iam)
926
+ @values = args[:values] if args.key?(:values)
867
927
  end
868
928
  end
869
929
 
870
- # A rule to be applied in a Policy.
871
- class Rule
930
+ # Options for counters
931
+ class CounterOptions
872
932
  include Google::Apis::Core::Hashable
873
933
 
874
- # If one or more 'not_in' clauses are specified, the rule matches
875
- # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
876
- # The format for in and not_in entries is the same as for members in a
877
- # Binding (see google/iam/v1/policy.proto).
878
- # Corresponds to the JSON property `notIn`
879
- # @return [Array<String>]
880
- attr_accessor :not_in
881
-
882
- # Human-readable description of the rule.
883
- # Corresponds to the JSON property `description`
934
+ # The metric to update.
935
+ # Corresponds to the JSON property `metric`
884
936
  # @return [String]
885
- attr_accessor :description
886
-
887
- # Additional restrictions that must be met
888
- # Corresponds to the JSON property `conditions`
889
- # @return [Array<Google::Apis::CloudkmsV1beta1::Condition>]
890
- attr_accessor :conditions
891
-
892
- # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
893
- # that match the LOG action.
894
- # Corresponds to the JSON property `logConfig`
895
- # @return [Array<Google::Apis::CloudkmsV1beta1::LogConfig>]
896
- attr_accessor :log_config
897
-
898
- # If one or more 'in' clauses are specified, the rule matches if
899
- # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
900
- # Corresponds to the JSON property `in`
901
- # @return [Array<String>]
902
- attr_accessor :in
903
-
904
- # A permission is a string of form '<service>.<resource type>.<verb>'
905
- # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
906
- # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
907
- # Corresponds to the JSON property `permissions`
908
- # @return [Array<String>]
909
- attr_accessor :permissions
937
+ attr_accessor :metric
910
938
 
911
- # Required
912
- # Corresponds to the JSON property `action`
939
+ # The field value to attribute.
940
+ # Corresponds to the JSON property `field`
913
941
  # @return [String]
914
- attr_accessor :action
942
+ attr_accessor :field
915
943
 
916
944
  def initialize(**args)
917
945
  update!(**args)
@@ -919,66 +947,42 @@ module Google
919
947
 
920
948
  # Update properties of this object
921
949
  def update!(**args)
922
- @not_in = args[:not_in] if args.key?(:not_in)
923
- @description = args[:description] if args.key?(:description)
924
- @conditions = args[:conditions] if args.key?(:conditions)
925
- @log_config = args[:log_config] if args.key?(:log_config)
926
- @in = args[:in] if args.key?(:in)
927
- @permissions = args[:permissions] if args.key?(:permissions)
928
- @action = args[:action] if args.key?(:action)
950
+ @metric = args[:metric] if args.key?(:metric)
951
+ @field = args[:field] if args.key?(:field)
929
952
  end
930
953
  end
931
954
 
932
- # A CryptoKey represents a logical key that can be used for cryptographic
933
- # operations.
934
- # A CryptoKey is made up of one or more versions, which
935
- # represent the actual key material used in cryptographic operations.
936
- class CryptoKey
955
+ # Provides the configuration for logging a type of permissions.
956
+ # Example:
957
+ # `
958
+ # "audit_log_configs": [
959
+ # `
960
+ # "log_type": "DATA_READ",
961
+ # "exempted_members": [
962
+ # "user:foo@gmail.com"
963
+ # ]
964
+ # `,
965
+ # `
966
+ # "log_type": "DATA_WRITE",
967
+ # `
968
+ # ]
969
+ # `
970
+ # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
971
+ # foo@gmail.com from DATA_READ logging.
972
+ class AuditLogConfig
937
973
  include Google::Apis::Core::Hashable
938
974
 
939
- # Output only. The time at which this CryptoKey was created.
940
- # Corresponds to the JSON property `createTime`
941
- # @return [String]
942
- attr_accessor :create_time
943
-
944
- # next_rotation_time will be advanced by this period when the service
945
- # automatically rotates a key. Must be at least one day.
946
- # If rotation_period is set, next_rotation_time must also be set.
947
- # Corresponds to the JSON property `rotationPeriod`
948
- # @return [String]
949
- attr_accessor :rotation_period
950
-
951
- # A CryptoKeyVersion represents an individual cryptographic key, and the
952
- # associated key material.
953
- # It can be used for cryptographic operations either directly, or via its
954
- # parent CryptoKey, in which case the server will choose the appropriate
955
- # version for the operation.
956
- # Corresponds to the JSON property `primary`
957
- # @return [Google::Apis::CloudkmsV1beta1::CryptoKeyVersion]
958
- attr_accessor :primary
959
-
960
- # Output only. The resource name for this CryptoKey in the format
961
- # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
962
- # Corresponds to the JSON property `name`
963
- # @return [String]
964
- attr_accessor :name
965
-
966
- # The immutable purpose of this CryptoKey. Currently, the only acceptable
967
- # purpose is ENCRYPT_DECRYPT.
968
- # Corresponds to the JSON property `purpose`
969
- # @return [String]
970
- attr_accessor :purpose
975
+ # Specifies the identities that do not cause logging for this type of
976
+ # permission.
977
+ # Follows the same format of Binding.members.
978
+ # Corresponds to the JSON property `exemptedMembers`
979
+ # @return [Array<String>]
980
+ attr_accessor :exempted_members
971
981
 
972
- # At next_rotation_time, the Key Management Service will automatically:
973
- # 1. Create a new version of this CryptoKey.
974
- # 2. Mark the new version as primary.
975
- # Key rotations performed manually via
976
- # CreateCryptoKeyVersion and
977
- # UpdateCryptoKeyPrimaryVersion
978
- # do not affect next_rotation_time.
979
- # Corresponds to the JSON property `nextRotationTime`
982
+ # The log type that this config enables.
983
+ # Corresponds to the JSON property `logType`
980
984
  # @return [String]
981
- attr_accessor :next_rotation_time
985
+ attr_accessor :log_type
982
986
 
983
987
  def initialize(**args)
984
988
  update!(**args)
@@ -986,12 +990,8 @@ module Google
986
990
 
987
991
  # Update properties of this object
988
992
  def update!(**args)
989
- @create_time = args[:create_time] if args.key?(:create_time)
990
- @rotation_period = args[:rotation_period] if args.key?(:rotation_period)
991
- @primary = args[:primary] if args.key?(:primary)
992
- @name = args[:name] if args.key?(:name)
993
- @purpose = args[:purpose] if args.key?(:purpose)
994
- @next_rotation_time = args[:next_rotation_time] if args.key?(:next_rotation_time)
993
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
994
+ @log_type = args[:log_type] if args.key?(:log_type)
995
995
  end
996
996
  end
997
997
  end