google-api-client 0.39.4 → 0.41.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (447) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +283 -0
  3. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +1 -1
  4. data/generated/google/apis/adexchangebuyer2_v2beta1/classes.rb +3 -1
  5. data/generated/google/apis/admob_v1.rb +1 -1
  6. data/generated/google/apis/admob_v1/classes.rb +5 -6
  7. data/generated/google/apis/androidenterprise_v1.rb +2 -2
  8. data/generated/google/apis/androidenterprise_v1/classes.rb +547 -724
  9. data/generated/google/apis/androidenterprise_v1/representations.rb +0 -54
  10. data/generated/google/apis/androidenterprise_v1/service.rb +540 -795
  11. data/generated/google/apis/androidmanagement_v1.rb +1 -1
  12. data/generated/google/apis/androidmanagement_v1/classes.rb +117 -0
  13. data/generated/google/apis/androidmanagement_v1/representations.rb +39 -0
  14. data/generated/google/apis/androidpublisher_v3.rb +3 -3
  15. data/generated/google/apis/androidpublisher_v3/classes.rb +473 -736
  16. data/generated/google/apis/androidpublisher_v3/representations.rb +10 -201
  17. data/generated/google/apis/androidpublisher_v3/service.rb +531 -863
  18. data/generated/google/apis/apigee_v1.rb +1 -1
  19. data/generated/google/apis/apigee_v1/classes.rb +58 -10
  20. data/generated/google/apis/apigee_v1/representations.rb +7 -0
  21. data/generated/google/apis/apigee_v1/service.rb +24 -14
  22. data/generated/google/apis/appsmarket_v2.rb +3 -3
  23. data/generated/google/apis/appsmarket_v2/classes.rb +160 -159
  24. data/generated/google/apis/appsmarket_v2/representations.rb +78 -78
  25. data/generated/google/apis/appsmarket_v2/service.rb +24 -39
  26. data/generated/google/apis/artifactregistry_v1beta1.rb +38 -0
  27. data/generated/google/apis/artifactregistry_v1beta1/classes.rb +1132 -0
  28. data/generated/google/apis/artifactregistry_v1beta1/representations.rb +442 -0
  29. data/generated/google/apis/artifactregistry_v1beta1/service.rb +957 -0
  30. data/generated/google/apis/bigquery_v2.rb +1 -1
  31. data/generated/google/apis/bigquery_v2/classes.rb +54 -1
  32. data/generated/google/apis/bigquery_v2/representations.rb +4 -0
  33. data/generated/google/apis/bigquerydatatransfer_v1.rb +1 -1
  34. data/generated/google/apis/bigquerydatatransfer_v1/classes.rb +4 -4
  35. data/generated/google/apis/bigqueryreservation_v1.rb +1 -1
  36. data/generated/google/apis/bigqueryreservation_v1/classes.rb +2 -0
  37. data/generated/google/apis/bigqueryreservation_v1/service.rb +8 -8
  38. data/generated/google/apis/bigqueryreservation_v1beta1.rb +1 -1
  39. data/generated/google/apis/bigqueryreservation_v1beta1/classes.rb +20 -14
  40. data/generated/google/apis/bigqueryreservation_v1beta1/service.rb +93 -68
  41. data/generated/google/apis/bigtableadmin_v1.rb +1 -1
  42. data/generated/google/apis/bigtableadmin_v1/classes.rb +5 -10
  43. data/generated/google/apis/bigtableadmin_v2.rb +1 -1
  44. data/generated/google/apis/bigtableadmin_v2/classes.rb +39 -31
  45. data/generated/google/apis/bigtableadmin_v2/service.rb +1 -5
  46. data/generated/google/apis/billingbudgets_v1beta1.rb +1 -1
  47. data/generated/google/apis/billingbudgets_v1beta1/classes.rb +21 -0
  48. data/generated/google/apis/billingbudgets_v1beta1/representations.rb +6 -0
  49. data/generated/google/apis/binaryauthorization_v1.rb +1 -1
  50. data/generated/google/apis/books_v1.rb +1 -1
  51. data/generated/google/apis/books_v1/service.rb +2 -2
  52. data/generated/google/apis/calendar_v3.rb +1 -1
  53. data/generated/google/apis/calendar_v3/classes.rb +1 -1
  54. data/generated/google/apis/chat_v1.rb +1 -1
  55. data/generated/google/apis/chat_v1/classes.rb +2 -0
  56. data/generated/google/apis/{pagespeedonline_v1.rb → chromeuxreport_v1.rb} +9 -9
  57. data/generated/google/apis/chromeuxreport_v1/classes.rb +297 -0
  58. data/generated/google/apis/chromeuxreport_v1/representations.rb +147 -0
  59. data/generated/google/apis/chromeuxreport_v1/service.rb +92 -0
  60. data/generated/google/apis/cloudasset_v1.rb +1 -1
  61. data/generated/google/apis/cloudasset_v1/classes.rb +82 -46
  62. data/generated/google/apis/cloudasset_v1/representations.rb +2 -0
  63. data/generated/google/apis/cloudasset_v1/service.rb +14 -11
  64. data/generated/google/apis/cloudasset_v1beta1.rb +1 -1
  65. data/generated/google/apis/cloudasset_v1beta1/classes.rb +977 -52
  66. data/generated/google/apis/cloudasset_v1beta1/representations.rb +241 -0
  67. data/generated/google/apis/cloudasset_v1beta1/service.rb +20 -11
  68. data/generated/google/apis/cloudasset_v1p1beta1.rb +1 -1
  69. data/generated/google/apis/cloudasset_v1p1beta1/classes.rb +48 -16
  70. data/generated/google/apis/cloudasset_v1p1beta1/representations.rb +2 -0
  71. data/generated/google/apis/cloudasset_v1p1beta1/service.rb +15 -16
  72. data/generated/google/apis/cloudasset_v1p4beta1.rb +1 -1
  73. data/generated/google/apis/cloudasset_v1p4beta1/classes.rb +40 -23
  74. data/generated/google/apis/cloudasset_v1p4beta1/service.rb +34 -9
  75. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  76. data/generated/google/apis/cloudbuild_v1/classes.rb +17 -4
  77. data/generated/google/apis/cloudbuild_v1/representations.rb +1 -0
  78. data/generated/google/apis/cloudbuild_v1/service.rb +163 -0
  79. data/generated/google/apis/cloudbuild_v1alpha1.rb +1 -1
  80. data/generated/google/apis/cloudbuild_v1alpha1/classes.rb +156 -2
  81. data/generated/google/apis/cloudbuild_v1alpha1/representations.rb +61 -0
  82. data/generated/google/apis/cloudbuild_v1alpha1/service.rb +121 -0
  83. data/generated/google/apis/cloudbuild_v1alpha2.rb +1 -1
  84. data/generated/google/apis/cloudbuild_v1alpha2/classes.rb +156 -2
  85. data/generated/google/apis/cloudbuild_v1alpha2/representations.rb +61 -0
  86. data/generated/google/apis/cloudbuild_v1alpha2/service.rb +121 -0
  87. data/generated/google/apis/clouderrorreporting_v1beta1.rb +1 -1
  88. data/generated/google/apis/clouderrorreporting_v1beta1/classes.rb +1 -1
  89. data/generated/google/apis/clouderrorreporting_v1beta1/service.rb +5 -6
  90. data/generated/google/apis/cloudidentity_v1.rb +1 -1
  91. data/generated/google/apis/cloudidentity_v1beta1.rb +1 -1
  92. data/generated/google/apis/cloudidentity_v1beta1/classes.rb +6 -0
  93. data/generated/google/apis/cloudidentity_v1beta1/representations.rb +1 -0
  94. data/generated/google/apis/cloudiot_v1.rb +1 -1
  95. data/generated/google/apis/cloudiot_v1/classes.rb +26 -10
  96. data/generated/google/apis/cloudkms_v1.rb +1 -1
  97. data/generated/google/apis/cloudkms_v1/classes.rb +288 -7
  98. data/generated/google/apis/cloudkms_v1/representations.rb +17 -0
  99. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  100. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +20 -15
  101. data/generated/google/apis/cloudresourcemanager_v1/service.rb +21 -14
  102. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  103. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +10 -8
  104. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +8 -8
  105. data/generated/google/apis/cloudresourcemanager_v2.rb +1 -1
  106. data/generated/google/apis/cloudresourcemanager_v2/classes.rb +6 -6
  107. data/generated/google/apis/cloudresourcemanager_v2beta1.rb +1 -1
  108. data/generated/google/apis/cloudresourcemanager_v2beta1/classes.rb +6 -6
  109. data/generated/google/apis/cloudsearch_v1.rb +1 -1
  110. data/generated/google/apis/cloudsearch_v1/service.rb +1 -1
  111. data/generated/google/apis/cloudtasks_v2.rb +1 -1
  112. data/generated/google/apis/cloudtasks_v2/classes.rb +8 -6
  113. data/generated/google/apis/cloudtasks_v2beta3.rb +1 -1
  114. data/generated/google/apis/cloudtasks_v2beta3/classes.rb +11 -2
  115. data/generated/google/apis/cloudtasks_v2beta3/representations.rb +1 -0
  116. data/generated/google/apis/compute_alpha.rb +1 -1
  117. data/generated/google/apis/compute_alpha/classes.rb +711 -151
  118. data/generated/google/apis/compute_alpha/representations.rb +220 -33
  119. data/generated/google/apis/compute_alpha/service.rb +1618 -831
  120. data/generated/google/apis/compute_beta.rb +1 -1
  121. data/generated/google/apis/compute_beta/classes.rb +173 -71
  122. data/generated/google/apis/compute_beta/representations.rb +25 -0
  123. data/generated/google/apis/compute_beta/service.rb +591 -591
  124. data/generated/google/apis/compute_v1.rb +1 -1
  125. data/generated/google/apis/compute_v1/classes.rb +66 -18
  126. data/generated/google/apis/compute_v1/representations.rb +6 -0
  127. data/generated/google/apis/container_v1.rb +1 -1
  128. data/generated/google/apis/container_v1/classes.rb +2 -4
  129. data/generated/google/apis/container_v1beta1.rb +1 -1
  130. data/generated/google/apis/container_v1beta1/classes.rb +82 -10
  131. data/generated/google/apis/container_v1beta1/representations.rb +33 -0
  132. data/generated/google/apis/content_v2.rb +1 -1
  133. data/generated/google/apis/content_v2/classes.rb +41 -1
  134. data/generated/google/apis/content_v2/representations.rb +17 -0
  135. data/generated/google/apis/content_v2/service.rb +15 -6
  136. data/generated/google/apis/content_v2_1.rb +1 -1
  137. data/generated/google/apis/content_v2_1/classes.rb +450 -6
  138. data/generated/google/apis/content_v2_1/representations.rb +173 -0
  139. data/generated/google/apis/content_v2_1/service.rb +95 -6
  140. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  141. data/generated/google/apis/dataflow_v1b3/classes.rb +331 -0
  142. data/generated/google/apis/dataflow_v1b3/representations.rb +164 -0
  143. data/generated/google/apis/dataflow_v1b3/service.rb +261 -0
  144. data/generated/google/apis/datafusion_v1beta1.rb +1 -1
  145. data/generated/google/apis/datafusion_v1beta1/classes.rb +64 -19
  146. data/generated/google/apis/datafusion_v1beta1/representations.rb +16 -0
  147. data/generated/google/apis/datafusion_v1beta1/service.rb +49 -2
  148. data/generated/google/apis/dataproc_v1.rb +1 -1
  149. data/generated/google/apis/dataproc_v1/classes.rb +68 -22
  150. data/generated/google/apis/dataproc_v1/representations.rb +17 -0
  151. data/generated/google/apis/dataproc_v1beta2.rb +1 -1
  152. data/generated/google/apis/dataproc_v1beta2/classes.rb +61 -35
  153. data/generated/google/apis/dataproc_v1beta2/representations.rb +1 -0
  154. data/generated/google/apis/dataproc_v1beta2/service.rb +35 -21
  155. data/generated/google/apis/datastore_v1.rb +1 -1
  156. data/generated/google/apis/datastore_v1/classes.rb +1 -1
  157. data/generated/google/apis/datastore_v1beta3.rb +1 -1
  158. data/generated/google/apis/datastore_v1beta3/classes.rb +1 -1
  159. data/generated/google/apis/deploymentmanager_alpha.rb +1 -1
  160. data/generated/google/apis/deploymentmanager_alpha/classes.rb +362 -176
  161. data/generated/google/apis/deploymentmanager_alpha/representations.rb +22 -4
  162. data/generated/google/apis/deploymentmanager_alpha/service.rb +198 -311
  163. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  164. data/generated/google/apis/deploymentmanager_v2/classes.rb +295 -146
  165. data/generated/google/apis/deploymentmanager_v2/representations.rb +17 -1
  166. data/generated/google/apis/deploymentmanager_v2/service.rb +101 -99
  167. data/generated/google/apis/deploymentmanager_v2beta.rb +1 -1
  168. data/generated/google/apis/deploymentmanager_v2beta/classes.rb +350 -170
  169. data/generated/google/apis/deploymentmanager_v2beta/representations.rb +18 -1
  170. data/generated/google/apis/deploymentmanager_v2beta/service.rb +154 -152
  171. data/generated/google/apis/dfareporting_v3_3.rb +1 -1
  172. data/generated/google/apis/dfareporting_v3_3/classes.rb +2 -2
  173. data/generated/google/apis/dfareporting_v3_3/service.rb +2 -2
  174. data/generated/google/apis/dfareporting_v3_4.rb +1 -1
  175. data/generated/google/apis/dfareporting_v3_4/classes.rb +2 -2
  176. data/generated/google/apis/dfareporting_v3_4/service.rb +2 -2
  177. data/generated/google/apis/dialogflow_v2.rb +1 -1
  178. data/generated/google/apis/dialogflow_v2/classes.rb +549 -9
  179. data/generated/google/apis/dialogflow_v2/representations.rb +234 -0
  180. data/generated/google/apis/dialogflow_v2/service.rb +14 -2
  181. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  182. data/generated/google/apis/dialogflow_v2beta1/classes.rb +540 -8
  183. data/generated/google/apis/dialogflow_v2beta1/representations.rb +234 -0
  184. data/generated/google/apis/dialogflow_v2beta1/service.rb +74 -6
  185. data/generated/google/apis/displayvideo_v1.rb +1 -1
  186. data/generated/google/apis/displayvideo_v1/classes.rb +612 -0
  187. data/generated/google/apis/displayvideo_v1/representations.rb +314 -0
  188. data/generated/google/apis/displayvideo_v1/service.rb +1968 -337
  189. data/generated/google/apis/dlp_v2.rb +1 -1
  190. data/generated/google/apis/dlp_v2/classes.rb +17 -27
  191. data/generated/google/apis/dlp_v2/service.rb +247 -204
  192. data/generated/google/apis/dns_v1.rb +1 -1
  193. data/generated/google/apis/dns_v1/classes.rb +160 -261
  194. data/generated/google/apis/dns_v1/representations.rb +17 -0
  195. data/generated/google/apis/dns_v1/service.rb +21 -141
  196. data/generated/google/apis/dns_v1beta2.rb +1 -1
  197. data/generated/google/apis/dns_v1beta2/classes.rb +189 -273
  198. data/generated/google/apis/dns_v1beta2/representations.rb +32 -0
  199. data/generated/google/apis/dns_v1beta2/service.rb +21 -141
  200. data/generated/google/apis/dns_v2beta1.rb +1 -1
  201. data/generated/google/apis/dns_v2beta1/classes.rb +160 -261
  202. data/generated/google/apis/dns_v2beta1/representations.rb +17 -0
  203. data/generated/google/apis/dns_v2beta1/service.rb +21 -141
  204. data/generated/google/apis/documentai_v1beta2.rb +36 -0
  205. data/generated/google/apis/documentai_v1beta2/classes.rb +3284 -0
  206. data/generated/google/apis/documentai_v1beta2/representations.rb +1344 -0
  207. data/generated/google/apis/documentai_v1beta2/service.rb +269 -0
  208. data/generated/google/apis/drive_v2.rb +1 -1
  209. data/generated/google/apis/drive_v2/service.rb +26 -78
  210. data/generated/google/apis/drive_v3.rb +1 -1
  211. data/generated/google/apis/drive_v3/service.rb +18 -54
  212. data/generated/google/apis/fcm_v1.rb +1 -1
  213. data/generated/google/apis/fcm_v1/classes.rb +6 -0
  214. data/generated/google/apis/file_v1.rb +1 -1
  215. data/generated/google/apis/file_v1/classes.rb +31 -1156
  216. data/generated/google/apis/file_v1/representations.rb +12 -378
  217. data/generated/google/apis/file_v1beta1.rb +1 -1
  218. data/generated/google/apis/file_v1beta1/classes.rb +98 -1156
  219. data/generated/google/apis/file_v1beta1/representations.rb +26 -373
  220. data/generated/google/apis/firebase_v1beta1.rb +1 -1
  221. data/generated/google/apis/firebase_v1beta1/classes.rb +7 -6
  222. data/generated/google/apis/firebase_v1beta1/service.rb +53 -49
  223. data/generated/google/apis/firebasehosting_v1beta1.rb +1 -1
  224. data/generated/google/apis/firebasehosting_v1beta1/classes.rb +30 -25
  225. data/generated/google/apis/{pagespeedonline_v2.rb → firebaseml_v1.rb} +12 -10
  226. data/generated/google/apis/firebaseml_v1/classes.rb +213 -0
  227. data/generated/google/apis/firebaseml_v1/representations.rb +112 -0
  228. data/generated/google/apis/firebaseml_v1/service.rb +181 -0
  229. data/generated/google/apis/fitness_v1.rb +4 -4
  230. data/generated/google/apis/fitness_v1/classes.rb +185 -158
  231. data/generated/google/apis/fitness_v1/service.rb +187 -215
  232. data/generated/google/apis/games_configuration_v1configuration.rb +1 -1
  233. data/generated/google/apis/games_configuration_v1configuration/service.rb +1 -1
  234. data/generated/google/apis/games_management_v1management.rb +1 -1
  235. data/generated/google/apis/games_management_v1management/service.rb +1 -1
  236. data/generated/google/apis/games_v1.rb +1 -1
  237. data/generated/google/apis/genomics_v2alpha1.rb +1 -1
  238. data/generated/google/apis/genomics_v2alpha1/classes.rb +84 -0
  239. data/generated/google/apis/genomics_v2alpha1/representations.rb +28 -0
  240. data/generated/google/apis/genomics_v2alpha1/service.rb +38 -2
  241. data/generated/google/apis/gmail_v1.rb +3 -2
  242. data/generated/google/apis/gmail_v1/classes.rb +263 -200
  243. data/generated/google/apis/gmail_v1/service.rb +551 -743
  244. data/generated/google/apis/groupsmigration_v1.rb +3 -2
  245. data/generated/google/apis/groupsmigration_v1/service.rb +10 -17
  246. data/generated/google/apis/healthcare_v1.rb +1 -1
  247. data/generated/google/apis/healthcare_v1/classes.rb +39 -30
  248. data/generated/google/apis/healthcare_v1/service.rb +66 -32
  249. data/generated/google/apis/healthcare_v1beta1.rb +1 -1
  250. data/generated/google/apis/healthcare_v1beta1/classes.rb +948 -77
  251. data/generated/google/apis/healthcare_v1beta1/representations.rb +404 -0
  252. data/generated/google/apis/healthcare_v1beta1/service.rb +682 -147
  253. data/generated/google/apis/homegraph_v1.rb +1 -1
  254. data/generated/google/apis/homegraph_v1/classes.rb +3 -0
  255. data/generated/google/apis/iam_v1.rb +1 -1
  256. data/generated/google/apis/iam_v1/classes.rb +116 -93
  257. data/generated/google/apis/iam_v1/service.rb +170 -144
  258. data/generated/google/apis/iamcredentials_v1.rb +2 -2
  259. data/generated/google/apis/iamcredentials_v1/classes.rb +30 -5
  260. data/generated/google/apis/iamcredentials_v1/service.rb +1 -1
  261. data/generated/google/apis/jobs_v3.rb +1 -1
  262. data/generated/google/apis/jobs_v3/classes.rb +4 -2
  263. data/generated/google/apis/jobs_v3p1beta1.rb +1 -1
  264. data/generated/google/apis/jobs_v3p1beta1/classes.rb +4 -2
  265. data/generated/google/apis/lifesciences_v2beta.rb +1 -1
  266. data/generated/google/apis/lifesciences_v2beta/classes.rb +10 -0
  267. data/generated/google/apis/lifesciences_v2beta/representations.rb +1 -0
  268. data/generated/google/apis/memcache_v1beta2.rb +1 -1
  269. data/generated/google/apis/memcache_v1beta2/classes.rb +42 -11
  270. data/generated/google/apis/memcache_v1beta2/representations.rb +15 -0
  271. data/generated/google/apis/monitoring_v1.rb +1 -1
  272. data/generated/google/apis/monitoring_v1/classes.rb +46 -0
  273. data/generated/google/apis/monitoring_v1/representations.rb +18 -0
  274. data/generated/google/apis/monitoring_v3.rb +1 -1
  275. data/generated/google/apis/monitoring_v3/classes.rb +73 -17
  276. data/generated/google/apis/monitoring_v3/representations.rb +2 -0
  277. data/generated/google/apis/{pagespeedonline_v4.rb → networkmanagement_v1.rb} +13 -10
  278. data/generated/google/apis/networkmanagement_v1/classes.rb +1868 -0
  279. data/generated/google/apis/networkmanagement_v1/representations.rb +661 -0
  280. data/generated/google/apis/networkmanagement_v1/service.rb +667 -0
  281. data/generated/google/apis/osconfig_v1.rb +1 -1
  282. data/generated/google/apis/osconfig_v1/classes.rb +2 -2
  283. data/generated/google/apis/osconfig_v1beta.rb +1 -1
  284. data/generated/google/apis/osconfig_v1beta/classes.rb +6 -7
  285. data/generated/google/apis/pagespeedonline_v5.rb +1 -1
  286. data/generated/google/apis/pagespeedonline_v5/classes.rb +7 -0
  287. data/generated/google/apis/pagespeedonline_v5/representations.rb +1 -0
  288. data/generated/google/apis/people_v1.rb +1 -1
  289. data/generated/google/apis/people_v1/classes.rb +216 -0
  290. data/generated/google/apis/people_v1/representations.rb +82 -0
  291. data/generated/google/apis/people_v1/service.rb +371 -8
  292. data/generated/google/apis/playcustomapp_v1.rb +3 -3
  293. data/generated/google/apis/playcustomapp_v1/classes.rb +7 -0
  294. data/generated/google/apis/playcustomapp_v1/representations.rb +1 -0
  295. data/generated/google/apis/playcustomapp_v1/service.rb +11 -19
  296. data/generated/google/apis/policytroubleshooter_v1.rb +1 -1
  297. data/generated/google/apis/policytroubleshooter_v1/classes.rb +6 -6
  298. data/generated/google/apis/policytroubleshooter_v1beta.rb +1 -1
  299. data/generated/google/apis/policytroubleshooter_v1beta/classes.rb +6 -6
  300. data/generated/google/apis/prod_tt_sasportal_v1alpha1.rb +1 -1
  301. data/generated/google/apis/prod_tt_sasportal_v1alpha1/service.rb +30 -0
  302. data/generated/google/apis/pubsub_v1.rb +1 -1
  303. data/generated/google/apis/pubsub_v1/classes.rb +64 -8
  304. data/generated/google/apis/pubsub_v1/representations.rb +28 -0
  305. data/generated/google/apis/pubsub_v1/service.rb +35 -1
  306. data/generated/google/apis/{customsearch_v1.rb → recommender_v1.rb} +11 -8
  307. data/generated/google/apis/recommender_v1/classes.rb +505 -0
  308. data/generated/google/apis/recommender_v1/representations.rb +232 -0
  309. data/generated/google/apis/recommender_v1/service.rb +266 -0
  310. data/generated/google/apis/remotebuildexecution_v1.rb +1 -1
  311. data/generated/google/apis/remotebuildexecution_v1/classes.rb +6 -0
  312. data/generated/google/apis/remotebuildexecution_v1/representations.rb +1 -0
  313. data/generated/google/apis/remotebuildexecution_v1alpha.rb +1 -1
  314. data/generated/google/apis/remotebuildexecution_v1alpha/classes.rb +6 -0
  315. data/generated/google/apis/remotebuildexecution_v1alpha/representations.rb +1 -0
  316. data/generated/google/apis/remotebuildexecution_v2.rb +1 -1
  317. data/generated/google/apis/remotebuildexecution_v2/classes.rb +6 -0
  318. data/generated/google/apis/remotebuildexecution_v2/representations.rb +1 -0
  319. data/generated/google/apis/run_v1.rb +1 -1
  320. data/generated/google/apis/run_v1/classes.rb +15 -6
  321. data/generated/google/apis/run_v1/representations.rb +1 -0
  322. data/generated/google/apis/run_v1alpha1.rb +1 -1
  323. data/generated/google/apis/run_v1alpha1/classes.rb +15 -6
  324. data/generated/google/apis/run_v1alpha1/representations.rb +1 -0
  325. data/generated/google/apis/run_v1beta1.rb +1 -1
  326. data/generated/google/apis/sasportal_v1alpha1.rb +1 -1
  327. data/generated/google/apis/sasportal_v1alpha1/service.rb +30 -0
  328. data/generated/google/apis/secretmanager_v1.rb +1 -1
  329. data/generated/google/apis/secretmanager_v1/classes.rb +6 -6
  330. data/generated/google/apis/secretmanager_v1beta1.rb +1 -1
  331. data/generated/google/apis/secretmanager_v1beta1/classes.rb +6 -6
  332. data/generated/google/apis/securitycenter_v1.rb +1 -1
  333. data/generated/google/apis/securitycenter_v1/classes.rb +143 -28
  334. data/generated/google/apis/securitycenter_v1/representations.rb +38 -0
  335. data/generated/google/apis/securitycenter_v1/service.rb +10 -10
  336. data/generated/google/apis/securitycenter_v1beta1.rb +1 -1
  337. data/generated/google/apis/securitycenter_v1beta1/classes.rb +133 -18
  338. data/generated/google/apis/securitycenter_v1beta1/representations.rb +38 -0
  339. data/generated/google/apis/securitycenter_v1p1alpha1.rb +1 -1
  340. data/generated/google/apis/securitycenter_v1p1alpha1/classes.rb +100 -0
  341. data/generated/google/apis/securitycenter_v1p1alpha1/representations.rb +38 -0
  342. data/generated/google/apis/securitycenter_v1p1beta1.rb +1 -1
  343. data/generated/google/apis/securitycenter_v1p1beta1/classes.rb +143 -28
  344. data/generated/google/apis/securitycenter_v1p1beta1/representations.rb +38 -0
  345. data/generated/google/apis/securitycenter_v1p1beta1/service.rb +10 -10
  346. data/generated/google/apis/serviceconsumermanagement_v1.rb +1 -1
  347. data/generated/google/apis/serviceconsumermanagement_v1/classes.rb +223 -74
  348. data/generated/google/apis/serviceconsumermanagement_v1/representations.rb +33 -2
  349. data/generated/google/apis/serviceconsumermanagement_v1beta1.rb +1 -1
  350. data/generated/google/apis/serviceconsumermanagement_v1beta1/classes.rb +229 -74
  351. data/generated/google/apis/serviceconsumermanagement_v1beta1/representations.rb +34 -2
  352. data/generated/google/apis/servicecontrol_v1.rb +1 -1
  353. data/generated/google/apis/servicecontrol_v1/classes.rb +3 -3
  354. data/generated/google/apis/servicemanagement_v1.rb +1 -1
  355. data/generated/google/apis/servicemanagement_v1/classes.rb +123 -80
  356. data/generated/google/apis/servicemanagement_v1/representations.rb +0 -2
  357. data/generated/google/apis/servicenetworking_v1.rb +1 -1
  358. data/generated/google/apis/servicenetworking_v1/classes.rb +498 -74
  359. data/generated/google/apis/servicenetworking_v1/representations.rb +209 -2
  360. data/generated/google/apis/servicenetworking_v1/service.rb +187 -0
  361. data/generated/google/apis/servicenetworking_v1beta.rb +1 -1
  362. data/generated/google/apis/servicenetworking_v1beta/classes.rb +307 -74
  363. data/generated/google/apis/servicenetworking_v1beta/representations.rb +130 -2
  364. data/generated/google/apis/serviceusage_v1.rb +1 -1
  365. data/generated/google/apis/serviceusage_v1/classes.rb +221 -74
  366. data/generated/google/apis/serviceusage_v1/representations.rb +34 -2
  367. data/generated/google/apis/serviceusage_v1beta1.rb +1 -1
  368. data/generated/google/apis/serviceusage_v1beta1/classes.rb +272 -74
  369. data/generated/google/apis/serviceusage_v1beta1/representations.rb +63 -2
  370. data/generated/google/apis/serviceusage_v1beta1/service.rb +71 -0
  371. data/generated/google/apis/slides_v1.rb +1 -1
  372. data/generated/google/apis/slides_v1/classes.rb +4 -0
  373. data/generated/google/apis/sourcerepo_v1.rb +1 -1
  374. data/generated/google/apis/sourcerepo_v1/classes.rb +23 -10
  375. data/generated/google/apis/sourcerepo_v1/service.rb +3 -0
  376. data/generated/google/apis/spanner_v1.rb +1 -1
  377. data/generated/google/apis/spanner_v1/classes.rb +30 -12
  378. data/generated/google/apis/spanner_v1/service.rb +8 -8
  379. data/generated/google/apis/sql_v1beta4.rb +1 -1
  380. data/generated/google/apis/sql_v1beta4/classes.rb +7 -0
  381. data/generated/google/apis/sql_v1beta4/representations.rb +1 -0
  382. data/generated/google/apis/storagetransfer_v1.rb +1 -1
  383. data/generated/google/apis/storagetransfer_v1/classes.rb +2 -1
  384. data/generated/google/apis/tasks_v1.rb +3 -3
  385. data/generated/google/apis/tasks_v1/classes.rb +26 -25
  386. data/generated/google/apis/tasks_v1/representations.rb +4 -8
  387. data/generated/google/apis/tasks_v1/service.rb +79 -128
  388. data/generated/google/apis/testing_v1.rb +1 -1
  389. data/generated/google/apis/testing_v1/classes.rb +2 -1
  390. data/generated/google/apis/texttospeech_v1.rb +1 -1
  391. data/generated/google/apis/texttospeech_v1/classes.rb +1 -1
  392. data/generated/google/apis/texttospeech_v1beta1.rb +1 -1
  393. data/generated/google/apis/texttospeech_v1beta1/classes.rb +1 -1
  394. data/generated/google/apis/tpu_v1.rb +1 -1
  395. data/generated/google/apis/tpu_v1/classes.rb +3 -3
  396. data/generated/google/apis/tpu_v1alpha1.rb +1 -1
  397. data/generated/google/apis/tpu_v1alpha1/classes.rb +3 -3
  398. data/generated/google/apis/translate_v3.rb +1 -1
  399. data/generated/google/apis/verifiedaccess_v1.rb +3 -3
  400. data/generated/google/apis/verifiedaccess_v1/service.rb +2 -2
  401. data/generated/google/apis/videointelligence_v1.rb +1 -1
  402. data/generated/google/apis/videointelligence_v1/classes.rb +1 -1
  403. data/generated/google/apis/videointelligence_v1/service.rb +32 -0
  404. data/generated/google/apis/videointelligence_v1beta2.rb +1 -1
  405. data/generated/google/apis/videointelligence_v1beta2/classes.rb +1 -1
  406. data/generated/google/apis/videointelligence_v1p1beta1.rb +1 -1
  407. data/generated/google/apis/videointelligence_v1p1beta1/classes.rb +1 -1
  408. data/generated/google/apis/videointelligence_v1p2beta1.rb +1 -1
  409. data/generated/google/apis/videointelligence_v1p2beta1/classes.rb +1 -1
  410. data/generated/google/apis/videointelligence_v1p3beta1.rb +1 -1
  411. data/generated/google/apis/videointelligence_v1p3beta1/classes.rb +1 -1
  412. data/generated/google/apis/vision_v1.rb +1 -1
  413. data/generated/google/apis/vision_v1/classes.rb +18 -0
  414. data/generated/google/apis/vision_v1p1beta1.rb +1 -1
  415. data/generated/google/apis/vision_v1p1beta1/classes.rb +18 -0
  416. data/generated/google/apis/vision_v1p2beta1.rb +1 -1
  417. data/generated/google/apis/vision_v1p2beta1/classes.rb +18 -0
  418. data/generated/google/apis/websecurityscanner_v1.rb +2 -2
  419. data/generated/google/apis/websecurityscanner_v1/classes.rb +7 -5
  420. data/generated/google/apis/websecurityscanner_v1/service.rb +1 -1
  421. data/generated/google/apis/websecurityscanner_v1alpha.rb +2 -2
  422. data/generated/google/apis/websecurityscanner_v1alpha/classes.rb +5 -4
  423. data/generated/google/apis/websecurityscanner_v1alpha/service.rb +1 -1
  424. data/generated/google/apis/websecurityscanner_v1beta.rb +2 -2
  425. data/generated/google/apis/websecurityscanner_v1beta/classes.rb +9 -7
  426. data/generated/google/apis/websecurityscanner_v1beta/service.rb +1 -1
  427. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  428. data/generated/google/apis/youtube_v3.rb +5 -5
  429. data/generated/google/apis/youtube_v3/classes.rb +1298 -1244
  430. data/generated/google/apis/youtube_v3/representations.rb +91 -192
  431. data/generated/google/apis/youtube_v3/service.rb +1857 -2152
  432. data/lib/google/apis/core/api_command.rb +12 -7
  433. data/lib/google/apis/options.rb +5 -1
  434. data/lib/google/apis/version.rb +1 -1
  435. metadata +27 -19
  436. data/generated/google/apis/customsearch_v1/classes.rb +0 -1606
  437. data/generated/google/apis/customsearch_v1/representations.rb +0 -372
  438. data/generated/google/apis/customsearch_v1/service.rb +0 -608
  439. data/generated/google/apis/pagespeedonline_v1/classes.rb +0 -542
  440. data/generated/google/apis/pagespeedonline_v1/representations.rb +0 -258
  441. data/generated/google/apis/pagespeedonline_v1/service.rb +0 -116
  442. data/generated/google/apis/pagespeedonline_v2/classes.rb +0 -621
  443. data/generated/google/apis/pagespeedonline_v2/representations.rb +0 -273
  444. data/generated/google/apis/pagespeedonline_v2/service.rb +0 -116
  445. data/generated/google/apis/pagespeedonline_v4/classes.rb +0 -795
  446. data/generated/google/apis/pagespeedonline_v4/representations.rb +0 -335
  447. data/generated/google/apis/pagespeedonline_v4/service.rb +0 -125
@@ -154,6 +154,12 @@ module Google
154
154
  include Google::Apis::Core::JsonObjectSupport
155
155
  end
156
156
 
157
+ class StatisticalTimeSeriesFilter
158
+ class Representation < Google::Apis::Core::JsonRepresentation; end
159
+
160
+ include Google::Apis::Core::JsonObjectSupport
161
+ end
162
+
157
163
  class Text
158
164
  class Representation < Google::Apis::Core::JsonRepresentation; end
159
165
 
@@ -405,6 +411,14 @@ module Google
405
411
  end
406
412
  end
407
413
 
414
+ class StatisticalTimeSeriesFilter
415
+ # @private
416
+ class Representation < Google::Apis::Core::JsonRepresentation
417
+ property :num_time_series, as: 'numTimeSeries'
418
+ property :ranking_method, as: 'rankingMethod'
419
+ end
420
+ end
421
+
408
422
  class Text
409
423
  # @private
410
424
  class Representation < Google::Apis::Core::JsonRepresentation
@@ -433,6 +447,8 @@ module Google
433
447
 
434
448
  property :secondary_aggregation, as: 'secondaryAggregation', class: Google::Apis::MonitoringV1::Aggregation, decorator: Google::Apis::MonitoringV1::Aggregation::Representation
435
449
 
450
+ property :statistical_time_series_filter, as: 'statisticalTimeSeriesFilter', class: Google::Apis::MonitoringV1::StatisticalTimeSeriesFilter, decorator: Google::Apis::MonitoringV1::StatisticalTimeSeriesFilter::Representation
451
+
436
452
  end
437
453
  end
438
454
 
@@ -447,6 +463,8 @@ module Google
447
463
 
448
464
  property :secondary_aggregation, as: 'secondaryAggregation', class: Google::Apis::MonitoringV1::Aggregation, decorator: Google::Apis::MonitoringV1::Aggregation::Representation
449
465
 
466
+ property :statistical_time_series_filter, as: 'statisticalTimeSeriesFilter', class: Google::Apis::MonitoringV1::StatisticalTimeSeriesFilter, decorator: Google::Apis::MonitoringV1::StatisticalTimeSeriesFilter::Representation
467
+
450
468
  end
451
469
  end
452
470
 
@@ -29,7 +29,7 @@ module Google
29
29
  # @see https://cloud.google.com/monitoring/api/
30
30
  module MonitoringV3
31
31
  VERSION = 'V3'
32
- REVISION = '20200509'
32
+ REVISION = '20200615'
33
33
 
34
34
  # View and manage your data across Google Cloud Platform services
35
35
  AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
@@ -1725,6 +1725,12 @@ module Google
1725
1725
  # @return [String]
1726
1726
  attr_accessor :next_page_token
1727
1727
 
1728
+ # The total number of alert policies in all pages. This number is only an
1729
+ # estimate, and may change in subsequent pages. https://aip.dev/158
1730
+ # Corresponds to the JSON property `totalSize`
1731
+ # @return [Fixnum]
1732
+ attr_accessor :total_size
1733
+
1728
1734
  def initialize(**args)
1729
1735
  update!(**args)
1730
1736
  end
@@ -1733,6 +1739,7 @@ module Google
1733
1739
  def update!(**args)
1734
1740
  @alert_policies = args[:alert_policies] if args.key?(:alert_policies)
1735
1741
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1742
+ @total_size = args[:total_size] if args.key?(:total_size)
1736
1743
  end
1737
1744
  end
1738
1745
 
@@ -1983,6 +1990,15 @@ module Google
1983
1990
  # @return [Array<Google::Apis::MonitoringV3::TimeSeries>]
1984
1991
  attr_accessor :time_series
1985
1992
 
1993
+ # The unit in which all time_series point values are reported. unit follows the
1994
+ # UCUM format for units as seen in https://unitsofmeasure.org/ucum.html. If
1995
+ # different time_series have different units (for example, because they come
1996
+ # from different metric types, or a unit is absent), then unit will be "`
1997
+ # not_a_unit`".
1998
+ # Corresponds to the JSON property `unit`
1999
+ # @return [String]
2000
+ attr_accessor :unit
2001
+
1986
2002
  def initialize(**args)
1987
2003
  update!(**args)
1988
2004
  end
@@ -1992,6 +2008,7 @@ module Google
1992
2008
  @execution_errors = args[:execution_errors] if args.key?(:execution_errors)
1993
2009
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1994
2010
  @time_series = args[:time_series] if args.key?(:time_series)
2011
+ @unit = args[:unit] if args.key?(:unit)
1995
2012
  end
1996
2013
  end
1997
2014
 
@@ -2183,7 +2200,15 @@ module Google
2183
2200
 
2184
2201
  # Defines a metric type and its schema. Once a metric descriptor is created,
2185
2202
  # deleting or altering it stops data collection and makes the metric type's
2186
- # existing data unusable.
2203
+ # existing data unusable.The following are specific rules for service defined
2204
+ # Monitoring metric descriptors:
2205
+ # type, metric_kind, value_type, description, display_name, launch_stage fields
2206
+ # are all required. The unit field must be specified if the value_type is any
2207
+ # of DOUBLE, INT64, DISTRIBUTION.
2208
+ # Maximum of default 500 metric descriptors per service is allowed.
2209
+ # Maximum of default 10 labels per metric descriptor is allowed.The default
2210
+ # maximum limit can be overridden. Please follow https://cloud.google.com/
2211
+ # monitoring/quotas
2187
2212
  class MetricDescriptor
2188
2213
  include Google::Apis::Core::Hashable
2189
2214
 
@@ -2201,10 +2226,13 @@ module Google
2201
2226
  attr_accessor :display_name
2202
2227
 
2203
2228
  # The set of labels that can be used to describe a specific instance of this
2204
- # metric type. For example, the appengine.googleapis.com/http/server/
2205
- # response_latencies metric type has a label for the HTTP response code,
2206
- # response_code, so you can look at latencies for successful responses or just
2207
- # for responses that failed.
2229
+ # metric type.The label key name must follow:
2230
+ # Only upper and lower-case letters, digits and underscores (_) are allowed.
2231
+ # Label name must start with a letter or digit.
2232
+ # The maximum length of a label name is 100 characters.For example, the
2233
+ # appengine.googleapis.com/http/server/response_latencies metric type has a
2234
+ # label for the HTTP response code, response_code, so you can look at latencies
2235
+ # for successful responses or just for responses that failed.
2208
2236
  # Corresponds to the JSON property `labels`
2209
2237
  # @return [Array<Google::Apis::MonitoringV3::LabelDescriptor>]
2210
2238
  attr_accessor :labels
@@ -2239,9 +2267,15 @@ module Google
2239
2267
  attr_accessor :name
2240
2268
 
2241
2269
  # The metric type, including its DNS name prefix. The type is not URL-encoded.
2242
- # All user-defined metric types have the DNS name custom.googleapis.com or
2243
- # external.googleapis.com. Metric types should use a natural hierarchical
2244
- # grouping. For example:
2270
+ # All service defined metrics must be prefixed with the service name, in the
2271
+ # format of `service name`/`relative metric name`, such as cloudsql.googleapis.
2272
+ # com/database/cpu/utilization. The relative metric name must follow:
2273
+ # Only upper and lower-case letters, digits, '/' and underscores '_' are
2274
+ # allowed.
2275
+ # The maximum number of characters allowed for the relative_metric_name is 100.
2276
+ # All user-defined metric types have the DNS name custom.googleapis.com,
2277
+ # external.googleapis.com, or logging.googleapis.com/user/.Metric types should
2278
+ # use a natural hierarchical grouping. For example:
2245
2279
  # "custom.googleapis.com/invoice/paid/amount"
2246
2280
  # "external.googleapis.com/prometheus/up"
2247
2281
  # "appengine.googleapis.com/http/server/response_latencies"
@@ -2269,7 +2303,8 @@ module Google
2269
2303
  # s second
2270
2304
  # min minute
2271
2305
  # h hour
2272
- # d dayPrefixes (PREFIX)
2306
+ # d day
2307
+ # 1 dimensionlessPrefixes (PREFIX)
2273
2308
  # k kilo (10^3)
2274
2309
  # M mega (10^6)
2275
2310
  # G giga (10^9)
@@ -2563,9 +2598,20 @@ module Google
2563
2598
  # name and a set of labels. For example, the monitored resource descriptor for
2564
2599
  # Google Compute Engine VM instances has a type of "gce_instance" and specifies
2565
2600
  # the use of the labels "instance_id" and "zone" to identify particular VM
2566
- # instances.Different APIs can support different monitored resource types. APIs
2567
- # generally provide a list method that returns the monitored resource
2568
- # descriptors used by the API.
2601
+ # instances.Different services can support different monitored resource types.
2602
+ # The following are specific rules to service defined monitored resources for
2603
+ # Monitoring and Logging:
2604
+ # The type, display_name, description, labels and launch_stage fields are all
2605
+ # required.
2606
+ # The first label of the monitored resource descriptor must be
2607
+ # resource_container. There are legacy monitored resource descritptors start
2608
+ # with project_id.
2609
+ # It must include a location label.
2610
+ # Maximum of default 5 service defined monitored resource descriptors is
2611
+ # allowed per service.
2612
+ # Maximum of default 10 labels per monitored resource is allowed.The default
2613
+ # maximum limit can be overridden. Please follow https://cloud.google.com/
2614
+ # monitoring/quotas
2569
2615
  class MonitoredResourceDescriptor
2570
2616
  include Google::Apis::Core::Hashable
2571
2617
 
@@ -2583,8 +2629,12 @@ module Google
2583
2629
  attr_accessor :display_name
2584
2630
 
2585
2631
  # Required. A set of labels used to describe instances of this monitored
2586
- # resource type. For example, an individual Google Cloud SQL database is
2587
- # identified by values for the labels "database_id" and "zone".
2632
+ # resource type. The label key name must follow:
2633
+ # Only upper and lower-case letters, digits and underscores (_) are allowed.
2634
+ # Label name must start with a letter or digit.
2635
+ # The maximum length of a label name is 100 characters.For example, an
2636
+ # individual Google Cloud SQL database is identified by values for the labels
2637
+ # database_id and location.
2588
2638
  # Corresponds to the JSON property `labels`
2589
2639
  # @return [Array<Google::Apis::MonitoringV3::LabelDescriptor>]
2590
2640
  attr_accessor :labels
@@ -2604,9 +2654,15 @@ module Google
2604
2654
  # @return [String]
2605
2655
  attr_accessor :name
2606
2656
 
2607
- # Required. The monitored resource type. For example, the type "
2608
- # cloudsql_database" represents databases in Google Cloud SQL. The maximum
2609
- # length of this value is 256 characters.
2657
+ # Required. The monitored resource type. For example, the type cloudsql_database
2658
+ # represents databases in Google Cloud SQL.All service defined monitored
2659
+ # resource types must be prefixed with the service name, in the format of `
2660
+ # service name`/`relative resource name`. The relative resource name must follow:
2661
+ # Only upper and lower-case letters and digits are allowed.
2662
+ # It must start with upper case character and is recommended to use Upper Camel
2663
+ # Case style.
2664
+ # The maximum number of characters allowed for the relative_resource_name is
2665
+ # 100.Note there are legacy service monitored resources not following this rule.
2610
2666
  # Corresponds to the JSON property `type`
2611
2667
  # @return [String]
2612
2668
  attr_accessor :type
@@ -1004,6 +1004,7 @@ module Google
1004
1004
  collection :alert_policies, as: 'alertPolicies', class: Google::Apis::MonitoringV3::AlertPolicy, decorator: Google::Apis::MonitoringV3::AlertPolicy::Representation
1005
1005
 
1006
1006
  property :next_page_token, as: 'nextPageToken'
1007
+ property :total_size, as: 'totalSize'
1007
1008
  end
1008
1009
  end
1009
1010
 
@@ -1088,6 +1089,7 @@ module Google
1088
1089
  property :next_page_token, as: 'nextPageToken'
1089
1090
  collection :time_series, as: 'timeSeries', class: Google::Apis::MonitoringV3::TimeSeries, decorator: Google::Apis::MonitoringV3::TimeSeries::Representation
1090
1091
 
1092
+ property :unit, as: 'unit'
1091
1093
  end
1092
1094
  end
1093
1095
 
@@ -12,21 +12,24 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require 'google/apis/pagespeedonline_v4/service.rb'
16
- require 'google/apis/pagespeedonline_v4/classes.rb'
17
- require 'google/apis/pagespeedonline_v4/representations.rb'
15
+ require 'google/apis/networkmanagement_v1/service.rb'
16
+ require 'google/apis/networkmanagement_v1/classes.rb'
17
+ require 'google/apis/networkmanagement_v1/representations.rb'
18
18
 
19
19
  module Google
20
20
  module Apis
21
- # PageSpeed Insights API
21
+ # Network Management API
22
22
  #
23
- # Analyzes the performance of a web page and provides tailored suggestions to
24
- # make that page faster.
23
+ # The Network Management API provides a collection of network performance
24
+ # monitoring and diagnostic capabilities.
25
25
  #
26
- # @see https://developers.google.com/speed/docs/insights/v4/getting-started
27
- module PagespeedonlineV4
28
- VERSION = 'V4'
29
- REVISION = '20180606'
26
+ # @see https://cloud.google.com/
27
+ module NetworkmanagementV1
28
+ VERSION = 'V1'
29
+ REVISION = '20200505'
30
+
31
+ # View and manage your data across Google Cloud Platform services
32
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
30
33
  end
31
34
  end
32
35
  end
@@ -0,0 +1,1868 @@
1
+ # Copyright 2015 Google Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module NetworkmanagementV1
24
+
25
+ # Details of the final state "abort" and associated resource.
26
+ class AbortInfo
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Causes that the analysis is aborted.
30
+ # Corresponds to the JSON property `cause`
31
+ # @return [String]
32
+ attr_accessor :cause
33
+
34
+ # URI of the resource that caused the abort.
35
+ # Corresponds to the JSON property `resourceUri`
36
+ # @return [String]
37
+ attr_accessor :resource_uri
38
+
39
+ def initialize(**args)
40
+ update!(**args)
41
+ end
42
+
43
+ # Update properties of this object
44
+ def update!(**args)
45
+ @cause = args[:cause] if args.key?(:cause)
46
+ @resource_uri = args[:resource_uri] if args.key?(:resource_uri)
47
+ end
48
+ end
49
+
50
+ # Specifies the audit configuration for a service.
51
+ # The configuration determines which permission types are logged, and what
52
+ # identities, if any, are exempted from logging.
53
+ # An AuditConfig must have one or more AuditLogConfigs.
54
+ # If there are AuditConfigs for both `allServices` and a specific service,
55
+ # the union of the two AuditConfigs is used for that service: the log_types
56
+ # specified in each AuditConfig are enabled, and the exempted_members in each
57
+ # AuditLogConfig are exempted.
58
+ # Example Policy with multiple AuditConfigs:
59
+ # `
60
+ # "audit_configs": [
61
+ # `
62
+ # "service": "allServices"
63
+ # "audit_log_configs": [
64
+ # `
65
+ # "log_type": "DATA_READ",
66
+ # "exempted_members": [
67
+ # "user:jose@example.com"
68
+ # ]
69
+ # `,
70
+ # `
71
+ # "log_type": "DATA_WRITE",
72
+ # `,
73
+ # `
74
+ # "log_type": "ADMIN_READ",
75
+ # `
76
+ # ]
77
+ # `,
78
+ # `
79
+ # "service": "sampleservice.googleapis.com"
80
+ # "audit_log_configs": [
81
+ # `
82
+ # "log_type": "DATA_READ",
83
+ # `,
84
+ # `
85
+ # "log_type": "DATA_WRITE",
86
+ # "exempted_members": [
87
+ # "user:aliya@example.com"
88
+ # ]
89
+ # `
90
+ # ]
91
+ # `
92
+ # ]
93
+ # `
94
+ # For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
95
+ # logging. It also exempts jose@example.com from DATA_READ logging, and
96
+ # aliya@example.com from DATA_WRITE logging.
97
+ class AuditConfig
98
+ include Google::Apis::Core::Hashable
99
+
100
+ # The configuration for logging of each type of permission.
101
+ # Corresponds to the JSON property `auditLogConfigs`
102
+ # @return [Array<Google::Apis::NetworkmanagementV1::AuditLogConfig>]
103
+ attr_accessor :audit_log_configs
104
+
105
+ # Specifies a service that will be enabled for audit logging.
106
+ # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
107
+ # `allServices` is a special value that covers all services.
108
+ # Corresponds to the JSON property `service`
109
+ # @return [String]
110
+ attr_accessor :service
111
+
112
+ def initialize(**args)
113
+ update!(**args)
114
+ end
115
+
116
+ # Update properties of this object
117
+ def update!(**args)
118
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
119
+ @service = args[:service] if args.key?(:service)
120
+ end
121
+ end
122
+
123
+ # Provides the configuration for logging a type of permissions.
124
+ # Example:
125
+ # `
126
+ # "audit_log_configs": [
127
+ # `
128
+ # "log_type": "DATA_READ",
129
+ # "exempted_members": [
130
+ # "user:jose@example.com"
131
+ # ]
132
+ # `,
133
+ # `
134
+ # "log_type": "DATA_WRITE",
135
+ # `
136
+ # ]
137
+ # `
138
+ # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
139
+ # jose@example.com from DATA_READ logging.
140
+ class AuditLogConfig
141
+ include Google::Apis::Core::Hashable
142
+
143
+ # Specifies the identities that do not cause logging for this type of
144
+ # permission.
145
+ # Follows the same format of Binding.members.
146
+ # Corresponds to the JSON property `exemptedMembers`
147
+ # @return [Array<String>]
148
+ attr_accessor :exempted_members
149
+
150
+ # The log type that this config enables.
151
+ # Corresponds to the JSON property `logType`
152
+ # @return [String]
153
+ attr_accessor :log_type
154
+
155
+ def initialize(**args)
156
+ update!(**args)
157
+ end
158
+
159
+ # Update properties of this object
160
+ def update!(**args)
161
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
162
+ @log_type = args[:log_type] if args.key?(:log_type)
163
+ end
164
+ end
165
+
166
+ # Associates `members` with a `role`.
167
+ class Binding
168
+ include Google::Apis::Core::Hashable
169
+
170
+ # Represents a textual expression in the Common Expression Language (CEL)
171
+ # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
172
+ # are documented at https://github.com/google/cel-spec.
173
+ # Example (Comparison):
174
+ # title: "Summary size limit"
175
+ # description: "Determines if a summary is less than 100 chars"
176
+ # expression: "document.summary.size() < 100"
177
+ # Example (Equality):
178
+ # title: "Requestor is owner"
179
+ # description: "Determines if requestor is the document owner"
180
+ # expression: "document.owner == request.auth.claims.email"
181
+ # Example (Logic):
182
+ # title: "Public documents"
183
+ # description: "Determine whether the document should be publicly visible"
184
+ # expression: "document.type != 'private' && document.type != 'internal'"
185
+ # Example (Data Manipulation):
186
+ # title: "Notification string"
187
+ # description: "Create a notification string with a timestamp."
188
+ # expression: "'New message received at ' + string(document.create_time)"
189
+ # The exact variables and functions that may be referenced within an expression
190
+ # are determined by the service that evaluates it. See the service
191
+ # documentation for additional information.
192
+ # Corresponds to the JSON property `condition`
193
+ # @return [Google::Apis::NetworkmanagementV1::Expr]
194
+ attr_accessor :condition
195
+
196
+ # Specifies the identities requesting access for a Cloud Platform resource.
197
+ # `members` can have the following values:
198
+ # * `allUsers`: A special identifier that represents anyone who is
199
+ # on the internet; with or without a Google account.
200
+ # * `allAuthenticatedUsers`: A special identifier that represents anyone
201
+ # who is authenticated with a Google account or a service account.
202
+ # * `user:`emailid``: An email address that represents a specific Google
203
+ # account. For example, `alice@example.com` .
204
+ # * `serviceAccount:`emailid``: An email address that represents a service
205
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`.
206
+ # * `group:`emailid``: An email address that represents a Google group.
207
+ # For example, `admins@example.com`.
208
+ # * `deleted:user:`emailid`?uid=`uniqueid``: An email address (plus unique
209
+ # identifier) representing a user that has been recently deleted. For
210
+ # example, `alice@example.com?uid=123456789012345678901`. If the user is
211
+ # recovered, this value reverts to `user:`emailid`` and the recovered user
212
+ # retains the role in the binding.
213
+ # * `deleted:serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus
214
+ # unique identifier) representing a service account that has been recently
215
+ # deleted. For example,
216
+ # `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
217
+ # If the service account is undeleted, this value reverts to
218
+ # `serviceAccount:`emailid`` and the undeleted service account retains the
219
+ # role in the binding.
220
+ # * `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
221
+ # identifier) representing a Google group that has been recently
222
+ # deleted. For example, `admins@example.com?uid=123456789012345678901`. If
223
+ # the group is recovered, this value reverts to `group:`emailid`` and the
224
+ # recovered group retains the role in the binding.
225
+ # * `domain:`domain``: The G Suite domain (primary) that represents all the
226
+ # users of that domain. For example, `google.com` or `example.com`.
227
+ # Corresponds to the JSON property `members`
228
+ # @return [Array<String>]
229
+ attr_accessor :members
230
+
231
+ # Role that is assigned to `members`.
232
+ # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
233
+ # Corresponds to the JSON property `role`
234
+ # @return [String]
235
+ attr_accessor :role
236
+
237
+ def initialize(**args)
238
+ update!(**args)
239
+ end
240
+
241
+ # Update properties of this object
242
+ def update!(**args)
243
+ @condition = args[:condition] if args.key?(:condition)
244
+ @members = args[:members] if args.key?(:members)
245
+ @role = args[:role] if args.key?(:role)
246
+ end
247
+ end
248
+
249
+ # The request message for Operations.CancelOperation.
250
+ class CancelOperationRequest
251
+ include Google::Apis::Core::Hashable
252
+
253
+ def initialize(**args)
254
+ update!(**args)
255
+ end
256
+
257
+ # Update properties of this object
258
+ def update!(**args)
259
+ end
260
+ end
261
+
262
+ # A Connectivity Test for a network reachability analysis.
263
+ class ConnectivityTest
264
+ include Google::Apis::Core::Hashable
265
+
266
+ # Output only. The time the test was created.
267
+ # Corresponds to the JSON property `createTime`
268
+ # @return [String]
269
+ attr_accessor :create_time
270
+
271
+ # The user-supplied description of the Connectivity Test.
272
+ # Maximum of 512 characters.
273
+ # Corresponds to the JSON property `description`
274
+ # @return [String]
275
+ attr_accessor :description
276
+
277
+ # Source or destination of the Connectivity Test.
278
+ # Corresponds to the JSON property `destination`
279
+ # @return [Google::Apis::NetworkmanagementV1::Endpoint]
280
+ attr_accessor :destination
281
+
282
+ # Output only. The display name of a Connectivity Test.
283
+ # Corresponds to the JSON property `displayName`
284
+ # @return [String]
285
+ attr_accessor :display_name
286
+
287
+ # Resource labels to represent user-provided metadata.
288
+ # Corresponds to the JSON property `labels`
289
+ # @return [Hash<String,String>]
290
+ attr_accessor :labels
291
+
292
+ # Required. Unique name of the resource using the form:
293
+ # `projects/`project_id`/locations/global/connectivityTests/`test_id``
294
+ # Corresponds to the JSON property `name`
295
+ # @return [String]
296
+ attr_accessor :name
297
+
298
+ # IP Protocol of the test. When not provided, "TCP" is assumed.
299
+ # Corresponds to the JSON property `protocol`
300
+ # @return [String]
301
+ attr_accessor :protocol
302
+
303
+ # The details of reachability state from the latest run.
304
+ # Corresponds to the JSON property `reachabilityDetails`
305
+ # @return [Google::Apis::NetworkmanagementV1::ReachabilityDetails]
306
+ attr_accessor :reachability_details
307
+
308
+ # Other projects that may be relevant for reachability analysis.
309
+ # This is applicable to scenarios where a test can cross project boundaries.
310
+ # Corresponds to the JSON property `relatedProjects`
311
+ # @return [Array<String>]
312
+ attr_accessor :related_projects
313
+
314
+ # Source or destination of the Connectivity Test.
315
+ # Corresponds to the JSON property `source`
316
+ # @return [Google::Apis::NetworkmanagementV1::Endpoint]
317
+ attr_accessor :source
318
+
319
+ # Output only. The time the test's configuration was updated.
320
+ # Corresponds to the JSON property `updateTime`
321
+ # @return [String]
322
+ attr_accessor :update_time
323
+
324
+ def initialize(**args)
325
+ update!(**args)
326
+ end
327
+
328
+ # Update properties of this object
329
+ def update!(**args)
330
+ @create_time = args[:create_time] if args.key?(:create_time)
331
+ @description = args[:description] if args.key?(:description)
332
+ @destination = args[:destination] if args.key?(:destination)
333
+ @display_name = args[:display_name] if args.key?(:display_name)
334
+ @labels = args[:labels] if args.key?(:labels)
335
+ @name = args[:name] if args.key?(:name)
336
+ @protocol = args[:protocol] if args.key?(:protocol)
337
+ @reachability_details = args[:reachability_details] if args.key?(:reachability_details)
338
+ @related_projects = args[:related_projects] if args.key?(:related_projects)
339
+ @source = args[:source] if args.key?(:source)
340
+ @update_time = args[:update_time] if args.key?(:update_time)
341
+ end
342
+ end
343
+
344
+ # Details of the final state "deliver" and associated resource.
345
+ class DeliverInfo
346
+ include Google::Apis::Core::Hashable
347
+
348
+ # URI of the resource that the packet is delivered to.
349
+ # Corresponds to the JSON property `resourceUri`
350
+ # @return [String]
351
+ attr_accessor :resource_uri
352
+
353
+ # Target type where the packet is delivered to.
354
+ # Corresponds to the JSON property `target`
355
+ # @return [String]
356
+ attr_accessor :target
357
+
358
+ def initialize(**args)
359
+ update!(**args)
360
+ end
361
+
362
+ # Update properties of this object
363
+ def update!(**args)
364
+ @resource_uri = args[:resource_uri] if args.key?(:resource_uri)
365
+ @target = args[:target] if args.key?(:target)
366
+ end
367
+ end
368
+
369
+ # Details of the final state "drop" and associated resource.
370
+ class DropInfo
371
+ include Google::Apis::Core::Hashable
372
+
373
+ # Cause that the packet is dropped.
374
+ # Corresponds to the JSON property `cause`
375
+ # @return [String]
376
+ attr_accessor :cause
377
+
378
+ # URI of the resource that caused the drop.
379
+ # Corresponds to the JSON property `resourceUri`
380
+ # @return [String]
381
+ attr_accessor :resource_uri
382
+
383
+ def initialize(**args)
384
+ update!(**args)
385
+ end
386
+
387
+ # Update properties of this object
388
+ def update!(**args)
389
+ @cause = args[:cause] if args.key?(:cause)
390
+ @resource_uri = args[:resource_uri] if args.key?(:resource_uri)
391
+ end
392
+ end
393
+
394
+ # A generic empty message that you can re-use to avoid defining duplicated
395
+ # empty messages in your APIs. A typical example is to use it as the request
396
+ # or the response type of an API method. For instance:
397
+ # service Foo `
398
+ # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
399
+ # `
400
+ # The JSON representation for `Empty` is empty JSON object ````.
401
+ class Empty
402
+ include Google::Apis::Core::Hashable
403
+
404
+ def initialize(**args)
405
+ update!(**args)
406
+ end
407
+
408
+ # Update properties of this object
409
+ def update!(**args)
410
+ end
411
+ end
412
+
413
+ # Source or destination of the Connectivity Test.
414
+ class Endpoint
415
+ include Google::Apis::Core::Hashable
416
+
417
+ # A Compute Engine instance URI.
418
+ # Corresponds to the JSON property `instance`
419
+ # @return [String]
420
+ attr_accessor :instance
421
+
422
+ # The IP address of the endpoint, which can be an external or internal IP.
423
+ # An IPv6 address is only allowed when the test's destination is a
424
+ # [global load balancer VIP](/load-balancing/docs/load-balancing-overview).
425
+ # Corresponds to the JSON property `ipAddress`
426
+ # @return [String]
427
+ attr_accessor :ip_address
428
+
429
+ # A Compute Engine network URI.
430
+ # Corresponds to the JSON property `network`
431
+ # @return [String]
432
+ attr_accessor :network
433
+
434
+ # Type of the network where the endpoint is located.
435
+ # Applicable only to source endpoint, as destination network type can be
436
+ # inferred from the source.
437
+ # Corresponds to the JSON property `networkType`
438
+ # @return [String]
439
+ attr_accessor :network_type
440
+
441
+ # The IP protocol port of the endpoint.
442
+ # Only applicable when protocol is TCP or UDP.
443
+ # Corresponds to the JSON property `port`
444
+ # @return [Fixnum]
445
+ attr_accessor :port
446
+
447
+ # Project ID where the endpoint is located.
448
+ # The Project ID can be derived from the URI if you provide a VM instance or
449
+ # network URI.
450
+ # The following are two cases where you must provide the project ID:
451
+ # 1. Only the IP address is specified, and the IP address is within a GCP
452
+ # project.
453
+ # 2. When you are using Shared VPC and the IP address that you provide is
454
+ # from the service project. In this case, the network that the IP address
455
+ # resides in is defined in the host project.
456
+ # Corresponds to the JSON property `projectId`
457
+ # @return [String]
458
+ attr_accessor :project_id
459
+
460
+ def initialize(**args)
461
+ update!(**args)
462
+ end
463
+
464
+ # Update properties of this object
465
+ def update!(**args)
466
+ @instance = args[:instance] if args.key?(:instance)
467
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
468
+ @network = args[:network] if args.key?(:network)
469
+ @network_type = args[:network_type] if args.key?(:network_type)
470
+ @port = args[:port] if args.key?(:port)
471
+ @project_id = args[:project_id] if args.key?(:project_id)
472
+ end
473
+ end
474
+
475
+ # For display only. The specification of the endpoints for the test.
476
+ # EndpointInfo is derived from source and destination Endpoint and validated
477
+ # by the backend data plane model.
478
+ class EndpointInfo
479
+ include Google::Apis::Core::Hashable
480
+
481
+ # Destination IP address.
482
+ # Corresponds to the JSON property `destinationIp`
483
+ # @return [String]
484
+ attr_accessor :destination_ip
485
+
486
+ # URI of the network where this packet is sent to.
487
+ # Corresponds to the JSON property `destinationNetworkUri`
488
+ # @return [String]
489
+ attr_accessor :destination_network_uri
490
+
491
+ # Destination port. Only valid when protocol is TCP or UDP.
492
+ # Corresponds to the JSON property `destinationPort`
493
+ # @return [Fixnum]
494
+ attr_accessor :destination_port
495
+
496
+ # IP protocol in string format, for example: "TCP", "UDP", "ICMP".
497
+ # Corresponds to the JSON property `protocol`
498
+ # @return [String]
499
+ attr_accessor :protocol
500
+
501
+ # Source IP address.
502
+ # Corresponds to the JSON property `sourceIp`
503
+ # @return [String]
504
+ attr_accessor :source_ip
505
+
506
+ # URI of the network where this packet originates from.
507
+ # Corresponds to the JSON property `sourceNetworkUri`
508
+ # @return [String]
509
+ attr_accessor :source_network_uri
510
+
511
+ # Source port. Only valid when protocol is TCP or UDP.
512
+ # Corresponds to the JSON property `sourcePort`
513
+ # @return [Fixnum]
514
+ attr_accessor :source_port
515
+
516
+ def initialize(**args)
517
+ update!(**args)
518
+ end
519
+
520
+ # Update properties of this object
521
+ def update!(**args)
522
+ @destination_ip = args[:destination_ip] if args.key?(:destination_ip)
523
+ @destination_network_uri = args[:destination_network_uri] if args.key?(:destination_network_uri)
524
+ @destination_port = args[:destination_port] if args.key?(:destination_port)
525
+ @protocol = args[:protocol] if args.key?(:protocol)
526
+ @source_ip = args[:source_ip] if args.key?(:source_ip)
527
+ @source_network_uri = args[:source_network_uri] if args.key?(:source_network_uri)
528
+ @source_port = args[:source_port] if args.key?(:source_port)
529
+ end
530
+ end
531
+
532
+ # Represents a textual expression in the Common Expression Language (CEL)
533
+ # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
534
+ # are documented at https://github.com/google/cel-spec.
535
+ # Example (Comparison):
536
+ # title: "Summary size limit"
537
+ # description: "Determines if a summary is less than 100 chars"
538
+ # expression: "document.summary.size() < 100"
539
+ # Example (Equality):
540
+ # title: "Requestor is owner"
541
+ # description: "Determines if requestor is the document owner"
542
+ # expression: "document.owner == request.auth.claims.email"
543
+ # Example (Logic):
544
+ # title: "Public documents"
545
+ # description: "Determine whether the document should be publicly visible"
546
+ # expression: "document.type != 'private' && document.type != 'internal'"
547
+ # Example (Data Manipulation):
548
+ # title: "Notification string"
549
+ # description: "Create a notification string with a timestamp."
550
+ # expression: "'New message received at ' + string(document.create_time)"
551
+ # The exact variables and functions that may be referenced within an expression
552
+ # are determined by the service that evaluates it. See the service
553
+ # documentation for additional information.
554
+ class Expr
555
+ include Google::Apis::Core::Hashable
556
+
557
+ # Optional. Description of the expression. This is a longer text which
558
+ # describes the expression, e.g. when hovered over it in a UI.
559
+ # Corresponds to the JSON property `description`
560
+ # @return [String]
561
+ attr_accessor :description
562
+
563
+ # Textual representation of an expression in Common Expression Language
564
+ # syntax.
565
+ # Corresponds to the JSON property `expression`
566
+ # @return [String]
567
+ attr_accessor :expression
568
+
569
+ # Optional. String indicating the location of the expression for error
570
+ # reporting, e.g. a file name and a position in the file.
571
+ # Corresponds to the JSON property `location`
572
+ # @return [String]
573
+ attr_accessor :location
574
+
575
+ # Optional. Title for the expression, i.e. a short string describing
576
+ # its purpose. This can be used e.g. in UIs which allow to enter the
577
+ # expression.
578
+ # Corresponds to the JSON property `title`
579
+ # @return [String]
580
+ attr_accessor :title
581
+
582
+ def initialize(**args)
583
+ update!(**args)
584
+ end
585
+
586
+ # Update properties of this object
587
+ def update!(**args)
588
+ @description = args[:description] if args.key?(:description)
589
+ @expression = args[:expression] if args.key?(:expression)
590
+ @location = args[:location] if args.key?(:location)
591
+ @title = args[:title] if args.key?(:title)
592
+ end
593
+ end
594
+
595
+ # For display only. Metadata associated with a Compute Engine firewall rule.
596
+ class FirewallInfo
597
+ include Google::Apis::Core::Hashable
598
+
599
+ # Possible values: ALLOW, DENY
600
+ # Corresponds to the JSON property `action`
601
+ # @return [String]
602
+ attr_accessor :action
603
+
604
+ # Possible values: INGRESS, EGRESS
605
+ # Corresponds to the JSON property `direction`
606
+ # @return [String]
607
+ attr_accessor :direction
608
+
609
+ # Name of a Compute Engine firewall rule.
610
+ # Corresponds to the JSON property `displayName`
611
+ # @return [String]
612
+ attr_accessor :display_name
613
+
614
+ # URI of a Compute Engine network.
615
+ # Corresponds to the JSON property `networkUri`
616
+ # @return [String]
617
+ attr_accessor :network_uri
618
+
619
+ # Priority of the firewall rule.
620
+ # Corresponds to the JSON property `priority`
621
+ # @return [Fixnum]
622
+ attr_accessor :priority
623
+
624
+ # Target service accounts of the firewall rule.
625
+ # Corresponds to the JSON property `targetServiceAccounts`
626
+ # @return [Array<String>]
627
+ attr_accessor :target_service_accounts
628
+
629
+ # Target tags of the firewall rule.
630
+ # Corresponds to the JSON property `targetTags`
631
+ # @return [Array<String>]
632
+ attr_accessor :target_tags
633
+
634
+ # URI of a Compute Engine firewall rule.
635
+ # Implied default rule does not have URI.
636
+ # Corresponds to the JSON property `uri`
637
+ # @return [String]
638
+ attr_accessor :uri
639
+
640
+ def initialize(**args)
641
+ update!(**args)
642
+ end
643
+
644
+ # Update properties of this object
645
+ def update!(**args)
646
+ @action = args[:action] if args.key?(:action)
647
+ @direction = args[:direction] if args.key?(:direction)
648
+ @display_name = args[:display_name] if args.key?(:display_name)
649
+ @network_uri = args[:network_uri] if args.key?(:network_uri)
650
+ @priority = args[:priority] if args.key?(:priority)
651
+ @target_service_accounts = args[:target_service_accounts] if args.key?(:target_service_accounts)
652
+ @target_tags = args[:target_tags] if args.key?(:target_tags)
653
+ @uri = args[:uri] if args.key?(:uri)
654
+ end
655
+ end
656
+
657
+ # Details of the final state "forward" and associated resource.
658
+ class ForwardInfo
659
+ include Google::Apis::Core::Hashable
660
+
661
+ # URI of the resource that the packet is forwarded to.
662
+ # Corresponds to the JSON property `resourceUri`
663
+ # @return [String]
664
+ attr_accessor :resource_uri
665
+
666
+ # Target type where this packet is forwarded to.
667
+ # Corresponds to the JSON property `target`
668
+ # @return [String]
669
+ attr_accessor :target
670
+
671
+ def initialize(**args)
672
+ update!(**args)
673
+ end
674
+
675
+ # Update properties of this object
676
+ def update!(**args)
677
+ @resource_uri = args[:resource_uri] if args.key?(:resource_uri)
678
+ @target = args[:target] if args.key?(:target)
679
+ end
680
+ end
681
+
682
+ # For display only. Metadata associated with a Compute Engine forwarding rule.
683
+ class ForwardingRuleInfo
684
+ include Google::Apis::Core::Hashable
685
+
686
+ # Name of a Compute Engine forwarding rule.
687
+ # Corresponds to the JSON property `displayName`
688
+ # @return [String]
689
+ attr_accessor :display_name
690
+
691
+ # Port range defined in the forwarding rule that matches the test.
692
+ # Corresponds to the JSON property `matchedPortRange`
693
+ # @return [String]
694
+ attr_accessor :matched_port_range
695
+
696
+ # Protocol defined in the forwarding rule that matches the test.
697
+ # Corresponds to the JSON property `matchedProtocol`
698
+ # @return [String]
699
+ attr_accessor :matched_protocol
700
+
701
+ # Network URI. Only valid for Internal Load Balancer.
702
+ # Corresponds to the JSON property `networkUri`
703
+ # @return [String]
704
+ attr_accessor :network_uri
705
+
706
+ # Target type of the forwarding rule.
707
+ # Corresponds to the JSON property `target`
708
+ # @return [String]
709
+ attr_accessor :target
710
+
711
+ # URI of a Compute Engine forwarding rule.
712
+ # Corresponds to the JSON property `uri`
713
+ # @return [String]
714
+ attr_accessor :uri
715
+
716
+ # VIP of the forwarding rule.
717
+ # Corresponds to the JSON property `vip`
718
+ # @return [String]
719
+ attr_accessor :vip
720
+
721
+ def initialize(**args)
722
+ update!(**args)
723
+ end
724
+
725
+ # Update properties of this object
726
+ def update!(**args)
727
+ @display_name = args[:display_name] if args.key?(:display_name)
728
+ @matched_port_range = args[:matched_port_range] if args.key?(:matched_port_range)
729
+ @matched_protocol = args[:matched_protocol] if args.key?(:matched_protocol)
730
+ @network_uri = args[:network_uri] if args.key?(:network_uri)
731
+ @target = args[:target] if args.key?(:target)
732
+ @uri = args[:uri] if args.key?(:uri)
733
+ @vip = args[:vip] if args.key?(:vip)
734
+ end
735
+ end
736
+
737
+ # For display only. Metadata associated with a Compute Engine instance.
738
+ class InstanceInfo
739
+ include Google::Apis::Core::Hashable
740
+
741
+ # Name of a Compute Engine instance.
742
+ # Corresponds to the JSON property `displayName`
743
+ # @return [String]
744
+ attr_accessor :display_name
745
+
746
+ # External IP address of the network interface.
747
+ # Corresponds to the JSON property `externalIp`
748
+ # @return [String]
749
+ attr_accessor :external_ip
750
+
751
+ # Name of the network interface of a Compute Engine instance.
752
+ # Corresponds to the JSON property `interface`
753
+ # @return [String]
754
+ attr_accessor :interface
755
+
756
+ # Internal IP address of the network interface.
757
+ # Corresponds to the JSON property `internalIp`
758
+ # @return [String]
759
+ attr_accessor :internal_ip
760
+
761
+ # Network tags configured on the instance.
762
+ # Corresponds to the JSON property `networkTags`
763
+ # @return [Array<String>]
764
+ attr_accessor :network_tags
765
+
766
+ # URI of a Compute Engine network.
767
+ # Corresponds to the JSON property `networkUri`
768
+ # @return [String]
769
+ attr_accessor :network_uri
770
+
771
+ # Service account authorized for the instance.
772
+ # Corresponds to the JSON property `serviceAccount`
773
+ # @return [String]
774
+ attr_accessor :service_account
775
+
776
+ # URI of a Compute Engine instance.
777
+ # Corresponds to the JSON property `uri`
778
+ # @return [String]
779
+ attr_accessor :uri
780
+
781
+ def initialize(**args)
782
+ update!(**args)
783
+ end
784
+
785
+ # Update properties of this object
786
+ def update!(**args)
787
+ @display_name = args[:display_name] if args.key?(:display_name)
788
+ @external_ip = args[:external_ip] if args.key?(:external_ip)
789
+ @interface = args[:interface] if args.key?(:interface)
790
+ @internal_ip = args[:internal_ip] if args.key?(:internal_ip)
791
+ @network_tags = args[:network_tags] if args.key?(:network_tags)
792
+ @network_uri = args[:network_uri] if args.key?(:network_uri)
793
+ @service_account = args[:service_account] if args.key?(:service_account)
794
+ @uri = args[:uri] if args.key?(:uri)
795
+ end
796
+ end
797
+
798
+ # Response for the `ListConnectivityTests` method.
799
+ class ListConnectivityTestsResponse
800
+ include Google::Apis::Core::Hashable
801
+
802
+ # Page token to fetch the next set of Connectivity Tests.
803
+ # Corresponds to the JSON property `nextPageToken`
804
+ # @return [String]
805
+ attr_accessor :next_page_token
806
+
807
+ # List of Connectivity Tests.
808
+ # Corresponds to the JSON property `resources`
809
+ # @return [Array<Google::Apis::NetworkmanagementV1::ConnectivityTest>]
810
+ attr_accessor :resources
811
+
812
+ # Locations that could not be reached (when querying all locations with `-`).
813
+ # Corresponds to the JSON property `unreachable`
814
+ # @return [Array<String>]
815
+ attr_accessor :unreachable
816
+
817
+ def initialize(**args)
818
+ update!(**args)
819
+ end
820
+
821
+ # Update properties of this object
822
+ def update!(**args)
823
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
824
+ @resources = args[:resources] if args.key?(:resources)
825
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
826
+ end
827
+ end
828
+
829
+ # The response message for Locations.ListLocations.
830
+ class ListLocationsResponse
831
+ include Google::Apis::Core::Hashable
832
+
833
+ # A list of locations that matches the specified filter in the request.
834
+ # Corresponds to the JSON property `locations`
835
+ # @return [Array<Google::Apis::NetworkmanagementV1::Location>]
836
+ attr_accessor :locations
837
+
838
+ # The standard List next-page token.
839
+ # Corresponds to the JSON property `nextPageToken`
840
+ # @return [String]
841
+ attr_accessor :next_page_token
842
+
843
+ def initialize(**args)
844
+ update!(**args)
845
+ end
846
+
847
+ # Update properties of this object
848
+ def update!(**args)
849
+ @locations = args[:locations] if args.key?(:locations)
850
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
851
+ end
852
+ end
853
+
854
+ # The response message for Operations.ListOperations.
855
+ class ListOperationsResponse
856
+ include Google::Apis::Core::Hashable
857
+
858
+ # The standard List next-page token.
859
+ # Corresponds to the JSON property `nextPageToken`
860
+ # @return [String]
861
+ attr_accessor :next_page_token
862
+
863
+ # A list of operations that matches the specified filter in the request.
864
+ # Corresponds to the JSON property `operations`
865
+ # @return [Array<Google::Apis::NetworkmanagementV1::Operation>]
866
+ attr_accessor :operations
867
+
868
+ def initialize(**args)
869
+ update!(**args)
870
+ end
871
+
872
+ # Update properties of this object
873
+ def update!(**args)
874
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
875
+ @operations = args[:operations] if args.key?(:operations)
876
+ end
877
+ end
878
+
879
+ # For display only. Metadata associated with a specific load balancer backend.
880
+ class LoadBalancerBackend
881
+ include Google::Apis::Core::Hashable
882
+
883
+ # Name of a Compute Engine instance or network endpoint.
884
+ # Corresponds to the JSON property `displayName`
885
+ # @return [String]
886
+ attr_accessor :display_name
887
+
888
+ # A list of firewall rule URIs allowing probes from health check IP ranges.
889
+ # Corresponds to the JSON property `healthCheckAllowingFirewallRules`
890
+ # @return [Array<String>]
891
+ attr_accessor :health_check_allowing_firewall_rules
892
+
893
+ # A list of firewall rule URIs blocking probes from health check IP ranges.
894
+ # Corresponds to the JSON property `healthCheckBlockingFirewallRules`
895
+ # @return [Array<String>]
896
+ attr_accessor :health_check_blocking_firewall_rules
897
+
898
+ # State of the health check firewall configuration.
899
+ # Corresponds to the JSON property `healthCheckFirewallState`
900
+ # @return [String]
901
+ attr_accessor :health_check_firewall_state
902
+
903
+ # URI of a Compute Engine instance or network endpoint.
904
+ # Corresponds to the JSON property `uri`
905
+ # @return [String]
906
+ attr_accessor :uri
907
+
908
+ def initialize(**args)
909
+ update!(**args)
910
+ end
911
+
912
+ # Update properties of this object
913
+ def update!(**args)
914
+ @display_name = args[:display_name] if args.key?(:display_name)
915
+ @health_check_allowing_firewall_rules = args[:health_check_allowing_firewall_rules] if args.key?(:health_check_allowing_firewall_rules)
916
+ @health_check_blocking_firewall_rules = args[:health_check_blocking_firewall_rules] if args.key?(:health_check_blocking_firewall_rules)
917
+ @health_check_firewall_state = args[:health_check_firewall_state] if args.key?(:health_check_firewall_state)
918
+ @uri = args[:uri] if args.key?(:uri)
919
+ end
920
+ end
921
+
922
+ # For display only. Metadata associated with a load balancer.
923
+ class LoadBalancerInfo
924
+ include Google::Apis::Core::Hashable
925
+
926
+ # Type of load balancer's backend configuration.
927
+ # Corresponds to the JSON property `backendType`
928
+ # @return [String]
929
+ attr_accessor :backend_type
930
+
931
+ # Backend configuration URI.
932
+ # Corresponds to the JSON property `backendUri`
933
+ # @return [String]
934
+ attr_accessor :backend_uri
935
+
936
+ # Information for the loadbalancer backends.
937
+ # Corresponds to the JSON property `backends`
938
+ # @return [Array<Google::Apis::NetworkmanagementV1::LoadBalancerBackend>]
939
+ attr_accessor :backends
940
+
941
+ # URI of the health check for the load balancer.
942
+ # Corresponds to the JSON property `healthCheckUri`
943
+ # @return [String]
944
+ attr_accessor :health_check_uri
945
+
946
+ # Type of the load balancer.
947
+ # Corresponds to the JSON property `loadBalancerType`
948
+ # @return [String]
949
+ attr_accessor :load_balancer_type
950
+
951
+ def initialize(**args)
952
+ update!(**args)
953
+ end
954
+
955
+ # Update properties of this object
956
+ def update!(**args)
957
+ @backend_type = args[:backend_type] if args.key?(:backend_type)
958
+ @backend_uri = args[:backend_uri] if args.key?(:backend_uri)
959
+ @backends = args[:backends] if args.key?(:backends)
960
+ @health_check_uri = args[:health_check_uri] if args.key?(:health_check_uri)
961
+ @load_balancer_type = args[:load_balancer_type] if args.key?(:load_balancer_type)
962
+ end
963
+ end
964
+
965
+ # A resource that represents Google Cloud Platform location.
966
+ class Location
967
+ include Google::Apis::Core::Hashable
968
+
969
+ # The friendly name for this location, typically a nearby city name.
970
+ # For example, "Tokyo".
971
+ # Corresponds to the JSON property `displayName`
972
+ # @return [String]
973
+ attr_accessor :display_name
974
+
975
+ # Cross-service attributes for the location. For example
976
+ # `"cloud.googleapis.com/region": "us-east1"`
977
+ # Corresponds to the JSON property `labels`
978
+ # @return [Hash<String,String>]
979
+ attr_accessor :labels
980
+
981
+ # The canonical id for this location. For example: `"us-east1"`.
982
+ # Corresponds to the JSON property `locationId`
983
+ # @return [String]
984
+ attr_accessor :location_id
985
+
986
+ # Service-specific metadata. For example the available capacity at the given
987
+ # location.
988
+ # Corresponds to the JSON property `metadata`
989
+ # @return [Hash<String,Object>]
990
+ attr_accessor :metadata
991
+
992
+ # Resource name for the location, which may vary between implementations.
993
+ # For example: `"projects/example-project/locations/us-east1"`
994
+ # Corresponds to the JSON property `name`
995
+ # @return [String]
996
+ attr_accessor :name
997
+
998
+ def initialize(**args)
999
+ update!(**args)
1000
+ end
1001
+
1002
+ # Update properties of this object
1003
+ def update!(**args)
1004
+ @display_name = args[:display_name] if args.key?(:display_name)
1005
+ @labels = args[:labels] if args.key?(:labels)
1006
+ @location_id = args[:location_id] if args.key?(:location_id)
1007
+ @metadata = args[:metadata] if args.key?(:metadata)
1008
+ @name = args[:name] if args.key?(:name)
1009
+ end
1010
+ end
1011
+
1012
+ # For display only. Metadata associated with a Compute Engine network.
1013
+ class NetworkInfo
1014
+ include Google::Apis::Core::Hashable
1015
+
1016
+ # Name of a Compute Engine network.
1017
+ # Corresponds to the JSON property `displayName`
1018
+ # @return [String]
1019
+ attr_accessor :display_name
1020
+
1021
+ # The IP range that matches the test.
1022
+ # Corresponds to the JSON property `matchedIpRange`
1023
+ # @return [String]
1024
+ attr_accessor :matched_ip_range
1025
+
1026
+ # URI of a Compute Engine network.
1027
+ # Corresponds to the JSON property `uri`
1028
+ # @return [String]
1029
+ attr_accessor :uri
1030
+
1031
+ def initialize(**args)
1032
+ update!(**args)
1033
+ end
1034
+
1035
+ # Update properties of this object
1036
+ def update!(**args)
1037
+ @display_name = args[:display_name] if args.key?(:display_name)
1038
+ @matched_ip_range = args[:matched_ip_range] if args.key?(:matched_ip_range)
1039
+ @uri = args[:uri] if args.key?(:uri)
1040
+ end
1041
+ end
1042
+
1043
+ # This resource represents a long-running operation that is the result of a
1044
+ # network API call.
1045
+ class Operation
1046
+ include Google::Apis::Core::Hashable
1047
+
1048
+ # If the value is `false`, it means the operation is still in progress.
1049
+ # If `true`, the operation is completed, and either `error` or `response` is
1050
+ # available.
1051
+ # Corresponds to the JSON property `done`
1052
+ # @return [Boolean]
1053
+ attr_accessor :done
1054
+ alias_method :done?, :done
1055
+
1056
+ # The `Status` type defines a logical error model that is suitable for
1057
+ # different programming environments, including REST APIs and RPC APIs. It is
1058
+ # used by [gRPC](https://github.com/grpc). Each `Status` message contains
1059
+ # three pieces of data: error code, error message, and error details.
1060
+ # You can find out more about this error model and how to work with it in the
1061
+ # [API Design Guide](https://cloud.google.com/apis/design/errors).
1062
+ # Corresponds to the JSON property `error`
1063
+ # @return [Google::Apis::NetworkmanagementV1::Status]
1064
+ attr_accessor :error
1065
+
1066
+ # Service-specific metadata associated with the operation. It typically
1067
+ # contains progress information and common metadata such as create time.
1068
+ # Some services might not provide such metadata. Any method that returns a
1069
+ # long-running operation should document the metadata type, if any.
1070
+ # Corresponds to the JSON property `metadata`
1071
+ # @return [Hash<String,Object>]
1072
+ attr_accessor :metadata
1073
+
1074
+ # The server-assigned name, which is only unique within the same service that
1075
+ # originally returns it. If you use the default HTTP mapping, the
1076
+ # `name` should be a resource name ending with `operations/`unique_id``.
1077
+ # Corresponds to the JSON property `name`
1078
+ # @return [String]
1079
+ attr_accessor :name
1080
+
1081
+ # The normal response of the operation in case of success. If the original
1082
+ # method returns no data on success, such as `Delete`, the response is
1083
+ # `google.protobuf.Empty`. If the original method is standard
1084
+ # `Get`/`Create`/`Update`, the response should be the resource. For other
1085
+ # methods, the response should have the type `XxxResponse`, where `Xxx`
1086
+ # is the original method name. For example, if the original method name
1087
+ # is `TakeSnapshot()`, the inferred response type is
1088
+ # `TakeSnapshotResponse`.
1089
+ # Corresponds to the JSON property `response`
1090
+ # @return [Hash<String,Object>]
1091
+ attr_accessor :response
1092
+
1093
+ def initialize(**args)
1094
+ update!(**args)
1095
+ end
1096
+
1097
+ # Update properties of this object
1098
+ def update!(**args)
1099
+ @done = args[:done] if args.key?(:done)
1100
+ @error = args[:error] if args.key?(:error)
1101
+ @metadata = args[:metadata] if args.key?(:metadata)
1102
+ @name = args[:name] if args.key?(:name)
1103
+ @response = args[:response] if args.key?(:response)
1104
+ end
1105
+ end
1106
+
1107
+ # Metadata describing an Operation
1108
+ class OperationMetadata
1109
+ include Google::Apis::Core::Hashable
1110
+
1111
+ # API version.
1112
+ # Corresponds to the JSON property `apiVersion`
1113
+ # @return [String]
1114
+ attr_accessor :api_version
1115
+
1116
+ # Specifies if cancellation was requested for the operation.
1117
+ # Corresponds to the JSON property `cancelRequested`
1118
+ # @return [Boolean]
1119
+ attr_accessor :cancel_requested
1120
+ alias_method :cancel_requested?, :cancel_requested
1121
+
1122
+ # The time the operation was created.
1123
+ # Corresponds to the JSON property `createTime`
1124
+ # @return [String]
1125
+ attr_accessor :create_time
1126
+
1127
+ # The time the operation finished running.
1128
+ # Corresponds to the JSON property `endTime`
1129
+ # @return [String]
1130
+ attr_accessor :end_time
1131
+
1132
+ # Human-readable status of the operation, if any.
1133
+ # Corresponds to the JSON property `statusDetail`
1134
+ # @return [String]
1135
+ attr_accessor :status_detail
1136
+
1137
+ # Target of the operation - for example
1138
+ # projects/project-1/locations/global/connectivityTests/test-1
1139
+ # Corresponds to the JSON property `target`
1140
+ # @return [String]
1141
+ attr_accessor :target
1142
+
1143
+ # Name of the verb executed by the operation.
1144
+ # Corresponds to the JSON property `verb`
1145
+ # @return [String]
1146
+ attr_accessor :verb
1147
+
1148
+ def initialize(**args)
1149
+ update!(**args)
1150
+ end
1151
+
1152
+ # Update properties of this object
1153
+ def update!(**args)
1154
+ @api_version = args[:api_version] if args.key?(:api_version)
1155
+ @cancel_requested = args[:cancel_requested] if args.key?(:cancel_requested)
1156
+ @create_time = args[:create_time] if args.key?(:create_time)
1157
+ @end_time = args[:end_time] if args.key?(:end_time)
1158
+ @status_detail = args[:status_detail] if args.key?(:status_detail)
1159
+ @target = args[:target] if args.key?(:target)
1160
+ @verb = args[:verb] if args.key?(:verb)
1161
+ end
1162
+ end
1163
+
1164
+ # An Identity and Access Management (IAM) policy, which specifies access
1165
+ # controls for Google Cloud resources.
1166
+ # A `Policy` is a collection of `bindings`. A `binding` binds one or more
1167
+ # `members` to a single `role`. Members can be user accounts, service accounts,
1168
+ # Google groups, and domains (such as G Suite). A `role` is a named list of
1169
+ # permissions; each `role` can be an IAM predefined role or a user-created
1170
+ # custom role.
1171
+ # For some types of Google Cloud resources, a `binding` can also specify a
1172
+ # `condition`, which is a logical expression that allows access to a resource
1173
+ # only if the expression evaluates to `true`. A condition can add constraints
1174
+ # based on attributes of the request, the resource, or both. To learn which
1175
+ # resources support conditions in their IAM policies, see the
1176
+ # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-
1177
+ # policies).
1178
+ # **JSON example:**
1179
+ # `
1180
+ # "bindings": [
1181
+ # `
1182
+ # "role": "roles/resourcemanager.organizationAdmin",
1183
+ # "members": [
1184
+ # "user:mike@example.com",
1185
+ # "group:admins@example.com",
1186
+ # "domain:google.com",
1187
+ # "serviceAccount:my-project-id@appspot.gserviceaccount.com"
1188
+ # ]
1189
+ # `,
1190
+ # `
1191
+ # "role": "roles/resourcemanager.organizationViewer",
1192
+ # "members": [
1193
+ # "user:eve@example.com"
1194
+ # ],
1195
+ # "condition": `
1196
+ # "title": "expirable access",
1197
+ # "description": "Does not grant access after Sep 2020",
1198
+ # "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')
1199
+ # ",
1200
+ # `
1201
+ # `
1202
+ # ],
1203
+ # "etag": "BwWWja0YfJA=",
1204
+ # "version": 3
1205
+ # `
1206
+ # **YAML example:**
1207
+ # bindings:
1208
+ # - members:
1209
+ # - user:mike@example.com
1210
+ # - group:admins@example.com
1211
+ # - domain:google.com
1212
+ # - serviceAccount:my-project-id@appspot.gserviceaccount.com
1213
+ # role: roles/resourcemanager.organizationAdmin
1214
+ # - members:
1215
+ # - user:eve@example.com
1216
+ # role: roles/resourcemanager.organizationViewer
1217
+ # condition:
1218
+ # title: expirable access
1219
+ # description: Does not grant access after Sep 2020
1220
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
1221
+ # - etag: BwWWja0YfJA=
1222
+ # - version: 3
1223
+ # For a description of IAM and its features, see the
1224
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
1225
+ class Policy
1226
+ include Google::Apis::Core::Hashable
1227
+
1228
+ # Specifies cloud audit logging configuration for this policy.
1229
+ # Corresponds to the JSON property `auditConfigs`
1230
+ # @return [Array<Google::Apis::NetworkmanagementV1::AuditConfig>]
1231
+ attr_accessor :audit_configs
1232
+
1233
+ # Associates a list of `members` to a `role`. Optionally, may specify a
1234
+ # `condition` that determines how and when the `bindings` are applied. Each
1235
+ # of the `bindings` must contain at least one member.
1236
+ # Corresponds to the JSON property `bindings`
1237
+ # @return [Array<Google::Apis::NetworkmanagementV1::Binding>]
1238
+ attr_accessor :bindings
1239
+
1240
+ # `etag` is used for optimistic concurrency control as a way to help
1241
+ # prevent simultaneous updates of a policy from overwriting each other.
1242
+ # It is strongly suggested that systems make use of the `etag` in the
1243
+ # read-modify-write cycle to perform policy updates in order to avoid race
1244
+ # conditions: An `etag` is returned in the response to `getIamPolicy`, and
1245
+ # systems are expected to put that etag in the request to `setIamPolicy` to
1246
+ # ensure that their change will be applied to the same version of the policy.
1247
+ # **Important:** If you use IAM Conditions, you must include the `etag` field
1248
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
1249
+ # you to overwrite a version `3` policy with a version `1` policy, and all of
1250
+ # the conditions in the version `3` policy are lost.
1251
+ # Corresponds to the JSON property `etag`
1252
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1253
+ # @return [String]
1254
+ attr_accessor :etag
1255
+
1256
+ # Specifies the format of the policy.
1257
+ # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
1258
+ # are rejected.
1259
+ # Any operation that affects conditional role bindings must specify version
1260
+ # `3`. This requirement applies to the following operations:
1261
+ # * Getting a policy that includes a conditional role binding
1262
+ # * Adding a conditional role binding to a policy
1263
+ # * Changing a conditional role binding in a policy
1264
+ # * Removing any role binding, with or without a condition, from a policy
1265
+ # that includes conditions
1266
+ # **Important:** If you use IAM Conditions, you must include the `etag` field
1267
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
1268
+ # you to overwrite a version `3` policy with a version `1` policy, and all of
1269
+ # the conditions in the version `3` policy are lost.
1270
+ # If a policy does not include any conditions, operations on that policy may
1271
+ # specify any valid version or leave the field unset.
1272
+ # To learn which resources support conditions in their IAM policies, see the
1273
+ # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-
1274
+ # policies).
1275
+ # Corresponds to the JSON property `version`
1276
+ # @return [Fixnum]
1277
+ attr_accessor :version
1278
+
1279
+ def initialize(**args)
1280
+ update!(**args)
1281
+ end
1282
+
1283
+ # Update properties of this object
1284
+ def update!(**args)
1285
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
1286
+ @bindings = args[:bindings] if args.key?(:bindings)
1287
+ @etag = args[:etag] if args.key?(:etag)
1288
+ @version = args[:version] if args.key?(:version)
1289
+ end
1290
+ end
1291
+
1292
+ # The details of reachability state from the latest run.
1293
+ class ReachabilityDetails
1294
+ include Google::Apis::Core::Hashable
1295
+
1296
+ # The `Status` type defines a logical error model that is suitable for
1297
+ # different programming environments, including REST APIs and RPC APIs. It is
1298
+ # used by [gRPC](https://github.com/grpc). Each `Status` message contains
1299
+ # three pieces of data: error code, error message, and error details.
1300
+ # You can find out more about this error model and how to work with it in the
1301
+ # [API Design Guide](https://cloud.google.com/apis/design/errors).
1302
+ # Corresponds to the JSON property `error`
1303
+ # @return [Google::Apis::NetworkmanagementV1::Status]
1304
+ attr_accessor :error
1305
+
1306
+ # The overall reachability result of the test.
1307
+ # Corresponds to the JSON property `result`
1308
+ # @return [String]
1309
+ attr_accessor :result
1310
+
1311
+ # Result may contain a list of traces if a test has multiple possible
1312
+ # paths in the network, such as when destination endpoint is a load balancer
1313
+ # with multiple backends.
1314
+ # Corresponds to the JSON property `traces`
1315
+ # @return [Array<Google::Apis::NetworkmanagementV1::Trace>]
1316
+ attr_accessor :traces
1317
+
1318
+ # The time the reachability state was verified.
1319
+ # Corresponds to the JSON property `verifyTime`
1320
+ # @return [String]
1321
+ attr_accessor :verify_time
1322
+
1323
+ def initialize(**args)
1324
+ update!(**args)
1325
+ end
1326
+
1327
+ # Update properties of this object
1328
+ def update!(**args)
1329
+ @error = args[:error] if args.key?(:error)
1330
+ @result = args[:result] if args.key?(:result)
1331
+ @traces = args[:traces] if args.key?(:traces)
1332
+ @verify_time = args[:verify_time] if args.key?(:verify_time)
1333
+ end
1334
+ end
1335
+
1336
+ # Request for the `RerunConnectivityTest` method.
1337
+ class RerunConnectivityTestRequest
1338
+ include Google::Apis::Core::Hashable
1339
+
1340
+ def initialize(**args)
1341
+ update!(**args)
1342
+ end
1343
+
1344
+ # Update properties of this object
1345
+ def update!(**args)
1346
+ end
1347
+ end
1348
+
1349
+ # For display only. Metadata associated with a Compute Engine route.
1350
+ class RouteInfo
1351
+ include Google::Apis::Core::Hashable
1352
+
1353
+ # Destination IP range of the route.
1354
+ # Corresponds to the JSON property `destIpRange`
1355
+ # @return [String]
1356
+ attr_accessor :dest_ip_range
1357
+
1358
+ # Name of a Compute Engine route.
1359
+ # Corresponds to the JSON property `displayName`
1360
+ # @return [String]
1361
+ attr_accessor :display_name
1362
+
1363
+ # Instance tags of the route.
1364
+ # Corresponds to the JSON property `instanceTags`
1365
+ # @return [Array<String>]
1366
+ attr_accessor :instance_tags
1367
+
1368
+ # URI of a Compute Engine network.
1369
+ # Corresponds to the JSON property `networkUri`
1370
+ # @return [String]
1371
+ attr_accessor :network_uri
1372
+
1373
+ # Next hop of the route.
1374
+ # Corresponds to the JSON property `nextHop`
1375
+ # @return [String]
1376
+ attr_accessor :next_hop
1377
+
1378
+ # Type of next hop.
1379
+ # Corresponds to the JSON property `nextHopType`
1380
+ # @return [String]
1381
+ attr_accessor :next_hop_type
1382
+
1383
+ # Priority of the route.
1384
+ # Corresponds to the JSON property `priority`
1385
+ # @return [Fixnum]
1386
+ attr_accessor :priority
1387
+
1388
+ # Type of route.
1389
+ # Corresponds to the JSON property `routeType`
1390
+ # @return [String]
1391
+ attr_accessor :route_type
1392
+
1393
+ # URI of a Compute Engine route.
1394
+ # Dynamic route from cloud router does not have a URI.
1395
+ # Advertised route from Google Cloud VPC to on-premises network also does
1396
+ # not have a URI.
1397
+ # Corresponds to the JSON property `uri`
1398
+ # @return [String]
1399
+ attr_accessor :uri
1400
+
1401
+ def initialize(**args)
1402
+ update!(**args)
1403
+ end
1404
+
1405
+ # Update properties of this object
1406
+ def update!(**args)
1407
+ @dest_ip_range = args[:dest_ip_range] if args.key?(:dest_ip_range)
1408
+ @display_name = args[:display_name] if args.key?(:display_name)
1409
+ @instance_tags = args[:instance_tags] if args.key?(:instance_tags)
1410
+ @network_uri = args[:network_uri] if args.key?(:network_uri)
1411
+ @next_hop = args[:next_hop] if args.key?(:next_hop)
1412
+ @next_hop_type = args[:next_hop_type] if args.key?(:next_hop_type)
1413
+ @priority = args[:priority] if args.key?(:priority)
1414
+ @route_type = args[:route_type] if args.key?(:route_type)
1415
+ @uri = args[:uri] if args.key?(:uri)
1416
+ end
1417
+ end
1418
+
1419
+ # Request message for `SetIamPolicy` method.
1420
+ class SetIamPolicyRequest
1421
+ include Google::Apis::Core::Hashable
1422
+
1423
+ # An Identity and Access Management (IAM) policy, which specifies access
1424
+ # controls for Google Cloud resources.
1425
+ # A `Policy` is a collection of `bindings`. A `binding` binds one or more
1426
+ # `members` to a single `role`. Members can be user accounts, service accounts,
1427
+ # Google groups, and domains (such as G Suite). A `role` is a named list of
1428
+ # permissions; each `role` can be an IAM predefined role or a user-created
1429
+ # custom role.
1430
+ # For some types of Google Cloud resources, a `binding` can also specify a
1431
+ # `condition`, which is a logical expression that allows access to a resource
1432
+ # only if the expression evaluates to `true`. A condition can add constraints
1433
+ # based on attributes of the request, the resource, or both. To learn which
1434
+ # resources support conditions in their IAM policies, see the
1435
+ # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-
1436
+ # policies).
1437
+ # **JSON example:**
1438
+ # `
1439
+ # "bindings": [
1440
+ # `
1441
+ # "role": "roles/resourcemanager.organizationAdmin",
1442
+ # "members": [
1443
+ # "user:mike@example.com",
1444
+ # "group:admins@example.com",
1445
+ # "domain:google.com",
1446
+ # "serviceAccount:my-project-id@appspot.gserviceaccount.com"
1447
+ # ]
1448
+ # `,
1449
+ # `
1450
+ # "role": "roles/resourcemanager.organizationViewer",
1451
+ # "members": [
1452
+ # "user:eve@example.com"
1453
+ # ],
1454
+ # "condition": `
1455
+ # "title": "expirable access",
1456
+ # "description": "Does not grant access after Sep 2020",
1457
+ # "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')
1458
+ # ",
1459
+ # `
1460
+ # `
1461
+ # ],
1462
+ # "etag": "BwWWja0YfJA=",
1463
+ # "version": 3
1464
+ # `
1465
+ # **YAML example:**
1466
+ # bindings:
1467
+ # - members:
1468
+ # - user:mike@example.com
1469
+ # - group:admins@example.com
1470
+ # - domain:google.com
1471
+ # - serviceAccount:my-project-id@appspot.gserviceaccount.com
1472
+ # role: roles/resourcemanager.organizationAdmin
1473
+ # - members:
1474
+ # - user:eve@example.com
1475
+ # role: roles/resourcemanager.organizationViewer
1476
+ # condition:
1477
+ # title: expirable access
1478
+ # description: Does not grant access after Sep 2020
1479
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
1480
+ # - etag: BwWWja0YfJA=
1481
+ # - version: 3
1482
+ # For a description of IAM and its features, see the
1483
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
1484
+ # Corresponds to the JSON property `policy`
1485
+ # @return [Google::Apis::NetworkmanagementV1::Policy]
1486
+ attr_accessor :policy
1487
+
1488
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
1489
+ # the fields in the mask will be modified. If no mask is provided, the
1490
+ # following default mask is used:
1491
+ # `paths: "bindings, etag"`
1492
+ # Corresponds to the JSON property `updateMask`
1493
+ # @return [String]
1494
+ attr_accessor :update_mask
1495
+
1496
+ def initialize(**args)
1497
+ update!(**args)
1498
+ end
1499
+
1500
+ # Update properties of this object
1501
+ def update!(**args)
1502
+ @policy = args[:policy] if args.key?(:policy)
1503
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
1504
+ end
1505
+ end
1506
+
1507
+ # The `Status` type defines a logical error model that is suitable for
1508
+ # different programming environments, including REST APIs and RPC APIs. It is
1509
+ # used by [gRPC](https://github.com/grpc). Each `Status` message contains
1510
+ # three pieces of data: error code, error message, and error details.
1511
+ # You can find out more about this error model and how to work with it in the
1512
+ # [API Design Guide](https://cloud.google.com/apis/design/errors).
1513
+ class Status
1514
+ include Google::Apis::Core::Hashable
1515
+
1516
+ # The status code, which should be an enum value of google.rpc.Code.
1517
+ # Corresponds to the JSON property `code`
1518
+ # @return [Fixnum]
1519
+ attr_accessor :code
1520
+
1521
+ # A list of messages that carry the error details. There is a common set of
1522
+ # message types for APIs to use.
1523
+ # Corresponds to the JSON property `details`
1524
+ # @return [Array<Hash<String,Object>>]
1525
+ attr_accessor :details
1526
+
1527
+ # A developer-facing error message, which should be in English. Any
1528
+ # user-facing error message should be localized and sent in the
1529
+ # google.rpc.Status.details field, or localized by the client.
1530
+ # Corresponds to the JSON property `message`
1531
+ # @return [String]
1532
+ attr_accessor :message
1533
+
1534
+ def initialize(**args)
1535
+ update!(**args)
1536
+ end
1537
+
1538
+ # Update properties of this object
1539
+ def update!(**args)
1540
+ @code = args[:code] if args.key?(:code)
1541
+ @details = args[:details] if args.key?(:details)
1542
+ @message = args[:message] if args.key?(:message)
1543
+ end
1544
+ end
1545
+
1546
+ # A simulated forwarding path is composed of multiple steps.
1547
+ # Each step has a well-defined state and an associated configuration.
1548
+ class Step
1549
+ include Google::Apis::Core::Hashable
1550
+
1551
+ # Details of the final state "abort" and associated resource.
1552
+ # Corresponds to the JSON property `abort`
1553
+ # @return [Google::Apis::NetworkmanagementV1::AbortInfo]
1554
+ attr_accessor :abort
1555
+
1556
+ # This is a step that leads to the final state Drop.
1557
+ # Corresponds to the JSON property `causesDrop`
1558
+ # @return [Boolean]
1559
+ attr_accessor :causes_drop
1560
+ alias_method :causes_drop?, :causes_drop
1561
+
1562
+ # Details of the final state "deliver" and associated resource.
1563
+ # Corresponds to the JSON property `deliver`
1564
+ # @return [Google::Apis::NetworkmanagementV1::DeliverInfo]
1565
+ attr_accessor :deliver
1566
+
1567
+ # A description of the step. Usually this is a summary of the state.
1568
+ # Corresponds to the JSON property `description`
1569
+ # @return [String]
1570
+ attr_accessor :description
1571
+
1572
+ # Details of the final state "drop" and associated resource.
1573
+ # Corresponds to the JSON property `drop`
1574
+ # @return [Google::Apis::NetworkmanagementV1::DropInfo]
1575
+ attr_accessor :drop
1576
+
1577
+ # For display only. The specification of the endpoints for the test.
1578
+ # EndpointInfo is derived from source and destination Endpoint and validated
1579
+ # by the backend data plane model.
1580
+ # Corresponds to the JSON property `endpoint`
1581
+ # @return [Google::Apis::NetworkmanagementV1::EndpointInfo]
1582
+ attr_accessor :endpoint
1583
+
1584
+ # For display only. Metadata associated with a Compute Engine firewall rule.
1585
+ # Corresponds to the JSON property `firewall`
1586
+ # @return [Google::Apis::NetworkmanagementV1::FirewallInfo]
1587
+ attr_accessor :firewall
1588
+
1589
+ # Details of the final state "forward" and associated resource.
1590
+ # Corresponds to the JSON property `forward`
1591
+ # @return [Google::Apis::NetworkmanagementV1::ForwardInfo]
1592
+ attr_accessor :forward
1593
+
1594
+ # For display only. Metadata associated with a Compute Engine forwarding rule.
1595
+ # Corresponds to the JSON property `forwardingRule`
1596
+ # @return [Google::Apis::NetworkmanagementV1::ForwardingRuleInfo]
1597
+ attr_accessor :forwarding_rule
1598
+
1599
+ # For display only. Metadata associated with a Compute Engine instance.
1600
+ # Corresponds to the JSON property `instance`
1601
+ # @return [Google::Apis::NetworkmanagementV1::InstanceInfo]
1602
+ attr_accessor :instance
1603
+
1604
+ # For display only. Metadata associated with a load balancer.
1605
+ # Corresponds to the JSON property `loadBalancer`
1606
+ # @return [Google::Apis::NetworkmanagementV1::LoadBalancerInfo]
1607
+ attr_accessor :load_balancer
1608
+
1609
+ # For display only. Metadata associated with a Compute Engine network.
1610
+ # Corresponds to the JSON property `network`
1611
+ # @return [Google::Apis::NetworkmanagementV1::NetworkInfo]
1612
+ attr_accessor :network
1613
+
1614
+ # Project ID that contains the configuration this step is validating.
1615
+ # Corresponds to the JSON property `projectId`
1616
+ # @return [String]
1617
+ attr_accessor :project_id
1618
+
1619
+ # For display only. Metadata associated with a Compute Engine route.
1620
+ # Corresponds to the JSON property `route`
1621
+ # @return [Google::Apis::NetworkmanagementV1::RouteInfo]
1622
+ attr_accessor :route
1623
+
1624
+ # Each step is in one of the pre-defined states.
1625
+ # Corresponds to the JSON property `state`
1626
+ # @return [String]
1627
+ attr_accessor :state
1628
+
1629
+ # For display only. Metadata associated with a Compute Engine VPN gateway.
1630
+ # Corresponds to the JSON property `vpnGateway`
1631
+ # @return [Google::Apis::NetworkmanagementV1::VpnGatewayInfo]
1632
+ attr_accessor :vpn_gateway
1633
+
1634
+ # For display only. Metadata associated with a Compute Engine VPN tunnel.
1635
+ # Corresponds to the JSON property `vpnTunnel`
1636
+ # @return [Google::Apis::NetworkmanagementV1::VpnTunnelInfo]
1637
+ attr_accessor :vpn_tunnel
1638
+
1639
+ def initialize(**args)
1640
+ update!(**args)
1641
+ end
1642
+
1643
+ # Update properties of this object
1644
+ def update!(**args)
1645
+ @abort = args[:abort] if args.key?(:abort)
1646
+ @causes_drop = args[:causes_drop] if args.key?(:causes_drop)
1647
+ @deliver = args[:deliver] if args.key?(:deliver)
1648
+ @description = args[:description] if args.key?(:description)
1649
+ @drop = args[:drop] if args.key?(:drop)
1650
+ @endpoint = args[:endpoint] if args.key?(:endpoint)
1651
+ @firewall = args[:firewall] if args.key?(:firewall)
1652
+ @forward = args[:forward] if args.key?(:forward)
1653
+ @forwarding_rule = args[:forwarding_rule] if args.key?(:forwarding_rule)
1654
+ @instance = args[:instance] if args.key?(:instance)
1655
+ @load_balancer = args[:load_balancer] if args.key?(:load_balancer)
1656
+ @network = args[:network] if args.key?(:network)
1657
+ @project_id = args[:project_id] if args.key?(:project_id)
1658
+ @route = args[:route] if args.key?(:route)
1659
+ @state = args[:state] if args.key?(:state)
1660
+ @vpn_gateway = args[:vpn_gateway] if args.key?(:vpn_gateway)
1661
+ @vpn_tunnel = args[:vpn_tunnel] if args.key?(:vpn_tunnel)
1662
+ end
1663
+ end
1664
+
1665
+ # Request message for `TestIamPermissions` method.
1666
+ class TestIamPermissionsRequest
1667
+ include Google::Apis::Core::Hashable
1668
+
1669
+ # The set of permissions to check for the `resource`. Permissions with
1670
+ # wildcards (such as '*' or 'storage.*') are not allowed. For more
1671
+ # information see
1672
+ # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
1673
+ # Corresponds to the JSON property `permissions`
1674
+ # @return [Array<String>]
1675
+ attr_accessor :permissions
1676
+
1677
+ def initialize(**args)
1678
+ update!(**args)
1679
+ end
1680
+
1681
+ # Update properties of this object
1682
+ def update!(**args)
1683
+ @permissions = args[:permissions] if args.key?(:permissions)
1684
+ end
1685
+ end
1686
+
1687
+ # Response message for `TestIamPermissions` method.
1688
+ class TestIamPermissionsResponse
1689
+ include Google::Apis::Core::Hashable
1690
+
1691
+ # A subset of `TestPermissionsRequest.permissions` that the caller is
1692
+ # allowed.
1693
+ # Corresponds to the JSON property `permissions`
1694
+ # @return [Array<String>]
1695
+ attr_accessor :permissions
1696
+
1697
+ def initialize(**args)
1698
+ update!(**args)
1699
+ end
1700
+
1701
+ # Update properties of this object
1702
+ def update!(**args)
1703
+ @permissions = args[:permissions] if args.key?(:permissions)
1704
+ end
1705
+ end
1706
+
1707
+ # Trace represents one simulated packet forwarding path.
1708
+ # <ul>
1709
+ # <li>Each trace contains multiple ordered steps.</li>
1710
+ # <li>Each step is in a particular state and has an associated
1711
+ # configuration.</li> <li>State is categorized as a final or non-final
1712
+ # state.</li> <li>Each final state has a reason associated with it.</li>
1713
+ # <li>Each trace must end with a final state (the last step).</li>
1714
+ # </ul>
1715
+ # <pre><code>
1716
+ # |---------------------Trace----------------------|
1717
+ # Step1(State) Step2(State) --- StepN(State(final))
1718
+ # </code></pre>
1719
+ class Trace
1720
+ include Google::Apis::Core::Hashable
1721
+
1722
+ # For display only. The specification of the endpoints for the test.
1723
+ # EndpointInfo is derived from source and destination Endpoint and validated
1724
+ # by the backend data plane model.
1725
+ # Corresponds to the JSON property `endpointInfo`
1726
+ # @return [Google::Apis::NetworkmanagementV1::EndpointInfo]
1727
+ attr_accessor :endpoint_info
1728
+
1729
+ # A trace of a test contains multiple steps from the initial state to the
1730
+ # final state (delivered, dropped, forwarded, or aborted).
1731
+ # The steps are ordered by the processing sequence within the simulated
1732
+ # network state machine. It is critical to preserve the order of the steps
1733
+ # and avoid reordering or sorting them.
1734
+ # Corresponds to the JSON property `steps`
1735
+ # @return [Array<Google::Apis::NetworkmanagementV1::Step>]
1736
+ attr_accessor :steps
1737
+
1738
+ def initialize(**args)
1739
+ update!(**args)
1740
+ end
1741
+
1742
+ # Update properties of this object
1743
+ def update!(**args)
1744
+ @endpoint_info = args[:endpoint_info] if args.key?(:endpoint_info)
1745
+ @steps = args[:steps] if args.key?(:steps)
1746
+ end
1747
+ end
1748
+
1749
+ # For display only. Metadata associated with a Compute Engine VPN gateway.
1750
+ class VpnGatewayInfo
1751
+ include Google::Apis::Core::Hashable
1752
+
1753
+ # Name of a VPN gateway.
1754
+ # Corresponds to the JSON property `displayName`
1755
+ # @return [String]
1756
+ attr_accessor :display_name
1757
+
1758
+ # IP address of the VPN gateway.
1759
+ # Corresponds to the JSON property `ipAddress`
1760
+ # @return [String]
1761
+ attr_accessor :ip_address
1762
+
1763
+ # URI of a Compute Engine network where the VPN gateway is configured.
1764
+ # Corresponds to the JSON property `networkUri`
1765
+ # @return [String]
1766
+ attr_accessor :network_uri
1767
+
1768
+ # Name of a GCP region where this VPN gateway is configured.
1769
+ # Corresponds to the JSON property `region`
1770
+ # @return [String]
1771
+ attr_accessor :region
1772
+
1773
+ # URI of a VPN gateway.
1774
+ # Corresponds to the JSON property `uri`
1775
+ # @return [String]
1776
+ attr_accessor :uri
1777
+
1778
+ # A VPN tunnel that is associated with this VPN gateway.
1779
+ # There may be multiple VPN tunnels configured on a VPN gateway, and only
1780
+ # the one relevant to the test is displayed.
1781
+ # Corresponds to the JSON property `vpnTunnelUri`
1782
+ # @return [String]
1783
+ attr_accessor :vpn_tunnel_uri
1784
+
1785
+ def initialize(**args)
1786
+ update!(**args)
1787
+ end
1788
+
1789
+ # Update properties of this object
1790
+ def update!(**args)
1791
+ @display_name = args[:display_name] if args.key?(:display_name)
1792
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
1793
+ @network_uri = args[:network_uri] if args.key?(:network_uri)
1794
+ @region = args[:region] if args.key?(:region)
1795
+ @uri = args[:uri] if args.key?(:uri)
1796
+ @vpn_tunnel_uri = args[:vpn_tunnel_uri] if args.key?(:vpn_tunnel_uri)
1797
+ end
1798
+ end
1799
+
1800
+ # For display only. Metadata associated with a Compute Engine VPN tunnel.
1801
+ class VpnTunnelInfo
1802
+ include Google::Apis::Core::Hashable
1803
+
1804
+ # Name of a VPN tunnel.
1805
+ # Corresponds to the JSON property `displayName`
1806
+ # @return [String]
1807
+ attr_accessor :display_name
1808
+
1809
+ # URI of a Compute Engine network where the VPN tunnel is configured.
1810
+ # Corresponds to the JSON property `networkUri`
1811
+ # @return [String]
1812
+ attr_accessor :network_uri
1813
+
1814
+ # Name of a GCP region where this VPN tunnel is configured.
1815
+ # Corresponds to the JSON property `region`
1816
+ # @return [String]
1817
+ attr_accessor :region
1818
+
1819
+ # URI of a VPN gateway at remote end of the tunnel.
1820
+ # Corresponds to the JSON property `remoteGateway`
1821
+ # @return [String]
1822
+ attr_accessor :remote_gateway
1823
+
1824
+ # Remote VPN gateway's IP address.
1825
+ # Corresponds to the JSON property `remoteGatewayIp`
1826
+ # @return [String]
1827
+ attr_accessor :remote_gateway_ip
1828
+
1829
+ # Type of the routing policy.
1830
+ # Corresponds to the JSON property `routingType`
1831
+ # @return [String]
1832
+ attr_accessor :routing_type
1833
+
1834
+ # URI of the VPN gateway at local end of the tunnel.
1835
+ # Corresponds to the JSON property `sourceGateway`
1836
+ # @return [String]
1837
+ attr_accessor :source_gateway
1838
+
1839
+ # Local VPN gateway's IP address.
1840
+ # Corresponds to the JSON property `sourceGatewayIp`
1841
+ # @return [String]
1842
+ attr_accessor :source_gateway_ip
1843
+
1844
+ # URI of a VPN tunnel.
1845
+ # Corresponds to the JSON property `uri`
1846
+ # @return [String]
1847
+ attr_accessor :uri
1848
+
1849
+ def initialize(**args)
1850
+ update!(**args)
1851
+ end
1852
+
1853
+ # Update properties of this object
1854
+ def update!(**args)
1855
+ @display_name = args[:display_name] if args.key?(:display_name)
1856
+ @network_uri = args[:network_uri] if args.key?(:network_uri)
1857
+ @region = args[:region] if args.key?(:region)
1858
+ @remote_gateway = args[:remote_gateway] if args.key?(:remote_gateway)
1859
+ @remote_gateway_ip = args[:remote_gateway_ip] if args.key?(:remote_gateway_ip)
1860
+ @routing_type = args[:routing_type] if args.key?(:routing_type)
1861
+ @source_gateway = args[:source_gateway] if args.key?(:source_gateway)
1862
+ @source_gateway_ip = args[:source_gateway_ip] if args.key?(:source_gateway_ip)
1863
+ @uri = args[:uri] if args.key?(:uri)
1864
+ end
1865
+ end
1866
+ end
1867
+ end
1868
+ end