google-api-client 0.36.0 → 0.36.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (187) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +69 -0
  3. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  4. data/generated/google/apis/androidenterprise_v1/classes.rb +2 -1
  5. data/generated/google/apis/androidmanagement_v1.rb +1 -1
  6. data/generated/google/apis/androidmanagement_v1/classes.rb +7 -4
  7. data/generated/google/apis/androidpublisher_v3.rb +1 -1
  8. data/generated/google/apis/androidpublisher_v3/classes.rb +32 -32
  9. data/generated/google/apis/androidpublisher_v3/representations.rb +17 -17
  10. data/generated/google/apis/bigquery_v2.rb +1 -1
  11. data/generated/google/apis/bigquery_v2/classes.rb +2 -1
  12. data/generated/google/apis/bigqueryconnection_v1beta1.rb +1 -1
  13. data/generated/google/apis/bigqueryconnection_v1beta1/classes.rb +81 -41
  14. data/generated/google/apis/bigqueryconnection_v1beta1/representations.rb +2 -0
  15. data/generated/google/apis/bigqueryconnection_v1beta1/service.rb +8 -8
  16. data/generated/google/apis/bigquerydatatransfer_v1.rb +1 -1
  17. data/generated/google/apis/bigquerydatatransfer_v1/service.rb +60 -30
  18. data/generated/google/apis/bigtableadmin_v2.rb +1 -1
  19. data/generated/google/apis/bigtableadmin_v2/classes.rb +75 -40
  20. data/generated/google/apis/bigtableadmin_v2/service.rb +1 -1
  21. data/generated/google/apis/binaryauthorization_v1.rb +1 -1
  22. data/generated/google/apis/binaryauthorization_v1/classes.rb +75 -41
  23. data/generated/google/apis/binaryauthorization_v1beta1.rb +1 -1
  24. data/generated/google/apis/binaryauthorization_v1beta1/classes.rb +75 -41
  25. data/generated/google/apis/chat_v1.rb +1 -1
  26. data/generated/google/apis/chat_v1/service.rb +5 -2
  27. data/generated/google/apis/cloudasset_v1.rb +1 -1
  28. data/generated/google/apis/cloudasset_v1/classes.rb +206 -0
  29. data/generated/google/apis/cloudasset_v1/representations.rb +101 -0
  30. data/generated/google/apis/cloudasset_v1/service.rb +174 -0
  31. data/generated/google/apis/cloudbilling_v1.rb +1 -1
  32. data/generated/google/apis/cloudbilling_v1/classes.rb +59 -41
  33. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  34. data/generated/google/apis/cloudbuild_v1/classes.rb +9 -5
  35. data/generated/google/apis/cloudfunctions_v1.rb +1 -1
  36. data/generated/google/apis/cloudfunctions_v1/classes.rb +75 -41
  37. data/generated/google/apis/cloudiot_v1.rb +1 -1
  38. data/generated/google/apis/cloudiot_v1/classes.rb +75 -41
  39. data/generated/google/apis/cloudkms_v1.rb +1 -1
  40. data/generated/google/apis/cloudkms_v1/classes.rb +104 -41
  41. data/generated/google/apis/cloudkms_v1/representations.rb +15 -0
  42. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  43. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +75 -41
  44. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  45. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +75 -41
  46. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +1 -1
  47. data/generated/google/apis/cloudresourcemanager_v2.rb +1 -1
  48. data/generated/google/apis/cloudresourcemanager_v2/classes.rb +75 -41
  49. data/generated/google/apis/cloudresourcemanager_v2beta1.rb +1 -1
  50. data/generated/google/apis/cloudresourcemanager_v2beta1/classes.rb +75 -41
  51. data/generated/google/apis/cloudsearch_v1.rb +1 -1
  52. data/generated/google/apis/cloudsearch_v1/classes.rb +3 -2
  53. data/generated/google/apis/cloudtasks_v2.rb +1 -1
  54. data/generated/google/apis/cloudtasks_v2/classes.rb +81 -47
  55. data/generated/google/apis/cloudtasks_v2beta2.rb +1 -1
  56. data/generated/google/apis/cloudtasks_v2beta2/classes.rb +75 -41
  57. data/generated/google/apis/cloudtasks_v2beta3.rb +1 -1
  58. data/generated/google/apis/cloudtasks_v2beta3/classes.rb +81 -47
  59. data/generated/google/apis/cloudtrace_v2.rb +1 -1
  60. data/generated/google/apis/cloudtrace_v2/classes.rb +5 -3
  61. data/generated/google/apis/compute_alpha.rb +1 -1
  62. data/generated/google/apis/compute_alpha/classes.rb +68 -47
  63. data/generated/google/apis/compute_alpha/representations.rb +2 -1
  64. data/generated/google/apis/compute_alpha/service.rb +54 -0
  65. data/generated/google/apis/compute_beta.rb +1 -1
  66. data/generated/google/apis/compute_beta/classes.rb +597 -40
  67. data/generated/google/apis/compute_beta/representations.rb +164 -0
  68. data/generated/google/apis/compute_beta/service.rb +343 -1
  69. data/generated/google/apis/compute_v1.rb +1 -1
  70. data/generated/google/apis/compute_v1/classes.rb +54 -39
  71. data/generated/google/apis/compute_v1/representations.rb +1 -0
  72. data/generated/google/apis/containeranalysis_v1alpha1.rb +1 -1
  73. data/generated/google/apis/containeranalysis_v1alpha1/classes.rb +75 -41
  74. data/generated/google/apis/containeranalysis_v1beta1.rb +1 -1
  75. data/generated/google/apis/containeranalysis_v1beta1/classes.rb +77 -43
  76. data/generated/google/apis/containeranalysis_v1beta1/service.rb +26 -20
  77. data/generated/google/apis/content_v2.rb +1 -1
  78. data/generated/google/apis/content_v2/classes.rb +46 -42
  79. data/generated/google/apis/content_v2_1.rb +1 -1
  80. data/generated/google/apis/content_v2_1/classes.rb +46 -42
  81. data/generated/google/apis/datacatalog_v1beta1.rb +1 -1
  82. data/generated/google/apis/datacatalog_v1beta1/classes.rb +75 -41
  83. data/generated/google/apis/datastore_v1.rb +1 -1
  84. data/generated/google/apis/datastore_v1/classes.rb +16 -22
  85. data/generated/google/apis/datastore_v1/service.rb +10 -10
  86. data/generated/google/apis/datastore_v1beta3.rb +1 -1
  87. data/generated/google/apis/datastore_v1beta3/classes.rb +5 -4
  88. data/generated/google/apis/datastore_v1beta3/service.rb +8 -8
  89. data/generated/google/apis/dfareporting_v3_4.rb +1 -1
  90. data/generated/google/apis/dfareporting_v3_4/classes.rb +88 -88
  91. data/generated/google/apis/dfareporting_v3_4/representations.rb +39 -39
  92. data/generated/google/apis/dialogflow_v2.rb +1 -1
  93. data/generated/google/apis/dialogflow_v2/classes.rb +1 -1
  94. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  95. data/generated/google/apis/dialogflow_v2beta1/classes.rb +1 -1
  96. data/generated/google/apis/dlp_v2.rb +1 -1
  97. data/generated/google/apis/dlp_v2/classes.rb +77 -0
  98. data/generated/google/apis/dlp_v2/representations.rb +42 -0
  99. data/generated/google/apis/file_v1.rb +1 -1
  100. data/generated/google/apis/file_v1/classes.rb +59 -12
  101. data/generated/google/apis/file_v1/representations.rb +19 -2
  102. data/generated/google/apis/file_v1/service.rb +8 -4
  103. data/generated/google/apis/file_v1beta1.rb +1 -1
  104. data/generated/google/apis/file_v1beta1/classes.rb +59 -12
  105. data/generated/google/apis/file_v1beta1/representations.rb +19 -2
  106. data/generated/google/apis/file_v1beta1/service.rb +8 -4
  107. data/generated/google/apis/firebaserules_v1.rb +1 -1
  108. data/generated/google/apis/firebaserules_v1/classes.rb +75 -0
  109. data/generated/google/apis/firebaserules_v1/representations.rb +35 -0
  110. data/generated/google/apis/gmail_v1.rb +1 -1
  111. data/generated/google/apis/gmail_v1/classes.rb +6 -2
  112. data/generated/google/apis/iamcredentials_v1.rb +1 -1
  113. data/generated/google/apis/iamcredentials_v1/classes.rb +7 -4
  114. data/generated/google/apis/iamcredentials_v1/service.rb +4 -4
  115. data/generated/google/apis/iap_v1.rb +1 -1
  116. data/generated/google/apis/iap_v1/classes.rb +225 -40
  117. data/generated/google/apis/iap_v1/representations.rb +84 -0
  118. data/generated/google/apis/iap_v1/service.rb +292 -0
  119. data/generated/google/apis/iap_v1beta1.rb +1 -1
  120. data/generated/google/apis/iap_v1beta1/classes.rb +75 -40
  121. data/generated/google/apis/logging_v2.rb +1 -1
  122. data/generated/google/apis/logging_v2/classes.rb +29 -41
  123. data/generated/google/apis/ml_v1.rb +1 -1
  124. data/generated/google/apis/ml_v1/classes.rb +14 -21
  125. data/generated/google/apis/ml_v1/service.rb +15 -18
  126. data/generated/google/apis/monitoring_v1.rb +1 -1
  127. data/generated/google/apis/monitoring_v1/classes.rb +15 -11
  128. data/generated/google/apis/monitoring_v3.rb +1 -1
  129. data/generated/google/apis/monitoring_v3/classes.rb +6 -10
  130. data/generated/google/apis/monitoring_v3/representations.rb +0 -1
  131. data/generated/google/apis/{fusiontables_v1.rb → policytroubleshooter_v1.rb} +10 -13
  132. data/generated/google/apis/policytroubleshooter_v1/classes.rb +700 -0
  133. data/generated/google/apis/policytroubleshooter_v1/representations.rb +203 -0
  134. data/generated/google/apis/policytroubleshooter_v1/service.rb +90 -0
  135. data/generated/google/apis/pubsub_v1.rb +1 -1
  136. data/generated/google/apis/pubsub_v1/classes.rb +75 -41
  137. data/generated/google/apis/pubsub_v1beta2.rb +1 -1
  138. data/generated/google/apis/pubsub_v1beta2/classes.rb +75 -41
  139. data/generated/google/apis/remotebuildexecution_v1alpha.rb +1 -1
  140. data/generated/google/apis/remotebuildexecution_v1alpha/classes.rb +1 -1
  141. data/generated/google/apis/remotebuildexecution_v2.rb +1 -1
  142. data/generated/google/apis/remotebuildexecution_v2/classes.rb +1 -1
  143. data/generated/google/apis/run_v1.rb +1 -1
  144. data/generated/google/apis/run_v1/classes.rb +75 -41
  145. data/generated/google/apis/run_v1alpha1.rb +1 -1
  146. data/generated/google/apis/run_v1alpha1/classes.rb +82 -41
  147. data/generated/google/apis/run_v1alpha1/representations.rb +2 -0
  148. data/generated/google/apis/{fusiontables_v2.rb → secretmanager_v1beta1.rb} +11 -14
  149. data/generated/google/apis/secretmanager_v1beta1/classes.rb +936 -0
  150. data/generated/google/apis/secretmanager_v1beta1/representations.rb +388 -0
  151. data/generated/google/apis/secretmanager_v1beta1/service.rb +674 -0
  152. data/generated/google/apis/serviceconsumermanagement_v1.rb +1 -1
  153. data/generated/google/apis/serviceconsumermanagement_v1/classes.rb +85 -1
  154. data/generated/google/apis/serviceconsumermanagement_v1/representations.rb +32 -0
  155. data/generated/google/apis/servicecontrol_v1.rb +1 -1
  156. data/generated/google/apis/servicecontrol_v1/classes.rb +4 -3
  157. data/generated/google/apis/servicecontrol_v1/service.rb +2 -1
  158. data/generated/google/apis/servicenetworking_v1.rb +1 -1
  159. data/generated/google/apis/servicenetworking_v1/classes.rb +38 -1
  160. data/generated/google/apis/servicenetworking_v1/representations.rb +14 -0
  161. data/generated/google/apis/servicenetworking_v1/service.rb +35 -0
  162. data/generated/google/apis/servicenetworking_v1beta.rb +1 -1
  163. data/generated/google/apis/servicenetworking_v1beta/classes.rb +16 -1
  164. data/generated/google/apis/servicenetworking_v1beta/representations.rb +1 -0
  165. data/generated/google/apis/serviceusage_v1.rb +1 -1
  166. data/generated/google/apis/serviceusage_v1/classes.rb +16 -1
  167. data/generated/google/apis/serviceusage_v1/representations.rb +1 -0
  168. data/generated/google/apis/serviceusage_v1beta1.rb +1 -1
  169. data/generated/google/apis/serviceusage_v1beta1/classes.rb +16 -1
  170. data/generated/google/apis/serviceusage_v1beta1/representations.rb +1 -0
  171. data/generated/google/apis/storagetransfer_v1.rb +1 -1
  172. data/generated/google/apis/storagetransfer_v1/service.rb +4 -2
  173. data/generated/google/apis/testing_v1.rb +1 -1
  174. data/generated/google/apis/testing_v1/classes.rb +2 -2
  175. data/generated/google/apis/toolresults_v1beta3.rb +1 -1
  176. data/generated/google/apis/toolresults_v1beta3/classes.rb +374 -2
  177. data/generated/google/apis/toolresults_v1beta3/representations.rb +109 -0
  178. data/generated/google/apis/toolresults_v1beta3/service.rb +98 -0
  179. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  180. data/lib/google/apis/version.rb +1 -1
  181. metadata +11 -11
  182. data/generated/google/apis/fusiontables_v1/classes.rb +0 -977
  183. data/generated/google/apis/fusiontables_v1/representations.rb +0 -449
  184. data/generated/google/apis/fusiontables_v1/service.rb +0 -1307
  185. data/generated/google/apis/fusiontables_v2/classes.rb +0 -1049
  186. data/generated/google/apis/fusiontables_v2/representations.rb +0 -457
  187. data/generated/google/apis/fusiontables_v2/service.rb +0 -1431
@@ -0,0 +1,700 @@
1
+ # Copyright 2015 Google Inc.
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
+ # http://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 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module PolicytroubleshooterV1
24
+
25
+ # Information about the member, resource, and permission to check.
26
+ class GoogleCloudPolicytroubleshooterV1AccessTuple
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Required. The full resource name that identifies the resource. For example,
30
+ # `//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-
31
+ # instance`.
32
+ # For examples of full resource names for Google Cloud services, see
33
+ # https://cloud.google.com/iam/help/troubleshooter/full-resource-names.
34
+ # Corresponds to the JSON property `fullResourceName`
35
+ # @return [String]
36
+ attr_accessor :full_resource_name
37
+
38
+ # Required. The IAM permission to check for the specified member and resource.
39
+ # For a complete list of IAM permissions, see
40
+ # https://cloud.google.com/iam/help/permissions/reference.
41
+ # For a complete list of predefined IAM roles and the permissions in each
42
+ # role, see https://cloud.google.com/iam/help/roles/reference.
43
+ # Corresponds to the JSON property `permission`
44
+ # @return [String]
45
+ attr_accessor :permission
46
+
47
+ # Required. The member, or principal, whose access you want to check, in the
48
+ # form of
49
+ # the email address that represents that member. For example,
50
+ # `alice@example.com` or
51
+ # `my-service-account@my-project.iam.gserviceaccount.com`.
52
+ # The member must be a Google Account or a service account. Other types of
53
+ # members are not supported.
54
+ # Corresponds to the JSON property `principal`
55
+ # @return [String]
56
+ attr_accessor :principal
57
+
58
+ def initialize(**args)
59
+ update!(**args)
60
+ end
61
+
62
+ # Update properties of this object
63
+ def update!(**args)
64
+ @full_resource_name = args[:full_resource_name] if args.key?(:full_resource_name)
65
+ @permission = args[:permission] if args.key?(:permission)
66
+ @principal = args[:principal] if args.key?(:principal)
67
+ end
68
+ end
69
+
70
+ # Details about how a binding in a policy affects a member's ability to use a
71
+ # permission.
72
+ class GoogleCloudPolicytroubleshooterV1BindingExplanation
73
+ include Google::Apis::Core::Hashable
74
+
75
+ # Required. Indicates whether _this binding_ provides the specified permission
76
+ # to the
77
+ # specified member for the specified resource.
78
+ # This field does _not_ indicate whether the member actually has the
79
+ # permission for the resource. There might be another binding that overrides
80
+ # this binding. To determine whether the member actually has the permission,
81
+ # use the `access` field in the
82
+ # TroubleshootIamPolicyResponse.
83
+ # Corresponds to the JSON property `access`
84
+ # @return [String]
85
+ attr_accessor :access
86
+
87
+ # Represents an expression text. Example:
88
+ # title: "User account presence"
89
+ # description: "Determines whether the request has a user account"
90
+ # expression: "size(request.user) > 0"
91
+ # Corresponds to the JSON property `condition`
92
+ # @return [Google::Apis::PolicytroubleshooterV1::GoogleTypeExpr]
93
+ attr_accessor :condition
94
+
95
+ # Indicates whether each member in the binding includes the member specified
96
+ # in the request, either directly or indirectly. Each key identifies a member
97
+ # in the binding, and each value indicates whether the member in the binding
98
+ # includes the member in the request.
99
+ # For example, suppose that a binding includes the following members:
100
+ # * `user:alice@example.com`
101
+ # * `group:product-eng@example.com`
102
+ # You want to troubleshoot access for `user:bob@example.com`. This user is a
103
+ # member of the group `group:product-eng@example.com`.
104
+ # For the first member in the binding, the key is `user:alice@example.com`,
105
+ # and the `membership` field in the value is set to
106
+ # `MEMBERSHIP_NOT_INCLUDED`.
107
+ # For the second member in the binding, the key is
108
+ # `group:product-eng@example.com`, and the `membership` field in the value is
109
+ # set to `MEMBERSHIP_INCLUDED`.
110
+ # Corresponds to the JSON property `memberships`
111
+ # @return [Hash<String,Google::Apis::PolicytroubleshooterV1::GoogleCloudPolicytroubleshooterV1BindingExplanationAnnotatedMembership>]
112
+ attr_accessor :memberships
113
+
114
+ # The relevance of this binding to the overall determination for the entire
115
+ # policy.
116
+ # Corresponds to the JSON property `relevance`
117
+ # @return [String]
118
+ attr_accessor :relevance
119
+
120
+ # The role that this binding grants. For example,
121
+ # `roles/compute.serviceAgent`.
122
+ # For a complete list of predefined IAM roles, as well as the permissions in
123
+ # each role, see https://cloud.google.com/iam/help/roles/reference.
124
+ # Corresponds to the JSON property `role`
125
+ # @return [String]
126
+ attr_accessor :role
127
+
128
+ # Indicates whether the role granted by this binding contains the specified
129
+ # permission.
130
+ # Corresponds to the JSON property `rolePermission`
131
+ # @return [String]
132
+ attr_accessor :role_permission
133
+
134
+ # The relevance of the permission's existence, or nonexistence, in the role
135
+ # to the overall determination for the entire policy.
136
+ # Corresponds to the JSON property `rolePermissionRelevance`
137
+ # @return [String]
138
+ attr_accessor :role_permission_relevance
139
+
140
+ def initialize(**args)
141
+ update!(**args)
142
+ end
143
+
144
+ # Update properties of this object
145
+ def update!(**args)
146
+ @access = args[:access] if args.key?(:access)
147
+ @condition = args[:condition] if args.key?(:condition)
148
+ @memberships = args[:memberships] if args.key?(:memberships)
149
+ @relevance = args[:relevance] if args.key?(:relevance)
150
+ @role = args[:role] if args.key?(:role)
151
+ @role_permission = args[:role_permission] if args.key?(:role_permission)
152
+ @role_permission_relevance = args[:role_permission_relevance] if args.key?(:role_permission_relevance)
153
+ end
154
+ end
155
+
156
+ # Details about whether the binding includes the member.
157
+ class GoogleCloudPolicytroubleshooterV1BindingExplanationAnnotatedMembership
158
+ include Google::Apis::Core::Hashable
159
+
160
+ # Indicates whether the binding includes the member.
161
+ # Corresponds to the JSON property `membership`
162
+ # @return [String]
163
+ attr_accessor :membership
164
+
165
+ # The relevance of the member's status to the overall determination for the
166
+ # binding.
167
+ # Corresponds to the JSON property `relevance`
168
+ # @return [String]
169
+ attr_accessor :relevance
170
+
171
+ def initialize(**args)
172
+ update!(**args)
173
+ end
174
+
175
+ # Update properties of this object
176
+ def update!(**args)
177
+ @membership = args[:membership] if args.key?(:membership)
178
+ @relevance = args[:relevance] if args.key?(:relevance)
179
+ end
180
+ end
181
+
182
+ # Details about how a specific IAM Policy contributed
183
+ # to the access check.
184
+ class GoogleCloudPolicytroubleshooterV1ExplainedPolicy
185
+ include Google::Apis::Core::Hashable
186
+
187
+ # Indicates whether _this policy_ provides the specified permission to the
188
+ # specified member for the specified resource.
189
+ # This field does _not_ indicate whether the member actually has the
190
+ # permission for the resource. There might be another policy that overrides
191
+ # this policy. To determine whether the member actually has the permission,
192
+ # use the `access` field in the
193
+ # TroubleshootIamPolicyResponse.
194
+ # Corresponds to the JSON property `access`
195
+ # @return [String]
196
+ attr_accessor :access
197
+
198
+ # Details about how each binding in the policy affects the member's ability,
199
+ # or inability, to use the permission for the resource.
200
+ # If the sender of the request does not have access to the policy, this field
201
+ # is omitted.
202
+ # Corresponds to the JSON property `bindingExplanations`
203
+ # @return [Array<Google::Apis::PolicytroubleshooterV1::GoogleCloudPolicytroubleshooterV1BindingExplanation>]
204
+ attr_accessor :binding_explanations
205
+
206
+ # The full resource name that identifies the resource. For example,
207
+ # `//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-
208
+ # instance`.
209
+ # If the sender of the request does not have access to the policy, this field
210
+ # is omitted.
211
+ # For examples of full resource names for Google Cloud services, see
212
+ # https://cloud.google.com/iam/help/troubleshooter/full-resource-names.
213
+ # Corresponds to the JSON property `fullResourceName`
214
+ # @return [String]
215
+ attr_accessor :full_resource_name
216
+
217
+ # An Identity and Access Management (IAM) policy, which specifies access
218
+ # controls for Google Cloud resources.
219
+ # A `Policy` is a collection of `bindings`. A `binding` binds one or more
220
+ # `members` to a single `role`. Members can be user accounts, service accounts,
221
+ # Google groups, and domains (such as G Suite). A `role` is a named list of
222
+ # permissions; each `role` can be an IAM predefined role or a user-created
223
+ # custom role.
224
+ # Optionally, a `binding` can specify a `condition`, which is a logical
225
+ # expression that allows access to a resource only if the expression evaluates
226
+ # to `true`. A condition can add constraints based on attributes of the
227
+ # request, the resource, or both.
228
+ # **JSON example:**
229
+ # `
230
+ # "bindings": [
231
+ # `
232
+ # "role": "roles/resourcemanager.organizationAdmin",
233
+ # "members": [
234
+ # "user:mike@example.com",
235
+ # "group:admins@example.com",
236
+ # "domain:google.com",
237
+ # "serviceAccount:my-project-id@appspot.gserviceaccount.com"
238
+ # ]
239
+ # `,
240
+ # `
241
+ # "role": "roles/resourcemanager.organizationViewer",
242
+ # "members": ["user:eve@example.com"],
243
+ # "condition": `
244
+ # "title": "expirable access",
245
+ # "description": "Does not grant access after Sep 2020",
246
+ # "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')
247
+ # ",
248
+ # `
249
+ # `
250
+ # ],
251
+ # "etag": "BwWWja0YfJA=",
252
+ # "version": 3
253
+ # `
254
+ # **YAML example:**
255
+ # bindings:
256
+ # - members:
257
+ # - user:mike@example.com
258
+ # - group:admins@example.com
259
+ # - domain:google.com
260
+ # - serviceAccount:my-project-id@appspot.gserviceaccount.com
261
+ # role: roles/resourcemanager.organizationAdmin
262
+ # - members:
263
+ # - user:eve@example.com
264
+ # role: roles/resourcemanager.organizationViewer
265
+ # condition:
266
+ # title: expirable access
267
+ # description: Does not grant access after Sep 2020
268
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
269
+ # - etag: BwWWja0YfJA=
270
+ # - version: 3
271
+ # For a description of IAM and its features, see the
272
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
273
+ # Corresponds to the JSON property `policy`
274
+ # @return [Google::Apis::PolicytroubleshooterV1::GoogleIamV1Policy]
275
+ attr_accessor :policy
276
+
277
+ # The relevance of this policy to the overall determination in the
278
+ # TroubleshootIamPolicyResponse.
279
+ # If the sender of the request does not have access to the policy, this field
280
+ # is omitted.
281
+ # Corresponds to the JSON property `relevance`
282
+ # @return [String]
283
+ attr_accessor :relevance
284
+
285
+ def initialize(**args)
286
+ update!(**args)
287
+ end
288
+
289
+ # Update properties of this object
290
+ def update!(**args)
291
+ @access = args[:access] if args.key?(:access)
292
+ @binding_explanations = args[:binding_explanations] if args.key?(:binding_explanations)
293
+ @full_resource_name = args[:full_resource_name] if args.key?(:full_resource_name)
294
+ @policy = args[:policy] if args.key?(:policy)
295
+ @relevance = args[:relevance] if args.key?(:relevance)
296
+ end
297
+ end
298
+
299
+ # Request for TroubleshootIamPolicy.
300
+ class GoogleCloudPolicytroubleshooterV1TroubleshootIamPolicyRequest
301
+ include Google::Apis::Core::Hashable
302
+
303
+ # Information about the member, resource, and permission to check.
304
+ # Corresponds to the JSON property `accessTuple`
305
+ # @return [Google::Apis::PolicytroubleshooterV1::GoogleCloudPolicytroubleshooterV1AccessTuple]
306
+ attr_accessor :access_tuple
307
+
308
+ def initialize(**args)
309
+ update!(**args)
310
+ end
311
+
312
+ # Update properties of this object
313
+ def update!(**args)
314
+ @access_tuple = args[:access_tuple] if args.key?(:access_tuple)
315
+ end
316
+ end
317
+
318
+ # Response for TroubleshootIamPolicy.
319
+ class GoogleCloudPolicytroubleshooterV1TroubleshootIamPolicyResponse
320
+ include Google::Apis::Core::Hashable
321
+
322
+ # Indicates whether the member has the specified permission for the specified
323
+ # resource, based on evaluating all of the applicable IAM policies.
324
+ # Corresponds to the JSON property `access`
325
+ # @return [String]
326
+ attr_accessor :access
327
+
328
+ # List of IAM policies that were evaluated to check the member's permissions,
329
+ # with annotations to indicate how each policy contributed to the final
330
+ # result.
331
+ # The list of policies can include the policy for the resource itself. It can
332
+ # also include policies that are inherited from higher levels of the resource
333
+ # hierarchy, including the organization, the folder, and the project.
334
+ # To learn more about the resource hierarchy, see
335
+ # https://cloud.google.com/iam/help/resource-hierarchy.
336
+ # Corresponds to the JSON property `explainedPolicies`
337
+ # @return [Array<Google::Apis::PolicytroubleshooterV1::GoogleCloudPolicytroubleshooterV1ExplainedPolicy>]
338
+ attr_accessor :explained_policies
339
+
340
+ def initialize(**args)
341
+ update!(**args)
342
+ end
343
+
344
+ # Update properties of this object
345
+ def update!(**args)
346
+ @access = args[:access] if args.key?(:access)
347
+ @explained_policies = args[:explained_policies] if args.key?(:explained_policies)
348
+ end
349
+ end
350
+
351
+ # Specifies the audit configuration for a service.
352
+ # The configuration determines which permission types are logged, and what
353
+ # identities, if any, are exempted from logging.
354
+ # An AuditConfig must have one or more AuditLogConfigs.
355
+ # If there are AuditConfigs for both `allServices` and a specific service,
356
+ # the union of the two AuditConfigs is used for that service: the log_types
357
+ # specified in each AuditConfig are enabled, and the exempted_members in each
358
+ # AuditLogConfig are exempted.
359
+ # Example Policy with multiple AuditConfigs:
360
+ # `
361
+ # "audit_configs": [
362
+ # `
363
+ # "service": "allServices"
364
+ # "audit_log_configs": [
365
+ # `
366
+ # "log_type": "DATA_READ",
367
+ # "exempted_members": [
368
+ # "user:jose@example.com"
369
+ # ]
370
+ # `,
371
+ # `
372
+ # "log_type": "DATA_WRITE",
373
+ # `,
374
+ # `
375
+ # "log_type": "ADMIN_READ",
376
+ # `
377
+ # ]
378
+ # `,
379
+ # `
380
+ # "service": "sampleservice.googleapis.com"
381
+ # "audit_log_configs": [
382
+ # `
383
+ # "log_type": "DATA_READ",
384
+ # `,
385
+ # `
386
+ # "log_type": "DATA_WRITE",
387
+ # "exempted_members": [
388
+ # "user:aliya@example.com"
389
+ # ]
390
+ # `
391
+ # ]
392
+ # `
393
+ # ]
394
+ # `
395
+ # For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
396
+ # logging. It also exempts jose@example.com from DATA_READ logging, and
397
+ # aliya@example.com from DATA_WRITE logging.
398
+ class GoogleIamV1AuditConfig
399
+ include Google::Apis::Core::Hashable
400
+
401
+ # The configuration for logging of each type of permission.
402
+ # Corresponds to the JSON property `auditLogConfigs`
403
+ # @return [Array<Google::Apis::PolicytroubleshooterV1::GoogleIamV1AuditLogConfig>]
404
+ attr_accessor :audit_log_configs
405
+
406
+ # Specifies a service that will be enabled for audit logging.
407
+ # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
408
+ # `allServices` is a special value that covers all services.
409
+ # Corresponds to the JSON property `service`
410
+ # @return [String]
411
+ attr_accessor :service
412
+
413
+ def initialize(**args)
414
+ update!(**args)
415
+ end
416
+
417
+ # Update properties of this object
418
+ def update!(**args)
419
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
420
+ @service = args[:service] if args.key?(:service)
421
+ end
422
+ end
423
+
424
+ # Provides the configuration for logging a type of permissions.
425
+ # Example:
426
+ # `
427
+ # "audit_log_configs": [
428
+ # `
429
+ # "log_type": "DATA_READ",
430
+ # "exempted_members": [
431
+ # "user:jose@example.com"
432
+ # ]
433
+ # `,
434
+ # `
435
+ # "log_type": "DATA_WRITE",
436
+ # `
437
+ # ]
438
+ # `
439
+ # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
440
+ # jose@example.com from DATA_READ logging.
441
+ class GoogleIamV1AuditLogConfig
442
+ include Google::Apis::Core::Hashable
443
+
444
+ # Specifies the identities that do not cause logging for this type of
445
+ # permission.
446
+ # Follows the same format of Binding.members.
447
+ # Corresponds to the JSON property `exemptedMembers`
448
+ # @return [Array<String>]
449
+ attr_accessor :exempted_members
450
+
451
+ # The log type that this config enables.
452
+ # Corresponds to the JSON property `logType`
453
+ # @return [String]
454
+ attr_accessor :log_type
455
+
456
+ def initialize(**args)
457
+ update!(**args)
458
+ end
459
+
460
+ # Update properties of this object
461
+ def update!(**args)
462
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
463
+ @log_type = args[:log_type] if args.key?(:log_type)
464
+ end
465
+ end
466
+
467
+ # Associates `members` with a `role`.
468
+ class GoogleIamV1Binding
469
+ include Google::Apis::Core::Hashable
470
+
471
+ # Represents an expression text. Example:
472
+ # title: "User account presence"
473
+ # description: "Determines whether the request has a user account"
474
+ # expression: "size(request.user) > 0"
475
+ # Corresponds to the JSON property `condition`
476
+ # @return [Google::Apis::PolicytroubleshooterV1::GoogleTypeExpr]
477
+ attr_accessor :condition
478
+
479
+ # Specifies the identities requesting access for a Cloud Platform resource.
480
+ # `members` can have the following values:
481
+ # * `allUsers`: A special identifier that represents anyone who is
482
+ # on the internet; with or without a Google account.
483
+ # * `allAuthenticatedUsers`: A special identifier that represents anyone
484
+ # who is authenticated with a Google account or a service account.
485
+ # * `user:`emailid``: An email address that represents a specific Google
486
+ # account. For example, `alice@example.com` .
487
+ # * `serviceAccount:`emailid``: An email address that represents a service
488
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`.
489
+ # * `group:`emailid``: An email address that represents a Google group.
490
+ # For example, `admins@example.com`.
491
+ # * `deleted:user:`emailid`?uid=`uniqueid``: An email address (plus unique
492
+ # identifier) representing a user that has been recently deleted. For
493
+ # example, `alice@example.com?uid=123456789012345678901`. If the user is
494
+ # recovered, this value reverts to `user:`emailid`` and the recovered user
495
+ # retains the role in the binding.
496
+ # * `deleted:serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus
497
+ # unique identifier) representing a service account that has been recently
498
+ # deleted. For example,
499
+ # `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
500
+ # If the service account is undeleted, this value reverts to
501
+ # `serviceAccount:`emailid`` and the undeleted service account retains the
502
+ # role in the binding.
503
+ # * `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
504
+ # identifier) representing a Google group that has been recently
505
+ # deleted. For example, `admins@example.com?uid=123456789012345678901`. If
506
+ # the group is recovered, this value reverts to `group:`emailid`` and the
507
+ # recovered group retains the role in the binding.
508
+ # * `domain:`domain``: The G Suite domain (primary) that represents all the
509
+ # users of that domain. For example, `google.com` or `example.com`.
510
+ # Corresponds to the JSON property `members`
511
+ # @return [Array<String>]
512
+ attr_accessor :members
513
+
514
+ # Role that is assigned to `members`.
515
+ # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
516
+ # Corresponds to the JSON property `role`
517
+ # @return [String]
518
+ attr_accessor :role
519
+
520
+ def initialize(**args)
521
+ update!(**args)
522
+ end
523
+
524
+ # Update properties of this object
525
+ def update!(**args)
526
+ @condition = args[:condition] if args.key?(:condition)
527
+ @members = args[:members] if args.key?(:members)
528
+ @role = args[:role] if args.key?(:role)
529
+ end
530
+ end
531
+
532
+ # An Identity and Access Management (IAM) policy, which specifies access
533
+ # controls for Google Cloud resources.
534
+ # A `Policy` is a collection of `bindings`. A `binding` binds one or more
535
+ # `members` to a single `role`. Members can be user accounts, service accounts,
536
+ # Google groups, and domains (such as G Suite). A `role` is a named list of
537
+ # permissions; each `role` can be an IAM predefined role or a user-created
538
+ # custom role.
539
+ # Optionally, a `binding` can specify a `condition`, which is a logical
540
+ # expression that allows access to a resource only if the expression evaluates
541
+ # to `true`. A condition can add constraints based on attributes of the
542
+ # request, the resource, or both.
543
+ # **JSON example:**
544
+ # `
545
+ # "bindings": [
546
+ # `
547
+ # "role": "roles/resourcemanager.organizationAdmin",
548
+ # "members": [
549
+ # "user:mike@example.com",
550
+ # "group:admins@example.com",
551
+ # "domain:google.com",
552
+ # "serviceAccount:my-project-id@appspot.gserviceaccount.com"
553
+ # ]
554
+ # `,
555
+ # `
556
+ # "role": "roles/resourcemanager.organizationViewer",
557
+ # "members": ["user:eve@example.com"],
558
+ # "condition": `
559
+ # "title": "expirable access",
560
+ # "description": "Does not grant access after Sep 2020",
561
+ # "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')
562
+ # ",
563
+ # `
564
+ # `
565
+ # ],
566
+ # "etag": "BwWWja0YfJA=",
567
+ # "version": 3
568
+ # `
569
+ # **YAML example:**
570
+ # bindings:
571
+ # - members:
572
+ # - user:mike@example.com
573
+ # - group:admins@example.com
574
+ # - domain:google.com
575
+ # - serviceAccount:my-project-id@appspot.gserviceaccount.com
576
+ # role: roles/resourcemanager.organizationAdmin
577
+ # - members:
578
+ # - user:eve@example.com
579
+ # role: roles/resourcemanager.organizationViewer
580
+ # condition:
581
+ # title: expirable access
582
+ # description: Does not grant access after Sep 2020
583
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
584
+ # - etag: BwWWja0YfJA=
585
+ # - version: 3
586
+ # For a description of IAM and its features, see the
587
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
588
+ class GoogleIamV1Policy
589
+ include Google::Apis::Core::Hashable
590
+
591
+ # Specifies cloud audit logging configuration for this policy.
592
+ # Corresponds to the JSON property `auditConfigs`
593
+ # @return [Array<Google::Apis::PolicytroubleshooterV1::GoogleIamV1AuditConfig>]
594
+ attr_accessor :audit_configs
595
+
596
+ # Associates a list of `members` to a `role`. Optionally, may specify a
597
+ # `condition` that determines how and when the `bindings` are applied. Each
598
+ # of the `bindings` must contain at least one member.
599
+ # Corresponds to the JSON property `bindings`
600
+ # @return [Array<Google::Apis::PolicytroubleshooterV1::GoogleIamV1Binding>]
601
+ attr_accessor :bindings
602
+
603
+ # `etag` is used for optimistic concurrency control as a way to help
604
+ # prevent simultaneous updates of a policy from overwriting each other.
605
+ # It is strongly suggested that systems make use of the `etag` in the
606
+ # read-modify-write cycle to perform policy updates in order to avoid race
607
+ # conditions: An `etag` is returned in the response to `getIamPolicy`, and
608
+ # systems are expected to put that etag in the request to `setIamPolicy` to
609
+ # ensure that their change will be applied to the same version of the policy.
610
+ # **Important:** If you use IAM Conditions, you must include the `etag` field
611
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
612
+ # you to overwrite a version `3` policy with a version `1` policy, and all of
613
+ # the conditions in the version `3` policy are lost.
614
+ # Corresponds to the JSON property `etag`
615
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
616
+ # @return [String]
617
+ attr_accessor :etag
618
+
619
+ # Specifies the format of the policy.
620
+ # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
621
+ # are rejected.
622
+ # Any operation that affects conditional role bindings must specify version
623
+ # `3`. This requirement applies to the following operations:
624
+ # * Getting a policy that includes a conditional role binding
625
+ # * Adding a conditional role binding to a policy
626
+ # * Changing a conditional role binding in a policy
627
+ # * Removing any role binding, with or without a condition, from a policy
628
+ # that includes conditions
629
+ # **Important:** If you use IAM Conditions, you must include the `etag` field
630
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
631
+ # you to overwrite a version `3` policy with a version `1` policy, and all of
632
+ # the conditions in the version `3` policy are lost.
633
+ # If a policy does not include any conditions, operations on that policy may
634
+ # specify any valid version or leave the field unset.
635
+ # Corresponds to the JSON property `version`
636
+ # @return [Fixnum]
637
+ attr_accessor :version
638
+
639
+ def initialize(**args)
640
+ update!(**args)
641
+ end
642
+
643
+ # Update properties of this object
644
+ def update!(**args)
645
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
646
+ @bindings = args[:bindings] if args.key?(:bindings)
647
+ @etag = args[:etag] if args.key?(:etag)
648
+ @version = args[:version] if args.key?(:version)
649
+ end
650
+ end
651
+
652
+ # Represents an expression text. Example:
653
+ # title: "User account presence"
654
+ # description: "Determines whether the request has a user account"
655
+ # expression: "size(request.user) > 0"
656
+ class GoogleTypeExpr
657
+ include Google::Apis::Core::Hashable
658
+
659
+ # An optional description of the expression. This is a longer text which
660
+ # describes the expression, e.g. when hovered over it in a UI.
661
+ # Corresponds to the JSON property `description`
662
+ # @return [String]
663
+ attr_accessor :description
664
+
665
+ # Textual representation of an expression in
666
+ # Common Expression Language syntax.
667
+ # The application context of the containing message determines which
668
+ # well-known feature set of CEL is supported.
669
+ # Corresponds to the JSON property `expression`
670
+ # @return [String]
671
+ attr_accessor :expression
672
+
673
+ # An optional string indicating the location of the expression for error
674
+ # reporting, e.g. a file name and a position in the file.
675
+ # Corresponds to the JSON property `location`
676
+ # @return [String]
677
+ attr_accessor :location
678
+
679
+ # An optional title for the expression, i.e. a short string describing
680
+ # its purpose. This can be used e.g. in UIs which allow to enter the
681
+ # expression.
682
+ # Corresponds to the JSON property `title`
683
+ # @return [String]
684
+ attr_accessor :title
685
+
686
+ def initialize(**args)
687
+ update!(**args)
688
+ end
689
+
690
+ # Update properties of this object
691
+ def update!(**args)
692
+ @description = args[:description] if args.key?(:description)
693
+ @expression = args[:expression] if args.key?(:expression)
694
+ @location = args[:location] if args.key?(:location)
695
+ @title = args[:title] if args.key?(:title)
696
+ end
697
+ end
698
+ end
699
+ end
700
+ end