google-api-client 0.36.0 → 0.36.1

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 (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