google-api-client 0.32.1 → 0.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (491) hide show
  1. checksums.yaml +5 -5
  2. data/.kokoro/continuous/linux.cfg +2 -2
  3. data/.kokoro/continuous/post.cfg +30 -0
  4. data/.kokoro/presubmit/linux.cfg +1 -1
  5. data/.kokoro/release.cfg +94 -0
  6. data/.repo-metadata.json +5 -0
  7. data/.rubocop.yml +5 -0
  8. data/.yardopts +16 -3
  9. data/CHANGELOG.md +327 -0
  10. data/Gemfile +1 -0
  11. data/OVERVIEW.md +36 -0
  12. data/README.md +50 -2
  13. data/Rakefile +71 -2
  14. data/docs/api-keys.md +20 -0
  15. data/docs/auth.md +53 -0
  16. data/docs/client-secrets.md +69 -0
  17. data/docs/getting-started.md +340 -0
  18. data/docs/installation.md +0 -0
  19. data/docs/logging.md +34 -0
  20. data/docs/media-upload.md +25 -0
  21. data/docs/oauth-installed.md +191 -0
  22. data/docs/oauth-server.md +135 -0
  23. data/docs/oauth-web.md +280 -0
  24. data/docs/oauth.md +268 -0
  25. data/docs/pagination.md +29 -0
  26. data/docs/performance.md +25 -0
  27. data/generated/google/apis/accessapproval_v1beta1/classes.rb +35 -2
  28. data/generated/google/apis/accessapproval_v1beta1/representations.rb +13 -0
  29. data/generated/google/apis/accessapproval_v1beta1/service.rb +108 -6
  30. data/generated/google/apis/accessapproval_v1beta1.rb +1 -1
  31. data/generated/google/apis/accesscontextmanager_v1/classes.rb +1 -1
  32. data/generated/google/apis/accesscontextmanager_v1.rb +1 -1
  33. data/generated/google/apis/accesscontextmanager_v1beta/classes.rb +1 -73
  34. data/generated/google/apis/accesscontextmanager_v1beta/representations.rb +0 -32
  35. data/generated/google/apis/accesscontextmanager_v1beta.rb +1 -1
  36. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +1 -1
  37. data/generated/google/apis/adexchangebuyer_v1_3/classes.rb +24 -2
  38. data/generated/google/apis/adexchangebuyer_v1_3/representations.rb +1 -0
  39. data/generated/google/apis/adexchangebuyer_v1_3.rb +1 -1
  40. data/generated/google/apis/adexchangebuyer_v1_4/classes.rb +25 -3
  41. data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +1 -0
  42. data/generated/google/apis/adexchangebuyer_v1_4.rb +1 -1
  43. data/generated/google/apis/admin_datatransfer_v1/classes.rb +5 -5
  44. data/generated/google/apis/admin_datatransfer_v1/service.rb +2 -2
  45. data/generated/google/apis/admin_datatransfer_v1.rb +1 -1
  46. data/generated/google/apis/admin_directory_v1/classes.rb +4 -3
  47. data/generated/google/apis/admin_directory_v1.rb +4 -1
  48. data/generated/google/apis/admin_reports_v1/classes.rb +87 -44
  49. data/generated/google/apis/admin_reports_v1/service.rb +310 -64
  50. data/generated/google/apis/admin_reports_v1.rb +2 -2
  51. data/generated/google/apis/androidmanagement_v1.rb +1 -1
  52. data/generated/google/apis/androidpublisher_v3/classes.rb +105 -0
  53. data/generated/google/apis/androidpublisher_v3/representations.rb +51 -0
  54. data/generated/google/apis/androidpublisher_v3.rb +1 -1
  55. data/generated/google/apis/appengine_v1/service.rb +10 -6
  56. data/generated/google/apis/appengine_v1.rb +1 -1
  57. data/generated/google/apis/appengine_v1beta/service.rb +10 -6
  58. data/generated/google/apis/appengine_v1beta.rb +1 -1
  59. data/generated/google/apis/appsmarket_v2.rb +1 -1
  60. data/generated/google/apis/bigquery_v2/classes.rb +104 -23
  61. data/generated/google/apis/bigquery_v2/representations.rb +37 -0
  62. data/generated/google/apis/bigquery_v2/service.rb +1 -5
  63. data/generated/google/apis/bigquery_v2.rb +1 -1
  64. data/generated/google/apis/bigqueryconnection_v1beta1/classes.rb +6 -5
  65. data/generated/google/apis/bigqueryconnection_v1beta1/service.rb +3 -2
  66. data/generated/google/apis/bigqueryconnection_v1beta1.rb +1 -1
  67. data/generated/google/apis/bigquerydatatransfer_v1/service.rb +30 -4
  68. data/generated/google/apis/bigquerydatatransfer_v1.rb +1 -1
  69. data/generated/google/apis/bigqueryreservation_v1/classes.rb +0 -21
  70. data/generated/google/apis/bigqueryreservation_v1/representations.rb +0 -13
  71. data/generated/google/apis/bigqueryreservation_v1.rb +1 -1
  72. data/generated/google/apis/bigqueryreservation_v1alpha2/classes.rb +116 -1
  73. data/generated/google/apis/bigqueryreservation_v1alpha2/representations.rb +35 -0
  74. data/generated/google/apis/bigqueryreservation_v1alpha2/service.rb +71 -0
  75. data/generated/google/apis/bigqueryreservation_v1alpha2.rb +1 -1
  76. data/generated/google/apis/bigqueryreservation_v1beta1/classes.rb +61 -77
  77. data/generated/google/apis/bigqueryreservation_v1beta1/representations.rb +16 -17
  78. data/generated/google/apis/bigqueryreservation_v1beta1/service.rb +116 -78
  79. data/generated/google/apis/bigqueryreservation_v1beta1.rb +1 -1
  80. data/generated/google/apis/bigtableadmin_v1/classes.rb +1 -1
  81. data/generated/google/apis/bigtableadmin_v1.rb +1 -1
  82. data/generated/google/apis/bigtableadmin_v2/classes.rb +63 -30
  83. data/generated/google/apis/bigtableadmin_v2/service.rb +1 -1
  84. data/generated/google/apis/bigtableadmin_v2.rb +1 -1
  85. data/generated/google/apis/billingbudgets_v1beta1/classes.rb +392 -0
  86. data/generated/google/apis/billingbudgets_v1beta1/representations.rb +191 -0
  87. data/generated/google/apis/billingbudgets_v1beta1/service.rb +233 -0
  88. data/generated/google/apis/billingbudgets_v1beta1.rb +35 -0
  89. data/generated/google/apis/binaryauthorization_v1/classes.rb +6 -5
  90. data/generated/google/apis/binaryauthorization_v1/service.rb +2 -0
  91. data/generated/google/apis/binaryauthorization_v1.rb +1 -1
  92. data/generated/google/apis/binaryauthorization_v1beta1/classes.rb +6 -5
  93. data/generated/google/apis/binaryauthorization_v1beta1/service.rb +2 -0
  94. data/generated/google/apis/binaryauthorization_v1beta1.rb +1 -1
  95. data/generated/google/apis/books_v1/classes.rb +20 -0
  96. data/generated/google/apis/books_v1/representations.rb +3 -0
  97. data/generated/google/apis/books_v1.rb +1 -1
  98. data/generated/google/apis/calendar_v3/classes.rb +1 -1
  99. data/generated/google/apis/calendar_v3/service.rb +18 -30
  100. data/generated/google/apis/calendar_v3.rb +1 -1
  101. data/generated/google/apis/civicinfo_v2/classes.rb +0 -156
  102. data/generated/google/apis/civicinfo_v2/representations.rb +2 -60
  103. data/generated/google/apis/civicinfo_v2.rb +1 -1
  104. data/generated/google/apis/cloudasset_v1/classes.rb +89 -55
  105. data/generated/google/apis/cloudasset_v1/service.rb +1 -2
  106. data/generated/google/apis/cloudasset_v1.rb +1 -1
  107. data/generated/google/apis/cloudasset_v1beta1/classes.rb +75 -40
  108. data/generated/google/apis/cloudasset_v1beta1.rb +1 -1
  109. data/generated/google/apis/cloudbilling_v1/classes.rb +82 -36
  110. data/generated/google/apis/cloudbilling_v1/representations.rb +0 -1
  111. data/generated/google/apis/cloudbilling_v1/service.rb +5 -3
  112. data/generated/google/apis/cloudbilling_v1.rb +1 -1
  113. data/generated/google/apis/cloudbuild_v1/classes.rb +8 -2
  114. data/generated/google/apis/cloudbuild_v1/representations.rb +1 -0
  115. data/generated/google/apis/cloudbuild_v1/service.rb +18 -18
  116. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  117. data/generated/google/apis/clouddebugger_v2/service.rb +14 -14
  118. data/generated/google/apis/clouddebugger_v2.rb +1 -1
  119. data/generated/google/apis/cloudfunctions_v1/classes.rb +13 -5
  120. data/generated/google/apis/cloudfunctions_v1/representations.rb +1 -0
  121. data/generated/google/apis/cloudfunctions_v1/service.rb +10 -4
  122. data/generated/google/apis/cloudfunctions_v1.rb +1 -1
  123. data/generated/google/apis/cloudfunctions_v1beta2/classes.rb +7 -0
  124. data/generated/google/apis/cloudfunctions_v1beta2/representations.rb +1 -0
  125. data/generated/google/apis/cloudfunctions_v1beta2/service.rb +10 -4
  126. data/generated/google/apis/cloudfunctions_v1beta2.rb +1 -1
  127. data/generated/google/apis/cloudidentity_v1/classes.rb +11 -8
  128. data/generated/google/apis/cloudidentity_v1/service.rb +2 -1
  129. data/generated/google/apis/cloudidentity_v1.rb +1 -1
  130. data/generated/google/apis/cloudidentity_v1beta1/classes.rb +13 -10
  131. data/generated/google/apis/cloudidentity_v1beta1/service.rb +2 -1
  132. data/generated/google/apis/cloudidentity_v1beta1.rb +1 -1
  133. data/generated/google/apis/cloudiot_v1/classes.rb +6 -5
  134. data/generated/google/apis/cloudiot_v1.rb +1 -1
  135. data/generated/google/apis/cloudkms_v1/classes.rb +6 -5
  136. data/generated/google/apis/cloudkms_v1/service.rb +3 -0
  137. data/generated/google/apis/cloudkms_v1.rb +1 -1
  138. data/generated/google/apis/cloudprivatecatalogproducer_v1beta1/classes.rb +75 -40
  139. data/generated/google/apis/cloudprivatecatalogproducer_v1beta1.rb +1 -1
  140. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +18 -17
  141. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  142. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +6 -5
  143. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  144. data/generated/google/apis/cloudresourcemanager_v2/classes.rb +10 -13
  145. data/generated/google/apis/cloudresourcemanager_v2/service.rb +11 -13
  146. data/generated/google/apis/cloudresourcemanager_v2.rb +1 -1
  147. data/generated/google/apis/cloudresourcemanager_v2beta1/classes.rb +10 -13
  148. data/generated/google/apis/cloudresourcemanager_v2beta1/service.rb +11 -13
  149. data/generated/google/apis/cloudresourcemanager_v2beta1.rb +1 -1
  150. data/generated/google/apis/cloudscheduler_v1/classes.rb +2 -1
  151. data/generated/google/apis/cloudscheduler_v1.rb +1 -1
  152. data/generated/google/apis/cloudscheduler_v1beta1/classes.rb +2 -1
  153. data/generated/google/apis/cloudscheduler_v1beta1.rb +1 -1
  154. data/generated/google/apis/cloudsearch_v1/classes.rb +10 -132
  155. data/generated/google/apis/cloudsearch_v1/representations.rb +0 -75
  156. data/generated/google/apis/cloudsearch_v1/service.rb +47 -9
  157. data/generated/google/apis/cloudsearch_v1.rb +8 -8
  158. data/generated/google/apis/cloudshell_v1/classes.rb +24 -1
  159. data/generated/google/apis/cloudshell_v1/representations.rb +3 -0
  160. data/generated/google/apis/cloudshell_v1.rb +1 -1
  161. data/generated/google/apis/cloudshell_v1alpha1/classes.rb +24 -1
  162. data/generated/google/apis/cloudshell_v1alpha1/representations.rb +3 -0
  163. data/generated/google/apis/cloudshell_v1alpha1.rb +1 -1
  164. data/generated/google/apis/cloudtasks_v2/classes.rb +212 -5
  165. data/generated/google/apis/cloudtasks_v2/representations.rb +50 -0
  166. data/generated/google/apis/cloudtasks_v2.rb +1 -1
  167. data/generated/google/apis/cloudtasks_v2beta2/classes.rb +6 -5
  168. data/generated/google/apis/cloudtasks_v2beta2.rb +1 -1
  169. data/generated/google/apis/cloudtasks_v2beta3/classes.rb +6 -5
  170. data/generated/google/apis/cloudtasks_v2beta3.rb +1 -1
  171. data/generated/google/apis/commentanalyzer_v1alpha1/classes.rb +14 -19
  172. data/generated/google/apis/commentanalyzer_v1alpha1.rb +1 -1
  173. data/generated/google/apis/compute_alpha/classes.rb +594 -164
  174. data/generated/google/apis/compute_alpha/representations.rb +110 -2
  175. data/generated/google/apis/compute_alpha/service.rb +1035 -640
  176. data/generated/google/apis/compute_alpha.rb +1 -1
  177. data/generated/google/apis/compute_beta/classes.rb +1070 -276
  178. data/generated/google/apis/compute_beta/representations.rb +284 -0
  179. data/generated/google/apis/compute_beta/service.rb +1242 -532
  180. data/generated/google/apis/compute_beta.rb +1 -1
  181. data/generated/google/apis/compute_v1/classes.rb +335 -133
  182. data/generated/google/apis/compute_v1/representations.rb +24 -0
  183. data/generated/google/apis/compute_v1/service.rb +759 -473
  184. data/generated/google/apis/compute_v1.rb +1 -1
  185. data/generated/google/apis/container_v1/classes.rb +410 -83
  186. data/generated/google/apis/container_v1/representations.rb +134 -0
  187. data/generated/google/apis/container_v1/service.rb +119 -119
  188. data/generated/google/apis/container_v1.rb +1 -1
  189. data/generated/google/apis/container_v1beta1/classes.rb +157 -3
  190. data/generated/google/apis/container_v1beta1/representations.rb +38 -0
  191. data/generated/google/apis/container_v1beta1.rb +1 -1
  192. data/generated/google/apis/containeranalysis_v1alpha1/classes.rb +6 -5
  193. data/generated/google/apis/containeranalysis_v1alpha1.rb +1 -1
  194. data/generated/google/apis/containeranalysis_v1beta1/classes.rb +6 -5
  195. data/generated/google/apis/containeranalysis_v1beta1.rb +1 -1
  196. data/generated/google/apis/content_v2/classes.rb +35 -223
  197. data/generated/google/apis/content_v2/representations.rb +0 -115
  198. data/generated/google/apis/content_v2/service.rb +0 -160
  199. data/generated/google/apis/content_v2.rb +1 -1
  200. data/generated/google/apis/content_v2_1/classes.rb +69 -21
  201. data/generated/google/apis/content_v2_1/representations.rb +3 -0
  202. data/generated/google/apis/content_v2_1.rb +1 -1
  203. data/generated/google/apis/datacatalog_v1beta1/classes.rb +1646 -0
  204. data/generated/google/apis/datacatalog_v1beta1/representations.rb +700 -0
  205. data/generated/google/apis/datacatalog_v1beta1/service.rb +1982 -0
  206. data/generated/google/apis/{cloudbuild_v1alpha1.rb → datacatalog_v1beta1.rb} +10 -9
  207. data/generated/google/apis/dataflow_v1b3/classes.rb +6 -9
  208. data/generated/google/apis/dataflow_v1b3/representations.rb +1 -1
  209. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  210. data/generated/google/apis/datafusion_v1beta1/classes.rb +156 -46
  211. data/generated/google/apis/datafusion_v1beta1/representations.rb +33 -0
  212. data/generated/google/apis/datafusion_v1beta1/service.rb +10 -1
  213. data/generated/google/apis/datafusion_v1beta1.rb +1 -1
  214. data/generated/google/apis/dataproc_v1/classes.rb +119 -11
  215. data/generated/google/apis/dataproc_v1/representations.rb +39 -0
  216. data/generated/google/apis/dataproc_v1/service.rb +14 -7
  217. data/generated/google/apis/dataproc_v1.rb +1 -1
  218. data/generated/google/apis/dataproc_v1beta2/classes.rb +9 -11
  219. data/generated/google/apis/dataproc_v1beta2/service.rb +26 -19
  220. data/generated/google/apis/dataproc_v1beta2.rb +1 -1
  221. data/generated/google/apis/datastore_v1/service.rb +85 -1
  222. data/generated/google/apis/datastore_v1.rb +1 -1
  223. data/generated/google/apis/datastore_v1beta3/service.rb +1 -1
  224. data/generated/google/apis/datastore_v1beta3.rb +1 -1
  225. data/generated/google/apis/dfareporting_v3_3/classes.rb +21 -1
  226. data/generated/google/apis/dfareporting_v3_3/service.rb +6 -6
  227. data/generated/google/apis/dfareporting_v3_3.rb +1 -1
  228. data/generated/google/apis/{dfareporting_v3_2 → dfareporting_v3_4}/classes.rb +1215 -797
  229. data/generated/google/apis/{dfareporting_v3_2 → dfareporting_v3_4}/representations.rb +593 -395
  230. data/generated/google/apis/{dfareporting_v3_2 → dfareporting_v3_4}/service.rb +966 -1074
  231. data/generated/google/apis/{dfareporting_v3_2.rb → dfareporting_v3_4.rb} +6 -6
  232. data/generated/google/apis/dialogflow_v2/classes.rb +509 -8
  233. data/generated/google/apis/dialogflow_v2/representations.rb +222 -0
  234. data/generated/google/apis/dialogflow_v2.rb +1 -1
  235. data/generated/google/apis/dialogflow_v2beta1/classes.rb +530 -8
  236. data/generated/google/apis/dialogflow_v2beta1/representations.rb +224 -0
  237. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  238. data/generated/google/apis/dlp_v2/classes.rb +109 -33
  239. data/generated/google/apis/dlp_v2/representations.rb +23 -3
  240. data/generated/google/apis/dlp_v2/service.rb +1996 -209
  241. data/generated/google/apis/dlp_v2.rb +1 -1
  242. data/generated/google/apis/dns_v1beta2/classes.rb +47 -0
  243. data/generated/google/apis/dns_v1beta2/representations.rb +17 -0
  244. data/generated/google/apis/dns_v1beta2.rb +1 -1
  245. data/generated/google/apis/docs_v1/classes.rb +175 -0
  246. data/generated/google/apis/docs_v1/representations.rb +77 -0
  247. data/generated/google/apis/docs_v1.rb +1 -1
  248. data/generated/google/apis/doubleclickbidmanager_v1.rb +1 -1
  249. data/generated/google/apis/doubleclickbidmanager_v1_1/classes.rb +826 -0
  250. data/generated/google/apis/doubleclickbidmanager_v1_1/representations.rb +372 -0
  251. data/generated/google/apis/doubleclickbidmanager_v1_1/service.rb +371 -0
  252. data/generated/google/apis/{urlshortener_v1.rb → doubleclickbidmanager_v1_1.rb} +11 -11
  253. data/generated/google/apis/drive_v2/classes.rb +2 -1
  254. data/generated/google/apis/drive_v2/service.rb +3 -3
  255. data/generated/google/apis/drive_v2.rb +1 -1
  256. data/generated/google/apis/drive_v3/classes.rb +12 -3
  257. data/generated/google/apis/drive_v3.rb +1 -1
  258. data/generated/google/apis/fcm_v1/classes.rb +15 -0
  259. data/generated/google/apis/fcm_v1/representations.rb +2 -0
  260. data/generated/google/apis/fcm_v1.rb +1 -1
  261. data/generated/google/apis/firebase_v1beta1/classes.rb +18 -4
  262. data/generated/google/apis/firebase_v1beta1/representations.rb +2 -0
  263. data/generated/google/apis/firebase_v1beta1/service.rb +6 -6
  264. data/generated/google/apis/firebase_v1beta1.rb +1 -1
  265. data/generated/google/apis/firebasehosting_v1beta1/classes.rb +62 -0
  266. data/generated/google/apis/firebasehosting_v1beta1/representations.rb +31 -0
  267. data/generated/google/apis/firebasehosting_v1beta1/service.rb +47 -0
  268. data/generated/google/apis/firebasehosting_v1beta1.rb +1 -1
  269. data/generated/google/apis/firebaserules_v1/classes.rb +26 -0
  270. data/generated/google/apis/firebaserules_v1/representations.rb +15 -0
  271. data/generated/google/apis/firebaserules_v1.rb +1 -1
  272. data/generated/google/apis/firestore_v1.rb +1 -1
  273. data/generated/google/apis/firestore_v1beta1.rb +1 -1
  274. data/generated/google/apis/fitness_v1/service.rb +1 -1
  275. data/generated/google/apis/fitness_v1.rb +1 -1
  276. data/generated/google/apis/games_management_v1management/classes.rb +6 -26
  277. data/generated/google/apis/games_management_v1management/representations.rb +1 -14
  278. data/generated/google/apis/games_management_v1management/service.rb +0 -158
  279. data/generated/google/apis/games_management_v1management.rb +1 -1
  280. data/generated/google/apis/games_v1/classes.rb +6 -292
  281. data/generated/google/apis/games_v1/representations.rb +1 -98
  282. data/generated/google/apis/games_v1/service.rb +0 -123
  283. data/generated/google/apis/games_v1.rb +1 -1
  284. data/generated/google/apis/genomics_v2alpha1/classes.rb +32 -0
  285. data/generated/google/apis/genomics_v2alpha1/representations.rb +16 -0
  286. data/generated/google/apis/genomics_v2alpha1.rb +1 -1
  287. data/generated/google/apis/healthcare_v1beta1/classes.rb +213 -16
  288. data/generated/google/apis/healthcare_v1beta1/representations.rb +101 -0
  289. data/generated/google/apis/healthcare_v1beta1/service.rb +207 -116
  290. data/generated/google/apis/healthcare_v1beta1.rb +1 -1
  291. data/generated/google/apis/homegraph_v1/classes.rb +15 -1
  292. data/generated/google/apis/homegraph_v1/representations.rb +2 -1
  293. data/generated/google/apis/homegraph_v1.rb +1 -1
  294. data/generated/google/apis/iam_v1/classes.rb +15 -7
  295. data/generated/google/apis/iam_v1/representations.rb +1 -0
  296. data/generated/google/apis/iam_v1.rb +1 -1
  297. data/generated/google/apis/iap_v1/classes.rb +187 -2
  298. data/generated/google/apis/iap_v1/representations.rb +102 -0
  299. data/generated/google/apis/iap_v1/service.rb +72 -0
  300. data/generated/google/apis/iap_v1.rb +1 -1
  301. data/generated/google/apis/iap_v1beta1/classes.rb +2 -2
  302. data/generated/google/apis/iap_v1beta1.rb +1 -1
  303. data/generated/google/apis/jobs_v2/classes.rb +167 -0
  304. data/generated/google/apis/jobs_v2/representations.rb +40 -0
  305. data/generated/google/apis/jobs_v2.rb +1 -1
  306. data/generated/google/apis/jobs_v3/classes.rb +179 -0
  307. data/generated/google/apis/jobs_v3/representations.rb +41 -0
  308. data/generated/google/apis/jobs_v3.rb +1 -1
  309. data/generated/google/apis/jobs_v3p1beta1/classes.rb +179 -0
  310. data/generated/google/apis/jobs_v3p1beta1/representations.rb +41 -0
  311. data/generated/google/apis/jobs_v3p1beta1.rb +1 -1
  312. data/generated/google/apis/licensing_v1/classes.rb +15 -7
  313. data/generated/google/apis/licensing_v1/service.rb +81 -37
  314. data/generated/google/apis/licensing_v1.rb +4 -4
  315. data/generated/google/apis/lifesciences_v2beta/classes.rb +1329 -0
  316. data/generated/google/apis/lifesciences_v2beta/representations.rb +533 -0
  317. data/generated/google/apis/lifesciences_v2beta/service.rb +303 -0
  318. data/generated/google/apis/lifesciences_v2beta.rb +35 -0
  319. data/generated/google/apis/logging_v2/classes.rb +30 -2
  320. data/generated/google/apis/logging_v2/representations.rb +4 -0
  321. data/generated/google/apis/logging_v2/service.rb +10 -5
  322. data/generated/google/apis/logging_v2.rb +1 -1
  323. data/generated/google/apis/ml_v1/classes.rb +308 -155
  324. data/generated/google/apis/ml_v1/representations.rb +59 -0
  325. data/generated/google/apis/ml_v1/service.rb +44 -3
  326. data/generated/google/apis/ml_v1.rb +2 -2
  327. data/generated/google/apis/monitoring_v1/classes.rb +1153 -0
  328. data/generated/google/apis/monitoring_v1/representations.rb +528 -0
  329. data/generated/google/apis/{cloudbuild_v1alpha1 → monitoring_v1}/service.rb +86 -63
  330. data/generated/google/apis/monitoring_v1.rb +48 -0
  331. data/generated/google/apis/monitoring_v3/classes.rb +836 -60
  332. data/generated/google/apis/monitoring_v3/representations.rb +348 -0
  333. data/generated/google/apis/monitoring_v3/service.rb +384 -2
  334. data/generated/google/apis/monitoring_v3.rb +1 -1
  335. data/generated/google/apis/oslogin_v1/classes.rb +1 -1
  336. data/generated/google/apis/oslogin_v1/service.rb +10 -6
  337. data/generated/google/apis/oslogin_v1.rb +1 -1
  338. data/generated/google/apis/oslogin_v1beta/classes.rb +1 -1
  339. data/generated/google/apis/oslogin_v1beta/service.rb +9 -5
  340. data/generated/google/apis/oslogin_v1beta.rb +1 -1
  341. data/generated/google/apis/pagespeedonline_v5/classes.rb +8 -0
  342. data/generated/google/apis/pagespeedonline_v5/representations.rb +1 -0
  343. data/generated/google/apis/pagespeedonline_v5.rb +1 -1
  344. data/generated/google/apis/people_v1/classes.rb +67 -63
  345. data/generated/google/apis/people_v1/service.rb +53 -44
  346. data/generated/google/apis/people_v1.rb +1 -1
  347. data/generated/google/apis/policytroubleshooter_v1beta/classes.rb +168 -90
  348. data/generated/google/apis/policytroubleshooter_v1beta/service.rb +2 -3
  349. data/generated/google/apis/policytroubleshooter_v1beta.rb +1 -1
  350. data/generated/google/apis/pubsub_v1/classes.rb +8 -6
  351. data/generated/google/apis/pubsub_v1/service.rb +9 -7
  352. data/generated/google/apis/pubsub_v1.rb +1 -1
  353. data/generated/google/apis/pubsub_v1beta2/classes.rb +6 -5
  354. data/generated/google/apis/pubsub_v1beta2/service.rb +2 -0
  355. data/generated/google/apis/pubsub_v1beta2.rb +1 -1
  356. data/generated/google/apis/recommender_v1beta1/classes.rb +1 -1
  357. data/generated/google/apis/recommender_v1beta1/service.rb +10 -8
  358. data/generated/google/apis/recommender_v1beta1.rb +1 -1
  359. data/generated/google/apis/redis_v1/classes.rb +11 -11
  360. data/generated/google/apis/redis_v1/service.rb +5 -5
  361. data/generated/google/apis/redis_v1.rb +1 -1
  362. data/generated/google/apis/redis_v1beta1/classes.rb +11 -11
  363. data/generated/google/apis/redis_v1beta1/service.rb +5 -5
  364. data/generated/google/apis/redis_v1beta1.rb +1 -1
  365. data/generated/google/apis/remotebuildexecution_v1/classes.rb +113 -0
  366. data/generated/google/apis/remotebuildexecution_v1/representations.rb +50 -0
  367. data/generated/google/apis/remotebuildexecution_v1.rb +1 -1
  368. data/generated/google/apis/remotebuildexecution_v1alpha/classes.rb +113 -0
  369. data/generated/google/apis/remotebuildexecution_v1alpha/representations.rb +50 -0
  370. data/generated/google/apis/remotebuildexecution_v1alpha.rb +1 -1
  371. data/generated/google/apis/remotebuildexecution_v2/classes.rb +113 -0
  372. data/generated/google/apis/remotebuildexecution_v2/representations.rb +50 -0
  373. data/generated/google/apis/remotebuildexecution_v2.rb +1 -1
  374. data/generated/google/apis/reseller_v1/service.rb +1 -1
  375. data/generated/google/apis/reseller_v1.rb +1 -1
  376. data/generated/google/apis/run_v1/classes.rb +8 -176
  377. data/generated/google/apis/run_v1/representations.rb +0 -71
  378. data/generated/google/apis/run_v1/service.rb +209 -1125
  379. data/generated/google/apis/run_v1.rb +1 -1
  380. data/generated/google/apis/run_v1alpha1/classes.rb +328 -9
  381. data/generated/google/apis/run_v1alpha1/representations.rb +126 -0
  382. data/generated/google/apis/run_v1alpha1/service.rb +408 -0
  383. data/generated/google/apis/run_v1alpha1.rb +1 -1
  384. data/generated/google/apis/runtimeconfig_v1beta1/classes.rb +75 -40
  385. data/generated/google/apis/runtimeconfig_v1beta1.rb +1 -1
  386. data/generated/google/apis/securitycenter_v1/classes.rb +159 -66
  387. data/generated/google/apis/securitycenter_v1/representations.rb +19 -0
  388. data/generated/google/apis/securitycenter_v1/service.rb +14 -12
  389. data/generated/google/apis/securitycenter_v1.rb +1 -1
  390. data/generated/google/apis/securitycenter_v1beta1/classes.rb +95 -57
  391. data/generated/google/apis/securitycenter_v1beta1/service.rb +14 -12
  392. data/generated/google/apis/securitycenter_v1beta1.rb +1 -1
  393. data/generated/google/apis/servicebroker_v1/classes.rb +75 -40
  394. data/generated/google/apis/servicebroker_v1.rb +1 -1
  395. data/generated/google/apis/servicebroker_v1alpha1/classes.rb +75 -40
  396. data/generated/google/apis/servicebroker_v1alpha1.rb +1 -1
  397. data/generated/google/apis/servicebroker_v1beta1/classes.rb +75 -40
  398. data/generated/google/apis/servicebroker_v1beta1.rb +1 -1
  399. data/generated/google/apis/serviceconsumermanagement_v1/classes.rb +95 -43
  400. data/generated/google/apis/serviceconsumermanagement_v1/representations.rb +30 -0
  401. data/generated/google/apis/serviceconsumermanagement_v1.rb +1 -1
  402. data/generated/google/apis/servicecontrol_v1/classes.rb +8 -12
  403. data/generated/google/apis/servicecontrol_v1/representations.rb +1 -1
  404. data/generated/google/apis/servicecontrol_v1.rb +1 -1
  405. data/generated/google/apis/servicemanagement_v1/classes.rb +142 -91
  406. data/generated/google/apis/servicemanagement_v1/representations.rb +24 -0
  407. data/generated/google/apis/servicemanagement_v1/service.rb +32 -26
  408. data/generated/google/apis/servicemanagement_v1.rb +1 -1
  409. data/generated/google/apis/servicenetworking_v1/classes.rb +181 -54
  410. data/generated/google/apis/servicenetworking_v1/representations.rb +71 -0
  411. data/generated/google/apis/servicenetworking_v1/service.rb +77 -3
  412. data/generated/google/apis/servicenetworking_v1.rb +1 -1
  413. data/generated/google/apis/servicenetworking_v1beta/classes.rb +32 -43
  414. data/generated/google/apis/servicenetworking_v1beta.rb +1 -1
  415. data/generated/google/apis/serviceusage_v1/classes.rb +87 -43
  416. data/generated/google/apis/serviceusage_v1/representations.rb +29 -0
  417. data/generated/google/apis/serviceusage_v1.rb +1 -1
  418. data/generated/google/apis/serviceusage_v1beta1/classes.rb +87 -43
  419. data/generated/google/apis/serviceusage_v1beta1/representations.rb +29 -0
  420. data/generated/google/apis/serviceusage_v1beta1.rb +1 -1
  421. data/generated/google/apis/sheets_v4/classes.rb +1371 -232
  422. data/generated/google/apis/sheets_v4/representations.rb +180 -0
  423. data/generated/google/apis/sheets_v4.rb +1 -1
  424. data/generated/google/apis/spanner_v1/classes.rb +70 -30
  425. data/generated/google/apis/spanner_v1/service.rb +270 -0
  426. data/generated/google/apis/spanner_v1.rb +1 -1
  427. data/generated/google/apis/speech_v1/classes.rb +6 -0
  428. data/generated/google/apis/speech_v1/representations.rb +1 -0
  429. data/generated/google/apis/speech_v1.rb +1 -1
  430. data/generated/google/apis/speech_v1p1beta1/classes.rb +6 -0
  431. data/generated/google/apis/speech_v1p1beta1/representations.rb +1 -0
  432. data/generated/google/apis/speech_v1p1beta1.rb +1 -1
  433. data/generated/google/apis/{speech_v2beta → speech_v2beta1}/classes.rb +9 -8
  434. data/generated/google/apis/{speech_v2beta → speech_v2beta1}/representations.rb +6 -6
  435. data/generated/google/apis/{speech_v2beta → speech_v2beta1}/service.rb +13 -13
  436. data/generated/google/apis/{speech_v2beta.rb → speech_v2beta1.rb} +6 -6
  437. data/generated/google/apis/{sqladmin_v1beta4 → sql_v1beta4}/classes.rb +499 -380
  438. data/generated/google/apis/{sqladmin_v1beta4 → sql_v1beta4}/representations.rb +125 -104
  439. data/generated/google/apis/{sqladmin_v1beta4 → sql_v1beta4}/service.rb +637 -590
  440. data/generated/google/apis/{sqladmin_v1beta4.rb → sql_v1beta4.rb} +7 -8
  441. data/generated/google/apis/storage_v1.rb +1 -1
  442. data/generated/google/apis/storagetransfer_v1.rb +1 -1
  443. data/generated/google/apis/streetviewpublish_v1/classes.rb +1 -1
  444. data/generated/google/apis/streetviewpublish_v1.rb +1 -1
  445. data/generated/google/apis/testing_v1/classes.rb +142 -1
  446. data/generated/google/apis/testing_v1/representations.rb +76 -0
  447. data/generated/google/apis/testing_v1.rb +1 -1
  448. data/generated/google/apis/videointelligence_v1/classes.rb +147 -36
  449. data/generated/google/apis/videointelligence_v1/representations.rb +62 -0
  450. data/generated/google/apis/videointelligence_v1.rb +1 -1
  451. data/generated/google/apis/videointelligence_v1beta2/classes.rb +147 -36
  452. data/generated/google/apis/videointelligence_v1beta2/representations.rb +62 -0
  453. data/generated/google/apis/videointelligence_v1beta2.rb +1 -1
  454. data/generated/google/apis/videointelligence_v1p1beta1/classes.rb +147 -36
  455. data/generated/google/apis/videointelligence_v1p1beta1/representations.rb +62 -0
  456. data/generated/google/apis/videointelligence_v1p1beta1.rb +1 -1
  457. data/generated/google/apis/videointelligence_v1p2beta1/classes.rb +147 -36
  458. data/generated/google/apis/videointelligence_v1p2beta1/representations.rb +62 -0
  459. data/generated/google/apis/videointelligence_v1p2beta1.rb +1 -1
  460. data/generated/google/apis/videointelligence_v1p3beta1/classes.rb +147 -36
  461. data/generated/google/apis/videointelligence_v1p3beta1/representations.rb +62 -0
  462. data/generated/google/apis/videointelligence_v1p3beta1.rb +1 -1
  463. data/generated/google/apis/vision_v1/classes.rb +66 -0
  464. data/generated/google/apis/vision_v1/representations.rb +32 -0
  465. data/generated/google/apis/vision_v1.rb +1 -1
  466. data/generated/google/apis/vision_v1p1beta1/classes.rb +66 -0
  467. data/generated/google/apis/vision_v1p1beta1/representations.rb +32 -0
  468. data/generated/google/apis/vision_v1p1beta1.rb +1 -1
  469. data/generated/google/apis/vision_v1p2beta1/classes.rb +66 -0
  470. data/generated/google/apis/vision_v1p2beta1/representations.rb +32 -0
  471. data/generated/google/apis/vision_v1p2beta1.rb +1 -1
  472. data/generated/google/apis/youtube_partner_v1/service.rb +2 -2
  473. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  474. data/google-api-client.gemspec +6 -3
  475. data/lib/google/apis/core/api_command.rb +3 -0
  476. data/lib/google/apis/core/http_command.rb +10 -8
  477. data/lib/google/apis/core/upload.rb +4 -0
  478. data/lib/google/apis/version.rb +1 -1
  479. data/rakelib/devsite/devsite_builder.rb +126 -0
  480. data/rakelib/devsite/link_checker.rb +64 -0
  481. data/rakelib/devsite/repo_metadata.rb +56 -0
  482. metadata +64 -42
  483. data/generated/google/apis/cloudbuild_v1alpha1/classes.rb +0 -1168
  484. data/generated/google/apis/cloudbuild_v1alpha1/representations.rb +0 -434
  485. data/generated/google/apis/storage_v1beta1/classes.rb +0 -616
  486. data/generated/google/apis/storage_v1beta1/representations.rb +0 -249
  487. data/generated/google/apis/storage_v1beta1/service.rb +0 -1032
  488. data/generated/google/apis/storage_v1beta1.rb +0 -40
  489. data/generated/google/apis/urlshortener_v1/classes.rb +0 -246
  490. data/generated/google/apis/urlshortener_v1/representations.rb +0 -121
  491. data/generated/google/apis/urlshortener_v1/service.rb +0 -169
@@ -109,7 +109,10 @@ module Google
109
109
  end
110
110
 
111
111
  # Represents a hardware accelerator request config.
112
- # Note that the AcceleratorConfig could be used in both Jobs and Versions.
112
+ # Note that the AcceleratorConfig can be used in both Jobs and Versions.
113
+ # Learn more about [accelerators for training](/ml-engine/docs/using-gpus) and
114
+ # [accelerators for online
115
+ # prediction](/ml-engine/docs/machine-types-online-prediction#gpus).
113
116
  class GoogleCloudMlV1AcceleratorConfig
114
117
  include Google::Apis::Core::Hashable
115
118
 
@@ -151,9 +154,18 @@ module Google
151
154
  # increased load as well as scale back as traffic drops, always maintaining
152
155
  # at least `min_nodes`. You will be charged for the time in which additional
153
156
  # nodes are used.
154
- # If not specified, `min_nodes` defaults to 0, in which case, when traffic
155
- # to a model stops (and after a cool-down period), nodes will be shut down
156
- # and no charges will be incurred until traffic to the model resumes.
157
+ # If `min_nodes` is not specified and AutoScaling is used with a [legacy
158
+ # (MLS1) machine type](/ml-engine/docs/machine-types-online-prediction),
159
+ # `min_nodes` defaults to 0, in which case, when traffic to a model stops
160
+ # (and after a cool-down period), nodes will be shut down and no charges will
161
+ # be incurred until traffic to the model resumes.
162
+ # If `min_nodes` is not specified and AutoScaling is used with a [Compute
163
+ # Engine (N1) machine type](/ml-engine/docs/machine-types-online-prediction),
164
+ # `min_nodes` defaults to 1. `min_nodes` must be at least 1 for use with a
165
+ # Compute Engine machine type.
166
+ # Note that you cannot use AutoScaling if your version uses
167
+ # [GPUs](#Version.FIELDS.accelerator_config). Instead, you must use
168
+ # ManualScaling.
157
169
  # You can set `min_nodes` when creating the model version, and you can also
158
170
  # update `min_nodes` for an existing version:
159
171
  # <pre>
@@ -165,7 +177,7 @@ module Google
165
177
  # `
166
178
  # </pre>
167
179
  # HTTP request:
168
- # <pre>
180
+ # <pre style="max-width: 626px;">
169
181
  # PATCH
170
182
  # https://ml.googleapis.com/v1/`name=projects/*/models/*/versions/*`?update_mask=
171
183
  # autoScaling.minNodes
@@ -282,6 +294,87 @@ module Google
282
294
  end
283
295
  end
284
296
 
297
+ # Request for explanations to be issued against a trained model.
298
+ class GoogleCloudMlV1ExplainRequest
299
+ include Google::Apis::Core::Hashable
300
+
301
+ # Message that represents an arbitrary HTTP body. It should only be used for
302
+ # payload formats that can't be represented as JSON, such as raw binary or
303
+ # an HTML page.
304
+ # This message can be used both in streaming and non-streaming API methods in
305
+ # the request as well as the response.
306
+ # It can be used as a top-level request field, which is convenient if one
307
+ # wants to extract parameters from either the URL or HTTP template into the
308
+ # request fields and also want access to the raw HTTP body.
309
+ # Example:
310
+ # message GetResourceRequest `
311
+ # // A unique request id.
312
+ # string request_id = 1;
313
+ # // The raw HTTP body is bound to this field.
314
+ # google.api.HttpBody http_body = 2;
315
+ # `
316
+ # service ResourceService `
317
+ # rpc GetResource(GetResourceRequest) returns (google.api.HttpBody);
318
+ # rpc UpdateResource(google.api.HttpBody) returns
319
+ # (google.protobuf.Empty);
320
+ # `
321
+ # Example with streaming methods:
322
+ # service CaldavService `
323
+ # rpc GetCalendar(stream google.api.HttpBody)
324
+ # returns (stream google.api.HttpBody);
325
+ # rpc UpdateCalendar(stream google.api.HttpBody)
326
+ # returns (stream google.api.HttpBody);
327
+ # `
328
+ # Use of this type only changes how the request and response bodies are
329
+ # handled, all other features will continue to work unchanged.
330
+ # Corresponds to the JSON property `httpBody`
331
+ # @return [Google::Apis::MlV1::GoogleApiHttpBody]
332
+ attr_accessor :http_body
333
+
334
+ def initialize(**args)
335
+ update!(**args)
336
+ end
337
+
338
+ # Update properties of this object
339
+ def update!(**args)
340
+ @http_body = args[:http_body] if args.key?(:http_body)
341
+ end
342
+ end
343
+
344
+ # Message holding configuration options for explaining model predictions.
345
+ # Currently, the only supported mechanism to explain a model's prediction is
346
+ # through attributing its output back to its inputs which is essentially a
347
+ # credit assignment task. We support multiple attribution methods, some
348
+ # specific to particular frameworks like Tensorflow and XGBoost.
349
+ # Next idx: 7.
350
+ class GoogleCloudMlV1ExplanationConfig
351
+ include Google::Apis::Core::Hashable
352
+
353
+ # Attributes credit by computing the Aumann-Shapley value taking advantage
354
+ # of the model's fully differentiable structure. Refer to this paper for
355
+ # more details: http://proceedings.mlr.press/v70/sundararajan17a.html
356
+ # Corresponds to the JSON property `integratedGradientsAttribution`
357
+ # @return [Google::Apis::MlV1::GoogleCloudMlV1IntegratedGradientsAttribution]
358
+ attr_accessor :integrated_gradients_attribution
359
+
360
+ # An attribution method that approximates Shapley values for features that
361
+ # contribute to the label being predicted. A sampling strategy is used to
362
+ # approximate the value rather than considering all subsets of features.
363
+ # Corresponds to the JSON property `sampledShapleyAttribution`
364
+ # @return [Google::Apis::MlV1::GoogleCloudMlV1SampledShapleyAttribution]
365
+ attr_accessor :sampled_shapley_attribution
366
+
367
+ def initialize(**args)
368
+ update!(**args)
369
+ end
370
+
371
+ # Update properties of this object
372
+ def update!(**args)
373
+ @integrated_gradients_attribution = args[:integrated_gradients_attribution] if args.key?(:integrated_gradients_attribution)
374
+ @sampled_shapley_attribution = args[:sampled_shapley_attribution] if args.key?(:sampled_shapley_attribution)
375
+ end
376
+ end
377
+
285
378
  # Returns service account information associated with a project.
286
379
  class GoogleCloudMlV1GetConfigResponse
287
380
  include Google::Apis::Core::Hashable
@@ -478,6 +571,29 @@ module Google
478
571
  end
479
572
  end
480
573
 
574
+ # Attributes credit by computing the Aumann-Shapley value taking advantage
575
+ # of the model's fully differentiable structure. Refer to this paper for
576
+ # more details: http://proceedings.mlr.press/v70/sundararajan17a.html
577
+ class GoogleCloudMlV1IntegratedGradientsAttribution
578
+ include Google::Apis::Core::Hashable
579
+
580
+ # Number of steps for approximating the path integral.
581
+ # A good value to start is 50 and gradually increase until the
582
+ # sum to diff property is met within the desired error range.
583
+ # Corresponds to the JSON property `numIntegralSteps`
584
+ # @return [Fixnum]
585
+ attr_accessor :num_integral_steps
586
+
587
+ def initialize(**args)
588
+ update!(**args)
589
+ end
590
+
591
+ # Update properties of this object
592
+ def update!(**args)
593
+ @num_integral_steps = args[:num_integral_steps] if args.key?(:num_integral_steps)
594
+ end
595
+ end
596
+
481
597
  # Represents a training or prediction job.
482
598
  class GoogleCloudMlV1Job
483
599
  include Google::Apis::Core::Hashable
@@ -1176,7 +1292,10 @@ module Google
1176
1292
  include Google::Apis::Core::Hashable
1177
1293
 
1178
1294
  # Represents a hardware accelerator request config.
1179
- # Note that the AcceleratorConfig could be used in both Jobs and Versions.
1295
+ # Note that the AcceleratorConfig can be used in both Jobs and Versions.
1296
+ # Learn more about [accelerators for training](/ml-engine/docs/using-gpus) and
1297
+ # [accelerators for online
1298
+ # prediction](/ml-engine/docs/machine-types-online-prediction#gpus).
1180
1299
  # Corresponds to the JSON property `acceleratorConfig`
1181
1300
  # @return [Google::Apis::MlV1::GoogleCloudMlV1AcceleratorConfig]
1182
1301
  attr_accessor :accelerator_config
@@ -1269,6 +1388,28 @@ module Google
1269
1388
  end
1270
1389
  end
1271
1390
 
1391
+ # An attribution method that approximates Shapley values for features that
1392
+ # contribute to the label being predicted. A sampling strategy is used to
1393
+ # approximate the value rather than considering all subsets of features.
1394
+ class GoogleCloudMlV1SampledShapleyAttribution
1395
+ include Google::Apis::Core::Hashable
1396
+
1397
+ # The number of feature permutations to consider when approximating the
1398
+ # shapley values.
1399
+ # Corresponds to the JSON property `numPaths`
1400
+ # @return [Fixnum]
1401
+ attr_accessor :num_paths
1402
+
1403
+ def initialize(**args)
1404
+ update!(**args)
1405
+ end
1406
+
1407
+ # Update properties of this object
1408
+ def update!(**args)
1409
+ @num_paths = args[:num_paths] if args.key?(:num_paths)
1410
+ end
1411
+ end
1412
+
1272
1413
  # Request message for the SetDefaultVersion request.
1273
1414
  class GoogleCloudMlV1SetDefaultVersionRequest
1274
1415
  include Google::Apis::Core::Hashable
@@ -1316,92 +1457,10 @@ module Google
1316
1457
  attr_accessor :master_config
1317
1458
 
1318
1459
  # Optional. Specifies the type of virtual machine to use for your training
1319
- # job's master worker.
1460
+ # job's master worker. You must specify this field when `scaleTier` is set to
1461
+ # `CUSTOM`.
1462
+ # You can use certain Compute Engine machine types directly in this field.
1320
1463
  # The following types are supported:
1321
- # <dl>
1322
- # <dt>standard</dt>
1323
- # <dd>
1324
- # A basic machine configuration suitable for training simple models with
1325
- # small to moderate datasets.
1326
- # </dd>
1327
- # <dt>large_model</dt>
1328
- # <dd>
1329
- # A machine with a lot of memory, specially suited for parameter servers
1330
- # when your model is large (having many hidden layers or layers with very
1331
- # large numbers of nodes).
1332
- # </dd>
1333
- # <dt>complex_model_s</dt>
1334
- # <dd>
1335
- # A machine suitable for the master and workers of the cluster when your
1336
- # model requires more computation than the standard machine can handle
1337
- # satisfactorily.
1338
- # </dd>
1339
- # <dt>complex_model_m</dt>
1340
- # <dd>
1341
- # A machine with roughly twice the number of cores and roughly double the
1342
- # memory of <i>complex_model_s</i>.
1343
- # </dd>
1344
- # <dt>complex_model_l</dt>
1345
- # <dd>
1346
- # A machine with roughly twice the number of cores and roughly double the
1347
- # memory of <i>complex_model_m</i>.
1348
- # </dd>
1349
- # <dt>standard_gpu</dt>
1350
- # <dd>
1351
- # A machine equivalent to <i>standard</i> that
1352
- # also includes a single NVIDIA Tesla K80 GPU. See more about
1353
- # <a href="/ml-engine/docs/tensorflow/using-gpus">using GPUs to
1354
- # train your model</a>.
1355
- # </dd>
1356
- # <dt>complex_model_m_gpu</dt>
1357
- # <dd>
1358
- # A machine equivalent to <i>complex_model_m</i> that also includes
1359
- # four NVIDIA Tesla K80 GPUs.
1360
- # </dd>
1361
- # <dt>complex_model_l_gpu</dt>
1362
- # <dd>
1363
- # A machine equivalent to <i>complex_model_l</i> that also includes
1364
- # eight NVIDIA Tesla K80 GPUs.
1365
- # </dd>
1366
- # <dt>standard_p100</dt>
1367
- # <dd>
1368
- # A machine equivalent to <i>standard</i> that
1369
- # also includes a single NVIDIA Tesla P100 GPU.
1370
- # </dd>
1371
- # <dt>complex_model_m_p100</dt>
1372
- # <dd>
1373
- # A machine equivalent to <i>complex_model_m</i> that also includes
1374
- # four NVIDIA Tesla P100 GPUs.
1375
- # </dd>
1376
- # <dt>standard_v100</dt>
1377
- # <dd>
1378
- # A machine equivalent to <i>standard</i> that
1379
- # also includes a single NVIDIA Tesla V100 GPU.
1380
- # </dd>
1381
- # <dt>large_model_v100</dt>
1382
- # <dd>
1383
- # A machine equivalent to <i>large_model</i> that
1384
- # also includes a single NVIDIA Tesla V100 GPU.
1385
- # </dd>
1386
- # <dt>complex_model_m_v100</dt>
1387
- # <dd>
1388
- # A machine equivalent to <i>complex_model_m</i> that
1389
- # also includes four NVIDIA Tesla V100 GPUs.
1390
- # </dd>
1391
- # <dt>complex_model_l_v100</dt>
1392
- # <dd>
1393
- # A machine equivalent to <i>complex_model_l</i> that
1394
- # also includes eight NVIDIA Tesla V100 GPUs.
1395
- # </dd>
1396
- # <dt>cloud_tpu</dt>
1397
- # <dd>
1398
- # A TPU VM including one Cloud TPU. See more about
1399
- # <a href="/ml-engine/docs/tensorflow/using-tpus">using TPUs to train
1400
- # your model</a>.
1401
- # </dd>
1402
- # </dl>
1403
- # You may also use certain Compute Engine machine types directly in this
1404
- # field. The following types are supported:
1405
1464
  # - `n1-standard-4`
1406
1465
  # - `n1-standard-8`
1407
1466
  # - `n1-standard-16`
@@ -1419,9 +1478,29 @@ module Google
1419
1478
  # - `n1-highcpu-32`
1420
1479
  # - `n1-highcpu-64`
1421
1480
  # - `n1-highcpu-96`
1422
- # See more about [using Compute Engine machine
1423
- # types](/ml-engine/docs/tensorflow/machine-types#compute-engine-machine-types).
1424
- # You must set this value when `scaleTier` is set to `CUSTOM`.
1481
+ # Learn more about [using Compute Engine machine
1482
+ # types](/ml-engine/docs/machine-types#compute-engine-machine-types).
1483
+ # Alternatively, you can use the following legacy machine types:
1484
+ # - `standard`
1485
+ # - `large_model`
1486
+ # - `complex_model_s`
1487
+ # - `complex_model_m`
1488
+ # - `complex_model_l`
1489
+ # - `standard_gpu`
1490
+ # - `complex_model_m_gpu`
1491
+ # - `complex_model_l_gpu`
1492
+ # - `standard_p100`
1493
+ # - `complex_model_m_p100`
1494
+ # - `standard_v100`
1495
+ # - `large_model_v100`
1496
+ # - `complex_model_m_v100`
1497
+ # - `complex_model_l_v100`
1498
+ # Learn more about [using legacy machine
1499
+ # types](/ml-engine/docs/machine-types#legacy-machine-types).
1500
+ # Finally, if you want to use a TPU for training, specify `cloud_tpu` in this
1501
+ # field. Learn more about the [special configuration options for training
1502
+ # with
1503
+ # TPUs](/ml-engine/docs/tensorflow/using-tpus#configuring_a_custom_tpu_machine).
1425
1504
  # Corresponds to the JSON property `masterType`
1426
1505
  # @return [String]
1427
1506
  attr_accessor :master_type
@@ -1453,8 +1532,8 @@ module Google
1453
1532
  # The supported values are the same as those described in the entry for
1454
1533
  # `master_type`.
1455
1534
  # This value must be consistent with the category of machine type that
1456
- # `masterType` uses. In other words, both must be AI Platform machine
1457
- # types or both must be Compute Engine machine types.
1535
+ # `masterType` uses. In other words, both must be Compute Engine machine
1536
+ # types or both must be legacy machine types.
1458
1537
  # This value must be present when `scaleTier` is set to `CUSTOM` and
1459
1538
  # `parameter_server_count` is greater than zero.
1460
1539
  # Corresponds to the JSON property `parameterServerType`
@@ -1497,6 +1576,14 @@ module Google
1497
1576
  # @return [String]
1498
1577
  attr_accessor :scale_tier
1499
1578
 
1579
+ # Optional. Use 'chief' instead of 'master' in TF_CONFIG when Custom
1580
+ # Container is used and evaluator is not specified.
1581
+ # Defaults to false.
1582
+ # Corresponds to the JSON property `useChiefInTfConfig`
1583
+ # @return [Boolean]
1584
+ attr_accessor :use_chief_in_tf_config
1585
+ alias_method :use_chief_in_tf_config?, :use_chief_in_tf_config
1586
+
1500
1587
  # Represents the configuration for a replica in a cluster.
1501
1588
  # Corresponds to the JSON property `workerConfig`
1502
1589
  # @return [Google::Apis::MlV1::GoogleCloudMlV1ReplicaConfig]
@@ -1516,8 +1603,8 @@ module Google
1516
1603
  # The supported values are the same as those described in the entry for
1517
1604
  # `masterType`.
1518
1605
  # This value must be consistent with the category of machine type that
1519
- # `masterType` uses. In other words, both must be AI Platform machine
1520
- # types or both must be Compute Engine machine types.
1606
+ # `masterType` uses. In other words, both must be Compute Engine machine
1607
+ # types or both must be legacy machine types.
1521
1608
  # If you use `cloud_tpu` for this value, see special instructions for
1522
1609
  # [configuring a custom TPU
1523
1610
  # machine](/ml-engine/docs/tensorflow/using-tpus#
@@ -1548,6 +1635,7 @@ module Google
1548
1635
  @region = args[:region] if args.key?(:region)
1549
1636
  @runtime_version = args[:runtime_version] if args.key?(:runtime_version)
1550
1637
  @scale_tier = args[:scale_tier] if args.key?(:scale_tier)
1638
+ @use_chief_in_tf_config = args[:use_chief_in_tf_config] if args.key?(:use_chief_in_tf_config)
1551
1639
  @worker_config = args[:worker_config] if args.key?(:worker_config)
1552
1640
  @worker_count = args[:worker_count] if args.key?(:worker_count)
1553
1641
  @worker_type = args[:worker_type] if args.key?(:worker_type)
@@ -1627,7 +1715,10 @@ module Google
1627
1715
  include Google::Apis::Core::Hashable
1628
1716
 
1629
1717
  # Represents a hardware accelerator request config.
1630
- # Note that the AcceleratorConfig could be used in both Jobs and Versions.
1718
+ # Note that the AcceleratorConfig can be used in both Jobs and Versions.
1719
+ # Learn more about [accelerators for training](/ml-engine/docs/using-gpus) and
1720
+ # [accelerators for online
1721
+ # prediction](/ml-engine/docs/machine-types-online-prediction#gpus).
1631
1722
  # Corresponds to the JSON property `acceleratorConfig`
1632
1723
  # @return [Google::Apis::MlV1::GoogleCloudMlV1AcceleratorConfig]
1633
1724
  attr_accessor :accelerator_config
@@ -1680,6 +1771,16 @@ module Google
1680
1771
  # @return [String]
1681
1772
  attr_accessor :etag
1682
1773
 
1774
+ # Message holding configuration options for explaining model predictions.
1775
+ # Currently, the only supported mechanism to explain a model's prediction is
1776
+ # through attributing its output back to its inputs which is essentially a
1777
+ # credit assignment task. We support multiple attribution methods, some
1778
+ # specific to particular frameworks like Tensorflow and XGBoost.
1779
+ # Next idx: 7.
1780
+ # Corresponds to the JSON property `explanationConfig`
1781
+ # @return [Google::Apis::MlV1::GoogleCloudMlV1ExplanationConfig]
1782
+ attr_accessor :explanation_config
1783
+
1683
1784
  # Optional. The machine learning framework AI Platform uses to train
1684
1785
  # this version of the model. Valid values are `TENSORFLOW`, `SCIKIT_LEARN`,
1685
1786
  # `XGBOOST`. If you do not specify a framework, AI Platform
@@ -1688,6 +1789,10 @@ module Google
1688
1789
  # of the model to 1.4 or greater.
1689
1790
  # Do **not** specify a framework if you're deploying a [custom
1690
1791
  # prediction routine](/ml-engine/docs/tensorflow/custom-prediction-routines).
1792
+ # If you specify a [Compute Engine (N1) machine
1793
+ # type](/ml-engine/docs/machine-types-online-prediction) in the
1794
+ # `machineType` field, you must specify `TENSORFLOW`
1795
+ # for the framework.
1691
1796
  # Corresponds to the JSON property `framework`
1692
1797
  # @return [String]
1693
1798
  attr_accessor :framework
@@ -1717,19 +1822,29 @@ module Google
1717
1822
  attr_accessor :last_use_time
1718
1823
 
1719
1824
  # Optional. The type of machine on which to serve the model. Currently only
1720
- # applies to online prediction service.
1721
- # <dl>
1722
- # <dt>mls1-c1-m2</dt>
1723
- # <dd>
1724
- # The <b>default</b> machine type, with 1 core and 2 GB RAM. The deprecated
1725
- # name for this machine type is "mls1-highmem-1".
1726
- # </dd>
1727
- # <dt>mls1-c4-m2</dt>
1728
- # <dd>
1729
- # In <b>Beta</b>. This machine type has 4 cores and 2 GB RAM. The
1730
- # deprecated name for this machine type is "mls1-highcpu-4".
1731
- # </dd>
1732
- # </dl>
1825
+ # applies to online prediction service. If this field is not specified, it
1826
+ # defaults to `mls1-c1-m2`.
1827
+ # Online prediction supports the following machine types:
1828
+ # * `mls1-c1-m2`
1829
+ # * `mls1-c4-m2`
1830
+ # * `n1-standard-2`
1831
+ # * `n1-standard-4`
1832
+ # * `n1-standard-8`
1833
+ # * `n1-standard-16`
1834
+ # * `n1-standard-32`
1835
+ # * `n1-highmem-2`
1836
+ # * `n1-highmem-4`
1837
+ # * `n1-highmem-8`
1838
+ # * `n1-highmem-16`
1839
+ # * `n1-highmem-32`
1840
+ # * `n1-highcpu-2`
1841
+ # * `n1-highcpu-4`
1842
+ # * `n1-highcpu-8`
1843
+ # * `n1-highcpu-16`
1844
+ # * `n1-highcpu-32`
1845
+ # `mls1-c1-m2` is generally available. All other machine types are available
1846
+ # in beta. Learn more about the [differences between machine
1847
+ # types](/ml-engine/docs/machine-types-online-prediction).
1733
1848
  # Corresponds to the JSON property `machineType`
1734
1849
  # @return [String]
1735
1850
  attr_accessor :machine_type
@@ -1769,9 +1884,11 @@ module Google
1769
1884
  # Specify this field if and only if you are deploying a [custom prediction
1770
1885
  # routine (beta)](/ml-engine/docs/tensorflow/custom-prediction-routines).
1771
1886
  # If you specify this field, you must set
1772
- # [`runtimeVersion`](#Version.FIELDS.runtime_version) to 1.4 or greater.
1887
+ # [`runtimeVersion`](#Version.FIELDS.runtime_version) to 1.4 or greater and
1888
+ # you must set `machineType` to a [legacy (MLS1)
1889
+ # machine type](/ml-engine/docs/machine-types-online-prediction).
1773
1890
  # The following code sample provides the Predictor interface:
1774
- # ```py
1891
+ # <pre style="max-width: 626px;">
1775
1892
  # class Predictor(object):
1776
1893
  # """Interface for constructing custom predictors."""
1777
1894
  # def predict(self, instances, **kwargs):
@@ -1799,7 +1916,7 @@ module Google
1799
1916
  # An instance implementing this Predictor class.
1800
1917
  # """
1801
1918
  # raise NotImplementedError()
1802
- # ```
1919
+ # </pre>
1803
1920
  # Learn more about [the Predictor interface and custom prediction
1804
1921
  # routines](/ml-engine/docs/tensorflow/custom-prediction-routines).
1805
1922
  # Corresponds to the JSON property `predictionClass`
@@ -1860,6 +1977,7 @@ module Google
1860
1977
  @description = args[:description] if args.key?(:description)
1861
1978
  @error_message = args[:error_message] if args.key?(:error_message)
1862
1979
  @etag = args[:etag] if args.key?(:etag)
1980
+ @explanation_config = args[:explanation_config] if args.key?(:explanation_config)
1863
1981
  @framework = args[:framework] if args.key?(:framework)
1864
1982
  @is_default = args[:is_default] if args.key?(:is_default)
1865
1983
  @labels = args[:labels] if args.key?(:labels)
@@ -2017,6 +2135,23 @@ module Google
2017
2135
  # account. For example, `my-other-app@appspot.gserviceaccount.com`.
2018
2136
  # * `group:`emailid``: An email address that represents a Google group.
2019
2137
  # For example, `admins@example.com`.
2138
+ # * `deleted:user:`emailid`?uid=`uniqueid``: An email address (plus unique
2139
+ # identifier) representing a user that has been recently deleted. For
2140
+ # example,`alice@example.com?uid=123456789012345678901`. If the user is
2141
+ # recovered, this value reverts to `user:`emailid`` and the recovered user
2142
+ # retains the role in the binding.
2143
+ # * `deleted:serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus
2144
+ # unique identifier) representing a service account that has been recently
2145
+ # deleted. For example,
2146
+ # `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
2147
+ # If the service account is undeleted, this value reverts to
2148
+ # `serviceAccount:`emailid`` and the undeleted service account retains the
2149
+ # role in the binding.
2150
+ # * `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
2151
+ # identifier) representing a Google group that has been recently
2152
+ # deleted. For example, `admins@example.com?uid=123456789012345678901`. If
2153
+ # the group is recovered, this value reverts to `group:`emailid`` and the
2154
+ # recovered group retains the role in the binding.
2020
2155
  # * `domain:`domain``: The G Suite domain (primary) that represents all the
2021
2156
  # users of that domain. For example, `google.com` or `example.com`.
2022
2157
  # Corresponds to the JSON property `members`
@@ -2041,16 +2176,18 @@ module Google
2041
2176
  end
2042
2177
  end
2043
2178
 
2044
- # Defines an Identity and Access Management (IAM) policy. It is used to
2045
- # specify access control policies for Cloud Platform resources.
2179
+ # An Identity and Access Management (IAM) policy, which specifies access
2180
+ # controls for Google Cloud resources.
2046
2181
  # A `Policy` is a collection of `bindings`. A `binding` binds one or more
2047
2182
  # `members` to a single `role`. Members can be user accounts, service accounts,
2048
2183
  # Google groups, and domains (such as G Suite). A `role` is a named list of
2049
- # permissions (defined by IAM or configured by users). A `binding` can
2050
- # optionally specify a `condition`, which is a logic expression that further
2051
- # constrains the role binding based on attributes about the request and/or
2052
- # target resource.
2053
- # **JSON Example**
2184
+ # permissions; each `role` can be an IAM predefined role or a user-created
2185
+ # custom role.
2186
+ # Optionally, a `binding` can specify a `condition`, which is a logical
2187
+ # expression that allows access to a resource only if the expression evaluates
2188
+ # to `true`. A condition can add constraints based on attributes of the
2189
+ # request, the resource, or both.
2190
+ # **JSON example:**
2054
2191
  # `
2055
2192
  # "bindings": [
2056
2193
  # `
@@ -2068,13 +2205,15 @@ module Google
2068
2205
  # "condition": `
2069
2206
  # "title": "expirable access",
2070
2207
  # "description": "Does not grant access after Sep 2020",
2071
- # "expression": "request.time <
2072
- # timestamp('2020-10-01T00:00:00.000Z')",
2208
+ # "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')
2209
+ # ",
2073
2210
  # `
2074
2211
  # `
2075
- # ]
2212
+ # ],
2213
+ # "etag": "BwWWja0YfJA=",
2214
+ # "version": 3
2076
2215
  # `
2077
- # **YAML Example**
2216
+ # **YAML example:**
2078
2217
  # bindings:
2079
2218
  # - members:
2080
2219
  # - user:mike@example.com
@@ -2089,8 +2228,10 @@ module Google
2089
2228
  # title: expirable access
2090
2229
  # description: Does not grant access after Sep 2020
2091
2230
  # expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
2231
+ # - etag: BwWWja0YfJA=
2232
+ # - version: 3
2092
2233
  # For a description of IAM and its features, see the
2093
- # [IAM developer's guide](https://cloud.google.com/iam/docs).
2234
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
2094
2235
  class GoogleIamV1Policy
2095
2236
  include Google::Apis::Core::Hashable
2096
2237
 
@@ -2099,9 +2240,9 @@ module Google
2099
2240
  # @return [Array<Google::Apis::MlV1::GoogleIamV1AuditConfig>]
2100
2241
  attr_accessor :audit_configs
2101
2242
 
2102
- # Associates a list of `members` to a `role`. Optionally may specify a
2103
- # `condition` that determines when binding is in effect.
2104
- # `bindings` with no members will result in an error.
2243
+ # Associates a list of `members` to a `role`. Optionally, may specify a
2244
+ # `condition` that determines how and when the `bindings` are applied. Each
2245
+ # of the `bindings` must contain at least one member.
2105
2246
  # Corresponds to the JSON property `bindings`
2106
2247
  # @return [Array<Google::Apis::MlV1::GoogleIamV1Binding>]
2107
2248
  attr_accessor :bindings
@@ -2113,25 +2254,31 @@ module Google
2113
2254
  # conditions: An `etag` is returned in the response to `getIamPolicy`, and
2114
2255
  # systems are expected to put that etag in the request to `setIamPolicy` to
2115
2256
  # ensure that their change will be applied to the same version of the policy.
2116
- # If no `etag` is provided in the call to `setIamPolicy`, then the existing
2117
- # policy is overwritten. Due to blind-set semantics of an etag-less policy,
2118
- # 'setIamPolicy' will not fail even if either of incoming or stored policy
2119
- # does not meet the version requirements.
2257
+ # **Important:** If you use IAM Conditions, you must include the `etag` field
2258
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
2259
+ # you to overwrite a version `3` policy with a version `1` policy, and all of
2260
+ # the conditions in the version `3` policy are lost.
2120
2261
  # Corresponds to the JSON property `etag`
2121
2262
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
2122
2263
  # @return [String]
2123
2264
  attr_accessor :etag
2124
2265
 
2125
2266
  # Specifies the format of the policy.
2126
- # Valid values are 0, 1, and 3. Requests specifying an invalid value will be
2127
- # rejected.
2128
- # Operations affecting conditional bindings must specify version 3. This can
2129
- # be either setting a conditional policy, modifying a conditional binding,
2130
- # or removing a conditional binding from the stored conditional policy.
2131
- # Operations on non-conditional policies may specify any valid value or
2132
- # leave the field unset.
2133
- # If no etag is provided in the call to `setIamPolicy`, any version
2134
- # compliance checks on the incoming and/or stored policy is skipped.
2267
+ # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
2268
+ # are rejected.
2269
+ # Any operation that affects conditional role bindings must specify version
2270
+ # `3`. This requirement applies to the following operations:
2271
+ # * Getting a policy that includes a conditional role binding
2272
+ # * Adding a conditional role binding to a policy
2273
+ # * Changing a conditional role binding in a policy
2274
+ # * Removing any role binding, with or without a condition, from a policy
2275
+ # that includes conditions
2276
+ # **Important:** If you use IAM Conditions, you must include the `etag` field
2277
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
2278
+ # you to overwrite a version `3` policy with a version `1` policy, and all of
2279
+ # the conditions in the version `3` policy are lost.
2280
+ # If a policy does not include any conditions, operations on that policy may
2281
+ # specify any valid version or leave the field unset.
2135
2282
  # Corresponds to the JSON property `version`
2136
2283
  # @return [Fixnum]
2137
2284
  attr_accessor :version
@@ -2153,16 +2300,18 @@ module Google
2153
2300
  class GoogleIamV1SetIamPolicyRequest
2154
2301
  include Google::Apis::Core::Hashable
2155
2302
 
2156
- # Defines an Identity and Access Management (IAM) policy. It is used to
2157
- # specify access control policies for Cloud Platform resources.
2303
+ # An Identity and Access Management (IAM) policy, which specifies access
2304
+ # controls for Google Cloud resources.
2158
2305
  # A `Policy` is a collection of `bindings`. A `binding` binds one or more
2159
2306
  # `members` to a single `role`. Members can be user accounts, service accounts,
2160
2307
  # Google groups, and domains (such as G Suite). A `role` is a named list of
2161
- # permissions (defined by IAM or configured by users). A `binding` can
2162
- # optionally specify a `condition`, which is a logic expression that further
2163
- # constrains the role binding based on attributes about the request and/or
2164
- # target resource.
2165
- # **JSON Example**
2308
+ # permissions; each `role` can be an IAM predefined role or a user-created
2309
+ # custom role.
2310
+ # Optionally, a `binding` can specify a `condition`, which is a logical
2311
+ # expression that allows access to a resource only if the expression evaluates
2312
+ # to `true`. A condition can add constraints based on attributes of the
2313
+ # request, the resource, or both.
2314
+ # **JSON example:**
2166
2315
  # `
2167
2316
  # "bindings": [
2168
2317
  # `
@@ -2180,13 +2329,15 @@ module Google
2180
2329
  # "condition": `
2181
2330
  # "title": "expirable access",
2182
2331
  # "description": "Does not grant access after Sep 2020",
2183
- # "expression": "request.time <
2184
- # timestamp('2020-10-01T00:00:00.000Z')",
2332
+ # "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')
2333
+ # ",
2185
2334
  # `
2186
2335
  # `
2187
- # ]
2336
+ # ],
2337
+ # "etag": "BwWWja0YfJA=",
2338
+ # "version": 3
2188
2339
  # `
2189
- # **YAML Example**
2340
+ # **YAML example:**
2190
2341
  # bindings:
2191
2342
  # - members:
2192
2343
  # - user:mike@example.com
@@ -2201,8 +2352,10 @@ module Google
2201
2352
  # title: expirable access
2202
2353
  # description: Does not grant access after Sep 2020
2203
2354
  # expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
2355
+ # - etag: BwWWja0YfJA=
2356
+ # - version: 3
2204
2357
  # For a description of IAM and its features, see the
2205
- # [IAM developer's guide](https://cloud.google.com/iam/docs).
2358
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
2206
2359
  # Corresponds to the JSON property `policy`
2207
2360
  # @return [Google::Apis::MlV1::GoogleIamV1Policy]
2208
2361
  attr_accessor :policy