google-api-client 0.9.8 → 0.10.2

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 (320) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +15 -8
  3. data/CHANGELOG.md +84 -0
  4. data/Gemfile +10 -2
  5. data/README.md +10 -2
  6. data/api_names.yaml +37172 -135
  7. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +35 -0
  8. data/generated/google/apis/adexchangebuyer2_v2beta1/classes.rb +1200 -0
  9. data/generated/google/apis/adexchangebuyer2_v2beta1/representations.rb +526 -0
  10. data/generated/google/apis/adexchangebuyer2_v2beta1/service.rb +844 -0
  11. data/generated/google/apis/adexchangebuyer_v1_4.rb +1 -1
  12. data/generated/google/apis/adexchangebuyer_v1_4/classes.rb +310 -28
  13. data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +84 -0
  14. data/generated/google/apis/adexchangebuyer_v1_4/service.rb +60 -8
  15. data/generated/google/apis/adexchangeseller_v2_0.rb +2 -3
  16. data/generated/google/apis/adexchangeseller_v2_0/service.rb +1 -2
  17. data/generated/google/apis/admin_directory_v1.rb +1 -1
  18. data/generated/google/apis/admin_directory_v1/classes.rb +206 -0
  19. data/generated/google/apis/admin_directory_v1/representations.rb +63 -0
  20. data/generated/google/apis/admin_directory_v1/service.rb +41 -2
  21. data/generated/google/apis/admin_reports_v1.rb +5 -5
  22. data/generated/google/apis/admin_reports_v1/service.rb +6 -6
  23. data/generated/google/apis/adsense_v1_4.rb +1 -1
  24. data/generated/google/apis/adsense_v1_4/classes.rb +1 -1
  25. data/generated/google/apis/adsensehost_v4_1.rb +1 -1
  26. data/generated/google/apis/adsensehost_v4_1/classes.rb +1 -2
  27. data/generated/google/apis/analytics_v3.rb +1 -1
  28. data/generated/google/apis/analytics_v3/classes.rb +379 -3
  29. data/generated/google/apis/analytics_v3/representations.rb +136 -0
  30. data/generated/google/apis/analytics_v3/service.rb +256 -0
  31. data/generated/google/apis/analyticsreporting_v4.rb +1 -1
  32. data/generated/google/apis/analyticsreporting_v4/classes.rb +858 -823
  33. data/generated/google/apis/analyticsreporting_v4/representations.rb +194 -193
  34. data/generated/google/apis/analyticsreporting_v4/service.rb +4 -4
  35. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  36. data/generated/google/apis/androidenterprise_v1/classes.rb +913 -220
  37. data/generated/google/apis/androidenterprise_v1/representations.rb +337 -30
  38. data/generated/google/apis/androidenterprise_v1/service.rb +1163 -561
  39. data/generated/google/apis/androidpublisher_v2.rb +1 -1
  40. data/generated/google/apis/androidpublisher_v2/classes.rb +230 -8
  41. data/generated/google/apis/androidpublisher_v2/representations.rb +90 -0
  42. data/generated/google/apis/androidpublisher_v2/service.rb +116 -3
  43. data/generated/google/apis/appengine_v1beta5.rb +7 -1
  44. data/generated/google/apis/appengine_v1beta5/classes.rb +810 -395
  45. data/generated/google/apis/appengine_v1beta5/representations.rb +188 -22
  46. data/generated/google/apis/appengine_v1beta5/service.rb +343 -39
  47. data/generated/google/apis/appsactivity_v1.rb +3 -3
  48. data/generated/google/apis/appsactivity_v1/classes.rb +7 -0
  49. data/generated/google/apis/appsactivity_v1/representations.rb +1 -0
  50. data/generated/google/apis/appsactivity_v1/service.rb +1 -1
  51. data/generated/google/apis/appstate_v1.rb +1 -1
  52. data/generated/google/apis/bigquery_v2.rb +1 -1
  53. data/generated/google/apis/bigquery_v2/classes.rb +360 -38
  54. data/generated/google/apis/bigquery_v2/representations.rb +106 -0
  55. data/generated/google/apis/bigquery_v2/service.rb +18 -4
  56. data/generated/google/apis/books_v1.rb +2 -2
  57. data/generated/google/apis/books_v1/classes.rb +83 -0
  58. data/generated/google/apis/books_v1/representations.rb +35 -0
  59. data/generated/google/apis/books_v1/service.rb +7 -3
  60. data/generated/google/apis/calendar_v3.rb +1 -1
  61. data/generated/google/apis/calendar_v3/classes.rb +208 -5
  62. data/generated/google/apis/calendar_v3/representations.rb +97 -0
  63. data/generated/google/apis/civicinfo_v2.rb +3 -2
  64. data/generated/google/apis/civicinfo_v2/classes.rb +377 -5
  65. data/generated/google/apis/civicinfo_v2/representations.rb +149 -0
  66. data/generated/google/apis/civicinfo_v2/service.rb +27 -6
  67. data/generated/google/apis/classroom_v1.rb +22 -25
  68. data/generated/google/apis/classroom_v1/classes.rb +998 -761
  69. data/generated/google/apis/classroom_v1/representations.rb +263 -198
  70. data/generated/google/apis/classroom_v1/service.rb +1349 -672
  71. data/generated/google/apis/cloudbilling_v1.rb +3 -3
  72. data/generated/google/apis/cloudbilling_v1/classes.rb +76 -75
  73. data/generated/google/apis/cloudbilling_v1/representations.rb +17 -17
  74. data/generated/google/apis/cloudbilling_v1/service.rb +117 -110
  75. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  76. data/generated/google/apis/cloudbuild_v1/classes.rb +661 -264
  77. data/generated/google/apis/cloudbuild_v1/representations.rb +198 -48
  78. data/generated/google/apis/cloudbuild_v1/service.rb +259 -44
  79. data/generated/google/apis/clouddebugger_v2.rb +5 -8
  80. data/generated/google/apis/clouddebugger_v2/classes.rb +686 -616
  81. data/generated/google/apis/clouddebugger_v2/representations.rb +151 -151
  82. data/generated/google/apis/clouddebugger_v2/service.rb +165 -159
  83. data/generated/google/apis/cloudkms_v1.rb +35 -0
  84. data/generated/google/apis/cloudkms_v1/classes.rb +1022 -0
  85. data/generated/google/apis/cloudkms_v1/representations.rb +448 -0
  86. data/generated/google/apis/cloudkms_v1/service.rb +933 -0
  87. data/generated/google/apis/cloudkms_v1beta1.rb +35 -0
  88. data/generated/google/apis/cloudkms_v1beta1/classes.rb +1039 -0
  89. data/generated/google/apis/cloudkms_v1beta1/representations.rb +448 -0
  90. data/generated/google/apis/cloudkms_v1beta1/service.rb +933 -0
  91. data/generated/google/apis/cloudmonitoring_v2beta2.rb +1 -1
  92. data/generated/google/apis/cloudresourcemanager_v1.rb +4 -4
  93. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +1529 -167
  94. data/generated/google/apis/cloudresourcemanager_v1/representations.rb +491 -26
  95. data/generated/google/apis/cloudresourcemanager_v1/service.rb +1593 -135
  96. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  97. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +1155 -235
  98. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +344 -44
  99. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +702 -310
  100. data/generated/google/apis/cloudtrace_v1.rb +9 -9
  101. data/generated/google/apis/cloudtrace_v1/classes.rb +98 -92
  102. data/generated/google/apis/cloudtrace_v1/representations.rb +24 -24
  103. data/generated/google/apis/cloudtrace_v1/service.rb +42 -37
  104. data/generated/google/apis/compute_beta.rb +1 -1
  105. data/generated/google/apis/compute_beta/classes.rb +7007 -3648
  106. data/generated/google/apis/compute_beta/representations.rb +1459 -120
  107. data/generated/google/apis/compute_beta/service.rb +7943 -3726
  108. data/generated/google/apis/compute_v1.rb +1 -1
  109. data/generated/google/apis/compute_v1/classes.rb +2567 -370
  110. data/generated/google/apis/compute_v1/representations.rb +855 -0
  111. data/generated/google/apis/compute_v1/service.rb +6388 -2908
  112. data/generated/google/apis/container_v1.rb +1 -1
  113. data/generated/google/apis/container_v1/classes.rb +287 -16
  114. data/generated/google/apis/container_v1/representations.rb +113 -2
  115. data/generated/google/apis/container_v1/service.rb +130 -0
  116. data/generated/google/apis/content_v2.rb +1 -1
  117. data/generated/google/apis/content_v2/classes.rb +778 -10
  118. data/generated/google/apis/content_v2/representations.rb +339 -0
  119. data/generated/google/apis/content_v2/service.rb +364 -49
  120. data/generated/google/apis/dataflow_v1b3.rb +37 -0
  121. data/generated/google/apis/dataflow_v1b3/classes.rb +4941 -0
  122. data/generated/google/apis/dataflow_v1b3/representations.rb +2037 -0
  123. data/generated/google/apis/dataflow_v1b3/service.rb +957 -0
  124. data/generated/google/apis/dataproc_v1.rb +1 -1
  125. data/generated/google/apis/dataproc_v1/classes.rb +1235 -963
  126. data/generated/google/apis/dataproc_v1/representations.rb +299 -225
  127. data/generated/google/apis/dataproc_v1/service.rb +277 -192
  128. data/generated/google/apis/datastore_v1.rb +38 -0
  129. data/generated/google/apis/datastore_v1/classes.rb +1289 -0
  130. data/generated/google/apis/datastore_v1/representations.rb +572 -0
  131. data/generated/google/apis/datastore_v1/service.rb +259 -0
  132. data/generated/google/apis/datastore_v1beta3.rb +38 -0
  133. data/generated/google/apis/datastore_v1beta3/classes.rb +1284 -0
  134. data/generated/google/apis/datastore_v1beta3/representations.rb +572 -0
  135. data/generated/google/apis/datastore_v1beta3/service.rb +259 -0
  136. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  137. data/generated/google/apis/deploymentmanager_v2/classes.rb +436 -3
  138. data/generated/google/apis/deploymentmanager_v2/representations.rb +178 -0
  139. data/generated/google/apis/deploymentmanager_v2/service.rb +226 -61
  140. data/generated/google/apis/dfareporting_v2_5.rb +40 -0
  141. data/generated/google/apis/dfareporting_v2_5/classes.rb +11225 -0
  142. data/generated/google/apis/dfareporting_v2_5/representations.rb +3982 -0
  143. data/generated/google/apis/dfareporting_v2_5/service.rb +8755 -0
  144. data/generated/google/apis/dfareporting_v2_6.rb +40 -0
  145. data/generated/google/apis/dfareporting_v2_6/classes.rb +11586 -0
  146. data/generated/google/apis/dfareporting_v2_6/representations.rb +4119 -0
  147. data/generated/google/apis/dfareporting_v2_6/service.rb +9025 -0
  148. data/generated/google/apis/dfareporting_v2_7.rb +40 -0
  149. data/generated/google/apis/dfareporting_v2_7/classes.rb +11876 -0
  150. data/generated/google/apis/dfareporting_v2_7/representations.rb +4243 -0
  151. data/generated/google/apis/dfareporting_v2_7/service.rb +9095 -0
  152. data/generated/google/apis/dns_v1.rb +1 -1
  153. data/generated/google/apis/dns_v1/classes.rb +1 -1
  154. data/generated/google/apis/dns_v2beta1.rb +43 -0
  155. data/generated/google/apis/dns_v2beta1/classes.rb +915 -0
  156. data/generated/google/apis/dns_v2beta1/representations.rb +368 -0
  157. data/generated/google/apis/dns_v2beta1/service.rb +768 -0
  158. data/generated/google/apis/doubleclickbidmanager_v1.rb +1 -1
  159. data/generated/google/apis/doubleclickbidmanager_v1/classes.rb +79 -86
  160. data/generated/google/apis/doubleclickbidmanager_v1/representations.rb +25 -28
  161. data/generated/google/apis/doubleclickbidmanager_v1/service.rb +10 -8
  162. data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
  163. data/generated/google/apis/doubleclicksearch_v2/classes.rb +6 -4
  164. data/generated/google/apis/drive_v2.rb +1 -1
  165. data/generated/google/apis/drive_v2/classes.rb +595 -37
  166. data/generated/google/apis/drive_v2/representations.rb +140 -0
  167. data/generated/google/apis/drive_v2/service.rb +406 -40
  168. data/generated/google/apis/drive_v3.rb +1 -1
  169. data/generated/google/apis/drive_v3/classes.rb +507 -40
  170. data/generated/google/apis/drive_v3/representations.rb +105 -0
  171. data/generated/google/apis/drive_v3/service.rb +326 -29
  172. data/generated/google/apis/fitness_v1.rb +38 -2
  173. data/generated/google/apis/fitness_v1/classes.rb +65 -7
  174. data/generated/google/apis/fitness_v1/representations.rb +20 -0
  175. data/generated/google/apis/fitness_v1/service.rb +17 -18
  176. data/generated/google/apis/fusiontables_v2.rb +1 -1
  177. data/generated/google/apis/fusiontables_v2/classes.rb +4 -3
  178. data/generated/google/apis/games_configuration_v1configuration.rb +1 -1
  179. data/generated/google/apis/games_management_v1management.rb +1 -1
  180. data/generated/google/apis/games_v1.rb +1 -1
  181. data/generated/google/apis/genomics_v1.rb +10 -12
  182. data/generated/google/apis/genomics_v1/classes.rb +2276 -2165
  183. data/generated/google/apis/genomics_v1/representations.rb +468 -496
  184. data/generated/google/apis/genomics_v1/service.rb +978 -882
  185. data/generated/google/apis/gmail_v1.rb +11 -2
  186. data/generated/google/apis/gmail_v1/classes.rb +655 -5
  187. data/generated/google/apis/gmail_v1/representations.rb +261 -0
  188. data/generated/google/apis/gmail_v1/service.rb +1211 -48
  189. data/generated/google/apis/groupssettings_v1.rb +2 -2
  190. data/generated/google/apis/groupssettings_v1/classes.rb +12 -0
  191. data/generated/google/apis/groupssettings_v1/representations.rb +2 -0
  192. data/generated/google/apis/iam_v1.rb +2 -2
  193. data/generated/google/apis/iam_v1/classes.rb +446 -368
  194. data/generated/google/apis/iam_v1/representations.rb +109 -91
  195. data/generated/google/apis/iam_v1/service.rb +249 -162
  196. data/generated/google/apis/identitytoolkit_v3.rb +7 -1
  197. data/generated/google/apis/identitytoolkit_v3/classes.rb +254 -2
  198. data/generated/google/apis/identitytoolkit_v3/representations.rb +38 -0
  199. data/generated/google/apis/kgsearch_v1.rb +2 -3
  200. data/generated/google/apis/kgsearch_v1/classes.rb +13 -13
  201. data/generated/google/apis/kgsearch_v1/representations.rb +2 -2
  202. data/generated/google/apis/kgsearch_v1/service.rb +26 -24
  203. data/generated/google/apis/language_v1beta1.rb +36 -0
  204. data/generated/google/apis/language_v1beta1/classes.rb +757 -0
  205. data/generated/google/apis/language_v1beta1/representations.rb +339 -0
  206. data/generated/google/apis/language_v1beta1/service.rb +185 -0
  207. data/generated/google/apis/licensing_v1.rb +3 -3
  208. data/generated/google/apis/licensing_v1/classes.rb +14 -2
  209. data/generated/google/apis/licensing_v1/representations.rb +2 -0
  210. data/generated/google/apis/licensing_v1/service.rb +1 -1
  211. data/generated/google/apis/logging_v2beta1.rb +6 -6
  212. data/generated/google/apis/logging_v2beta1/classes.rb +900 -775
  213. data/generated/google/apis/logging_v2beta1/representations.rb +163 -142
  214. data/generated/google/apis/logging_v2beta1/service.rb +427 -155
  215. data/generated/google/apis/manufacturers_v1.rb +34 -0
  216. data/generated/google/apis/manufacturers_v1/classes.rb +605 -0
  217. data/generated/google/apis/manufacturers_v1/representations.rb +223 -0
  218. data/generated/google/apis/manufacturers_v1/service.rb +138 -0
  219. data/generated/google/apis/mirror_v1.rb +2 -2
  220. data/generated/google/apis/mirror_v1/service.rb +1 -1
  221. data/generated/google/apis/monitoring_v3.rb +45 -0
  222. data/generated/google/apis/monitoring_v3/classes.rb +1333 -0
  223. data/generated/google/apis/monitoring_v3/representations.rb +516 -0
  224. data/generated/google/apis/monitoring_v3/service.rb +706 -0
  225. data/generated/google/apis/oauth2_v2.rb +1 -1
  226. data/generated/google/apis/pagespeedonline_v2.rb +1 -1
  227. data/generated/google/apis/partners_v2.rb +3 -3
  228. data/generated/google/apis/partners_v2/classes.rb +1831 -477
  229. data/generated/google/apis/partners_v2/representations.rb +571 -114
  230. data/generated/google/apis/partners_v2/service.rb +898 -167
  231. data/generated/google/apis/people_v1.rb +15 -16
  232. data/generated/google/apis/people_v1/classes.rb +1047 -859
  233. data/generated/google/apis/people_v1/representations.rb +252 -213
  234. data/generated/google/apis/people_v1/service.rb +75 -62
  235. data/generated/google/apis/plus_domains_v1.rb +1 -1
  236. data/generated/google/apis/plus_v1.rb +1 -1
  237. data/generated/google/apis/proximitybeacon_v1beta1.rb +1 -1
  238. data/generated/google/apis/proximitybeacon_v1beta1/classes.rb +527 -456
  239. data/generated/google/apis/proximitybeacon_v1beta1/representations.rb +101 -100
  240. data/generated/google/apis/proximitybeacon_v1beta1/service.rb +467 -343
  241. data/generated/google/apis/pubsub_v1.rb +1 -1
  242. data/generated/google/apis/pubsub_v1/classes.rb +363 -310
  243. data/generated/google/apis/pubsub_v1/representations.rb +76 -76
  244. data/generated/google/apis/pubsub_v1/service.rb +464 -335
  245. data/generated/google/apis/qpx_express_v1.rb +1 -1
  246. data/generated/google/apis/qpx_express_v1/classes.rb +6 -0
  247. data/generated/google/apis/qpx_express_v1/representations.rb +1 -0
  248. data/generated/google/apis/replicapool_v1beta2.rb +1 -1
  249. data/generated/google/apis/replicapoolupdater_v1beta1.rb +4 -2
  250. data/generated/google/apis/replicapoolupdater_v1beta1/service.rb +3 -1
  251. data/generated/google/apis/reseller_v1.rb +1 -1
  252. data/generated/google/apis/reseller_v1/classes.rb +222 -61
  253. data/generated/google/apis/reseller_v1/representations.rb +28 -0
  254. data/generated/google/apis/reseller_v1/service.rb +240 -47
  255. data/generated/google/apis/script_v1.rb +19 -19
  256. data/generated/google/apis/script_v1/classes.rb +151 -137
  257. data/generated/google/apis/script_v1/representations.rb +26 -26
  258. data/generated/google/apis/script_v1/service.rb +9 -8
  259. data/generated/google/apis/sheets_v4.rb +7 -7
  260. data/generated/google/apis/sheets_v4/classes.rb +4530 -3506
  261. data/generated/google/apis/sheets_v4/representations.rb +988 -737
  262. data/generated/google/apis/sheets_v4/service.rb +266 -99
  263. data/generated/google/apis/site_verification_v1.rb +1 -1
  264. data/generated/google/apis/slides_v1.rb +49 -0
  265. data/generated/google/apis/slides_v1/classes.rb +4480 -0
  266. data/generated/google/apis/slides_v1/representations.rb +1926 -0
  267. data/generated/google/apis/slides_v1/service.rb +245 -0
  268. data/generated/google/apis/speech_v1beta1.rb +34 -0
  269. data/generated/google/apis/speech_v1beta1/classes.rb +498 -0
  270. data/generated/google/apis/speech_v1beta1/representations.rb +206 -0
  271. data/generated/google/apis/speech_v1beta1/service.rb +270 -0
  272. data/generated/google/apis/sqladmin_v1beta4.rb +1 -1
  273. data/generated/google/apis/sqladmin_v1beta4/classes.rb +131 -10
  274. data/generated/google/apis/sqladmin_v1beta4/representations.rb +50 -0
  275. data/generated/google/apis/sqladmin_v1beta4/service.rb +92 -2
  276. data/generated/google/apis/storage_v1.rb +1 -1
  277. data/generated/google/apis/storage_v1/classes.rb +205 -21
  278. data/generated/google/apis/storage_v1/representations.rb +51 -1
  279. data/generated/google/apis/storage_v1/service.rb +263 -9
  280. data/generated/google/apis/tagmanager_v1.rb +5 -5
  281. data/generated/google/apis/translate_v2.rb +2 -2
  282. data/generated/google/apis/translate_v2/service.rb +1 -1
  283. data/generated/google/apis/vision_v1.rb +1 -1
  284. data/generated/google/apis/vision_v1/classes.rb +1275 -731
  285. data/generated/google/apis/vision_v1/representations.rb +378 -111
  286. data/generated/google/apis/vision_v1/service.rb +4 -4
  287. data/generated/google/apis/webmasters_v3.rb +1 -1
  288. data/generated/google/apis/youtube_analytics_v1.rb +1 -1
  289. data/generated/google/apis/youtube_analytics_v1/classes.rb +0 -209
  290. data/generated/google/apis/youtube_analytics_v1/representations.rb +0 -99
  291. data/generated/google/apis/youtube_analytics_v1/service.rb +5 -77
  292. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  293. data/generated/google/apis/youtube_partner_v1/classes.rb +155 -0
  294. data/generated/google/apis/youtube_partner_v1/representations.rb +69 -0
  295. data/generated/google/apis/youtube_partner_v1/service.rb +107 -3
  296. data/generated/google/apis/youtube_v3.rb +1 -1
  297. data/generated/google/apis/youtube_v3/classes.rb +430 -22
  298. data/generated/google/apis/youtube_v3/representations.rb +171 -4
  299. data/generated/google/apis/youtube_v3/service.rb +100 -9
  300. data/generated/google/apis/youtubereporting_v1.rb +4 -4
  301. data/generated/google/apis/youtubereporting_v1/classes.rb +140 -131
  302. data/generated/google/apis/youtubereporting_v1/representations.rb +37 -37
  303. data/generated/google/apis/youtubereporting_v1/service.rb +139 -135
  304. data/google-api-client.gemspec +4 -3
  305. data/lib/google/apis/core/api_command.rb +16 -6
  306. data/lib/google/apis/core/base_service.rb +17 -9
  307. data/lib/google/apis/core/download.rb +7 -2
  308. data/lib/google/apis/core/http_command.rb +5 -1
  309. data/lib/google/apis/core/json_representation.rb +2 -2
  310. data/lib/google/apis/core/upload.rb +7 -1
  311. data/lib/google/apis/errors.rb +6 -2
  312. data/lib/google/apis/generator/annotator.rb +6 -0
  313. data/lib/google/apis/version.rb +1 -1
  314. data/samples/cli/lib/samples/bigquery.rb +101 -0
  315. data/samples/cli/lib/samples/calendar.rb +1 -1
  316. data/samples/cli/lib/samples/gmail.rb +74 -0
  317. data/samples/cli/lib/samples/sheets.rb +61 -0
  318. data/samples/cli/lib/samples/you_tube.rb +4 -1
  319. data/sync.rb +71 -0
  320. metadata +86 -18
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://cloud.google.com/monitoring/v2beta2/
26
26
  module CloudmonitoringV2beta2
27
27
  VERSION = 'V2beta2'
28
- REVISION = '20160415'
28
+ REVISION = '20170323'
29
29
 
30
30
  # View and manage your data across Google Cloud Platform services
31
31
  AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
@@ -26,13 +26,13 @@ module Google
26
26
  # @see https://cloud.google.com/resource-manager
27
27
  module CloudresourcemanagerV1
28
28
  VERSION = 'V1'
29
- REVISION = '20160518'
30
-
31
- # View and manage your data across Google Cloud Platform services
32
- AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
29
+ REVISION = '20170324'
33
30
 
34
31
  # View your data across Google Cloud Platform services
35
32
  AUTH_CLOUD_PLATFORM_READ_ONLY = 'https://www.googleapis.com/auth/cloud-platform.read-only'
33
+
34
+ # View and manage your data across Google Cloud Platform services
35
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
36
36
  end
37
37
  end
38
38
  end
@@ -22,59 +22,181 @@ module Google
22
22
  module Apis
23
23
  module CloudresourcemanagerV1
24
24
 
25
- # A Project is a high-level Google Cloud Platform entity. It is a container for
26
- # ACLs, APIs, AppEngine Apps, VMs, and other Google Cloud Platform resources.
27
- class Project
25
+ # Identifying information for a single ancestor of a project.
26
+ class Ancestor
28
27
  include Google::Apis::Core::Hashable
29
28
 
30
- # The number uniquely identifying the project. Example: 415104041262 Read-only.
31
- # Corresponds to the JSON property `projectNumber`
29
+ # A container to reference an id for any resource type. A `resource` in Google
30
+ # Cloud Platform is a generic term for something you (a developer) may want to
31
+ # interact with through one of our API's. Some examples are an App Engine app,
32
+ # a Compute Engine instance, a Cloud SQL database, and so on.
33
+ # Corresponds to the JSON property `resourceId`
34
+ # @return [Google::Apis::CloudresourcemanagerV1::ResourceId]
35
+ attr_accessor :resource_id
36
+
37
+ def initialize(**args)
38
+ update!(**args)
39
+ end
40
+
41
+ # Update properties of this object
42
+ def update!(**args)
43
+ @resource_id = args[:resource_id] if args.key?(:resource_id)
44
+ end
45
+ end
46
+
47
+ # A `Constraint` that allows or disallows a list of string values, which are
48
+ # configured by an Organization's policy administrator with a `Policy`.
49
+ class ListConstraint
50
+ include Google::Apis::Core::Hashable
51
+
52
+ # Optional. The Google Cloud Console will try to default to a configuration
53
+ # that matches the value specified in this `Constraint`.
54
+ # Corresponds to the JSON property `suggestedValue`
32
55
  # @return [String]
33
- attr_accessor :project_number
56
+ attr_accessor :suggested_value
34
57
 
35
- # The unique, user-assigned ID of the Project. It must be 6 to 30 lowercase
36
- # letters, digits, or hyphens. It must start with a letter. Trailing hyphens are
37
- # prohibited. Example: tokyo-rain-123 Read-only after creation.
38
- # Corresponds to the JSON property `projectId`
58
+ def initialize(**args)
59
+ update!(**args)
60
+ end
61
+
62
+ # Update properties of this object
63
+ def update!(**args)
64
+ @suggested_value = args[:suggested_value] if args.key?(:suggested_value)
65
+ end
66
+ end
67
+
68
+ # The request sent to the SetOrgPolicyRequest method.
69
+ class SetOrgPolicyRequest
70
+ include Google::Apis::Core::Hashable
71
+
72
+ # Defines a Cloud Organization `Policy` which is used to specify `Constraints`
73
+ # for configurations of Cloud Platform resources.
74
+ # Corresponds to the JSON property `policy`
75
+ # @return [Google::Apis::CloudresourcemanagerV1::OrgPolicy]
76
+ attr_accessor :policy
77
+
78
+ def initialize(**args)
79
+ update!(**args)
80
+ end
81
+
82
+ # Update properties of this object
83
+ def update!(**args)
84
+ @policy = args[:policy] if args.key?(:policy)
85
+ end
86
+ end
87
+
88
+ # Request message for `SetIamPolicy` method.
89
+ class SetIamPolicyRequest
90
+ include Google::Apis::Core::Hashable
91
+
92
+ # Defines an Identity and Access Management (IAM) policy. It is used to
93
+ # specify access control policies for Cloud Platform resources.
94
+ # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
95
+ # `members` to a `role`, where the members can be user accounts, Google groups,
96
+ # Google domains, and service accounts. A `role` is a named list of permissions
97
+ # defined by IAM.
98
+ # **Example**
99
+ # `
100
+ # "bindings": [
101
+ # `
102
+ # "role": "roles/owner",
103
+ # "members": [
104
+ # "user:mike@example.com",
105
+ # "group:admins@example.com",
106
+ # "domain:google.com",
107
+ # "serviceAccount:my-other-app@appspot.gserviceaccount.com",
108
+ # ]
109
+ # `,
110
+ # `
111
+ # "role": "roles/viewer",
112
+ # "members": ["user:sean@example.com"]
113
+ # `
114
+ # ]
115
+ # `
116
+ # For a description of IAM and its features, see the
117
+ # [IAM developer's guide](https://cloud.google.com/iam).
118
+ # Corresponds to the JSON property `policy`
119
+ # @return [Google::Apis::CloudresourcemanagerV1::Policy]
120
+ attr_accessor :policy
121
+
122
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
123
+ # the fields in the mask will be modified. If no mask is provided, the
124
+ # following default mask is used:
125
+ # paths: "bindings, etag"
126
+ # This field is only used by Cloud IAM.
127
+ # Corresponds to the JSON property `updateMask`
39
128
  # @return [String]
40
- attr_accessor :project_id
129
+ attr_accessor :update_mask
130
+
131
+ def initialize(**args)
132
+ update!(**args)
133
+ end
134
+
135
+ # Update properties of this object
136
+ def update!(**args)
137
+ @policy = args[:policy] if args.key?(:policy)
138
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
139
+ end
140
+ end
141
+
142
+ # A generic empty message that you can re-use to avoid defining duplicated
143
+ # empty messages in your APIs. A typical example is to use it as the request
144
+ # or the response type of an API method. For instance:
145
+ # service Foo `
146
+ # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
147
+ # `
148
+ # The JSON representation for `Empty` is empty JSON object ````.
149
+ class Empty
150
+ include Google::Apis::Core::Hashable
151
+
152
+ def initialize(**args)
153
+ update!(**args)
154
+ end
155
+
156
+ # Update properties of this object
157
+ def update!(**args)
158
+ end
159
+ end
160
+
161
+ # The root node in the resource hierarchy to which a particular entity's
162
+ # (e.g., company) resources belong.
163
+ class Organization
164
+ include Google::Apis::Core::Hashable
41
165
 
42
- # The Project lifecycle state. Read-only.
166
+ # Timestamp when the Organization was created. Assigned by the server.
167
+ # @OutputOnly
168
+ # Corresponds to the JSON property `creationTime`
169
+ # @return [String]
170
+ attr_accessor :creation_time
171
+
172
+ # The entity that owns an Organization. The lifetime of the Organization and
173
+ # all of its descendants are bound to the `OrganizationOwner`. If the
174
+ # `OrganizationOwner` is deleted, the Organization and all its descendants will
175
+ # be deleted.
176
+ # Corresponds to the JSON property `owner`
177
+ # @return [Google::Apis::CloudresourcemanagerV1::OrganizationOwner]
178
+ attr_accessor :owner
179
+
180
+ # The organization's current lifecycle state. Assigned by the server.
181
+ # @OutputOnly
43
182
  # Corresponds to the JSON property `lifecycleState`
44
183
  # @return [String]
45
184
  attr_accessor :lifecycle_state
46
185
 
47
- # The user-assigned name of the Project. It must be 4 to 30 characters. Allowed
48
- # characters are: lowercase and uppercase letters, numbers, hyphen, single-quote,
49
- # double-quote, space, and exclamation point. Example: My Project Read-write.
186
+ # Output Only. The resource name of the organization. This is the
187
+ # organization's relative path in the API. Its format is
188
+ # "organizations/[organization_id]". For example, "organizations/1234".
50
189
  # Corresponds to the JSON property `name`
51
190
  # @return [String]
52
191
  attr_accessor :name
53
192
 
54
- # Creation time. Read-only.
55
- # Corresponds to the JSON property `createTime`
193
+ # A friendly string to be used to refer to the Organization in the UI.
194
+ # Assigned by the server, set to the primary domain of the G Suite
195
+ # customer that owns the organization.
196
+ # @OutputOnly
197
+ # Corresponds to the JSON property `displayName`
56
198
  # @return [String]
57
- attr_accessor :create_time
58
-
59
- # The labels associated with this Project. Label keys must be between 1 and 63
60
- # characters long and must conform to the following regular expression: \[a-z\](\
61
- # [-a-z0-9\]*\[a-z0-9\])?. Label values must be between 0 and 63 characters long
62
- # and must conform to the regular expression (\[a-z\](\[-a-z0-9\]*\[a-z0-9\])?)?.
63
- # No more than 256 labels can be associated with a given resource. Clients
64
- # should store labels in a representation such as JSON that does not depend on
65
- # specific characters being disallowed. Example: "environment" : "dev" Read-
66
- # write.
67
- # Corresponds to the JSON property `labels`
68
- # @return [Hash<String,String>]
69
- attr_accessor :labels
70
-
71
- # A container to reference an id for any resource type. A `resource` in Google
72
- # Cloud Platform is a generic term for something you (a developer) may want to
73
- # interact with through one of our API's. Some examples are an AppEngine app, a
74
- # Compute Engine instance, a Cloud SQL database, and so on.
75
- # Corresponds to the JSON property `parent`
76
- # @return [Google::Apis::CloudresourcemanagerV1::ResourceId]
77
- attr_accessor :parent
199
+ attr_accessor :display_name
78
200
 
79
201
  def initialize(**args)
80
202
  update!(**args)
@@ -82,34 +204,156 @@ module Google
82
204
 
83
205
  # Update properties of this object
84
206
  def update!(**args)
85
- @project_number = args[:project_number] if args.key?(:project_number)
86
- @project_id = args[:project_id] if args.key?(:project_id)
207
+ @creation_time = args[:creation_time] if args.key?(:creation_time)
208
+ @owner = args[:owner] if args.key?(:owner)
87
209
  @lifecycle_state = args[:lifecycle_state] if args.key?(:lifecycle_state)
88
210
  @name = args[:name] if args.key?(:name)
89
- @create_time = args[:create_time] if args.key?(:create_time)
90
- @labels = args[:labels] if args.key?(:labels)
91
- @parent = args[:parent] if args.key?(:parent)
211
+ @display_name = args[:display_name] if args.key?(:display_name)
92
212
  end
93
213
  end
94
214
 
95
- # A container to reference an id for any resource type. A `resource` in Google
96
- # Cloud Platform is a generic term for something you (a developer) may want to
97
- # interact with through one of our API's. Some examples are an AppEngine app, a
98
- # Compute Engine instance, a Cloud SQL database, and so on.
99
- class ResourceId
215
+ # The response returned from the ListAvailableOrgPolicyConstraints method.
216
+ # Returns all `Constraints` that could be set at this level of the hierarchy
217
+ # (contrast with the response from `ListPolicies`, which returns all policies
218
+ # which are set).
219
+ class ListAvailableOrgPolicyConstraintsResponse
100
220
  include Google::Apis::Core::Hashable
101
221
 
102
- # Required field representing the resource type this id is for. At present, the
103
- # only valid type is "organization".
104
- # Corresponds to the JSON property `type`
222
+ # Page token used to retrieve the next page. This is currently not used.
223
+ # Corresponds to the JSON property `nextPageToken`
105
224
  # @return [String]
106
- attr_accessor :type
225
+ attr_accessor :next_page_token
107
226
 
108
- # Required field for the type-specific id. This should correspond to the id used
109
- # in the type-specific API's.
110
- # Corresponds to the JSON property `id`
227
+ # The collection of constraints that are settable on the request resource.
228
+ # Corresponds to the JSON property `constraints`
229
+ # @return [Array<Google::Apis::CloudresourcemanagerV1::Constraint>]
230
+ attr_accessor :constraints
231
+
232
+ def initialize(**args)
233
+ update!(**args)
234
+ end
235
+
236
+ # Update properties of this object
237
+ def update!(**args)
238
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
239
+ @constraints = args[:constraints] if args.key?(:constraints)
240
+ end
241
+ end
242
+
243
+ # Used in `policy_type` to specify how `list_policy` behaves at this
244
+ # resource.
245
+ # A `ListPolicy` can define specific values that are allowed or denied by
246
+ # setting either the `allowed_values` or `denied_values` fields. It can also
247
+ # be used to allow or deny all values, by setting the `all_values` field. If
248
+ # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
249
+ # or `denied_values` must be set (attempting to set both or neither will
250
+ # result in a failed request). If `all_values` is set to either `ALLOW` or
251
+ # `DENY`, `allowed_values` and `denied_values` must be unset.
252
+ class ListPolicy
253
+ include Google::Apis::Core::Hashable
254
+
255
+ # List of values allowed at this resource. an only be set if no values are
256
+ # set for `denied_values` and `all_values` is set to
257
+ # `ALL_VALUES_UNSPECIFIED`.
258
+ # Corresponds to the JSON property `allowedValues`
259
+ # @return [Array<String>]
260
+ attr_accessor :allowed_values
261
+
262
+ # Optional. The Google Cloud Console will try to default to a configuration
263
+ # that matches the value specified in this `Policy`. If `suggested_value`
264
+ # is not set, it will inherit the value specified higher in the hierarchy,
265
+ # unless `inherit_from_parent` is `false`.
266
+ # Corresponds to the JSON property `suggestedValue`
111
267
  # @return [String]
112
- attr_accessor :id
268
+ attr_accessor :suggested_value
269
+
270
+ # Determines the inheritance behavior for this `Policy`.
271
+ # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
272
+ # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
273
+ # set to `true`, then the values from the effective `Policy` of the parent
274
+ # resource are inherited, meaning the values set in this `Policy` are
275
+ # added to the values inherited up the hierarchy.
276
+ # Setting `Policy` hierarchies that inherit both allowed values and denied
277
+ # values isn't recommended in most circumstances to keep the configuration
278
+ # simple and understandable. However, it is possible to set a `Policy` with
279
+ # `allowed_values` set that inherits a `Policy` with `denied_values` set.
280
+ # In this case, the values that are allowed must be in `allowed_values` and
281
+ # not present in `denied_values`.
282
+ # For example, suppose you have a `Constraint`
283
+ # `constraints/serviceuser.services`, which has a `constraint_type` of
284
+ # `list_constraint`, and with `constraint_default` set to `ALLOW`.
285
+ # Suppose that at the Organization level, a `Policy` is applied that
286
+ # restricts the allowed API activations to ``E1`, `E2``. Then, if a
287
+ # `Policy` is applied to a project below the Organization that has
288
+ # `inherit_from_parent` set to `false` and field all_values set to DENY,
289
+ # then an attempt to activate any API will be denied.
290
+ # The following examples demonstrate different possible layerings:
291
+ # Example 1 (no inherited values):
292
+ # `organizations/foo` has a `Policy` with values:
293
+ # `allowed_values: “E1” allowed_values:”E2”`
294
+ # ``projects/bar`` has `inherit_from_parent` `false` and values:
295
+ # `allowed_values: "E3" allowed_values: "E4"`
296
+ # The accepted values at `organizations/foo` are `E1`, `E2`.
297
+ # The accepted values at `projects/bar` are `E3`, and `E4`.
298
+ # Example 2 (inherited values):
299
+ # `organizations/foo` has a `Policy` with values:
300
+ # `allowed_values: “E1” allowed_values:”E2”`
301
+ # `projects/bar` has a `Policy` with values:
302
+ # `value: “E3” value: ”E4” inherit_from_parent: true`
303
+ # The accepted values at `organizations/foo` are `E1`, `E2`.
304
+ # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
305
+ # Example 3 (inheriting both allowed and denied values):
306
+ # `organizations/foo` has a `Policy` with values:
307
+ # `allowed_values: "E1" allowed_values: "E2"`
308
+ # `projects/bar` has a `Policy` with:
309
+ # `denied_values: "E1"`
310
+ # The accepted values at `organizations/foo` are `E1`, `E2`.
311
+ # The value accepted at `projects/bar` is `E2`.
312
+ # Example 4 (RestoreDefault):
313
+ # `organizations/foo` has a `Policy` with values:
314
+ # `allowed_values: “E1” allowed_values:”E2”`
315
+ # `projects/bar` has a `Policy` with values:
316
+ # `RestoreDefault: ```
317
+ # The accepted values at `organizations/foo` are `E1`, `E2`.
318
+ # The accepted values at `projects/bar` are either all or none depending on
319
+ # the value of `constraint_default` (if `ALLOW`, all; if
320
+ # `DENY`, none).
321
+ # Example 5 (no policy inherits parent policy):
322
+ # `organizations/foo` has no `Policy` set.
323
+ # `projects/bar` has no `Policy` set.
324
+ # The accepted values at both levels are either all or none depending on
325
+ # the value of `constraint_default` (if `ALLOW`, all; if
326
+ # `DENY`, none).
327
+ # Example 6 (ListConstraint allowing all):
328
+ # `organizations/foo` has a `Policy` with values:
329
+ # `allowed_values: “E1” allowed_values: ”E2”`
330
+ # `projects/bar` has a `Policy` with:
331
+ # `all: ALLOW`
332
+ # The accepted values at `organizations/foo` are `E1`, E2`.
333
+ # Any value is accepted at `projects/bar`.
334
+ # Example 7 (ListConstraint allowing none):
335
+ # `organizations/foo` has a `Policy` with values:
336
+ # `allowed_values: “E1” allowed_values: ”E2”`
337
+ # `projects/bar` has a `Policy` with:
338
+ # `all: DENY`
339
+ # The accepted values at `organizations/foo` are `E1`, E2`.
340
+ # No value is accepted at `projects/bar`.
341
+ # Corresponds to the JSON property `inheritFromParent`
342
+ # @return [Boolean]
343
+ attr_accessor :inherit_from_parent
344
+ alias_method :inherit_from_parent?, :inherit_from_parent
345
+
346
+ # List of values denied at this resource. Can only be set if no values are
347
+ # set for `allowed_values` and `all_values` is set to
348
+ # `ALL_VALUES_UNSPECIFIED`.
349
+ # Corresponds to the JSON property `deniedValues`
350
+ # @return [Array<String>]
351
+ attr_accessor :denied_values
352
+
353
+ # The policy all_values state.
354
+ # Corresponds to the JSON property `allValues`
355
+ # @return [String]
356
+ attr_accessor :all_values
113
357
 
114
358
  def initialize(**args)
115
359
  update!(**args)
@@ -117,31 +361,66 @@ module Google
117
361
 
118
362
  # Update properties of this object
119
363
  def update!(**args)
120
- @type = args[:type] if args.key?(:type)
121
- @id = args[:id] if args.key?(:id)
364
+ @allowed_values = args[:allowed_values] if args.key?(:allowed_values)
365
+ @suggested_value = args[:suggested_value] if args.key?(:suggested_value)
366
+ @inherit_from_parent = args[:inherit_from_parent] if args.key?(:inherit_from_parent)
367
+ @denied_values = args[:denied_values] if args.key?(:denied_values)
368
+ @all_values = args[:all_values] if args.key?(:all_values)
122
369
  end
123
370
  end
124
371
 
125
- # A page of the response received from the ListProjects method. A paginated
126
- # response where more pages are available has `next_page_token` set. This token
127
- # can be used in a subsequent request to retrieve the next request page.
128
- class ListProjectsResponse
372
+ # Response from the GetAncestry method.
373
+ class GetAncestryResponse
129
374
  include Google::Apis::Core::Hashable
130
375
 
131
- # The list of Projects that matched the list filter. This list can be paginated.
132
- # Corresponds to the JSON property `projects`
133
- # @return [Array<Google::Apis::CloudresourcemanagerV1::Project>]
134
- attr_accessor :projects
376
+ # Ancestors are ordered from bottom to top of the resource hierarchy. The
377
+ # first ancestor is the project itself, followed by the project's parent,
378
+ # etc.
379
+ # Corresponds to the JSON property `ancestor`
380
+ # @return [Array<Google::Apis::CloudresourcemanagerV1::Ancestor>]
381
+ attr_accessor :ancestor
135
382
 
136
- # Pagination token. If the result set is too large to fit in a single response,
137
- # this token is returned. It encodes the position of the current result cursor.
138
- # Feeding this value into a new list request with the `page_token` parameter
139
- # gives the next page of the results. When `next_page_token` is not filled in,
140
- # there is no next page and the list returned is the last page in the result set.
141
- # Pagination tokens have a limited lifetime.
142
- # Corresponds to the JSON property `nextPageToken`
383
+ def initialize(**args)
384
+ update!(**args)
385
+ end
386
+
387
+ # Update properties of this object
388
+ def update!(**args)
389
+ @ancestor = args[:ancestor] if args.key?(:ancestor)
390
+ end
391
+ end
392
+
393
+ # Provides the configuration for logging a type of permissions.
394
+ # Example:
395
+ # `
396
+ # "audit_log_configs": [
397
+ # `
398
+ # "log_type": "DATA_READ",
399
+ # "exempted_members": [
400
+ # "user:foo@gmail.com"
401
+ # ]
402
+ # `,
403
+ # `
404
+ # "log_type": "DATA_WRITE",
405
+ # `
406
+ # ]
407
+ # `
408
+ # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
409
+ # foo@gmail.com from DATA_READ logging.
410
+ class AuditLogConfig
411
+ include Google::Apis::Core::Hashable
412
+
413
+ # Specifies the identities that do not cause logging for this type of
414
+ # permission.
415
+ # Follows the same format of Binding.members.
416
+ # Corresponds to the JSON property `exemptedMembers`
417
+ # @return [Array<String>]
418
+ attr_accessor :exempted_members
419
+
420
+ # The log type that this config enables.
421
+ # Corresponds to the JSON property `logType`
143
422
  # @return [String]
144
- attr_accessor :next_page_token
423
+ attr_accessor :log_type
145
424
 
146
425
  def initialize(**args)
147
426
  update!(**args)
@@ -149,30 +428,58 @@ module Google
149
428
 
150
429
  # Update properties of this object
151
430
  def update!(**args)
152
- @projects = args[:projects] if args.key?(:projects)
153
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
431
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
432
+ @log_type = args[:log_type] if args.key?(:log_type)
154
433
  end
155
434
  end
156
435
 
157
- # A generic empty message that you can re-use to avoid defining duplicated empty
158
- # messages in your APIs. A typical example is to use it as the request or the
159
- # response type of an API method. For instance: service Foo ` rpc Bar(google.
160
- # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
161
- # `Empty` is empty JSON object ````.
162
- class Empty
436
+ # The request sent to the `SearchOrganizations` method.
437
+ class SearchOrganizationsRequest
163
438
  include Google::Apis::Core::Hashable
164
439
 
440
+ # A pagination token returned from a previous call to `SearchOrganizations`
441
+ # that indicates from where listing should continue.
442
+ # This field is optional.
443
+ # Corresponds to the JSON property `pageToken`
444
+ # @return [String]
445
+ attr_accessor :page_token
446
+
447
+ # The maximum number of Organizations to return in the response.
448
+ # This field is optional.
449
+ # Corresponds to the JSON property `pageSize`
450
+ # @return [Fixnum]
451
+ attr_accessor :page_size
452
+
453
+ # An optional query string used to filter the Organizations to return in
454
+ # the response. Filter rules are case-insensitive.
455
+ # Organizations may be filtered by `owner.directoryCustomerId` or by
456
+ # `domain`, where the domain is a Google for Work domain, for example:
457
+ # |Filter|Description|
458
+ # |------|-----------|
459
+ # |owner.directorycustomerid:123456789|Organizations with
460
+ # `owner.directory_customer_id` equal to `123456789`.|
461
+ # |domain:google.com|Organizations corresponding to the domain `google.com`.|
462
+ # This field is optional.
463
+ # Corresponds to the JSON property `filter`
464
+ # @return [String]
465
+ attr_accessor :filter
466
+
165
467
  def initialize(**args)
166
468
  update!(**args)
167
469
  end
168
470
 
169
471
  # Update properties of this object
170
472
  def update!(**args)
473
+ @page_token = args[:page_token] if args.key?(:page_token)
474
+ @page_size = args[:page_size] if args.key?(:page_size)
475
+ @filter = args[:filter] if args.key?(:filter)
171
476
  end
172
477
  end
173
478
 
174
- # The request sent to the UndeleteProject method.
175
- class UndeleteProjectRequest
479
+ # The request sent to the
480
+ # GetAncestry
481
+ # method.
482
+ class GetAncestryRequest
176
483
  include Google::Apis::Core::Hashable
177
484
 
178
485
  def initialize(**args)
@@ -184,93 +491,156 @@ module Google
184
491
  end
185
492
  end
186
493
 
187
- # Request message for `GetIamPolicy` method.
188
- class GetIamPolicyRequest
494
+ # Request message for `TestIamPermissions` method.
495
+ class TestIamPermissionsRequest
496
+ include Google::Apis::Core::Hashable
497
+
498
+ # The set of permissions to check for the `resource`. Permissions with
499
+ # wildcards (such as '*' or 'storage.*') are not allowed. For more
500
+ # information see
501
+ # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
502
+ # Corresponds to the JSON property `permissions`
503
+ # @return [Array<String>]
504
+ attr_accessor :permissions
505
+
506
+ def initialize(**args)
507
+ update!(**args)
508
+ end
509
+
510
+ # Update properties of this object
511
+ def update!(**args)
512
+ @permissions = args[:permissions] if args.key?(:permissions)
513
+ end
514
+ end
515
+
516
+ # Metadata describing a long running folder operation
517
+ class FolderOperation
189
518
  include Google::Apis::Core::Hashable
190
519
 
520
+ # The type of this operation.
521
+ # Corresponds to the JSON property `operationType`
522
+ # @return [String]
523
+ attr_accessor :operation_type
524
+
525
+ # The display name of the folder.
526
+ # Corresponds to the JSON property `displayName`
527
+ # @return [String]
528
+ attr_accessor :display_name
529
+
530
+ # The resource name of the folder's parent.
531
+ # Only applicable when the operation_type is MOVE.
532
+ # Corresponds to the JSON property `sourceParent`
533
+ # @return [String]
534
+ attr_accessor :source_parent
535
+
536
+ # The resource name of the folder or organization we are either creating
537
+ # the folder under or moving the folder to.
538
+ # Corresponds to the JSON property `destinationParent`
539
+ # @return [String]
540
+ attr_accessor :destination_parent
541
+
191
542
  def initialize(**args)
192
543
  update!(**args)
193
544
  end
194
545
 
195
546
  # Update properties of this object
196
547
  def update!(**args)
548
+ @operation_type = args[:operation_type] if args.key?(:operation_type)
549
+ @display_name = args[:display_name] if args.key?(:display_name)
550
+ @source_parent = args[:source_parent] if args.key?(:source_parent)
551
+ @destination_parent = args[:destination_parent] if args.key?(:destination_parent)
197
552
  end
198
553
  end
199
554
 
200
- # Defines an Identity and Access Management (IAM) policy. It is used to specify
201
- # access control policies for Cloud Platform resources. A `Policy` consists of a
202
- # list of `bindings`. A `Binding` binds a list of `members` to a `role`, where
203
- # the members can be user accounts, Google groups, Google domains, and service
204
- # accounts. A `role` is a named list of permissions defined by IAM. **Example** `
205
- # "bindings": [ ` "role": "roles/owner", "members": [ "user:mike@example.com", "
206
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@
207
- # appspot.gserviceaccount.com", ] `, ` "role": "roles/viewer", "members": ["user:
208
- # sean@example.com"] ` ] ` For a description of IAM and its features, see the [
209
- # IAM developer's guide](https://cloud.google.com/iam).
555
+ # Defines an Identity and Access Management (IAM) policy. It is used to
556
+ # specify access control policies for Cloud Platform resources.
557
+ # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
558
+ # `members` to a `role`, where the members can be user accounts, Google groups,
559
+ # Google domains, and service accounts. A `role` is a named list of permissions
560
+ # defined by IAM.
561
+ # **Example**
562
+ # `
563
+ # "bindings": [
564
+ # `
565
+ # "role": "roles/owner",
566
+ # "members": [
567
+ # "user:mike@example.com",
568
+ # "group:admins@example.com",
569
+ # "domain:google.com",
570
+ # "serviceAccount:my-other-app@appspot.gserviceaccount.com",
571
+ # ]
572
+ # `,
573
+ # `
574
+ # "role": "roles/viewer",
575
+ # "members": ["user:sean@example.com"]
576
+ # `
577
+ # ]
578
+ # `
579
+ # For a description of IAM and its features, see the
580
+ # [IAM developer's guide](https://cloud.google.com/iam).
210
581
  class Policy
211
582
  include Google::Apis::Core::Hashable
212
583
 
584
+ # `etag` is used for optimistic concurrency control as a way to help
585
+ # prevent simultaneous updates of a policy from overwriting each other.
586
+ # It is strongly suggested that systems make use of the `etag` in the
587
+ # read-modify-write cycle to perform policy updates in order to avoid race
588
+ # conditions: An `etag` is returned in the response to `getIamPolicy`, and
589
+ # systems are expected to put that etag in the request to `setIamPolicy` to
590
+ # ensure that their change will be applied to the same version of the policy.
591
+ # If no `etag` is provided in the call to `setIamPolicy`, then the existing
592
+ # policy is overwritten blindly.
593
+ # Corresponds to the JSON property `etag`
594
+ # @return [String]
595
+ attr_accessor :etag
596
+
213
597
  # Version of the `Policy`. The default version is 0.
214
598
  # Corresponds to the JSON property `version`
215
599
  # @return [Fixnum]
216
600
  attr_accessor :version
217
601
 
218
- # Associates a list of `members` to a `role`. Multiple `bindings` must not be
219
- # specified for the same `role`. `bindings` with no members will result in an
220
- # error.
602
+ # Specifies cloud audit logging configuration for this policy.
603
+ # Corresponds to the JSON property `auditConfigs`
604
+ # @return [Array<Google::Apis::CloudresourcemanagerV1::AuditConfig>]
605
+ attr_accessor :audit_configs
606
+
607
+ # Associates a list of `members` to a `role`.
608
+ # Multiple `bindings` must not be specified for the same `role`.
609
+ # `bindings` with no members will result in an error.
221
610
  # Corresponds to the JSON property `bindings`
222
611
  # @return [Array<Google::Apis::CloudresourcemanagerV1::Binding>]
223
612
  attr_accessor :bindings
224
613
 
225
- # `etag` is used for optimistic concurrency control as a way to help prevent
226
- # simultaneous updates of a policy from overwriting each other. It is strongly
227
- # suggested that systems make use of the `etag` in the read-modify-write cycle
228
- # to perform policy updates in order to avoid race conditions: An `etag` is
229
- # returned in the response to `getIamPolicy`, and systems are expected to put
230
- # that etag in the request to `setIamPolicy` to ensure that their change will be
231
- # applied to the same version of the policy. If no `etag` is provided in the
232
- # call to `setIamPolicy`, then the existing policy is overwritten blindly.
233
- # Corresponds to the JSON property `etag`
234
- # @return [String]
235
- attr_accessor :etag
236
-
237
614
  def initialize(**args)
238
615
  update!(**args)
239
616
  end
240
617
 
241
618
  # Update properties of this object
242
619
  def update!(**args)
620
+ @etag = args[:etag] if args.key?(:etag)
243
621
  @version = args[:version] if args.key?(:version)
622
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
244
623
  @bindings = args[:bindings] if args.key?(:bindings)
245
- @etag = args[:etag] if args.key?(:etag)
246
624
  end
247
625
  end
248
626
 
249
- # Associates `members` with a `role`.
250
- class Binding
627
+ # The request sent to the [ListAvailableOrgPolicyConstraints]
628
+ # google.cloud.OrgPolicy.v1.ListAvailableOrgPolicyConstraints] method.
629
+ class ListAvailableOrgPolicyConstraintsRequest
251
630
  include Google::Apis::Core::Hashable
252
631
 
253
- # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
254
- # , or `roles/owner`. Required
255
- # Corresponds to the JSON property `role`
632
+ # Page token used to retrieve the next page. This is currently unsupported
633
+ # and will be ignored. The server may at any point start using this field.
634
+ # Corresponds to the JSON property `pageToken`
256
635
  # @return [String]
257
- attr_accessor :role
636
+ attr_accessor :page_token
258
637
 
259
- # Specifies the identities requesting access for a Cloud Platform resource. `
260
- # members` can have the following values: * `allUsers`: A special identifier
261
- # that represents anyone who is on the internet; with or without a Google
262
- # account. * `allAuthenticatedUsers`: A special identifier that represents
263
- # anyone who is authenticated with a Google account or a service account. * `
264
- # user:`emailid``: An email address that represents a specific Google account.
265
- # For example, `alice@gmail.com` or `joe@example.com`. * `serviceAccount:`
266
- # emailid``: An email address that represents a service account. For example, `
267
- # my-other-app@appspot.gserviceaccount.com`. * `group:`emailid``: An email
268
- # address that represents a Google group. For example, `admins@example.com`. * `
269
- # domain:`domain``: A Google Apps domain name that represents all the users of
270
- # that domain. For example, `google.com` or `example.com`.
271
- # Corresponds to the JSON property `members`
272
- # @return [Array<String>]
273
- attr_accessor :members
638
+ # Size of the pages to be returned. This is currently unsupported and will
639
+ # be ignored. The server may at any point start using this field to limit
640
+ # page size.
641
+ # Corresponds to the JSON property `pageSize`
642
+ # @return [Fixnum]
643
+ attr_accessor :page_size
274
644
 
275
645
  def initialize(**args)
276
646
  update!(**args)
@@ -278,28 +648,29 @@ module Google
278
648
 
279
649
  # Update properties of this object
280
650
  def update!(**args)
281
- @role = args[:role] if args.key?(:role)
282
- @members = args[:members] if args.key?(:members)
651
+ @page_token = args[:page_token] if args.key?(:page_token)
652
+ @page_size = args[:page_size] if args.key?(:page_size)
283
653
  end
284
654
  end
285
655
 
286
- # Request message for `SetIamPolicy` method.
287
- class SetIamPolicyRequest
656
+ # A container to reference an id for any resource type. A `resource` in Google
657
+ # Cloud Platform is a generic term for something you (a developer) may want to
658
+ # interact with through one of our API's. Some examples are an App Engine app,
659
+ # a Compute Engine instance, a Cloud SQL database, and so on.
660
+ class ResourceId
288
661
  include Google::Apis::Core::Hashable
289
662
 
290
- # Defines an Identity and Access Management (IAM) policy. It is used to specify
291
- # access control policies for Cloud Platform resources. A `Policy` consists of a
292
- # list of `bindings`. A `Binding` binds a list of `members` to a `role`, where
293
- # the members can be user accounts, Google groups, Google domains, and service
294
- # accounts. A `role` is a named list of permissions defined by IAM. **Example** `
295
- # "bindings": [ ` "role": "roles/owner", "members": [ "user:mike@example.com", "
296
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@
297
- # appspot.gserviceaccount.com", ] `, ` "role": "roles/viewer", "members": ["user:
298
- # sean@example.com"] ` ] ` For a description of IAM and its features, see the [
299
- # IAM developer's guide](https://cloud.google.com/iam).
300
- # Corresponds to the JSON property `policy`
301
- # @return [Google::Apis::CloudresourcemanagerV1::Policy]
302
- attr_accessor :policy
663
+ # Required field representing the resource type this id is for.
664
+ # At present, the valid types are: "organization"
665
+ # Corresponds to the JSON property `type`
666
+ # @return [String]
667
+ attr_accessor :type
668
+
669
+ # Required field for the type-specific id. This should correspond to the id
670
+ # used in the type-specific API's.
671
+ # Corresponds to the JSON property `id`
672
+ # @return [String]
673
+ attr_accessor :id
303
674
 
304
675
  def initialize(**args)
305
676
  update!(**args)
@@ -307,20 +678,19 @@ module Google
307
678
 
308
679
  # Update properties of this object
309
680
  def update!(**args)
310
- @policy = args[:policy] if args.key?(:policy)
681
+ @type = args[:type] if args.key?(:type)
682
+ @id = args[:id] if args.key?(:id)
311
683
  end
312
684
  end
313
685
 
314
- # Request message for `TestIamPermissions` method.
315
- class TestIamPermissionsRequest
686
+ # The request sent to the GetEffectiveOrgPolicy method.
687
+ class GetEffectiveOrgPolicyRequest
316
688
  include Google::Apis::Core::Hashable
317
689
 
318
- # The set of permissions to check for the `resource`. Permissions with wildcards
319
- # (such as '*' or 'storage.*') are not allowed. For more information see IAM
320
- # Overview.
321
- # Corresponds to the JSON property `permissions`
322
- # @return [Array<String>]
323
- attr_accessor :permissions
690
+ # The name of the `Constraint` to compute the effective `Policy`.
691
+ # Corresponds to the JSON property `constraint`
692
+ # @return [String]
693
+ attr_accessor :constraint
324
694
 
325
695
  def initialize(**args)
326
696
  update!(**args)
@@ -328,18 +698,26 @@ module Google
328
698
 
329
699
  # Update properties of this object
330
700
  def update!(**args)
331
- @permissions = args[:permissions] if args.key?(:permissions)
701
+ @constraint = args[:constraint] if args.key?(:constraint)
332
702
  end
333
703
  end
334
704
 
335
- # Response message for `TestIamPermissions` method.
336
- class TestIamPermissionsResponse
705
+ # The request sent to the ListOrgPolicies method.
706
+ class ListOrgPoliciesRequest
337
707
  include Google::Apis::Core::Hashable
338
708
 
339
- # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
340
- # Corresponds to the JSON property `permissions`
341
- # @return [Array<String>]
342
- attr_accessor :permissions
709
+ # Page token used to retrieve the next page. This is currently unsupported
710
+ # and will be ignored. The server may at any point start using this field.
711
+ # Corresponds to the JSON property `pageToken`
712
+ # @return [String]
713
+ attr_accessor :page_token
714
+
715
+ # Size of the pages to be returned. This is currently unsupported and will
716
+ # be ignored. The server may at any point start using this field to limit
717
+ # page size.
718
+ # Corresponds to the JSON property `pageSize`
719
+ # @return [Fixnum]
720
+ attr_accessor :page_size
343
721
 
344
722
  def initialize(**args)
345
723
  update!(**args)
@@ -347,7 +725,991 @@ module Google
347
725
 
348
726
  # Update properties of this object
349
727
  def update!(**args)
350
- @permissions = args[:permissions] if args.key?(:permissions)
728
+ @page_token = args[:page_token] if args.key?(:page_token)
729
+ @page_size = args[:page_size] if args.key?(:page_size)
730
+ end
731
+ end
732
+
733
+ # Specifies the audit configuration for a service.
734
+ # The configuration determines which permission types are logged, and what
735
+ # identities, if any, are exempted from logging.
736
+ # An AuditConifg must have one or more AuditLogConfigs.
737
+ # If there are AuditConfigs for both `allServices` and a specific service,
738
+ # the union of the two AuditConfigs is used for that service: the log_types
739
+ # specified in each AuditConfig are enabled, and the exempted_members in each
740
+ # AuditConfig are exempted.
741
+ # Example Policy with multiple AuditConfigs:
742
+ # `
743
+ # "audit_configs": [
744
+ # `
745
+ # "service": "allServices"
746
+ # "audit_log_configs": [
747
+ # `
748
+ # "log_type": "DATA_READ",
749
+ # "exempted_members": [
750
+ # "user:foo@gmail.com"
751
+ # ]
752
+ # `,
753
+ # `
754
+ # "log_type": "DATA_WRITE",
755
+ # `,
756
+ # `
757
+ # "log_type": "ADMIN_READ",
758
+ # `
759
+ # ]
760
+ # `,
761
+ # `
762
+ # "service": "fooservice@googleapis.com"
763
+ # "audit_log_configs": [
764
+ # `
765
+ # "log_type": "DATA_READ",
766
+ # `,
767
+ # `
768
+ # "log_type": "DATA_WRITE",
769
+ # "exempted_members": [
770
+ # "user:bar@gmail.com"
771
+ # ]
772
+ # `
773
+ # ]
774
+ # `
775
+ # ]
776
+ # `
777
+ # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
778
+ # logging. It also exempts foo@gmail.com from DATA_READ logging, and
779
+ # bar@gmail.com from DATA_WRITE logging.
780
+ class AuditConfig
781
+ include Google::Apis::Core::Hashable
782
+
783
+ # Specifies a service that will be enabled for audit logging.
784
+ # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
785
+ # `allServices` is a special value that covers all services.
786
+ # Corresponds to the JSON property `service`
787
+ # @return [String]
788
+ attr_accessor :service
789
+
790
+ # The configuration for logging of each type of permission.
791
+ # Next ID: 4
792
+ # Corresponds to the JSON property `auditLogConfigs`
793
+ # @return [Array<Google::Apis::CloudresourcemanagerV1::AuditLogConfig>]
794
+ attr_accessor :audit_log_configs
795
+
796
+ def initialize(**args)
797
+ update!(**args)
798
+ end
799
+
800
+ # Update properties of this object
801
+ def update!(**args)
802
+ @service = args[:service] if args.key?(:service)
803
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
804
+ end
805
+ end
806
+
807
+ # This resource represents a long-running operation that is the result of a
808
+ # network API call.
809
+ class Operation
810
+ include Google::Apis::Core::Hashable
811
+
812
+ # If the value is `false`, it means the operation is still in progress.
813
+ # If true, the operation is completed, and either `error` or `response` is
814
+ # available.
815
+ # Corresponds to the JSON property `done`
816
+ # @return [Boolean]
817
+ attr_accessor :done
818
+ alias_method :done?, :done
819
+
820
+ # The normal response of the operation in case of success. If the original
821
+ # method returns no data on success, such as `Delete`, the response is
822
+ # `google.protobuf.Empty`. If the original method is standard
823
+ # `Get`/`Create`/`Update`, the response should be the resource. For other
824
+ # methods, the response should have the type `XxxResponse`, where `Xxx`
825
+ # is the original method name. For example, if the original method name
826
+ # is `TakeSnapshot()`, the inferred response type is
827
+ # `TakeSnapshotResponse`.
828
+ # Corresponds to the JSON property `response`
829
+ # @return [Hash<String,Object>]
830
+ attr_accessor :response
831
+
832
+ # The server-assigned name, which is only unique within the same service that
833
+ # originally returns it. If you use the default HTTP mapping, the
834
+ # `name` should have the format of `operations/some/unique/name`.
835
+ # Corresponds to the JSON property `name`
836
+ # @return [String]
837
+ attr_accessor :name
838
+
839
+ # The `Status` type defines a logical error model that is suitable for different
840
+ # programming environments, including REST APIs and RPC APIs. It is used by
841
+ # [gRPC](https://github.com/grpc). The error model is designed to be:
842
+ # - Simple to use and understand for most users
843
+ # - Flexible enough to meet unexpected needs
844
+ # # Overview
845
+ # The `Status` message contains three pieces of data: error code, error message,
846
+ # and error details. The error code should be an enum value of
847
+ # google.rpc.Code, but it may accept additional error codes if needed. The
848
+ # error message should be a developer-facing English message that helps
849
+ # developers *understand* and *resolve* the error. If a localized user-facing
850
+ # error message is needed, put the localized message in the error details or
851
+ # localize it in the client. The optional error details may contain arbitrary
852
+ # information about the error. There is a predefined set of error detail types
853
+ # in the package `google.rpc` which can be used for common error conditions.
854
+ # # Language mapping
855
+ # The `Status` message is the logical representation of the error model, but it
856
+ # is not necessarily the actual wire format. When the `Status` message is
857
+ # exposed in different client libraries and different wire protocols, it can be
858
+ # mapped differently. For example, it will likely be mapped to some exceptions
859
+ # in Java, but more likely mapped to some error codes in C.
860
+ # # Other uses
861
+ # The error model and the `Status` message can be used in a variety of
862
+ # environments, either with or without APIs, to provide a
863
+ # consistent developer experience across different environments.
864
+ # Example uses of this error model include:
865
+ # - Partial errors. If a service needs to return partial errors to the client,
866
+ # it may embed the `Status` in the normal response to indicate the partial
867
+ # errors.
868
+ # - Workflow errors. A typical workflow has multiple steps. Each step may
869
+ # have a `Status` message for error reporting purpose.
870
+ # - Batch operations. If a client uses batch request and batch response, the
871
+ # `Status` message should be used directly inside batch response, one for
872
+ # each error sub-response.
873
+ # - Asynchronous operations. If an API call embeds asynchronous operation
874
+ # results in its response, the status of those operations should be
875
+ # represented directly using the `Status` message.
876
+ # - Logging. If some API errors are stored in logs, the message `Status` could
877
+ # be used directly after any stripping needed for security/privacy reasons.
878
+ # Corresponds to the JSON property `error`
879
+ # @return [Google::Apis::CloudresourcemanagerV1::Status]
880
+ attr_accessor :error
881
+
882
+ # Service-specific metadata associated with the operation. It typically
883
+ # contains progress information and common metadata such as create time.
884
+ # Some services might not provide such metadata. Any method that returns a
885
+ # long-running operation should document the metadata type, if any.
886
+ # Corresponds to the JSON property `metadata`
887
+ # @return [Hash<String,Object>]
888
+ attr_accessor :metadata
889
+
890
+ def initialize(**args)
891
+ update!(**args)
892
+ end
893
+
894
+ # Update properties of this object
895
+ def update!(**args)
896
+ @done = args[:done] if args.key?(:done)
897
+ @response = args[:response] if args.key?(:response)
898
+ @name = args[:name] if args.key?(:name)
899
+ @error = args[:error] if args.key?(:error)
900
+ @metadata = args[:metadata] if args.key?(:metadata)
901
+ end
902
+ end
903
+
904
+ # The `Status` type defines a logical error model that is suitable for different
905
+ # programming environments, including REST APIs and RPC APIs. It is used by
906
+ # [gRPC](https://github.com/grpc). The error model is designed to be:
907
+ # - Simple to use and understand for most users
908
+ # - Flexible enough to meet unexpected needs
909
+ # # Overview
910
+ # The `Status` message contains three pieces of data: error code, error message,
911
+ # and error details. The error code should be an enum value of
912
+ # google.rpc.Code, but it may accept additional error codes if needed. The
913
+ # error message should be a developer-facing English message that helps
914
+ # developers *understand* and *resolve* the error. If a localized user-facing
915
+ # error message is needed, put the localized message in the error details or
916
+ # localize it in the client. The optional error details may contain arbitrary
917
+ # information about the error. There is a predefined set of error detail types
918
+ # in the package `google.rpc` which can be used for common error conditions.
919
+ # # Language mapping
920
+ # The `Status` message is the logical representation of the error model, but it
921
+ # is not necessarily the actual wire format. When the `Status` message is
922
+ # exposed in different client libraries and different wire protocols, it can be
923
+ # mapped differently. For example, it will likely be mapped to some exceptions
924
+ # in Java, but more likely mapped to some error codes in C.
925
+ # # Other uses
926
+ # The error model and the `Status` message can be used in a variety of
927
+ # environments, either with or without APIs, to provide a
928
+ # consistent developer experience across different environments.
929
+ # Example uses of this error model include:
930
+ # - Partial errors. If a service needs to return partial errors to the client,
931
+ # it may embed the `Status` in the normal response to indicate the partial
932
+ # errors.
933
+ # - Workflow errors. A typical workflow has multiple steps. Each step may
934
+ # have a `Status` message for error reporting purpose.
935
+ # - Batch operations. If a client uses batch request and batch response, the
936
+ # `Status` message should be used directly inside batch response, one for
937
+ # each error sub-response.
938
+ # - Asynchronous operations. If an API call embeds asynchronous operation
939
+ # results in its response, the status of those operations should be
940
+ # represented directly using the `Status` message.
941
+ # - Logging. If some API errors are stored in logs, the message `Status` could
942
+ # be used directly after any stripping needed for security/privacy reasons.
943
+ class Status
944
+ include Google::Apis::Core::Hashable
945
+
946
+ # A list of messages that carry the error details. There will be a
947
+ # common set of message types for APIs to use.
948
+ # Corresponds to the JSON property `details`
949
+ # @return [Array<Hash<String,Object>>]
950
+ attr_accessor :details
951
+
952
+ # The status code, which should be an enum value of google.rpc.Code.
953
+ # Corresponds to the JSON property `code`
954
+ # @return [Fixnum]
955
+ attr_accessor :code
956
+
957
+ # A developer-facing error message, which should be in English. Any
958
+ # user-facing error message should be localized and sent in the
959
+ # google.rpc.Status.details field, or localized by the client.
960
+ # Corresponds to the JSON property `message`
961
+ # @return [String]
962
+ attr_accessor :message
963
+
964
+ def initialize(**args)
965
+ update!(**args)
966
+ end
967
+
968
+ # Update properties of this object
969
+ def update!(**args)
970
+ @details = args[:details] if args.key?(:details)
971
+ @code = args[:code] if args.key?(:code)
972
+ @message = args[:message] if args.key?(:message)
973
+ end
974
+ end
975
+
976
+ # The response message for Liens.ListLiens.
977
+ class ListLiensResponse
978
+ include Google::Apis::Core::Hashable
979
+
980
+ # Token to retrieve the next page of results, or empty if there are no more
981
+ # results in the list.
982
+ # Corresponds to the JSON property `nextPageToken`
983
+ # @return [String]
984
+ attr_accessor :next_page_token
985
+
986
+ # A list of Liens.
987
+ # Corresponds to the JSON property `liens`
988
+ # @return [Array<Google::Apis::CloudresourcemanagerV1::Lien>]
989
+ attr_accessor :liens
990
+
991
+ def initialize(**args)
992
+ update!(**args)
993
+ end
994
+
995
+ # Update properties of this object
996
+ def update!(**args)
997
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
998
+ @liens = args[:liens] if args.key?(:liens)
999
+ end
1000
+ end
1001
+
1002
+ # A `Constraint` describes a way in which a resource's configuration can be
1003
+ # restricted. For example, it controls which cloud services can be activated
1004
+ # across an organization, or whether a Compute Engine instance can have
1005
+ # serial port connections established. `Constraints` can be configured by the
1006
+ # organization's policy adminstrator to fit the needs of the organzation by
1007
+ # setting Policies for `Constraints` at different locations in the
1008
+ # organization's resource hierarchy. Policies are inherited down the resource
1009
+ # hierarchy from higher levels, but can also be overridden. For details about
1010
+ # the inheritance rules please read about
1011
+ # Policies.
1012
+ # `Constraints` have a default behavior determined by the `constraint_default`
1013
+ # field, which is the enforcement behavior that is used in the absence of a
1014
+ # `Policy` being defined or inherited for the resource in question.
1015
+ class Constraint
1016
+ include Google::Apis::Core::Hashable
1017
+
1018
+ # Version of the `Constraint`. Default version is 0;
1019
+ # Corresponds to the JSON property `version`
1020
+ # @return [Fixnum]
1021
+ attr_accessor :version
1022
+
1023
+ # A `Constraint` that allows or disallows a list of string values, which are
1024
+ # configured by an Organization's policy administrator with a `Policy`.
1025
+ # Corresponds to the JSON property `listConstraint`
1026
+ # @return [Google::Apis::CloudresourcemanagerV1::ListConstraint]
1027
+ attr_accessor :list_constraint
1028
+
1029
+ # The human readable name.
1030
+ # Mutable.
1031
+ # Corresponds to the JSON property `displayName`
1032
+ # @return [String]
1033
+ attr_accessor :display_name
1034
+
1035
+ # Detailed description of what this `Constraint` controls as well as how and
1036
+ # where it is enforced.
1037
+ # Mutable.
1038
+ # Corresponds to the JSON property `description`
1039
+ # @return [String]
1040
+ attr_accessor :description
1041
+
1042
+ # A `Constraint` that is either enforced or not.
1043
+ # For example a constraint `constraints/compute.disableSerialPortAccess`.
1044
+ # If it is enforced on a VM instance, serial port connections will not be
1045
+ # opened to that instance.
1046
+ # Corresponds to the JSON property `booleanConstraint`
1047
+ # @return [Google::Apis::CloudresourcemanagerV1::BooleanConstraint]
1048
+ attr_accessor :boolean_constraint
1049
+
1050
+ # The evaluation behavior of this constraint in the absense of 'Policy'.
1051
+ # Corresponds to the JSON property `constraintDefault`
1052
+ # @return [String]
1053
+ attr_accessor :constraint_default
1054
+
1055
+ # Immutable value, required to globally be unique. For example,
1056
+ # `constraints/serviceuser.services`
1057
+ # Corresponds to the JSON property `name`
1058
+ # @return [String]
1059
+ attr_accessor :name
1060
+
1061
+ def initialize(**args)
1062
+ update!(**args)
1063
+ end
1064
+
1065
+ # Update properties of this object
1066
+ def update!(**args)
1067
+ @version = args[:version] if args.key?(:version)
1068
+ @list_constraint = args[:list_constraint] if args.key?(:list_constraint)
1069
+ @display_name = args[:display_name] if args.key?(:display_name)
1070
+ @description = args[:description] if args.key?(:description)
1071
+ @boolean_constraint = args[:boolean_constraint] if args.key?(:boolean_constraint)
1072
+ @constraint_default = args[:constraint_default] if args.key?(:constraint_default)
1073
+ @name = args[:name] if args.key?(:name)
1074
+ end
1075
+ end
1076
+
1077
+ # Associates `members` with a `role`.
1078
+ class Binding
1079
+ include Google::Apis::Core::Hashable
1080
+
1081
+ # Specifies the identities requesting access for a Cloud Platform resource.
1082
+ # `members` can have the following values:
1083
+ # * `allUsers`: A special identifier that represents anyone who is
1084
+ # on the internet; with or without a Google account.
1085
+ # * `allAuthenticatedUsers`: A special identifier that represents anyone
1086
+ # who is authenticated with a Google account or a service account.
1087
+ # * `user:`emailid``: An email address that represents a specific Google
1088
+ # account. For example, `alice@gmail.com` or `joe@example.com`.
1089
+ # * `serviceAccount:`emailid``: An email address that represents a service
1090
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`.
1091
+ # * `group:`emailid``: An email address that represents a Google group.
1092
+ # For example, `admins@example.com`.
1093
+ # * `domain:`domain``: A Google Apps domain name that represents all the
1094
+ # users of that domain. For example, `google.com` or `example.com`.
1095
+ # Corresponds to the JSON property `members`
1096
+ # @return [Array<String>]
1097
+ attr_accessor :members
1098
+
1099
+ # Role that is assigned to `members`.
1100
+ # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
1101
+ # Required
1102
+ # Corresponds to the JSON property `role`
1103
+ # @return [String]
1104
+ attr_accessor :role
1105
+
1106
+ def initialize(**args)
1107
+ update!(**args)
1108
+ end
1109
+
1110
+ # Update properties of this object
1111
+ def update!(**args)
1112
+ @members = args[:members] if args.key?(:members)
1113
+ @role = args[:role] if args.key?(:role)
1114
+ end
1115
+ end
1116
+
1117
+ # Ignores policies set above this resource and restores the
1118
+ # `constraint_default` enforcement behavior of the specific `Constraint` at
1119
+ # this resource.
1120
+ # Suppose that `constraint_default` is set to `ALLOW` for the
1121
+ # `Constraint` `constraints/serviceuser.services`. Suppose that organization
1122
+ # foo.com sets a `Policy` at their Organization resource node that restricts
1123
+ # the allowed service activations to deny all service activations. They
1124
+ # could then set a `Policy` with the `policy_type` `restore_default` on
1125
+ # several experimental projects, restoring the `constraint_default`
1126
+ # enforcement of the `Constraint` for only those projects, allowing those
1127
+ # projects to have all services activated.
1128
+ class RestoreDefault
1129
+ include Google::Apis::Core::Hashable
1130
+
1131
+ def initialize(**args)
1132
+ update!(**args)
1133
+ end
1134
+
1135
+ # Update properties of this object
1136
+ def update!(**args)
1137
+ end
1138
+ end
1139
+
1140
+ # The request sent to the GetOrgPolicy method.
1141
+ class GetOrgPolicyRequest
1142
+ include Google::Apis::Core::Hashable
1143
+
1144
+ # Name of the `Constraint` to get the `Policy`.
1145
+ # Corresponds to the JSON property `constraint`
1146
+ # @return [String]
1147
+ attr_accessor :constraint
1148
+
1149
+ def initialize(**args)
1150
+ update!(**args)
1151
+ end
1152
+
1153
+ # Update properties of this object
1154
+ def update!(**args)
1155
+ @constraint = args[:constraint] if args.key?(:constraint)
1156
+ end
1157
+ end
1158
+
1159
+ # The request sent to the ClearOrgPolicy method.
1160
+ class ClearOrgPolicyRequest
1161
+ include Google::Apis::Core::Hashable
1162
+
1163
+ # The current version, for concurrency control. Not sending an `etag`
1164
+ # will cause the `Policy` to be cleared blindly.
1165
+ # Corresponds to the JSON property `etag`
1166
+ # @return [String]
1167
+ attr_accessor :etag
1168
+
1169
+ # Name of the `Constraint` of the `Policy` to clear.
1170
+ # Corresponds to the JSON property `constraint`
1171
+ # @return [String]
1172
+ attr_accessor :constraint
1173
+
1174
+ def initialize(**args)
1175
+ update!(**args)
1176
+ end
1177
+
1178
+ # Update properties of this object
1179
+ def update!(**args)
1180
+ @etag = args[:etag] if args.key?(:etag)
1181
+ @constraint = args[:constraint] if args.key?(:constraint)
1182
+ end
1183
+ end
1184
+
1185
+ # The request sent to the UndeleteProject
1186
+ # method.
1187
+ class UndeleteProjectRequest
1188
+ include Google::Apis::Core::Hashable
1189
+
1190
+ def initialize(**args)
1191
+ update!(**args)
1192
+ end
1193
+
1194
+ # Update properties of this object
1195
+ def update!(**args)
1196
+ end
1197
+ end
1198
+
1199
+ # A status object which is used as the `metadata` field for the Operation
1200
+ # returned by CreateProject. It provides insight for when significant phases of
1201
+ # Project creation have completed.
1202
+ class ProjectCreationStatus
1203
+ include Google::Apis::Core::Hashable
1204
+
1205
+ # True if the project creation process is complete.
1206
+ # Corresponds to the JSON property `ready`
1207
+ # @return [Boolean]
1208
+ attr_accessor :ready
1209
+ alias_method :ready?, :ready
1210
+
1211
+ # Creation time of the project creation workflow.
1212
+ # Corresponds to the JSON property `createTime`
1213
+ # @return [String]
1214
+ attr_accessor :create_time
1215
+
1216
+ # True if the project can be retrieved using GetProject. No other operations
1217
+ # on the project are guaranteed to work until the project creation is
1218
+ # complete.
1219
+ # Corresponds to the JSON property `gettable`
1220
+ # @return [Boolean]
1221
+ attr_accessor :gettable
1222
+ alias_method :gettable?, :gettable
1223
+
1224
+ def initialize(**args)
1225
+ update!(**args)
1226
+ end
1227
+
1228
+ # Update properties of this object
1229
+ def update!(**args)
1230
+ @ready = args[:ready] if args.key?(:ready)
1231
+ @create_time = args[:create_time] if args.key?(:create_time)
1232
+ @gettable = args[:gettable] if args.key?(:gettable)
1233
+ end
1234
+ end
1235
+
1236
+ # A `Constraint` that is either enforced or not.
1237
+ # For example a constraint `constraints/compute.disableSerialPortAccess`.
1238
+ # If it is enforced on a VM instance, serial port connections will not be
1239
+ # opened to that instance.
1240
+ class BooleanConstraint
1241
+ include Google::Apis::Core::Hashable
1242
+
1243
+ def initialize(**args)
1244
+ update!(**args)
1245
+ end
1246
+
1247
+ # Update properties of this object
1248
+ def update!(**args)
1249
+ end
1250
+ end
1251
+
1252
+ # Response message for `TestIamPermissions` method.
1253
+ class TestIamPermissionsResponse
1254
+ include Google::Apis::Core::Hashable
1255
+
1256
+ # A subset of `TestPermissionsRequest.permissions` that the caller is
1257
+ # allowed.
1258
+ # Corresponds to the JSON property `permissions`
1259
+ # @return [Array<String>]
1260
+ attr_accessor :permissions
1261
+
1262
+ def initialize(**args)
1263
+ update!(**args)
1264
+ end
1265
+
1266
+ # Update properties of this object
1267
+ def update!(**args)
1268
+ @permissions = args[:permissions] if args.key?(:permissions)
1269
+ end
1270
+ end
1271
+
1272
+ # Request message for `GetIamPolicy` method.
1273
+ class GetIamPolicyRequest
1274
+ include Google::Apis::Core::Hashable
1275
+
1276
+ def initialize(**args)
1277
+ update!(**args)
1278
+ end
1279
+
1280
+ # Update properties of this object
1281
+ def update!(**args)
1282
+ end
1283
+ end
1284
+
1285
+ # The entity that owns an Organization. The lifetime of the Organization and
1286
+ # all of its descendants are bound to the `OrganizationOwner`. If the
1287
+ # `OrganizationOwner` is deleted, the Organization and all its descendants will
1288
+ # be deleted.
1289
+ class OrganizationOwner
1290
+ include Google::Apis::Core::Hashable
1291
+
1292
+ # The Google for Work customer id used in the Directory API.
1293
+ # Corresponds to the JSON property `directoryCustomerId`
1294
+ # @return [String]
1295
+ attr_accessor :directory_customer_id
1296
+
1297
+ def initialize(**args)
1298
+ update!(**args)
1299
+ end
1300
+
1301
+ # Update properties of this object
1302
+ def update!(**args)
1303
+ @directory_customer_id = args[:directory_customer_id] if args.key?(:directory_customer_id)
1304
+ end
1305
+ end
1306
+
1307
+ # A page of the response received from the
1308
+ # ListProjects
1309
+ # method.
1310
+ # A paginated response where more pages are available has
1311
+ # `next_page_token` set. This token can be used in a subsequent request to
1312
+ # retrieve the next request page.
1313
+ class ListProjectsResponse
1314
+ include Google::Apis::Core::Hashable
1315
+
1316
+ # Pagination token.
1317
+ # If the result set is too large to fit in a single response, this token
1318
+ # is returned. It encodes the position of the current result cursor.
1319
+ # Feeding this value into a new list request with the `page_token` parameter
1320
+ # gives the next page of the results.
1321
+ # When `next_page_token` is not filled in, there is no next page and
1322
+ # the list returned is the last page in the result set.
1323
+ # Pagination tokens have a limited lifetime.
1324
+ # Corresponds to the JSON property `nextPageToken`
1325
+ # @return [String]
1326
+ attr_accessor :next_page_token
1327
+
1328
+ # The list of Projects that matched the list filter. This list can
1329
+ # be paginated.
1330
+ # Corresponds to the JSON property `projects`
1331
+ # @return [Array<Google::Apis::CloudresourcemanagerV1::Project>]
1332
+ attr_accessor :projects
1333
+
1334
+ def initialize(**args)
1335
+ update!(**args)
1336
+ end
1337
+
1338
+ # Update properties of this object
1339
+ def update!(**args)
1340
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1341
+ @projects = args[:projects] if args.key?(:projects)
1342
+ end
1343
+ end
1344
+
1345
+ # A Project is a high-level Google Cloud Platform entity. It is a
1346
+ # container for ACLs, APIs, App Engine Apps, VMs, and other
1347
+ # Google Cloud Platform resources.
1348
+ class Project
1349
+ include Google::Apis::Core::Hashable
1350
+
1351
+ # The Project lifecycle state.
1352
+ # Read-only.
1353
+ # Corresponds to the JSON property `lifecycleState`
1354
+ # @return [String]
1355
+ attr_accessor :lifecycle_state
1356
+
1357
+ # The number uniquely identifying the project.
1358
+ # Example: <code>415104041262</code>
1359
+ # Read-only.
1360
+ # Corresponds to the JSON property `projectNumber`
1361
+ # @return [String]
1362
+ attr_accessor :project_number
1363
+
1364
+ # A container to reference an id for any resource type. A `resource` in Google
1365
+ # Cloud Platform is a generic term for something you (a developer) may want to
1366
+ # interact with through one of our API's. Some examples are an App Engine app,
1367
+ # a Compute Engine instance, a Cloud SQL database, and so on.
1368
+ # Corresponds to the JSON property `parent`
1369
+ # @return [Google::Apis::CloudresourcemanagerV1::ResourceId]
1370
+ attr_accessor :parent
1371
+
1372
+ # The labels associated with this Project.
1373
+ # Label keys must be between 1 and 63 characters long and must conform
1374
+ # to the following regular expression: \[a-z\](\[-a-z0-9\]*\[a-z0-9\])?.
1375
+ # Label values must be between 0 and 63 characters long and must conform
1376
+ # to the regular expression (\[a-z\](\[-a-z0-9\]*\[a-z0-9\])?)?.
1377
+ # No more than 256 labels can be associated with a given resource.
1378
+ # Clients should store labels in a representation such as JSON that does not
1379
+ # depend on specific characters being disallowed.
1380
+ # Example: <code>"environment" : "dev"</code>
1381
+ # Read-write.
1382
+ # Corresponds to the JSON property `labels`
1383
+ # @return [Hash<String,String>]
1384
+ attr_accessor :labels
1385
+
1386
+ # Creation time.
1387
+ # Read-only.
1388
+ # Corresponds to the JSON property `createTime`
1389
+ # @return [String]
1390
+ attr_accessor :create_time
1391
+
1392
+ # The user-assigned display name of the Project.
1393
+ # It must be 4 to 30 characters.
1394
+ # Allowed characters are: lowercase and uppercase letters, numbers,
1395
+ # hyphen, single-quote, double-quote, space, and exclamation point.
1396
+ # Example: <code>My Project</code>
1397
+ # Read-write.
1398
+ # Corresponds to the JSON property `name`
1399
+ # @return [String]
1400
+ attr_accessor :name
1401
+
1402
+ # The unique, user-assigned ID of the Project.
1403
+ # It must be 6 to 30 lowercase letters, digits, or hyphens.
1404
+ # It must start with a letter.
1405
+ # Trailing hyphens are prohibited.
1406
+ # Example: <code>tokyo-rain-123</code>
1407
+ # Read-only after creation.
1408
+ # Corresponds to the JSON property `projectId`
1409
+ # @return [String]
1410
+ attr_accessor :project_id
1411
+
1412
+ def initialize(**args)
1413
+ update!(**args)
1414
+ end
1415
+
1416
+ # Update properties of this object
1417
+ def update!(**args)
1418
+ @lifecycle_state = args[:lifecycle_state] if args.key?(:lifecycle_state)
1419
+ @project_number = args[:project_number] if args.key?(:project_number)
1420
+ @parent = args[:parent] if args.key?(:parent)
1421
+ @labels = args[:labels] if args.key?(:labels)
1422
+ @create_time = args[:create_time] if args.key?(:create_time)
1423
+ @name = args[:name] if args.key?(:name)
1424
+ @project_id = args[:project_id] if args.key?(:project_id)
1425
+ end
1426
+ end
1427
+
1428
+ # The response returned from the `SearchOrganizations` method.
1429
+ class SearchOrganizationsResponse
1430
+ include Google::Apis::Core::Hashable
1431
+
1432
+ # A pagination token to be used to retrieve the next page of results. If the
1433
+ # result is too large to fit within the page size specified in the request,
1434
+ # this field will be set with a token that can be used to fetch the next page
1435
+ # of results. If this field is empty, it indicates that this response
1436
+ # contains the last page of results.
1437
+ # Corresponds to the JSON property `nextPageToken`
1438
+ # @return [String]
1439
+ attr_accessor :next_page_token
1440
+
1441
+ # The list of Organizations that matched the search query, possibly
1442
+ # paginated.
1443
+ # Corresponds to the JSON property `organizations`
1444
+ # @return [Array<Google::Apis::CloudresourcemanagerV1::Organization>]
1445
+ attr_accessor :organizations
1446
+
1447
+ def initialize(**args)
1448
+ update!(**args)
1449
+ end
1450
+
1451
+ # Update properties of this object
1452
+ def update!(**args)
1453
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1454
+ @organizations = args[:organizations] if args.key?(:organizations)
1455
+ end
1456
+ end
1457
+
1458
+ # The response returned from the ListOrgPolicies method. It will be empty
1459
+ # if no `Policies` are set on the resource.
1460
+ class ListOrgPoliciesResponse
1461
+ include Google::Apis::Core::Hashable
1462
+
1463
+ # Page token used to retrieve the next page. This is currently not used, but
1464
+ # the server may at any point start supplying a valid token.
1465
+ # Corresponds to the JSON property `nextPageToken`
1466
+ # @return [String]
1467
+ attr_accessor :next_page_token
1468
+
1469
+ # The `Policies` that are set on the resource. It will be empty if no
1470
+ # `Policies` are set.
1471
+ # Corresponds to the JSON property `policies`
1472
+ # @return [Array<Google::Apis::CloudresourcemanagerV1::OrgPolicy>]
1473
+ attr_accessor :policies
1474
+
1475
+ def initialize(**args)
1476
+ update!(**args)
1477
+ end
1478
+
1479
+ # Update properties of this object
1480
+ def update!(**args)
1481
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1482
+ @policies = args[:policies] if args.key?(:policies)
1483
+ end
1484
+ end
1485
+
1486
+ # A classification of the Folder Operation error.
1487
+ class FolderOperationError
1488
+ include Google::Apis::Core::Hashable
1489
+
1490
+ # The type of operation error experienced.
1491
+ # Corresponds to the JSON property `errorMessageId`
1492
+ # @return [String]
1493
+ attr_accessor :error_message_id
1494
+
1495
+ def initialize(**args)
1496
+ update!(**args)
1497
+ end
1498
+
1499
+ # Update properties of this object
1500
+ def update!(**args)
1501
+ @error_message_id = args[:error_message_id] if args.key?(:error_message_id)
1502
+ end
1503
+ end
1504
+
1505
+ # Defines a Cloud Organization `Policy` which is used to specify `Constraints`
1506
+ # for configurations of Cloud Platform resources.
1507
+ class OrgPolicy
1508
+ include Google::Apis::Core::Hashable
1509
+
1510
+ # An opaque tag indicating the current version of the `Policy`, used for
1511
+ # concurrency control.
1512
+ # When the `Policy` is returned from either a `GetPolicy` or a
1513
+ # `ListOrgPolicy` request, this `etag` indicates the version of the current
1514
+ # `Policy` to use when executing a read-modify-write loop.
1515
+ # When the `Policy` is returned from a `GetEffectivePolicy` request, the
1516
+ # `etag` will be unset.
1517
+ # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
1518
+ # that was returned from a `GetOrgPolicy` request as part of a
1519
+ # read-modify-write loop for concurrency control. Not setting the `etag`in a
1520
+ # `SetOrgPolicy` request will result in an unconditional write of the
1521
+ # `Policy`.
1522
+ # Corresponds to the JSON property `etag`
1523
+ # @return [String]
1524
+ attr_accessor :etag
1525
+
1526
+ # Used in `policy_type` to specify how `boolean_policy` will behave at this
1527
+ # resource.
1528
+ # Corresponds to the JSON property `booleanPolicy`
1529
+ # @return [Google::Apis::CloudresourcemanagerV1::BooleanPolicy]
1530
+ attr_accessor :boolean_policy
1531
+
1532
+ # The name of the `Constraint` the `Policy` is configuring, for example,
1533
+ # `constraints/serviceuser.services`.
1534
+ # Immutable after creation.
1535
+ # Corresponds to the JSON property `constraint`
1536
+ # @return [String]
1537
+ attr_accessor :constraint
1538
+
1539
+ # The time stamp the `Policy` was previously updated. This is set by the
1540
+ # server, not specified by the caller, and represents the last time a call to
1541
+ # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
1542
+ # be ignored.
1543
+ # Corresponds to the JSON property `updateTime`
1544
+ # @return [String]
1545
+ attr_accessor :update_time
1546
+
1547
+ # Version of the `Policy`. Default version is 0;
1548
+ # Corresponds to the JSON property `version`
1549
+ # @return [Fixnum]
1550
+ attr_accessor :version
1551
+
1552
+ # Ignores policies set above this resource and restores the
1553
+ # `constraint_default` enforcement behavior of the specific `Constraint` at
1554
+ # this resource.
1555
+ # Suppose that `constraint_default` is set to `ALLOW` for the
1556
+ # `Constraint` `constraints/serviceuser.services`. Suppose that organization
1557
+ # foo.com sets a `Policy` at their Organization resource node that restricts
1558
+ # the allowed service activations to deny all service activations. They
1559
+ # could then set a `Policy` with the `policy_type` `restore_default` on
1560
+ # several experimental projects, restoring the `constraint_default`
1561
+ # enforcement of the `Constraint` for only those projects, allowing those
1562
+ # projects to have all services activated.
1563
+ # Corresponds to the JSON property `restoreDefault`
1564
+ # @return [Google::Apis::CloudresourcemanagerV1::RestoreDefault]
1565
+ attr_accessor :restore_default
1566
+
1567
+ # Used in `policy_type` to specify how `list_policy` behaves at this
1568
+ # resource.
1569
+ # A `ListPolicy` can define specific values that are allowed or denied by
1570
+ # setting either the `allowed_values` or `denied_values` fields. It can also
1571
+ # be used to allow or deny all values, by setting the `all_values` field. If
1572
+ # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
1573
+ # or `denied_values` must be set (attempting to set both or neither will
1574
+ # result in a failed request). If `all_values` is set to either `ALLOW` or
1575
+ # `DENY`, `allowed_values` and `denied_values` must be unset.
1576
+ # Corresponds to the JSON property `listPolicy`
1577
+ # @return [Google::Apis::CloudresourcemanagerV1::ListPolicy]
1578
+ attr_accessor :list_policy
1579
+
1580
+ def initialize(**args)
1581
+ update!(**args)
1582
+ end
1583
+
1584
+ # Update properties of this object
1585
+ def update!(**args)
1586
+ @etag = args[:etag] if args.key?(:etag)
1587
+ @boolean_policy = args[:boolean_policy] if args.key?(:boolean_policy)
1588
+ @constraint = args[:constraint] if args.key?(:constraint)
1589
+ @update_time = args[:update_time] if args.key?(:update_time)
1590
+ @version = args[:version] if args.key?(:version)
1591
+ @restore_default = args[:restore_default] if args.key?(:restore_default)
1592
+ @list_policy = args[:list_policy] if args.key?(:list_policy)
1593
+ end
1594
+ end
1595
+
1596
+ # Used in `policy_type` to specify how `boolean_policy` will behave at this
1597
+ # resource.
1598
+ class BooleanPolicy
1599
+ include Google::Apis::Core::Hashable
1600
+
1601
+ # If `true`, then the `Policy` is enforced. If `false`, then any
1602
+ # configuration is acceptable.
1603
+ # Suppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`
1604
+ # with `constraint_default` set to `ALLOW`. A `Policy` for that
1605
+ # `Constraint` exhibits the following behavior:
1606
+ # - If the `Policy` at this resource has enforced set to `false`, serial
1607
+ # port connection attempts will be allowed.
1608
+ # - If the `Policy` at this resource has enforced set to `true`, serial
1609
+ # port connection attempts will be refused.
1610
+ # - If the `Policy` at this resource is `RestoreDefault`, serial port
1611
+ # connection attempts will be allowed.
1612
+ # - If no `Policy` is set at this resource or anywhere higher in the
1613
+ # resource hierarchy, serial port connection attempts will be allowed.
1614
+ # - If no `Policy` is set at this resource, but one exists higher in the
1615
+ # resource hierarchy, the behavior is as if the`Policy` were set at
1616
+ # this resource.
1617
+ # The following examples demonstrate the different possible layerings:
1618
+ # Example 1 (nearest `Constraint` wins):
1619
+ # `organizations/foo` has a `Policy` with:
1620
+ # `enforced: false`
1621
+ # `projects/bar` has no `Policy` set.
1622
+ # The constraint at `projects/bar` and `organizations/foo` will not be
1623
+ # enforced.
1624
+ # Example 2 (enforcement gets replaced):
1625
+ # `organizations/foo` has a `Policy` with:
1626
+ # `enforced: false`
1627
+ # `projects/bar` has a `Policy` with:
1628
+ # `enforced: true`
1629
+ # The constraint at `organizations/foo` is not enforced.
1630
+ # The constraint at `projects/bar` is enforced.
1631
+ # Example 3 (RestoreDefault):
1632
+ # `organizations/foo` has a `Policy` with:
1633
+ # `enforced: true`
1634
+ # `projects/bar` has a `Policy` with:
1635
+ # `RestoreDefault: ```
1636
+ # The constraint at `organizations/foo` is enforced.
1637
+ # The constraint at `projects/bar` is not enforced, because
1638
+ # `constraint_default` for the `Constraint` is `ALLOW`.
1639
+ # Corresponds to the JSON property `enforced`
1640
+ # @return [Boolean]
1641
+ attr_accessor :enforced
1642
+ alias_method :enforced?, :enforced
1643
+
1644
+ def initialize(**args)
1645
+ update!(**args)
1646
+ end
1647
+
1648
+ # Update properties of this object
1649
+ def update!(**args)
1650
+ @enforced = args[:enforced] if args.key?(:enforced)
1651
+ end
1652
+ end
1653
+
1654
+ # A Lien represents an encumbrance on the actions that can be performed on a
1655
+ # resource.
1656
+ class Lien
1657
+ include Google::Apis::Core::Hashable
1658
+
1659
+ # A reference to the resource this Lien is attached to. The server will
1660
+ # validate the parent against those for which Liens are supported.
1661
+ # Example: `projects/1234`
1662
+ # Corresponds to the JSON property `parent`
1663
+ # @return [String]
1664
+ attr_accessor :parent
1665
+
1666
+ # The creation time of this Lien.
1667
+ # Corresponds to the JSON property `createTime`
1668
+ # @return [String]
1669
+ attr_accessor :create_time
1670
+
1671
+ # A system-generated unique identifier for this Lien.
1672
+ # Example: `liens/1234abcd`
1673
+ # Corresponds to the JSON property `name`
1674
+ # @return [String]
1675
+ attr_accessor :name
1676
+
1677
+ # Concise user-visible strings indicating why an action cannot be performed
1678
+ # on a resource. Maximum lenth of 200 characters.
1679
+ # Example: 'Holds production API key'
1680
+ # Corresponds to the JSON property `reason`
1681
+ # @return [String]
1682
+ attr_accessor :reason
1683
+
1684
+ # A stable, user-visible/meaningful string identifying the origin of the
1685
+ # Lien, intended to be inspected programmatically. Maximum length of 200
1686
+ # characters.
1687
+ # Example: 'compute.googleapis.com'
1688
+ # Corresponds to the JSON property `origin`
1689
+ # @return [String]
1690
+ attr_accessor :origin
1691
+
1692
+ # The types of operations which should be blocked as a result of this Lien.
1693
+ # Each value should correspond to an IAM permission. The server will
1694
+ # validate the permissions against those for which Liens are supported.
1695
+ # An empty list is meaningless and will be rejected.
1696
+ # Example: ['resourcemanager.projects.delete']
1697
+ # Corresponds to the JSON property `restrictions`
1698
+ # @return [Array<String>]
1699
+ attr_accessor :restrictions
1700
+
1701
+ def initialize(**args)
1702
+ update!(**args)
1703
+ end
1704
+
1705
+ # Update properties of this object
1706
+ def update!(**args)
1707
+ @parent = args[:parent] if args.key?(:parent)
1708
+ @create_time = args[:create_time] if args.key?(:create_time)
1709
+ @name = args[:name] if args.key?(:name)
1710
+ @reason = args[:reason] if args.key?(:reason)
1711
+ @origin = args[:origin] if args.key?(:origin)
1712
+ @restrictions = args[:restrictions] if args.key?(:restrictions)
351
1713
  end
352
1714
  end
353
1715
  end