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
@@ -337,6 +337,44 @@ module Google
337
337
  end
338
338
  end
339
339
 
340
+ # Adds a slicer to a sheet in the spreadsheet.
341
+ class AddSlicerRequest
342
+ include Google::Apis::Core::Hashable
343
+
344
+ # A slicer in a sheet.
345
+ # Corresponds to the JSON property `slicer`
346
+ # @return [Google::Apis::SheetsV4::Slicer]
347
+ attr_accessor :slicer
348
+
349
+ def initialize(**args)
350
+ update!(**args)
351
+ end
352
+
353
+ # Update properties of this object
354
+ def update!(**args)
355
+ @slicer = args[:slicer] if args.key?(:slicer)
356
+ end
357
+ end
358
+
359
+ # The result of adding a slicer to a spreadsheet.
360
+ class AddSlicerResponse
361
+ include Google::Apis::Core::Hashable
362
+
363
+ # A slicer in a sheet.
364
+ # Corresponds to the JSON property `slicer`
365
+ # @return [Google::Apis::SheetsV4::Slicer]
366
+ attr_accessor :slicer
367
+
368
+ def initialize(**args)
369
+ update!(**args)
370
+ end
371
+
372
+ # Update properties of this object
373
+ def update!(**args)
374
+ @slicer = args[:slicer] if args.key?(:slicer)
375
+ end
376
+ end
377
+
340
378
  # Adds new cells after the last row with data in a sheet,
341
379
  # inserting new rows into the sheet if necessary.
342
380
  class AppendCellsRequest
@@ -1047,86 +1085,132 @@ module Google
1047
1085
  end
1048
1086
  end
1049
1087
 
1050
- # An axis of the chart.
1051
- # A chart may not have more than one axis per
1052
- # axis position.
1053
- class BasicChartAxis
1088
+ # Formatting options for baseline value.
1089
+ class BaselineValueFormat
1054
1090
  include Google::Apis::Core::Hashable
1055
1091
 
1056
- # The format of a run of text in a cell.
1057
- # Absent values indicate that the field isn't specified.
1058
- # Corresponds to the JSON property `format`
1059
- # @return [Google::Apis::SheetsV4::TextFormat]
1060
- attr_accessor :format
1061
-
1062
- # The position of this axis.
1063
- # Corresponds to the JSON property `position`
1092
+ # The comparison type of key value with baseline value.
1093
+ # Corresponds to the JSON property `comparisonType`
1064
1094
  # @return [String]
1065
- attr_accessor :position
1095
+ attr_accessor :comparison_type
1066
1096
 
1067
- # The title of this axis. If set, this overrides any title inferred
1068
- # from headers of the data.
1069
- # Corresponds to the JSON property `title`
1097
+ # Description which is appended after the baseline value.
1098
+ # This field is optional.
1099
+ # Corresponds to the JSON property `description`
1070
1100
  # @return [String]
1071
- attr_accessor :title
1101
+ attr_accessor :description
1102
+
1103
+ # Represents a color in the RGBA color space. This representation is designed
1104
+ # for simplicity of conversion to/from color representations in various
1105
+ # languages over compactness; for example, the fields of this representation
1106
+ # can be trivially provided to the constructor of "java.awt.Color" in Java; it
1107
+ # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
1108
+ # method in iOS; and, with just a little work, it can be easily formatted into
1109
+ # a CSS "rgba()" string in JavaScript, as well.
1110
+ # Note: this proto does not carry information about the absolute color space
1111
+ # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
1112
+ # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
1113
+ # space.
1114
+ # Example (Java):
1115
+ # import com.google.type.Color;
1116
+ # // ...
1117
+ # public static java.awt.Color fromProto(Color protocolor) `
1118
+ # float alpha = protocolor.hasAlpha()
1119
+ # ? protocolor.getAlpha().getValue()
1120
+ # : 1.0;
1121
+ # return new java.awt.Color(
1122
+ # protocolor.getRed(),
1123
+ # protocolor.getGreen(),
1124
+ # protocolor.getBlue(),
1125
+ # alpha);
1126
+ # `
1127
+ # public static Color toProto(java.awt.Color color) `
1128
+ # float red = (float) color.getRed();
1129
+ # float green = (float) color.getGreen();
1130
+ # float blue = (float) color.getBlue();
1131
+ # float denominator = 255.0;
1132
+ # Color.Builder resultBuilder =
1133
+ # Color
1134
+ # .newBuilder()
1135
+ # .setRed(red / denominator)
1136
+ # .setGreen(green / denominator)
1137
+ # .setBlue(blue / denominator);
1138
+ # int alpha = color.getAlpha();
1139
+ # if (alpha != 255) `
1140
+ # result.setAlpha(
1141
+ # FloatValue
1142
+ # .newBuilder()
1143
+ # .setValue(((float) alpha) / denominator)
1144
+ # .build());
1145
+ # `
1146
+ # return resultBuilder.build();
1147
+ # `
1148
+ # // ...
1149
+ # Example (iOS / Obj-C):
1150
+ # // ...
1151
+ # static UIColor* fromProto(Color* protocolor) `
1152
+ # float red = [protocolor red];
1153
+ # float green = [protocolor green];
1154
+ # float blue = [protocolor blue];
1155
+ # FloatValue* alpha_wrapper = [protocolor alpha];
1156
+ # float alpha = 1.0;
1157
+ # if (alpha_wrapper != nil) `
1158
+ # alpha = [alpha_wrapper value];
1159
+ # `
1160
+ # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
1161
+ # `
1162
+ # static Color* toProto(UIColor* color) `
1163
+ # CGFloat red, green, blue, alpha;
1164
+ # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) `
1165
+ # return nil;
1166
+ # `
1167
+ # Color* result = [[Color alloc] init];
1168
+ # [result setRed:red];
1169
+ # [result setGreen:green];
1170
+ # [result setBlue:blue];
1171
+ # if (alpha <= 0.9999) `
1172
+ # [result setAlpha:floatWrapperWithValue(alpha)];
1173
+ # `
1174
+ # [result autorelease];
1175
+ # return result;
1176
+ # `
1177
+ # // ...
1178
+ # Example (JavaScript):
1179
+ # // ...
1180
+ # var protoToCssColor = function(rgb_color) `
1181
+ # var redFrac = rgb_color.red || 0.0;
1182
+ # var greenFrac = rgb_color.green || 0.0;
1183
+ # var blueFrac = rgb_color.blue || 0.0;
1184
+ # var red = Math.floor(redFrac * 255);
1185
+ # var green = Math.floor(greenFrac * 255);
1186
+ # var blue = Math.floor(blueFrac * 255);
1187
+ # if (!('alpha' in rgb_color)) `
1188
+ # return rgbToCssColor_(red, green, blue);
1189
+ # `
1190
+ # var alphaFrac = rgb_color.alpha.value || 0.0;
1191
+ # var rgbParams = [red, green, blue].join(',');
1192
+ # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
1193
+ # `;
1194
+ # var rgbToCssColor_ = function(red, green, blue) `
1195
+ # var rgbNumber = new Number((red << 16) | (green << 8) | blue);
1196
+ # var hexString = rgbNumber.toString(16);
1197
+ # var missingZeros = 6 - hexString.length;
1198
+ # var resultBuilder = ['#'];
1199
+ # for (var i = 0; i < missingZeros; i++) `
1200
+ # resultBuilder.push('0');
1201
+ # `
1202
+ # resultBuilder.push(hexString);
1203
+ # return resultBuilder.join('');
1204
+ # `;
1205
+ # // ...
1206
+ # Corresponds to the JSON property `negativeColor`
1207
+ # @return [Google::Apis::SheetsV4::Color]
1208
+ attr_accessor :negative_color
1072
1209
 
1073
1210
  # Position settings for text.
1074
- # Corresponds to the JSON property `titleTextPosition`
1211
+ # Corresponds to the JSON property `position`
1075
1212
  # @return [Google::Apis::SheetsV4::TextPosition]
1076
- attr_accessor :title_text_position
1077
-
1078
- # The options that define a "view window" for a chart (such as the visible
1079
- # values in an axis).
1080
- # Corresponds to the JSON property `viewWindowOptions`
1081
- # @return [Google::Apis::SheetsV4::ChartAxisViewWindowOptions]
1082
- attr_accessor :view_window_options
1083
-
1084
- def initialize(**args)
1085
- update!(**args)
1086
- end
1087
-
1088
- # Update properties of this object
1089
- def update!(**args)
1090
- @format = args[:format] if args.key?(:format)
1091
- @position = args[:position] if args.key?(:position)
1092
- @title = args[:title] if args.key?(:title)
1093
- @title_text_position = args[:title_text_position] if args.key?(:title_text_position)
1094
- @view_window_options = args[:view_window_options] if args.key?(:view_window_options)
1095
- end
1096
- end
1097
-
1098
- # The domain of a chart.
1099
- # For example, if charting stock prices over time, this would be the date.
1100
- class BasicChartDomain
1101
- include Google::Apis::Core::Hashable
1102
-
1103
- # The data included in a domain or series.
1104
- # Corresponds to the JSON property `domain`
1105
- # @return [Google::Apis::SheetsV4::ChartData]
1106
- attr_accessor :domain
1107
-
1108
- # True to reverse the order of the domain values (horizontal axis).
1109
- # Corresponds to the JSON property `reversed`
1110
- # @return [Boolean]
1111
- attr_accessor :reversed
1112
- alias_method :reversed?, :reversed
1113
-
1114
- def initialize(**args)
1115
- update!(**args)
1116
- end
1117
-
1118
- # Update properties of this object
1119
- def update!(**args)
1120
- @domain = args[:domain] if args.key?(:domain)
1121
- @reversed = args[:reversed] if args.key?(:reversed)
1122
- end
1123
- end
1124
-
1125
- # A single series of data in a chart.
1126
- # For example, if charting stock prices over time, multiple series may exist,
1127
- # one for the "Open Price", "High Price", "Low Price" and "Close Price".
1128
- class BasicChartSeries
1129
- include Google::Apis::Core::Hashable
1213
+ attr_accessor :position
1130
1214
 
1131
1215
  # Represents a color in the RGBA color space. This representation is designed
1132
1216
  # for simplicity of conversion to/from color representations in various
@@ -1231,40 +1315,15 @@ module Google
1231
1315
  # return resultBuilder.join('');
1232
1316
  # `;
1233
1317
  # // ...
1234
- # Corresponds to the JSON property `color`
1318
+ # Corresponds to the JSON property `positiveColor`
1235
1319
  # @return [Google::Apis::SheetsV4::Color]
1236
- attr_accessor :color
1237
-
1238
- # Properties that describe the style of a line.
1239
- # Corresponds to the JSON property `lineStyle`
1240
- # @return [Google::Apis::SheetsV4::LineStyle]
1241
- attr_accessor :line_style
1242
-
1243
- # The data included in a domain or series.
1244
- # Corresponds to the JSON property `series`
1245
- # @return [Google::Apis::SheetsV4::ChartData]
1246
- attr_accessor :series
1247
-
1248
- # The minor axis that will specify the range of values for this series.
1249
- # For example, if charting stocks over time, the "Volume" series
1250
- # may want to be pinned to the right with the prices pinned to the left,
1251
- # because the scale of trading volume is different than the scale of
1252
- # prices.
1253
- # It is an error to specify an axis that isn't a valid minor axis
1254
- # for the chart's type.
1255
- # Corresponds to the JSON property `targetAxis`
1256
- # @return [String]
1257
- attr_accessor :target_axis
1320
+ attr_accessor :positive_color
1258
1321
 
1259
- # The type of this series. Valid only if the
1260
- # chartType is
1261
- # COMBO.
1262
- # Different types will change the way the series is visualized.
1263
- # Only LINE, AREA,
1264
- # and COLUMN are supported.
1265
- # Corresponds to the JSON property `type`
1266
- # @return [String]
1267
- attr_accessor :type
1322
+ # The format of a run of text in a cell.
1323
+ # Absent values indicate that the field isn't specified.
1324
+ # Corresponds to the JSON property `textFormat`
1325
+ # @return [Google::Apis::SheetsV4::TextFormat]
1326
+ attr_accessor :text_format
1268
1327
 
1269
1328
  def initialize(**args)
1270
1329
  update!(**args)
@@ -1272,19 +1331,253 @@ module Google
1272
1331
 
1273
1332
  # Update properties of this object
1274
1333
  def update!(**args)
1275
- @color = args[:color] if args.key?(:color)
1276
- @line_style = args[:line_style] if args.key?(:line_style)
1277
- @series = args[:series] if args.key?(:series)
1278
- @target_axis = args[:target_axis] if args.key?(:target_axis)
1279
- @type = args[:type] if args.key?(:type)
1334
+ @comparison_type = args[:comparison_type] if args.key?(:comparison_type)
1335
+ @description = args[:description] if args.key?(:description)
1336
+ @negative_color = args[:negative_color] if args.key?(:negative_color)
1337
+ @position = args[:position] if args.key?(:position)
1338
+ @positive_color = args[:positive_color] if args.key?(:positive_color)
1339
+ @text_format = args[:text_format] if args.key?(:text_format)
1280
1340
  end
1281
1341
  end
1282
1342
 
1283
- # The specification for a basic chart. See BasicChartType for the list
1284
- # of charts this supports.
1285
- class BasicChartSpec
1286
- include Google::Apis::Core::Hashable
1287
-
1343
+ # An axis of the chart.
1344
+ # A chart may not have more than one axis per
1345
+ # axis position.
1346
+ class BasicChartAxis
1347
+ include Google::Apis::Core::Hashable
1348
+
1349
+ # The format of a run of text in a cell.
1350
+ # Absent values indicate that the field isn't specified.
1351
+ # Corresponds to the JSON property `format`
1352
+ # @return [Google::Apis::SheetsV4::TextFormat]
1353
+ attr_accessor :format
1354
+
1355
+ # The position of this axis.
1356
+ # Corresponds to the JSON property `position`
1357
+ # @return [String]
1358
+ attr_accessor :position
1359
+
1360
+ # The title of this axis. If set, this overrides any title inferred
1361
+ # from headers of the data.
1362
+ # Corresponds to the JSON property `title`
1363
+ # @return [String]
1364
+ attr_accessor :title
1365
+
1366
+ # Position settings for text.
1367
+ # Corresponds to the JSON property `titleTextPosition`
1368
+ # @return [Google::Apis::SheetsV4::TextPosition]
1369
+ attr_accessor :title_text_position
1370
+
1371
+ # The options that define a "view window" for a chart (such as the visible
1372
+ # values in an axis).
1373
+ # Corresponds to the JSON property `viewWindowOptions`
1374
+ # @return [Google::Apis::SheetsV4::ChartAxisViewWindowOptions]
1375
+ attr_accessor :view_window_options
1376
+
1377
+ def initialize(**args)
1378
+ update!(**args)
1379
+ end
1380
+
1381
+ # Update properties of this object
1382
+ def update!(**args)
1383
+ @format = args[:format] if args.key?(:format)
1384
+ @position = args[:position] if args.key?(:position)
1385
+ @title = args[:title] if args.key?(:title)
1386
+ @title_text_position = args[:title_text_position] if args.key?(:title_text_position)
1387
+ @view_window_options = args[:view_window_options] if args.key?(:view_window_options)
1388
+ end
1389
+ end
1390
+
1391
+ # The domain of a chart.
1392
+ # For example, if charting stock prices over time, this would be the date.
1393
+ class BasicChartDomain
1394
+ include Google::Apis::Core::Hashable
1395
+
1396
+ # The data included in a domain or series.
1397
+ # Corresponds to the JSON property `domain`
1398
+ # @return [Google::Apis::SheetsV4::ChartData]
1399
+ attr_accessor :domain
1400
+
1401
+ # True to reverse the order of the domain values (horizontal axis).
1402
+ # Corresponds to the JSON property `reversed`
1403
+ # @return [Boolean]
1404
+ attr_accessor :reversed
1405
+ alias_method :reversed?, :reversed
1406
+
1407
+ def initialize(**args)
1408
+ update!(**args)
1409
+ end
1410
+
1411
+ # Update properties of this object
1412
+ def update!(**args)
1413
+ @domain = args[:domain] if args.key?(:domain)
1414
+ @reversed = args[:reversed] if args.key?(:reversed)
1415
+ end
1416
+ end
1417
+
1418
+ # A single series of data in a chart.
1419
+ # For example, if charting stock prices over time, multiple series may exist,
1420
+ # one for the "Open Price", "High Price", "Low Price" and "Close Price".
1421
+ class BasicChartSeries
1422
+ include Google::Apis::Core::Hashable
1423
+
1424
+ # Represents a color in the RGBA color space. This representation is designed
1425
+ # for simplicity of conversion to/from color representations in various
1426
+ # languages over compactness; for example, the fields of this representation
1427
+ # can be trivially provided to the constructor of "java.awt.Color" in Java; it
1428
+ # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
1429
+ # method in iOS; and, with just a little work, it can be easily formatted into
1430
+ # a CSS "rgba()" string in JavaScript, as well.
1431
+ # Note: this proto does not carry information about the absolute color space
1432
+ # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
1433
+ # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
1434
+ # space.
1435
+ # Example (Java):
1436
+ # import com.google.type.Color;
1437
+ # // ...
1438
+ # public static java.awt.Color fromProto(Color protocolor) `
1439
+ # float alpha = protocolor.hasAlpha()
1440
+ # ? protocolor.getAlpha().getValue()
1441
+ # : 1.0;
1442
+ # return new java.awt.Color(
1443
+ # protocolor.getRed(),
1444
+ # protocolor.getGreen(),
1445
+ # protocolor.getBlue(),
1446
+ # alpha);
1447
+ # `
1448
+ # public static Color toProto(java.awt.Color color) `
1449
+ # float red = (float) color.getRed();
1450
+ # float green = (float) color.getGreen();
1451
+ # float blue = (float) color.getBlue();
1452
+ # float denominator = 255.0;
1453
+ # Color.Builder resultBuilder =
1454
+ # Color
1455
+ # .newBuilder()
1456
+ # .setRed(red / denominator)
1457
+ # .setGreen(green / denominator)
1458
+ # .setBlue(blue / denominator);
1459
+ # int alpha = color.getAlpha();
1460
+ # if (alpha != 255) `
1461
+ # result.setAlpha(
1462
+ # FloatValue
1463
+ # .newBuilder()
1464
+ # .setValue(((float) alpha) / denominator)
1465
+ # .build());
1466
+ # `
1467
+ # return resultBuilder.build();
1468
+ # `
1469
+ # // ...
1470
+ # Example (iOS / Obj-C):
1471
+ # // ...
1472
+ # static UIColor* fromProto(Color* protocolor) `
1473
+ # float red = [protocolor red];
1474
+ # float green = [protocolor green];
1475
+ # float blue = [protocolor blue];
1476
+ # FloatValue* alpha_wrapper = [protocolor alpha];
1477
+ # float alpha = 1.0;
1478
+ # if (alpha_wrapper != nil) `
1479
+ # alpha = [alpha_wrapper value];
1480
+ # `
1481
+ # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
1482
+ # `
1483
+ # static Color* toProto(UIColor* color) `
1484
+ # CGFloat red, green, blue, alpha;
1485
+ # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) `
1486
+ # return nil;
1487
+ # `
1488
+ # Color* result = [[Color alloc] init];
1489
+ # [result setRed:red];
1490
+ # [result setGreen:green];
1491
+ # [result setBlue:blue];
1492
+ # if (alpha <= 0.9999) `
1493
+ # [result setAlpha:floatWrapperWithValue(alpha)];
1494
+ # `
1495
+ # [result autorelease];
1496
+ # return result;
1497
+ # `
1498
+ # // ...
1499
+ # Example (JavaScript):
1500
+ # // ...
1501
+ # var protoToCssColor = function(rgb_color) `
1502
+ # var redFrac = rgb_color.red || 0.0;
1503
+ # var greenFrac = rgb_color.green || 0.0;
1504
+ # var blueFrac = rgb_color.blue || 0.0;
1505
+ # var red = Math.floor(redFrac * 255);
1506
+ # var green = Math.floor(greenFrac * 255);
1507
+ # var blue = Math.floor(blueFrac * 255);
1508
+ # if (!('alpha' in rgb_color)) `
1509
+ # return rgbToCssColor_(red, green, blue);
1510
+ # `
1511
+ # var alphaFrac = rgb_color.alpha.value || 0.0;
1512
+ # var rgbParams = [red, green, blue].join(',');
1513
+ # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
1514
+ # `;
1515
+ # var rgbToCssColor_ = function(red, green, blue) `
1516
+ # var rgbNumber = new Number((red << 16) | (green << 8) | blue);
1517
+ # var hexString = rgbNumber.toString(16);
1518
+ # var missingZeros = 6 - hexString.length;
1519
+ # var resultBuilder = ['#'];
1520
+ # for (var i = 0; i < missingZeros; i++) `
1521
+ # resultBuilder.push('0');
1522
+ # `
1523
+ # resultBuilder.push(hexString);
1524
+ # return resultBuilder.join('');
1525
+ # `;
1526
+ # // ...
1527
+ # Corresponds to the JSON property `color`
1528
+ # @return [Google::Apis::SheetsV4::Color]
1529
+ attr_accessor :color
1530
+
1531
+ # Properties that describe the style of a line.
1532
+ # Corresponds to the JSON property `lineStyle`
1533
+ # @return [Google::Apis::SheetsV4::LineStyle]
1534
+ attr_accessor :line_style
1535
+
1536
+ # The data included in a domain or series.
1537
+ # Corresponds to the JSON property `series`
1538
+ # @return [Google::Apis::SheetsV4::ChartData]
1539
+ attr_accessor :series
1540
+
1541
+ # The minor axis that will specify the range of values for this series.
1542
+ # For example, if charting stocks over time, the "Volume" series
1543
+ # may want to be pinned to the right with the prices pinned to the left,
1544
+ # because the scale of trading volume is different than the scale of
1545
+ # prices.
1546
+ # It is an error to specify an axis that isn't a valid minor axis
1547
+ # for the chart's type.
1548
+ # Corresponds to the JSON property `targetAxis`
1549
+ # @return [String]
1550
+ attr_accessor :target_axis
1551
+
1552
+ # The type of this series. Valid only if the
1553
+ # chartType is
1554
+ # COMBO.
1555
+ # Different types will change the way the series is visualized.
1556
+ # Only LINE, AREA,
1557
+ # and COLUMN are supported.
1558
+ # Corresponds to the JSON property `type`
1559
+ # @return [String]
1560
+ attr_accessor :type
1561
+
1562
+ def initialize(**args)
1563
+ update!(**args)
1564
+ end
1565
+
1566
+ # Update properties of this object
1567
+ def update!(**args)
1568
+ @color = args[:color] if args.key?(:color)
1569
+ @line_style = args[:line_style] if args.key?(:line_style)
1570
+ @series = args[:series] if args.key?(:series)
1571
+ @target_axis = args[:target_axis] if args.key?(:target_axis)
1572
+ @type = args[:type] if args.key?(:type)
1573
+ end
1574
+ end
1575
+
1576
+ # The specification for a basic chart. See BasicChartType for the list
1577
+ # of charts this supports.
1578
+ class BasicChartSpec
1579
+ include Google::Apis::Core::Hashable
1580
+
1288
1581
  # The axis on the chart.
1289
1582
  # Corresponds to the JSON property `axis`
1290
1583
  # @return [Array<Google::Apis::SheetsV4::BasicChartAxis>]
@@ -2744,6 +3037,33 @@ module Google
2744
3037
  end
2745
3038
  end
2746
3039
 
3040
+ # Custom number formatting options for chart attributes.
3041
+ class ChartCustomNumberFormatOptions
3042
+ include Google::Apis::Core::Hashable
3043
+
3044
+ # Custom prefix to be prepended to the chart attribute.
3045
+ # This field is optional.
3046
+ # Corresponds to the JSON property `prefix`
3047
+ # @return [String]
3048
+ attr_accessor :prefix
3049
+
3050
+ # Custom suffix to be appended to the chart attribute.
3051
+ # This field is optional.
3052
+ # Corresponds to the JSON property `suffix`
3053
+ # @return [String]
3054
+ attr_accessor :suffix
3055
+
3056
+ def initialize(**args)
3057
+ update!(**args)
3058
+ end
3059
+
3060
+ # Update properties of this object
3061
+ def update!(**args)
3062
+ @prefix = args[:prefix] if args.key?(:prefix)
3063
+ @suffix = args[:suffix] if args.key?(:suffix)
3064
+ end
3065
+ end
3066
+
2747
3067
  # The data included in a domain or series.
2748
3068
  class ChartData
2749
3069
  include Google::Apis::Core::Hashable
@@ -2979,6 +3299,16 @@ module Google
2979
3299
  # @return [Google::Apis::SheetsV4::PieChartSpec]
2980
3300
  attr_accessor :pie_chart
2981
3301
 
3302
+ # A scorecard chart. Scorecard charts are used to highlight key performance
3303
+ # indicators, known as KPIs, on the spreadsheet. A scorecard chart can
3304
+ # represent things like total sales, average cost, or a top selling item. You
3305
+ # can specify a single data value, or aggregate over a range of data.
3306
+ # Percentage or absolute difference from a baseline value can be highlighted,
3307
+ # like changes over time.
3308
+ # Corresponds to the JSON property `scorecardChart`
3309
+ # @return [Google::Apis::SheetsV4::ScorecardChartSpec]
3310
+ attr_accessor :scorecard_chart
3311
+
2982
3312
  # The subtitle of the chart.
2983
3313
  # Corresponds to the JSON property `subtitle`
2984
3314
  # @return [String]
@@ -3038,6 +3368,7 @@ module Google
3038
3368
  @maximized = args[:maximized] if args.key?(:maximized)
3039
3369
  @org_chart = args[:org_chart] if args.key?(:org_chart)
3040
3370
  @pie_chart = args[:pie_chart] if args.key?(:pie_chart)
3371
+ @scorecard_chart = args[:scorecard_chart] if args.key?(:scorecard_chart)
3041
3372
  @subtitle = args[:subtitle] if args.key?(:subtitle)
3042
3373
  @subtitle_text_format = args[:subtitle_text_format] if args.key?(:subtitle_text_format)
3043
3374
  @subtitle_text_position = args[:subtitle_text_position] if args.key?(:subtitle_text_position)
@@ -4692,6 +5023,220 @@ module Google
4692
5023
  # @return [Array<String>]
4693
5024
  attr_accessor :hidden_values
4694
5025
 
5026
+ # Represents a color in the RGBA color space. This representation is designed
5027
+ # for simplicity of conversion to/from color representations in various
5028
+ # languages over compactness; for example, the fields of this representation
5029
+ # can be trivially provided to the constructor of "java.awt.Color" in Java; it
5030
+ # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
5031
+ # method in iOS; and, with just a little work, it can be easily formatted into
5032
+ # a CSS "rgba()" string in JavaScript, as well.
5033
+ # Note: this proto does not carry information about the absolute color space
5034
+ # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
5035
+ # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
5036
+ # space.
5037
+ # Example (Java):
5038
+ # import com.google.type.Color;
5039
+ # // ...
5040
+ # public static java.awt.Color fromProto(Color protocolor) `
5041
+ # float alpha = protocolor.hasAlpha()
5042
+ # ? protocolor.getAlpha().getValue()
5043
+ # : 1.0;
5044
+ # return new java.awt.Color(
5045
+ # protocolor.getRed(),
5046
+ # protocolor.getGreen(),
5047
+ # protocolor.getBlue(),
5048
+ # alpha);
5049
+ # `
5050
+ # public static Color toProto(java.awt.Color color) `
5051
+ # float red = (float) color.getRed();
5052
+ # float green = (float) color.getGreen();
5053
+ # float blue = (float) color.getBlue();
5054
+ # float denominator = 255.0;
5055
+ # Color.Builder resultBuilder =
5056
+ # Color
5057
+ # .newBuilder()
5058
+ # .setRed(red / denominator)
5059
+ # .setGreen(green / denominator)
5060
+ # .setBlue(blue / denominator);
5061
+ # int alpha = color.getAlpha();
5062
+ # if (alpha != 255) `
5063
+ # result.setAlpha(
5064
+ # FloatValue
5065
+ # .newBuilder()
5066
+ # .setValue(((float) alpha) / denominator)
5067
+ # .build());
5068
+ # `
5069
+ # return resultBuilder.build();
5070
+ # `
5071
+ # // ...
5072
+ # Example (iOS / Obj-C):
5073
+ # // ...
5074
+ # static UIColor* fromProto(Color* protocolor) `
5075
+ # float red = [protocolor red];
5076
+ # float green = [protocolor green];
5077
+ # float blue = [protocolor blue];
5078
+ # FloatValue* alpha_wrapper = [protocolor alpha];
5079
+ # float alpha = 1.0;
5080
+ # if (alpha_wrapper != nil) `
5081
+ # alpha = [alpha_wrapper value];
5082
+ # `
5083
+ # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
5084
+ # `
5085
+ # static Color* toProto(UIColor* color) `
5086
+ # CGFloat red, green, blue, alpha;
5087
+ # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) `
5088
+ # return nil;
5089
+ # `
5090
+ # Color* result = [[Color alloc] init];
5091
+ # [result setRed:red];
5092
+ # [result setGreen:green];
5093
+ # [result setBlue:blue];
5094
+ # if (alpha <= 0.9999) `
5095
+ # [result setAlpha:floatWrapperWithValue(alpha)];
5096
+ # `
5097
+ # [result autorelease];
5098
+ # return result;
5099
+ # `
5100
+ # // ...
5101
+ # Example (JavaScript):
5102
+ # // ...
5103
+ # var protoToCssColor = function(rgb_color) `
5104
+ # var redFrac = rgb_color.red || 0.0;
5105
+ # var greenFrac = rgb_color.green || 0.0;
5106
+ # var blueFrac = rgb_color.blue || 0.0;
5107
+ # var red = Math.floor(redFrac * 255);
5108
+ # var green = Math.floor(greenFrac * 255);
5109
+ # var blue = Math.floor(blueFrac * 255);
5110
+ # if (!('alpha' in rgb_color)) `
5111
+ # return rgbToCssColor_(red, green, blue);
5112
+ # `
5113
+ # var alphaFrac = rgb_color.alpha.value || 0.0;
5114
+ # var rgbParams = [red, green, blue].join(',');
5115
+ # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
5116
+ # `;
5117
+ # var rgbToCssColor_ = function(red, green, blue) `
5118
+ # var rgbNumber = new Number((red << 16) | (green << 8) | blue);
5119
+ # var hexString = rgbNumber.toString(16);
5120
+ # var missingZeros = 6 - hexString.length;
5121
+ # var resultBuilder = ['#'];
5122
+ # for (var i = 0; i < missingZeros; i++) `
5123
+ # resultBuilder.push('0');
5124
+ # `
5125
+ # resultBuilder.push(hexString);
5126
+ # return resultBuilder.join('');
5127
+ # `;
5128
+ # // ...
5129
+ # Corresponds to the JSON property `visibleBackgroundColor`
5130
+ # @return [Google::Apis::SheetsV4::Color]
5131
+ attr_accessor :visible_background_color
5132
+
5133
+ # Represents a color in the RGBA color space. This representation is designed
5134
+ # for simplicity of conversion to/from color representations in various
5135
+ # languages over compactness; for example, the fields of this representation
5136
+ # can be trivially provided to the constructor of "java.awt.Color" in Java; it
5137
+ # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
5138
+ # method in iOS; and, with just a little work, it can be easily formatted into
5139
+ # a CSS "rgba()" string in JavaScript, as well.
5140
+ # Note: this proto does not carry information about the absolute color space
5141
+ # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
5142
+ # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
5143
+ # space.
5144
+ # Example (Java):
5145
+ # import com.google.type.Color;
5146
+ # // ...
5147
+ # public static java.awt.Color fromProto(Color protocolor) `
5148
+ # float alpha = protocolor.hasAlpha()
5149
+ # ? protocolor.getAlpha().getValue()
5150
+ # : 1.0;
5151
+ # return new java.awt.Color(
5152
+ # protocolor.getRed(),
5153
+ # protocolor.getGreen(),
5154
+ # protocolor.getBlue(),
5155
+ # alpha);
5156
+ # `
5157
+ # public static Color toProto(java.awt.Color color) `
5158
+ # float red = (float) color.getRed();
5159
+ # float green = (float) color.getGreen();
5160
+ # float blue = (float) color.getBlue();
5161
+ # float denominator = 255.0;
5162
+ # Color.Builder resultBuilder =
5163
+ # Color
5164
+ # .newBuilder()
5165
+ # .setRed(red / denominator)
5166
+ # .setGreen(green / denominator)
5167
+ # .setBlue(blue / denominator);
5168
+ # int alpha = color.getAlpha();
5169
+ # if (alpha != 255) `
5170
+ # result.setAlpha(
5171
+ # FloatValue
5172
+ # .newBuilder()
5173
+ # .setValue(((float) alpha) / denominator)
5174
+ # .build());
5175
+ # `
5176
+ # return resultBuilder.build();
5177
+ # `
5178
+ # // ...
5179
+ # Example (iOS / Obj-C):
5180
+ # // ...
5181
+ # static UIColor* fromProto(Color* protocolor) `
5182
+ # float red = [protocolor red];
5183
+ # float green = [protocolor green];
5184
+ # float blue = [protocolor blue];
5185
+ # FloatValue* alpha_wrapper = [protocolor alpha];
5186
+ # float alpha = 1.0;
5187
+ # if (alpha_wrapper != nil) `
5188
+ # alpha = [alpha_wrapper value];
5189
+ # `
5190
+ # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
5191
+ # `
5192
+ # static Color* toProto(UIColor* color) `
5193
+ # CGFloat red, green, blue, alpha;
5194
+ # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) `
5195
+ # return nil;
5196
+ # `
5197
+ # Color* result = [[Color alloc] init];
5198
+ # [result setRed:red];
5199
+ # [result setGreen:green];
5200
+ # [result setBlue:blue];
5201
+ # if (alpha <= 0.9999) `
5202
+ # [result setAlpha:floatWrapperWithValue(alpha)];
5203
+ # `
5204
+ # [result autorelease];
5205
+ # return result;
5206
+ # `
5207
+ # // ...
5208
+ # Example (JavaScript):
5209
+ # // ...
5210
+ # var protoToCssColor = function(rgb_color) `
5211
+ # var redFrac = rgb_color.red || 0.0;
5212
+ # var greenFrac = rgb_color.green || 0.0;
5213
+ # var blueFrac = rgb_color.blue || 0.0;
5214
+ # var red = Math.floor(redFrac * 255);
5215
+ # var green = Math.floor(greenFrac * 255);
5216
+ # var blue = Math.floor(blueFrac * 255);
5217
+ # if (!('alpha' in rgb_color)) `
5218
+ # return rgbToCssColor_(red, green, blue);
5219
+ # `
5220
+ # var alphaFrac = rgb_color.alpha.value || 0.0;
5221
+ # var rgbParams = [red, green, blue].join(',');
5222
+ # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
5223
+ # `;
5224
+ # var rgbToCssColor_ = function(red, green, blue) `
5225
+ # var rgbNumber = new Number((red << 16) | (green << 8) | blue);
5226
+ # var hexString = rgbNumber.toString(16);
5227
+ # var missingZeros = 6 - hexString.length;
5228
+ # var resultBuilder = ['#'];
5229
+ # for (var i = 0; i < missingZeros; i++) `
5230
+ # resultBuilder.push('0');
5231
+ # `
5232
+ # resultBuilder.push(hexString);
5233
+ # return resultBuilder.join('');
5234
+ # `;
5235
+ # // ...
5236
+ # Corresponds to the JSON property `visibleForegroundColor`
5237
+ # @return [Google::Apis::SheetsV4::Color]
5238
+ attr_accessor :visible_foreground_color
5239
+
4695
5240
  def initialize(**args)
4696
5241
  update!(**args)
4697
5242
  end
@@ -4700,6 +5245,8 @@ module Google
4700
5245
  def update!(**args)
4701
5246
  @condition = args[:condition] if args.key?(:condition)
4702
5247
  @hidden_values = args[:hidden_values] if args.key?(:hidden_values)
5248
+ @visible_background_color = args[:visible_background_color] if args.key?(:visible_background_color)
5249
+ @visible_foreground_color = args[:visible_foreground_color] if args.key?(:visible_foreground_color)
4703
5250
  end
4704
5251
  end
4705
5252
 
@@ -5701,6 +6248,32 @@ module Google
5701
6248
  end
5702
6249
  end
5703
6250
 
6251
+ # Formatting options for key value.
6252
+ class KeyValueFormat
6253
+ include Google::Apis::Core::Hashable
6254
+
6255
+ # Position settings for text.
6256
+ # Corresponds to the JSON property `position`
6257
+ # @return [Google::Apis::SheetsV4::TextPosition]
6258
+ attr_accessor :position
6259
+
6260
+ # The format of a run of text in a cell.
6261
+ # Absent values indicate that the field isn't specified.
6262
+ # Corresponds to the JSON property `textFormat`
6263
+ # @return [Google::Apis::SheetsV4::TextFormat]
6264
+ attr_accessor :text_format
6265
+
6266
+ def initialize(**args)
6267
+ update!(**args)
6268
+ end
6269
+
6270
+ # Update properties of this object
6271
+ def update!(**args)
6272
+ @position = args[:position] if args.key?(:position)
6273
+ @text_format = args[:text_format] if args.key?(:text_format)
6274
+ end
6275
+ end
6276
+
5704
6277
  # Properties that describe the style of a line.
5705
6278
  class LineStyle
5706
6279
  include Google::Apis::Core::Hashable
@@ -7142,6 +7715,11 @@ module Google
7142
7715
  # @return [Google::Apis::SheetsV4::AddSheetRequest]
7143
7716
  attr_accessor :add_sheet
7144
7717
 
7718
+ # Adds a slicer to a sheet in the spreadsheet.
7719
+ # Corresponds to the JSON property `addSlicer`
7720
+ # @return [Google::Apis::SheetsV4::AddSlicerRequest]
7721
+ attr_accessor :add_slicer
7722
+
7145
7723
  # Adds new cells after the last row with data in a sheet,
7146
7724
  # inserting new rows into the sheet if necessary.
7147
7725
  # Corresponds to the JSON property `appendCells`
@@ -7439,6 +8017,13 @@ module Google
7439
8017
  # @return [Google::Apis::SheetsV4::UpdateSheetPropertiesRequest]
7440
8018
  attr_accessor :update_sheet_properties
7441
8019
 
8020
+ # Updates a slicer’s specifications.
8021
+ # (This does not move or resize a slicer. To move or resize a slicer use
8022
+ # UpdateEmbeddedObjectPositionRequest.
8023
+ # Corresponds to the JSON property `updateSlicerSpec`
8024
+ # @return [Google::Apis::SheetsV4::UpdateSlicerSpecRequest]
8025
+ attr_accessor :update_slicer_spec
8026
+
7442
8027
  # Updates properties of a spreadsheet.
7443
8028
  # Corresponds to the JSON property `updateSpreadsheetProperties`
7444
8029
  # @return [Google::Apis::SheetsV4::UpdateSpreadsheetPropertiesRequest]
@@ -7458,6 +8043,7 @@ module Google
7458
8043
  @add_named_range = args[:add_named_range] if args.key?(:add_named_range)
7459
8044
  @add_protected_range = args[:add_protected_range] if args.key?(:add_protected_range)
7460
8045
  @add_sheet = args[:add_sheet] if args.key?(:add_sheet)
8046
+ @add_slicer = args[:add_slicer] if args.key?(:add_slicer)
7461
8047
  @append_cells = args[:append_cells] if args.key?(:append_cells)
7462
8048
  @append_dimension = args[:append_dimension] if args.key?(:append_dimension)
7463
8049
  @auto_fill = args[:auto_fill] if args.key?(:auto_fill)
@@ -7507,6 +8093,7 @@ module Google
7507
8093
  @update_named_range = args[:update_named_range] if args.key?(:update_named_range)
7508
8094
  @update_protected_range = args[:update_protected_range] if args.key?(:update_protected_range)
7509
8095
  @update_sheet_properties = args[:update_sheet_properties] if args.key?(:update_sheet_properties)
8096
+ @update_slicer_spec = args[:update_slicer_spec] if args.key?(:update_slicer_spec)
7510
8097
  @update_spreadsheet_properties = args[:update_spreadsheet_properties] if args.key?(:update_spreadsheet_properties)
7511
8098
  end
7512
8099
  end
@@ -7550,6 +8137,11 @@ module Google
7550
8137
  # @return [Google::Apis::SheetsV4::AddSheetResponse]
7551
8138
  attr_accessor :add_sheet
7552
8139
 
8140
+ # The result of adding a slicer to a spreadsheet.
8141
+ # Corresponds to the JSON property `addSlicer`
8142
+ # @return [Google::Apis::SheetsV4::AddSlicerResponse]
8143
+ attr_accessor :add_slicer
8144
+
7553
8145
  # The response from creating developer metadata.
7554
8146
  # Corresponds to the JSON property `createDeveloperMetadata`
7555
8147
  # @return [Google::Apis::SheetsV4::CreateDeveloperMetadataResponse]
@@ -7623,6 +8215,7 @@ module Google
7623
8215
  @add_named_range = args[:add_named_range] if args.key?(:add_named_range)
7624
8216
  @add_protected_range = args[:add_protected_range] if args.key?(:add_protected_range)
7625
8217
  @add_sheet = args[:add_sheet] if args.key?(:add_sheet)
8218
+ @add_slicer = args[:add_slicer] if args.key?(:add_slicer)
7626
8219
  @create_developer_metadata = args[:create_developer_metadata] if args.key?(:create_developer_metadata)
7627
8220
  @delete_conditional_format_rule = args[:delete_conditional_format_rule] if args.key?(:delete_conditional_format_rule)
7628
8221
  @delete_developer_metadata = args[:delete_developer_metadata] if args.key?(:delete_developer_metadata)
@@ -7657,25 +8250,95 @@ module Google
7657
8250
  end
7658
8251
  end
7659
8252
 
7660
- # A request to retrieve all developer metadata matching the set of specified
7661
- # criteria.
7662
- class SearchDeveloperMetadataRequest
8253
+ # A scorecard chart. Scorecard charts are used to highlight key performance
8254
+ # indicators, known as KPIs, on the spreadsheet. A scorecard chart can
8255
+ # represent things like total sales, average cost, or a top selling item. You
8256
+ # can specify a single data value, or aggregate over a range of data.
8257
+ # Percentage or absolute difference from a baseline value can be highlighted,
8258
+ # like changes over time.
8259
+ class ScorecardChartSpec
7663
8260
  include Google::Apis::Core::Hashable
7664
8261
 
7665
- # The data filters describing the criteria used to determine which
7666
- # DeveloperMetadata entries to return. DeveloperMetadata matching any of the
7667
- # specified filters will be included in the response.
7668
- # Corresponds to the JSON property `dataFilters`
7669
- # @return [Array<Google::Apis::SheetsV4::DataFilter>]
7670
- attr_accessor :data_filters
8262
+ # The aggregation type for key and baseline chart data in scorecard chart.
8263
+ # This field is optional.
8264
+ # Corresponds to the JSON property `aggregateType`
8265
+ # @return [String]
8266
+ attr_accessor :aggregate_type
7671
8267
 
7672
- def initialize(**args)
7673
- update!(**args)
7674
- end
8268
+ # The data included in a domain or series.
8269
+ # Corresponds to the JSON property `baselineValueData`
8270
+ # @return [Google::Apis::SheetsV4::ChartData]
8271
+ attr_accessor :baseline_value_data
7675
8272
 
7676
- # Update properties of this object
7677
- def update!(**args)
7678
- @data_filters = args[:data_filters] if args.key?(:data_filters)
8273
+ # Formatting options for baseline value.
8274
+ # Corresponds to the JSON property `baselineValueFormat`
8275
+ # @return [Google::Apis::SheetsV4::BaselineValueFormat]
8276
+ attr_accessor :baseline_value_format
8277
+
8278
+ # Custom number formatting options for chart attributes.
8279
+ # Corresponds to the JSON property `customFormatOptions`
8280
+ # @return [Google::Apis::SheetsV4::ChartCustomNumberFormatOptions]
8281
+ attr_accessor :custom_format_options
8282
+
8283
+ # The data included in a domain or series.
8284
+ # Corresponds to the JSON property `keyValueData`
8285
+ # @return [Google::Apis::SheetsV4::ChartData]
8286
+ attr_accessor :key_value_data
8287
+
8288
+ # Formatting options for key value.
8289
+ # Corresponds to the JSON property `keyValueFormat`
8290
+ # @return [Google::Apis::SheetsV4::KeyValueFormat]
8291
+ attr_accessor :key_value_format
8292
+
8293
+ # The number format source used in the scorecard chart.
8294
+ # This field is optional.
8295
+ # Corresponds to the JSON property `numberFormatSource`
8296
+ # @return [String]
8297
+ attr_accessor :number_format_source
8298
+
8299
+ # Value to scale scorecard key and baseline value. For example, a factor of
8300
+ # 10 can be used to divide all values in the chart by 10.
8301
+ # This field is optional.
8302
+ # Corresponds to the JSON property `scaleFactor`
8303
+ # @return [Float]
8304
+ attr_accessor :scale_factor
8305
+
8306
+ def initialize(**args)
8307
+ update!(**args)
8308
+ end
8309
+
8310
+ # Update properties of this object
8311
+ def update!(**args)
8312
+ @aggregate_type = args[:aggregate_type] if args.key?(:aggregate_type)
8313
+ @baseline_value_data = args[:baseline_value_data] if args.key?(:baseline_value_data)
8314
+ @baseline_value_format = args[:baseline_value_format] if args.key?(:baseline_value_format)
8315
+ @custom_format_options = args[:custom_format_options] if args.key?(:custom_format_options)
8316
+ @key_value_data = args[:key_value_data] if args.key?(:key_value_data)
8317
+ @key_value_format = args[:key_value_format] if args.key?(:key_value_format)
8318
+ @number_format_source = args[:number_format_source] if args.key?(:number_format_source)
8319
+ @scale_factor = args[:scale_factor] if args.key?(:scale_factor)
8320
+ end
8321
+ end
8322
+
8323
+ # A request to retrieve all developer metadata matching the set of specified
8324
+ # criteria.
8325
+ class SearchDeveloperMetadataRequest
8326
+ include Google::Apis::Core::Hashable
8327
+
8328
+ # The data filters describing the criteria used to determine which
8329
+ # DeveloperMetadata entries to return. DeveloperMetadata matching any of the
8330
+ # specified filters will be included in the response.
8331
+ # Corresponds to the JSON property `dataFilters`
8332
+ # @return [Array<Google::Apis::SheetsV4::DataFilter>]
8333
+ attr_accessor :data_filters
8334
+
8335
+ def initialize(**args)
8336
+ update!(**args)
8337
+ end
8338
+
8339
+ # Update properties of this object
8340
+ def update!(**args)
8341
+ @data_filters = args[:data_filters] if args.key?(:data_filters)
7679
8342
  end
7680
8343
  end
7681
8344
 
@@ -7837,6 +8500,11 @@ module Google
7837
8500
  # @return [Array<Google::Apis::SheetsV4::DimensionGroup>]
7838
8501
  attr_accessor :row_groups
7839
8502
 
8503
+ # The slicers on this sheet.
8504
+ # Corresponds to the JSON property `slicers`
8505
+ # @return [Array<Google::Apis::SheetsV4::Slicer>]
8506
+ attr_accessor :slicers
8507
+
7840
8508
  def initialize(**args)
7841
8509
  update!(**args)
7842
8510
  end
@@ -7855,6 +8523,7 @@ module Google
7855
8523
  @properties = args[:properties] if args.key?(:properties)
7856
8524
  @protected_ranges = args[:protected_ranges] if args.key?(:protected_ranges)
7857
8525
  @row_groups = args[:row_groups] if args.key?(:row_groups)
8526
+ @slicers = args[:slicers] if args.key?(:slicers)
7858
8527
  end
7859
8528
  end
7860
8529
 
@@ -7873,37 +8542,436 @@ module Google
7873
8542
  attr_accessor :hidden
7874
8543
  alias_method :hidden?, :hidden
7875
8544
 
7876
- # The index of the sheet within the spreadsheet.
7877
- # When adding or updating sheet properties, if this field
7878
- # is excluded then the sheet is added or moved to the end
7879
- # of the sheet list. When updating sheet indices or inserting
7880
- # sheets, movement is considered in "before the move" indexes.
7881
- # For example, if there were 3 sheets (S1, S2, S3) in order to
7882
- # move S1 ahead of S2 the index would have to be set to 2. A sheet
7883
- # index update request is ignored if the requested index is
7884
- # identical to the sheets current index or if the requested new
7885
- # index is equal to the current sheet index + 1.
7886
- # Corresponds to the JSON property `index`
7887
- # @return [Fixnum]
7888
- attr_accessor :index
8545
+ # The index of the sheet within the spreadsheet.
8546
+ # When adding or updating sheet properties, if this field
8547
+ # is excluded then the sheet is added or moved to the end
8548
+ # of the sheet list. When updating sheet indices or inserting
8549
+ # sheets, movement is considered in "before the move" indexes.
8550
+ # For example, if there were 3 sheets (S1, S2, S3) in order to
8551
+ # move S1 ahead of S2 the index would have to be set to 2. A sheet
8552
+ # index update request is ignored if the requested index is
8553
+ # identical to the sheets current index or if the requested new
8554
+ # index is equal to the current sheet index + 1.
8555
+ # Corresponds to the JSON property `index`
8556
+ # @return [Fixnum]
8557
+ attr_accessor :index
8558
+
8559
+ # True if the sheet is an RTL sheet instead of an LTR sheet.
8560
+ # Corresponds to the JSON property `rightToLeft`
8561
+ # @return [Boolean]
8562
+ attr_accessor :right_to_left
8563
+ alias_method :right_to_left?, :right_to_left
8564
+
8565
+ # The ID of the sheet. Must be non-negative.
8566
+ # This field cannot be changed once set.
8567
+ # Corresponds to the JSON property `sheetId`
8568
+ # @return [Fixnum]
8569
+ attr_accessor :sheet_id
8570
+
8571
+ # The type of sheet. Defaults to GRID.
8572
+ # This field cannot be changed once set.
8573
+ # Corresponds to the JSON property `sheetType`
8574
+ # @return [String]
8575
+ attr_accessor :sheet_type
8576
+
8577
+ # Represents a color in the RGBA color space. This representation is designed
8578
+ # for simplicity of conversion to/from color representations in various
8579
+ # languages over compactness; for example, the fields of this representation
8580
+ # can be trivially provided to the constructor of "java.awt.Color" in Java; it
8581
+ # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
8582
+ # method in iOS; and, with just a little work, it can be easily formatted into
8583
+ # a CSS "rgba()" string in JavaScript, as well.
8584
+ # Note: this proto does not carry information about the absolute color space
8585
+ # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
8586
+ # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
8587
+ # space.
8588
+ # Example (Java):
8589
+ # import com.google.type.Color;
8590
+ # // ...
8591
+ # public static java.awt.Color fromProto(Color protocolor) `
8592
+ # float alpha = protocolor.hasAlpha()
8593
+ # ? protocolor.getAlpha().getValue()
8594
+ # : 1.0;
8595
+ # return new java.awt.Color(
8596
+ # protocolor.getRed(),
8597
+ # protocolor.getGreen(),
8598
+ # protocolor.getBlue(),
8599
+ # alpha);
8600
+ # `
8601
+ # public static Color toProto(java.awt.Color color) `
8602
+ # float red = (float) color.getRed();
8603
+ # float green = (float) color.getGreen();
8604
+ # float blue = (float) color.getBlue();
8605
+ # float denominator = 255.0;
8606
+ # Color.Builder resultBuilder =
8607
+ # Color
8608
+ # .newBuilder()
8609
+ # .setRed(red / denominator)
8610
+ # .setGreen(green / denominator)
8611
+ # .setBlue(blue / denominator);
8612
+ # int alpha = color.getAlpha();
8613
+ # if (alpha != 255) `
8614
+ # result.setAlpha(
8615
+ # FloatValue
8616
+ # .newBuilder()
8617
+ # .setValue(((float) alpha) / denominator)
8618
+ # .build());
8619
+ # `
8620
+ # return resultBuilder.build();
8621
+ # `
8622
+ # // ...
8623
+ # Example (iOS / Obj-C):
8624
+ # // ...
8625
+ # static UIColor* fromProto(Color* protocolor) `
8626
+ # float red = [protocolor red];
8627
+ # float green = [protocolor green];
8628
+ # float blue = [protocolor blue];
8629
+ # FloatValue* alpha_wrapper = [protocolor alpha];
8630
+ # float alpha = 1.0;
8631
+ # if (alpha_wrapper != nil) `
8632
+ # alpha = [alpha_wrapper value];
8633
+ # `
8634
+ # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
8635
+ # `
8636
+ # static Color* toProto(UIColor* color) `
8637
+ # CGFloat red, green, blue, alpha;
8638
+ # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) `
8639
+ # return nil;
8640
+ # `
8641
+ # Color* result = [[Color alloc] init];
8642
+ # [result setRed:red];
8643
+ # [result setGreen:green];
8644
+ # [result setBlue:blue];
8645
+ # if (alpha <= 0.9999) `
8646
+ # [result setAlpha:floatWrapperWithValue(alpha)];
8647
+ # `
8648
+ # [result autorelease];
8649
+ # return result;
8650
+ # `
8651
+ # // ...
8652
+ # Example (JavaScript):
8653
+ # // ...
8654
+ # var protoToCssColor = function(rgb_color) `
8655
+ # var redFrac = rgb_color.red || 0.0;
8656
+ # var greenFrac = rgb_color.green || 0.0;
8657
+ # var blueFrac = rgb_color.blue || 0.0;
8658
+ # var red = Math.floor(redFrac * 255);
8659
+ # var green = Math.floor(greenFrac * 255);
8660
+ # var blue = Math.floor(blueFrac * 255);
8661
+ # if (!('alpha' in rgb_color)) `
8662
+ # return rgbToCssColor_(red, green, blue);
8663
+ # `
8664
+ # var alphaFrac = rgb_color.alpha.value || 0.0;
8665
+ # var rgbParams = [red, green, blue].join(',');
8666
+ # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
8667
+ # `;
8668
+ # var rgbToCssColor_ = function(red, green, blue) `
8669
+ # var rgbNumber = new Number((red << 16) | (green << 8) | blue);
8670
+ # var hexString = rgbNumber.toString(16);
8671
+ # var missingZeros = 6 - hexString.length;
8672
+ # var resultBuilder = ['#'];
8673
+ # for (var i = 0; i < missingZeros; i++) `
8674
+ # resultBuilder.push('0');
8675
+ # `
8676
+ # resultBuilder.push(hexString);
8677
+ # return resultBuilder.join('');
8678
+ # `;
8679
+ # // ...
8680
+ # Corresponds to the JSON property `tabColor`
8681
+ # @return [Google::Apis::SheetsV4::Color]
8682
+ attr_accessor :tab_color
8683
+
8684
+ # The name of the sheet.
8685
+ # Corresponds to the JSON property `title`
8686
+ # @return [String]
8687
+ attr_accessor :title
8688
+
8689
+ def initialize(**args)
8690
+ update!(**args)
8691
+ end
8692
+
8693
+ # Update properties of this object
8694
+ def update!(**args)
8695
+ @grid_properties = args[:grid_properties] if args.key?(:grid_properties)
8696
+ @hidden = args[:hidden] if args.key?(:hidden)
8697
+ @index = args[:index] if args.key?(:index)
8698
+ @right_to_left = args[:right_to_left] if args.key?(:right_to_left)
8699
+ @sheet_id = args[:sheet_id] if args.key?(:sheet_id)
8700
+ @sheet_type = args[:sheet_type] if args.key?(:sheet_type)
8701
+ @tab_color = args[:tab_color] if args.key?(:tab_color)
8702
+ @title = args[:title] if args.key?(:title)
8703
+ end
8704
+ end
8705
+
8706
+ # A slicer in a sheet.
8707
+ class Slicer
8708
+ include Google::Apis::Core::Hashable
8709
+
8710
+ # The position of an embedded object such as a chart.
8711
+ # Corresponds to the JSON property `position`
8712
+ # @return [Google::Apis::SheetsV4::EmbeddedObjectPosition]
8713
+ attr_accessor :position
8714
+
8715
+ # The ID of the slicer.
8716
+ # Corresponds to the JSON property `slicerId`
8717
+ # @return [Fixnum]
8718
+ attr_accessor :slicer_id
8719
+
8720
+ # The specifications of a slicer.
8721
+ # Corresponds to the JSON property `spec`
8722
+ # @return [Google::Apis::SheetsV4::SlicerSpec]
8723
+ attr_accessor :spec
8724
+
8725
+ def initialize(**args)
8726
+ update!(**args)
8727
+ end
8728
+
8729
+ # Update properties of this object
8730
+ def update!(**args)
8731
+ @position = args[:position] if args.key?(:position)
8732
+ @slicer_id = args[:slicer_id] if args.key?(:slicer_id)
8733
+ @spec = args[:spec] if args.key?(:spec)
8734
+ end
8735
+ end
8736
+
8737
+ # The specifications of a slicer.
8738
+ class SlicerSpec
8739
+ include Google::Apis::Core::Hashable
8740
+
8741
+ # True if the filter should apply to pivot tables.
8742
+ # If not set, default to `True`.
8743
+ # Corresponds to the JSON property `applyToPivotTables`
8744
+ # @return [Boolean]
8745
+ attr_accessor :apply_to_pivot_tables
8746
+ alias_method :apply_to_pivot_tables?, :apply_to_pivot_tables
8747
+
8748
+ # Represents a color in the RGBA color space. This representation is designed
8749
+ # for simplicity of conversion to/from color representations in various
8750
+ # languages over compactness; for example, the fields of this representation
8751
+ # can be trivially provided to the constructor of "java.awt.Color" in Java; it
8752
+ # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
8753
+ # method in iOS; and, with just a little work, it can be easily formatted into
8754
+ # a CSS "rgba()" string in JavaScript, as well.
8755
+ # Note: this proto does not carry information about the absolute color space
8756
+ # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
8757
+ # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
8758
+ # space.
8759
+ # Example (Java):
8760
+ # import com.google.type.Color;
8761
+ # // ...
8762
+ # public static java.awt.Color fromProto(Color protocolor) `
8763
+ # float alpha = protocolor.hasAlpha()
8764
+ # ? protocolor.getAlpha().getValue()
8765
+ # : 1.0;
8766
+ # return new java.awt.Color(
8767
+ # protocolor.getRed(),
8768
+ # protocolor.getGreen(),
8769
+ # protocolor.getBlue(),
8770
+ # alpha);
8771
+ # `
8772
+ # public static Color toProto(java.awt.Color color) `
8773
+ # float red = (float) color.getRed();
8774
+ # float green = (float) color.getGreen();
8775
+ # float blue = (float) color.getBlue();
8776
+ # float denominator = 255.0;
8777
+ # Color.Builder resultBuilder =
8778
+ # Color
8779
+ # .newBuilder()
8780
+ # .setRed(red / denominator)
8781
+ # .setGreen(green / denominator)
8782
+ # .setBlue(blue / denominator);
8783
+ # int alpha = color.getAlpha();
8784
+ # if (alpha != 255) `
8785
+ # result.setAlpha(
8786
+ # FloatValue
8787
+ # .newBuilder()
8788
+ # .setValue(((float) alpha) / denominator)
8789
+ # .build());
8790
+ # `
8791
+ # return resultBuilder.build();
8792
+ # `
8793
+ # // ...
8794
+ # Example (iOS / Obj-C):
8795
+ # // ...
8796
+ # static UIColor* fromProto(Color* protocolor) `
8797
+ # float red = [protocolor red];
8798
+ # float green = [protocolor green];
8799
+ # float blue = [protocolor blue];
8800
+ # FloatValue* alpha_wrapper = [protocolor alpha];
8801
+ # float alpha = 1.0;
8802
+ # if (alpha_wrapper != nil) `
8803
+ # alpha = [alpha_wrapper value];
8804
+ # `
8805
+ # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
8806
+ # `
8807
+ # static Color* toProto(UIColor* color) `
8808
+ # CGFloat red, green, blue, alpha;
8809
+ # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) `
8810
+ # return nil;
8811
+ # `
8812
+ # Color* result = [[Color alloc] init];
8813
+ # [result setRed:red];
8814
+ # [result setGreen:green];
8815
+ # [result setBlue:blue];
8816
+ # if (alpha <= 0.9999) `
8817
+ # [result setAlpha:floatWrapperWithValue(alpha)];
8818
+ # `
8819
+ # [result autorelease];
8820
+ # return result;
8821
+ # `
8822
+ # // ...
8823
+ # Example (JavaScript):
8824
+ # // ...
8825
+ # var protoToCssColor = function(rgb_color) `
8826
+ # var redFrac = rgb_color.red || 0.0;
8827
+ # var greenFrac = rgb_color.green || 0.0;
8828
+ # var blueFrac = rgb_color.blue || 0.0;
8829
+ # var red = Math.floor(redFrac * 255);
8830
+ # var green = Math.floor(greenFrac * 255);
8831
+ # var blue = Math.floor(blueFrac * 255);
8832
+ # if (!('alpha' in rgb_color)) `
8833
+ # return rgbToCssColor_(red, green, blue);
8834
+ # `
8835
+ # var alphaFrac = rgb_color.alpha.value || 0.0;
8836
+ # var rgbParams = [red, green, blue].join(',');
8837
+ # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
8838
+ # `;
8839
+ # var rgbToCssColor_ = function(red, green, blue) `
8840
+ # var rgbNumber = new Number((red << 16) | (green << 8) | blue);
8841
+ # var hexString = rgbNumber.toString(16);
8842
+ # var missingZeros = 6 - hexString.length;
8843
+ # var resultBuilder = ['#'];
8844
+ # for (var i = 0; i < missingZeros; i++) `
8845
+ # resultBuilder.push('0');
8846
+ # `
8847
+ # resultBuilder.push(hexString);
8848
+ # return resultBuilder.join('');
8849
+ # `;
8850
+ # // ...
8851
+ # Corresponds to the JSON property `backgroundColor`
8852
+ # @return [Google::Apis::SheetsV4::Color]
8853
+ attr_accessor :background_color
8854
+
8855
+ # The column index in the data table on which the filter is applied to.
8856
+ # Corresponds to the JSON property `columnIndex`
8857
+ # @return [Fixnum]
8858
+ attr_accessor :column_index
8859
+
8860
+ # A range on a sheet.
8861
+ # All indexes are zero-based.
8862
+ # Indexes are half open, e.g the start index is inclusive
8863
+ # and the end index is exclusive -- [start_index, end_index).
8864
+ # Missing indexes indicate the range is unbounded on that side.
8865
+ # For example, if `"Sheet1"` is sheet ID 0, then:
8866
+ # `Sheet1!A1:A1 == sheet_id: 0,
8867
+ # start_row_index: 0, end_row_index: 1,
8868
+ # start_column_index: 0, end_column_index: 1`
8869
+ # `Sheet1!A3:B4 == sheet_id: 0,
8870
+ # start_row_index: 2, end_row_index: 4,
8871
+ # start_column_index: 0, end_column_index: 2`
8872
+ # `Sheet1!A:B == sheet_id: 0,
8873
+ # start_column_index: 0, end_column_index: 2`
8874
+ # `Sheet1!A5:B == sheet_id: 0,
8875
+ # start_row_index: 4,
8876
+ # start_column_index: 0, end_column_index: 2`
8877
+ # `Sheet1 == sheet_id:0`
8878
+ # The start index must always be less than or equal to the end index.
8879
+ # If the start index equals the end index, then the range is empty.
8880
+ # Empty ranges are typically not meaningful and are usually rendered in the
8881
+ # UI as `#REF!`.
8882
+ # Corresponds to the JSON property `dataRange`
8883
+ # @return [Google::Apis::SheetsV4::GridRange]
8884
+ attr_accessor :data_range
8885
+
8886
+ # Criteria for showing/hiding rows in a filter or filter view.
8887
+ # Corresponds to the JSON property `filterCriteria`
8888
+ # @return [Google::Apis::SheetsV4::FilterCriteria]
8889
+ attr_accessor :filter_criteria
8890
+
8891
+ # The horizontal alignment of title in the slicer.
8892
+ # If unspecified, defaults to `LEFT`
8893
+ # Corresponds to the JSON property `horizontalAlignment`
8894
+ # @return [String]
8895
+ attr_accessor :horizontal_alignment
8896
+
8897
+ # The format of a run of text in a cell.
8898
+ # Absent values indicate that the field isn't specified.
8899
+ # Corresponds to the JSON property `textFormat`
8900
+ # @return [Google::Apis::SheetsV4::TextFormat]
8901
+ attr_accessor :text_format
8902
+
8903
+ # The title of the slicer.
8904
+ # Corresponds to the JSON property `title`
8905
+ # @return [String]
8906
+ attr_accessor :title
8907
+
8908
+ def initialize(**args)
8909
+ update!(**args)
8910
+ end
8911
+
8912
+ # Update properties of this object
8913
+ def update!(**args)
8914
+ @apply_to_pivot_tables = args[:apply_to_pivot_tables] if args.key?(:apply_to_pivot_tables)
8915
+ @background_color = args[:background_color] if args.key?(:background_color)
8916
+ @column_index = args[:column_index] if args.key?(:column_index)
8917
+ @data_range = args[:data_range] if args.key?(:data_range)
8918
+ @filter_criteria = args[:filter_criteria] if args.key?(:filter_criteria)
8919
+ @horizontal_alignment = args[:horizontal_alignment] if args.key?(:horizontal_alignment)
8920
+ @text_format = args[:text_format] if args.key?(:text_format)
8921
+ @title = args[:title] if args.key?(:title)
8922
+ end
8923
+ end
8924
+
8925
+ # Sorts data in rows based on a sort order per column.
8926
+ class SortRangeRequest
8927
+ include Google::Apis::Core::Hashable
8928
+
8929
+ # A range on a sheet.
8930
+ # All indexes are zero-based.
8931
+ # Indexes are half open, e.g the start index is inclusive
8932
+ # and the end index is exclusive -- [start_index, end_index).
8933
+ # Missing indexes indicate the range is unbounded on that side.
8934
+ # For example, if `"Sheet1"` is sheet ID 0, then:
8935
+ # `Sheet1!A1:A1 == sheet_id: 0,
8936
+ # start_row_index: 0, end_row_index: 1,
8937
+ # start_column_index: 0, end_column_index: 1`
8938
+ # `Sheet1!A3:B4 == sheet_id: 0,
8939
+ # start_row_index: 2, end_row_index: 4,
8940
+ # start_column_index: 0, end_column_index: 2`
8941
+ # `Sheet1!A:B == sheet_id: 0,
8942
+ # start_column_index: 0, end_column_index: 2`
8943
+ # `Sheet1!A5:B == sheet_id: 0,
8944
+ # start_row_index: 4,
8945
+ # start_column_index: 0, end_column_index: 2`
8946
+ # `Sheet1 == sheet_id:0`
8947
+ # The start index must always be less than or equal to the end index.
8948
+ # If the start index equals the end index, then the range is empty.
8949
+ # Empty ranges are typically not meaningful and are usually rendered in the
8950
+ # UI as `#REF!`.
8951
+ # Corresponds to the JSON property `range`
8952
+ # @return [Google::Apis::SheetsV4::GridRange]
8953
+ attr_accessor :range
8954
+
8955
+ # The sort order per column. Later specifications are used when values
8956
+ # are equal in the earlier specifications.
8957
+ # Corresponds to the JSON property `sortSpecs`
8958
+ # @return [Array<Google::Apis::SheetsV4::SortSpec>]
8959
+ attr_accessor :sort_specs
7889
8960
 
7890
- # True if the sheet is an RTL sheet instead of an LTR sheet.
7891
- # Corresponds to the JSON property `rightToLeft`
7892
- # @return [Boolean]
7893
- attr_accessor :right_to_left
7894
- alias_method :right_to_left?, :right_to_left
8961
+ def initialize(**args)
8962
+ update!(**args)
8963
+ end
7895
8964
 
7896
- # The ID of the sheet. Must be non-negative.
7897
- # This field cannot be changed once set.
7898
- # Corresponds to the JSON property `sheetId`
7899
- # @return [Fixnum]
7900
- attr_accessor :sheet_id
8965
+ # Update properties of this object
8966
+ def update!(**args)
8967
+ @range = args[:range] if args.key?(:range)
8968
+ @sort_specs = args[:sort_specs] if args.key?(:sort_specs)
8969
+ end
8970
+ end
7901
8971
 
7902
- # The type of sheet. Defaults to GRID.
7903
- # This field cannot be changed once set.
7904
- # Corresponds to the JSON property `sheetType`
7905
- # @return [String]
7906
- attr_accessor :sheet_type
8972
+ # A sort order associated with a specific column or row.
8973
+ class SortSpec
8974
+ include Google::Apis::Core::Hashable
7907
8975
 
7908
8976
  # Represents a color in the RGBA color space. This representation is designed
7909
8977
  # for simplicity of conversion to/from color representations in various
@@ -8008,88 +9076,122 @@ module Google
8008
9076
  # return resultBuilder.join('');
8009
9077
  # `;
8010
9078
  # // ...
8011
- # Corresponds to the JSON property `tabColor`
9079
+ # Corresponds to the JSON property `backgroundColor`
8012
9080
  # @return [Google::Apis::SheetsV4::Color]
8013
- attr_accessor :tab_color
8014
-
8015
- # The name of the sheet.
8016
- # Corresponds to the JSON property `title`
8017
- # @return [String]
8018
- attr_accessor :title
8019
-
8020
- def initialize(**args)
8021
- update!(**args)
8022
- end
8023
-
8024
- # Update properties of this object
8025
- def update!(**args)
8026
- @grid_properties = args[:grid_properties] if args.key?(:grid_properties)
8027
- @hidden = args[:hidden] if args.key?(:hidden)
8028
- @index = args[:index] if args.key?(:index)
8029
- @right_to_left = args[:right_to_left] if args.key?(:right_to_left)
8030
- @sheet_id = args[:sheet_id] if args.key?(:sheet_id)
8031
- @sheet_type = args[:sheet_type] if args.key?(:sheet_type)
8032
- @tab_color = args[:tab_color] if args.key?(:tab_color)
8033
- @title = args[:title] if args.key?(:title)
8034
- end
8035
- end
8036
-
8037
- # Sorts data in rows based on a sort order per column.
8038
- class SortRangeRequest
8039
- include Google::Apis::Core::Hashable
8040
-
8041
- # A range on a sheet.
8042
- # All indexes are zero-based.
8043
- # Indexes are half open, e.g the start index is inclusive
8044
- # and the end index is exclusive -- [start_index, end_index).
8045
- # Missing indexes indicate the range is unbounded on that side.
8046
- # For example, if `"Sheet1"` is sheet ID 0, then:
8047
- # `Sheet1!A1:A1 == sheet_id: 0,
8048
- # start_row_index: 0, end_row_index: 1,
8049
- # start_column_index: 0, end_column_index: 1`
8050
- # `Sheet1!A3:B4 == sheet_id: 0,
8051
- # start_row_index: 2, end_row_index: 4,
8052
- # start_column_index: 0, end_column_index: 2`
8053
- # `Sheet1!A:B == sheet_id: 0,
8054
- # start_column_index: 0, end_column_index: 2`
8055
- # `Sheet1!A5:B == sheet_id: 0,
8056
- # start_row_index: 4,
8057
- # start_column_index: 0, end_column_index: 2`
8058
- # `Sheet1 == sheet_id:0`
8059
- # The start index must always be less than or equal to the end index.
8060
- # If the start index equals the end index, then the range is empty.
8061
- # Empty ranges are typically not meaningful and are usually rendered in the
8062
- # UI as `#REF!`.
8063
- # Corresponds to the JSON property `range`
8064
- # @return [Google::Apis::SheetsV4::GridRange]
8065
- attr_accessor :range
8066
-
8067
- # The sort order per column. Later specifications are used when values
8068
- # are equal in the earlier specifications.
8069
- # Corresponds to the JSON property `sortSpecs`
8070
- # @return [Array<Google::Apis::SheetsV4::SortSpec>]
8071
- attr_accessor :sort_specs
8072
-
8073
- def initialize(**args)
8074
- update!(**args)
8075
- end
8076
-
8077
- # Update properties of this object
8078
- def update!(**args)
8079
- @range = args[:range] if args.key?(:range)
8080
- @sort_specs = args[:sort_specs] if args.key?(:sort_specs)
8081
- end
8082
- end
8083
-
8084
- # A sort order associated with a specific column or row.
8085
- class SortSpec
8086
- include Google::Apis::Core::Hashable
9081
+ attr_accessor :background_color
8087
9082
 
8088
9083
  # The dimension the sort should be applied to.
8089
9084
  # Corresponds to the JSON property `dimensionIndex`
8090
9085
  # @return [Fixnum]
8091
9086
  attr_accessor :dimension_index
8092
9087
 
9088
+ # Represents a color in the RGBA color space. This representation is designed
9089
+ # for simplicity of conversion to/from color representations in various
9090
+ # languages over compactness; for example, the fields of this representation
9091
+ # can be trivially provided to the constructor of "java.awt.Color" in Java; it
9092
+ # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
9093
+ # method in iOS; and, with just a little work, it can be easily formatted into
9094
+ # a CSS "rgba()" string in JavaScript, as well.
9095
+ # Note: this proto does not carry information about the absolute color space
9096
+ # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
9097
+ # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
9098
+ # space.
9099
+ # Example (Java):
9100
+ # import com.google.type.Color;
9101
+ # // ...
9102
+ # public static java.awt.Color fromProto(Color protocolor) `
9103
+ # float alpha = protocolor.hasAlpha()
9104
+ # ? protocolor.getAlpha().getValue()
9105
+ # : 1.0;
9106
+ # return new java.awt.Color(
9107
+ # protocolor.getRed(),
9108
+ # protocolor.getGreen(),
9109
+ # protocolor.getBlue(),
9110
+ # alpha);
9111
+ # `
9112
+ # public static Color toProto(java.awt.Color color) `
9113
+ # float red = (float) color.getRed();
9114
+ # float green = (float) color.getGreen();
9115
+ # float blue = (float) color.getBlue();
9116
+ # float denominator = 255.0;
9117
+ # Color.Builder resultBuilder =
9118
+ # Color
9119
+ # .newBuilder()
9120
+ # .setRed(red / denominator)
9121
+ # .setGreen(green / denominator)
9122
+ # .setBlue(blue / denominator);
9123
+ # int alpha = color.getAlpha();
9124
+ # if (alpha != 255) `
9125
+ # result.setAlpha(
9126
+ # FloatValue
9127
+ # .newBuilder()
9128
+ # .setValue(((float) alpha) / denominator)
9129
+ # .build());
9130
+ # `
9131
+ # return resultBuilder.build();
9132
+ # `
9133
+ # // ...
9134
+ # Example (iOS / Obj-C):
9135
+ # // ...
9136
+ # static UIColor* fromProto(Color* protocolor) `
9137
+ # float red = [protocolor red];
9138
+ # float green = [protocolor green];
9139
+ # float blue = [protocolor blue];
9140
+ # FloatValue* alpha_wrapper = [protocolor alpha];
9141
+ # float alpha = 1.0;
9142
+ # if (alpha_wrapper != nil) `
9143
+ # alpha = [alpha_wrapper value];
9144
+ # `
9145
+ # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
9146
+ # `
9147
+ # static Color* toProto(UIColor* color) `
9148
+ # CGFloat red, green, blue, alpha;
9149
+ # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) `
9150
+ # return nil;
9151
+ # `
9152
+ # Color* result = [[Color alloc] init];
9153
+ # [result setRed:red];
9154
+ # [result setGreen:green];
9155
+ # [result setBlue:blue];
9156
+ # if (alpha <= 0.9999) `
9157
+ # [result setAlpha:floatWrapperWithValue(alpha)];
9158
+ # `
9159
+ # [result autorelease];
9160
+ # return result;
9161
+ # `
9162
+ # // ...
9163
+ # Example (JavaScript):
9164
+ # // ...
9165
+ # var protoToCssColor = function(rgb_color) `
9166
+ # var redFrac = rgb_color.red || 0.0;
9167
+ # var greenFrac = rgb_color.green || 0.0;
9168
+ # var blueFrac = rgb_color.blue || 0.0;
9169
+ # var red = Math.floor(redFrac * 255);
9170
+ # var green = Math.floor(greenFrac * 255);
9171
+ # var blue = Math.floor(blueFrac * 255);
9172
+ # if (!('alpha' in rgb_color)) `
9173
+ # return rgbToCssColor_(red, green, blue);
9174
+ # `
9175
+ # var alphaFrac = rgb_color.alpha.value || 0.0;
9176
+ # var rgbParams = [red, green, blue].join(',');
9177
+ # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
9178
+ # `;
9179
+ # var rgbToCssColor_ = function(red, green, blue) `
9180
+ # var rgbNumber = new Number((red << 16) | (green << 8) | blue);
9181
+ # var hexString = rgbNumber.toString(16);
9182
+ # var missingZeros = 6 - hexString.length;
9183
+ # var resultBuilder = ['#'];
9184
+ # for (var i = 0; i < missingZeros; i++) `
9185
+ # resultBuilder.push('0');
9186
+ # `
9187
+ # resultBuilder.push(hexString);
9188
+ # return resultBuilder.join('');
9189
+ # `;
9190
+ # // ...
9191
+ # Corresponds to the JSON property `foregroundColor`
9192
+ # @return [Google::Apis::SheetsV4::Color]
9193
+ attr_accessor :foreground_color
9194
+
8093
9195
  # The order data should be sorted.
8094
9196
  # Corresponds to the JSON property `sortOrder`
8095
9197
  # @return [String]
@@ -8101,7 +9203,9 @@ module Google
8101
9203
 
8102
9204
  # Update properties of this object
8103
9205
  def update!(**args)
9206
+ @background_color = args[:background_color] if args.key?(:background_color)
8104
9207
  @dimension_index = args[:dimension_index] if args.key?(:dimension_index)
9208
+ @foreground_color = args[:foreground_color] if args.key?(:foreground_color)
8105
9209
  @sort_order = args[:sort_order] if args.key?(:sort_order)
8106
9210
  end
8107
9211
  end
@@ -9895,6 +10999,41 @@ module Google
9895
10999
  end
9896
11000
  end
9897
11001
 
11002
+ # Updates a slicer’s specifications.
11003
+ # (This does not move or resize a slicer. To move or resize a slicer use
11004
+ # UpdateEmbeddedObjectPositionRequest.
11005
+ class UpdateSlicerSpecRequest
11006
+ include Google::Apis::Core::Hashable
11007
+
11008
+ # The fields that should be updated. At least one field must be specified.
11009
+ # The root `SlicerSpec` is implied and should not be specified. A single "*"`
11010
+ # can be used as short-hand for listing every field.
11011
+ # Corresponds to the JSON property `fields`
11012
+ # @return [String]
11013
+ attr_accessor :fields
11014
+
11015
+ # The id of the slicer to update.
11016
+ # Corresponds to the JSON property `slicerId`
11017
+ # @return [Fixnum]
11018
+ attr_accessor :slicer_id
11019
+
11020
+ # The specifications of a slicer.
11021
+ # Corresponds to the JSON property `spec`
11022
+ # @return [Google::Apis::SheetsV4::SlicerSpec]
11023
+ attr_accessor :spec
11024
+
11025
+ def initialize(**args)
11026
+ update!(**args)
11027
+ end
11028
+
11029
+ # Update properties of this object
11030
+ def update!(**args)
11031
+ @fields = args[:fields] if args.key?(:fields)
11032
+ @slicer_id = args[:slicer_id] if args.key?(:slicer_id)
11033
+ @spec = args[:spec] if args.key?(:spec)
11034
+ end
11035
+ end
11036
+
9898
11037
  # Updates properties of a spreadsheet.
9899
11038
  class UpdateSpreadsheetPropertiesRequest
9900
11039
  include Google::Apis::Core::Hashable