google-api-client 0.25.0 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. checksums.yaml +4 -4
  2. data/{CONTRIBUTING.md → .github/CONTRIBUTING.md} +0 -0
  3. data/.github/ISSUE_TEMPLATE/bug_report.md +36 -0
  4. data/.github/ISSUE_TEMPLATE/feature_request.md +21 -0
  5. data/.github/ISSUE_TEMPLATE/support_request.md +7 -0
  6. data/.kokoro/build.bat +8 -0
  7. data/.kokoro/build.sh +36 -0
  8. data/.kokoro/common.cfg +22 -0
  9. data/.kokoro/continuous/common.cfg +20 -0
  10. data/.kokoro/continuous/linux.cfg +15 -0
  11. data/.kokoro/continuous/osx.cfg +3 -0
  12. data/.kokoro/continuous/windows.cfg +3 -0
  13. data/.kokoro/osx.sh +35 -0
  14. data/.kokoro/presubmit/common.cfg +19 -0
  15. data/.kokoro/presubmit/linux.cfg +14 -0
  16. data/.kokoro/presubmit/osx.cfg +3 -0
  17. data/.kokoro/presubmit/windows.cfg +3 -0
  18. data/.kokoro/trampoline.sh +24 -0
  19. data/.kokoro/windows.sh +32 -0
  20. data/CHANGELOG.md +83 -0
  21. data/Gemfile +2 -2
  22. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +1 -1
  23. data/generated/google/apis/adexchangebuyer2_v2beta1/classes.rb +3 -1
  24. data/generated/google/apis/alertcenter_v1beta1.rb +5 -3
  25. data/generated/google/apis/alertcenter_v1beta1/classes.rb +110 -101
  26. data/generated/google/apis/alertcenter_v1beta1/representations.rb +13 -0
  27. data/generated/google/apis/alertcenter_v1beta1/service.rb +83 -76
  28. data/generated/google/apis/androiddeviceprovisioning_v1.rb +1 -1
  29. data/generated/google/apis/androiddeviceprovisioning_v1/classes.rb +7 -0
  30. data/generated/google/apis/androiddeviceprovisioning_v1/representations.rb +2 -0
  31. data/generated/google/apis/androiddeviceprovisioning_v1/service.rb +1 -1
  32. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  33. data/generated/google/apis/androidenterprise_v1/classes.rb +129 -44
  34. data/generated/google/apis/androidenterprise_v1/representations.rb +48 -0
  35. data/generated/google/apis/androidenterprise_v1/service.rb +218 -0
  36. data/generated/google/apis/androidmanagement_v1.rb +1 -1
  37. data/generated/google/apis/androidmanagement_v1/classes.rb +1 -1
  38. data/generated/google/apis/androidpublisher_v3.rb +1 -1
  39. data/generated/google/apis/androidpublisher_v3/classes.rb +8 -0
  40. data/generated/google/apis/androidpublisher_v3/representations.rb +1 -0
  41. data/generated/google/apis/appengine_v1.rb +1 -1
  42. data/generated/google/apis/appengine_v1beta.rb +1 -1
  43. data/generated/google/apis/bigquery_v2.rb +1 -1
  44. data/generated/google/apis/bigquery_v2/classes.rb +87 -29
  45. data/generated/google/apis/bigquery_v2/representations.rb +21 -0
  46. data/generated/google/apis/bigquery_v2/service.rb +7 -9
  47. data/generated/google/apis/calendar_v3.rb +2 -2
  48. data/generated/google/apis/calendar_v3/classes.rb +14 -6
  49. data/generated/google/apis/classroom_v1.rb +1 -1
  50. data/generated/google/apis/classroom_v1/service.rb +1 -1
  51. data/generated/google/apis/cloudasset_v1beta1.rb +1 -1
  52. data/generated/google/apis/cloudasset_v1beta1/classes.rb +14 -10
  53. data/generated/google/apis/cloudasset_v1beta1/service.rb +4 -4
  54. data/generated/google/apis/clouddebugger_v2.rb +1 -1
  55. data/generated/google/apis/clouddebugger_v2/classes.rb +2 -2
  56. data/generated/google/apis/cloudfunctions_v1.rb +1 -1
  57. data/generated/google/apis/cloudfunctions_v1/classes.rb +2 -3
  58. data/generated/google/apis/cloudfunctions_v1beta2.rb +1 -1
  59. data/generated/google/apis/cloudfunctions_v1beta2/classes.rb +2 -3
  60. data/generated/google/apis/cloudiot_v1.rb +1 -1
  61. data/generated/google/apis/cloudiot_v1/classes.rb +127 -0
  62. data/generated/google/apis/cloudiot_v1/representations.rb +70 -0
  63. data/generated/google/apis/cloudiot_v1/service.rb +172 -2
  64. data/generated/google/apis/cloudkms_v1.rb +1 -1
  65. data/generated/google/apis/cloudkms_v1/service.rb +107 -0
  66. data/generated/google/apis/{cloudiot_v1beta1.rb → cloudscheduler_v1beta1.rb} +8 -12
  67. data/generated/google/apis/cloudscheduler_v1beta1/classes.rb +882 -0
  68. data/generated/google/apis/cloudscheduler_v1beta1/representations.rb +264 -0
  69. data/generated/google/apis/cloudscheduler_v1beta1/service.rb +445 -0
  70. data/generated/google/apis/cloudsearch_v1.rb +1 -1
  71. data/generated/google/apis/cloudsearch_v1/classes.rb +79 -1
  72. data/generated/google/apis/cloudsearch_v1/representations.rb +44 -0
  73. data/generated/google/apis/cloudsearch_v1/service.rb +88 -3
  74. data/generated/google/apis/composer_v1.rb +1 -1
  75. data/generated/google/apis/composer_v1/classes.rb +9 -0
  76. data/generated/google/apis/composer_v1/representations.rb +1 -0
  77. data/generated/google/apis/compute_alpha.rb +1 -1
  78. data/generated/google/apis/compute_alpha/classes.rb +938 -117
  79. data/generated/google/apis/compute_alpha/representations.rb +310 -2
  80. data/generated/google/apis/compute_alpha/service.rb +1203 -245
  81. data/generated/google/apis/compute_beta.rb +1 -1
  82. data/generated/google/apis/compute_beta/classes.rb +1175 -219
  83. data/generated/google/apis/compute_beta/representations.rb +375 -2
  84. data/generated/google/apis/compute_beta/service.rb +907 -139
  85. data/generated/google/apis/compute_v1.rb +1 -1
  86. data/generated/google/apis/compute_v1/classes.rb +1485 -143
  87. data/generated/google/apis/compute_v1/representations.rb +503 -0
  88. data/generated/google/apis/compute_v1/service.rb +1375 -85
  89. data/generated/google/apis/container_v1.rb +3 -3
  90. data/generated/google/apis/container_v1/classes.rb +99 -6
  91. data/generated/google/apis/container_v1/representations.rb +39 -0
  92. data/generated/google/apis/container_v1/service.rb +2 -2
  93. data/generated/google/apis/container_v1beta1.rb +3 -3
  94. data/generated/google/apis/container_v1beta1/classes.rb +162 -9
  95. data/generated/google/apis/container_v1beta1/representations.rb +80 -0
  96. data/generated/google/apis/container_v1beta1/service.rb +3 -3
  97. data/generated/google/apis/content_v2.rb +1 -1
  98. data/generated/google/apis/content_v2/classes.rb +40 -32
  99. data/generated/google/apis/content_v2/representations.rb +0 -1
  100. data/generated/google/apis/content_v2/service.rb +3 -3
  101. data/generated/google/apis/content_v2_1.rb +35 -0
  102. data/generated/google/apis/content_v2_1/classes.rb +9104 -0
  103. data/generated/google/apis/content_v2_1/representations.rb +3967 -0
  104. data/generated/google/apis/content_v2_1/service.rb +3463 -0
  105. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  106. data/generated/google/apis/dataflow_v1b3/classes.rb +82 -0
  107. data/generated/google/apis/dataflow_v1b3/representations.rb +33 -0
  108. data/generated/google/apis/dataflow_v1b3/service.rb +97 -6
  109. data/generated/google/apis/dataproc_v1.rb +1 -1
  110. data/generated/google/apis/dataproc_v1/classes.rb +15 -1
  111. data/generated/google/apis/dataproc_v1/representations.rb +2 -0
  112. data/generated/google/apis/dataproc_v1beta2.rb +1 -1
  113. data/generated/google/apis/dataproc_v1beta2/classes.rb +125 -1
  114. data/generated/google/apis/dataproc_v1beta2/representations.rb +41 -0
  115. data/generated/google/apis/dialogflow_v2.rb +1 -1
  116. data/generated/google/apis/dialogflow_v2/classes.rb +13 -6
  117. data/generated/google/apis/dialogflow_v2/service.rb +2 -0
  118. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  119. data/generated/google/apis/dialogflow_v2beta1/classes.rb +26 -6
  120. data/generated/google/apis/dialogflow_v2beta1/representations.rb +12 -0
  121. data/generated/google/apis/dialogflow_v2beta1/service.rb +261 -12
  122. data/generated/google/apis/dlp_v2.rb +1 -1
  123. data/generated/google/apis/dlp_v2/classes.rb +4 -4
  124. data/generated/google/apis/dns_v1beta2.rb +1 -1
  125. data/generated/google/apis/dns_v1beta2/classes.rb +326 -0
  126. data/generated/google/apis/dns_v1beta2/representations.rb +149 -0
  127. data/generated/google/apis/dns_v1beta2/service.rb +246 -0
  128. data/generated/google/apis/drive_v2.rb +3 -3
  129. data/generated/google/apis/drive_v3.rb +3 -3
  130. data/generated/google/apis/driveactivity_v2.rb +37 -0
  131. data/generated/google/apis/driveactivity_v2/classes.rb +1388 -0
  132. data/generated/google/apis/driveactivity_v2/representations.rb +799 -0
  133. data/generated/google/apis/driveactivity_v2/service.rb +89 -0
  134. data/generated/google/apis/firebasedynamiclinks_v1.rb +1 -1
  135. data/generated/google/apis/firebasedynamiclinks_v1/classes.rb +8 -1
  136. data/generated/google/apis/firebasedynamiclinks_v1/representations.rb +1 -0
  137. data/generated/google/apis/firebasehosting_v1beta1.rb +3 -2
  138. data/generated/google/apis/firebasehosting_v1beta1/classes.rb +43 -17
  139. data/generated/google/apis/firebasehosting_v1beta1/representations.rb +13 -0
  140. data/generated/google/apis/firebasehosting_v1beta1/service.rb +74 -1
  141. data/generated/google/apis/firestore_v1.rb +1 -1
  142. data/generated/google/apis/firestore_v1/classes.rb +2225 -520
  143. data/generated/google/apis/firestore_v1/representations.rb +800 -33
  144. data/generated/google/apis/firestore_v1/service.rb +526 -0
  145. data/generated/google/apis/fitness_v1.rb +1 -1
  146. data/generated/google/apis/fitness_v1/classes.rb +1 -2
  147. data/generated/google/apis/fitness_v1/service.rb +7 -3
  148. data/generated/google/apis/games_management_v1management.rb +1 -4
  149. data/generated/google/apis/games_v1.rb +1 -4
  150. data/generated/google/apis/genomics_v2alpha1.rb +1 -1
  151. data/generated/google/apis/genomics_v2alpha1/classes.rb +6 -1
  152. data/generated/google/apis/gmail_v1.rb +2 -2
  153. data/generated/google/apis/iap_v1.rb +34 -0
  154. data/generated/google/apis/iap_v1/classes.rb +308 -0
  155. data/generated/google/apis/iap_v1/representations.rb +126 -0
  156. data/generated/google/apis/iap_v1/service.rb +725 -0
  157. data/generated/google/apis/iap_v1beta1.rb +1 -1
  158. data/generated/google/apis/iap_v1beta1/classes.rb +0 -132
  159. data/generated/google/apis/iap_v1beta1/representations.rb +0 -32
  160. data/generated/google/apis/jobs_v2.rb +1 -1
  161. data/generated/google/apis/jobs_v2/classes.rb +8 -9
  162. data/generated/google/apis/jobs_v3.rb +1 -1
  163. data/generated/google/apis/jobs_v3/classes.rb +6 -6
  164. data/generated/google/apis/jobs_v3/service.rb +8 -8
  165. data/generated/google/apis/jobs_v3p1beta1.rb +1 -1
  166. data/generated/google/apis/jobs_v3p1beta1/classes.rb +9 -9
  167. data/generated/google/apis/jobs_v3p1beta1/service.rb +8 -8
  168. data/generated/google/apis/monitoring_v3.rb +1 -1
  169. data/generated/google/apis/monitoring_v3/classes.rb +20 -7
  170. data/generated/google/apis/monitoring_v3/representations.rb +1 -0
  171. data/generated/google/apis/monitoring_v3/service.rb +0 -365
  172. data/generated/google/apis/pagespeedonline_v5.rb +32 -0
  173. data/generated/google/apis/pagespeedonline_v5/classes.rb +724 -0
  174. data/generated/google/apis/pagespeedonline_v5/representations.rb +315 -0
  175. data/generated/google/apis/pagespeedonline_v5/service.rb +116 -0
  176. data/generated/google/apis/people_v1.rb +3 -3
  177. data/generated/google/apis/pubsub_v1.rb +1 -1
  178. data/generated/google/apis/pubsub_v1/classes.rb +63 -12
  179. data/generated/google/apis/pubsub_v1/representations.rb +15 -0
  180. data/generated/google/apis/pubsub_v1/service.rb +26 -18
  181. data/generated/google/apis/redis_v1.rb +2 -3
  182. data/generated/google/apis/redis_v1/service.rb +1 -2
  183. data/generated/google/apis/redis_v1beta1.rb +2 -3
  184. data/generated/google/apis/redis_v1beta1/service.rb +1 -2
  185. data/generated/google/apis/runtimeconfig_v1beta1.rb +1 -1
  186. data/generated/google/apis/runtimeconfig_v1beta1/classes.rb +2 -2
  187. data/generated/google/apis/script_v1.rb +24 -6
  188. data/generated/google/apis/serviceconsumermanagement_v1.rb +1 -1
  189. data/generated/google/apis/serviceconsumermanagement_v1/classes.rb +66 -1
  190. data/generated/google/apis/serviceconsumermanagement_v1/representations.rb +30 -0
  191. data/generated/google/apis/serviceconsumermanagement_v1/service.rb +89 -0
  192. data/generated/google/apis/servicecontrol_v1.rb +1 -1
  193. data/generated/google/apis/servicemanagement_v1.rb +1 -1
  194. data/generated/google/apis/servicemanagement_v1/classes.rb +7 -0
  195. data/generated/google/apis/servicemanagement_v1/representations.rb +1 -0
  196. data/generated/google/apis/servicenetworking_v1beta.rb +1 -1
  197. data/generated/google/apis/servicenetworking_v1beta/classes.rb +84 -37
  198. data/generated/google/apis/servicenetworking_v1beta/representations.rb +15 -0
  199. data/generated/google/apis/servicenetworking_v1beta/service.rb +132 -43
  200. data/generated/google/apis/serviceusage_v1.rb +1 -1
  201. data/generated/google/apis/serviceusage_v1/classes.rb +1 -1
  202. data/generated/google/apis/serviceusage_v1beta1.rb +1 -1
  203. data/generated/google/apis/serviceusage_v1beta1/classes.rb +1 -1
  204. data/generated/google/apis/sheets_v4.rb +4 -4
  205. data/generated/google/apis/slides_v1.rb +4 -4
  206. data/generated/google/apis/slides_v1/classes.rb +187 -2
  207. data/generated/google/apis/slides_v1/representations.rb +67 -0
  208. data/generated/google/apis/slides_v1/service.rb +4 -3
  209. data/generated/google/apis/sourcerepo_v1.rb +2 -2
  210. data/generated/google/apis/sourcerepo_v1/service.rb +1 -1
  211. data/generated/google/apis/speech_v1.rb +1 -1
  212. data/generated/google/apis/speech_v1/classes.rb +58 -10
  213. data/generated/google/apis/speech_v1/representations.rb +29 -1
  214. data/generated/google/apis/{speech_v1beta1.rb → speech_v1p1beta1.rb} +6 -6
  215. data/generated/google/apis/speech_v1p1beta1/classes.rb +922 -0
  216. data/generated/google/apis/speech_v1p1beta1/representations.rb +294 -0
  217. data/generated/google/apis/{speech_v1beta1 → speech_v1p1beta1}/service.rb +33 -35
  218. data/generated/google/apis/sqladmin_v1beta4.rb +1 -1
  219. data/generated/google/apis/sqladmin_v1beta4/classes.rb +64 -3
  220. data/generated/google/apis/sqladmin_v1beta4/representations.rb +31 -0
  221. data/generated/google/apis/storage_v1.rb +1 -1
  222. data/generated/google/apis/storage_v1/classes.rb +54 -0
  223. data/generated/google/apis/storage_v1/representations.rb +31 -0
  224. data/generated/google/apis/streetviewpublish_v1.rb +1 -1
  225. data/generated/google/apis/streetviewpublish_v1/classes.rb +26 -0
  226. data/generated/google/apis/streetviewpublish_v1/representations.rb +4 -0
  227. data/generated/google/apis/streetviewpublish_v1/service.rb +29 -3
  228. data/generated/google/apis/tasks_v1.rb +1 -1
  229. data/generated/google/apis/testing_v1.rb +1 -1
  230. data/generated/google/apis/testing_v1/classes.rb +49 -19
  231. data/generated/google/apis/testing_v1/representations.rb +20 -2
  232. data/generated/google/apis/toolresults_v1beta3.rb +1 -1
  233. data/generated/google/apis/toolresults_v1beta3/classes.rb +77 -70
  234. data/generated/google/apis/vault_v1.rb +1 -1
  235. data/generated/google/apis/vault_v1/classes.rb +78 -7
  236. data/generated/google/apis/vault_v1/representations.rb +34 -1
  237. data/generated/google/apis/vault_v1/service.rb +141 -0
  238. data/generated/google/apis/vision_v1.rb +1 -1
  239. data/generated/google/apis/vision_v1/classes.rb +33 -0
  240. data/generated/google/apis/vision_v1/representations.rb +16 -0
  241. data/generated/google/apis/vision_v1/service.rb +2 -2
  242. data/generated/google/apis/vision_v1p1beta1.rb +1 -1
  243. data/generated/google/apis/vision_v1p1beta1/classes.rb +33 -0
  244. data/generated/google/apis/vision_v1p1beta1/representations.rb +16 -0
  245. data/generated/google/apis/vision_v1p2beta1.rb +1 -1
  246. data/generated/google/apis/vision_v1p2beta1/classes.rb +33 -0
  247. data/generated/google/apis/vision_v1p2beta1/representations.rb +16 -0
  248. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  249. data/google-api-client.gemspec +1 -1
  250. data/lib/google/api_client/auth/installed_app.rb +17 -2
  251. data/lib/google/api_client/client_secrets.rb +1 -1
  252. data/lib/google/apis/core/download.rb +2 -2
  253. data/lib/google/apis/errors.rb +9 -0
  254. data/lib/google/apis/generator/annotator.rb +2 -2
  255. data/lib/google/apis/version.rb +1 -1
  256. metadata +46 -17
  257. data/generated/google/apis/cloudiot_v1beta1/classes.rb +0 -959
  258. data/generated/google/apis/cloudiot_v1beta1/representations.rb +0 -375
  259. data/generated/google/apis/cloudiot_v1beta1/service.rb +0 -618
  260. data/generated/google/apis/dfareporting_v3_0.rb +0 -40
  261. data/generated/google/apis/dfareporting_v3_0/classes.rb +0 -12119
  262. data/generated/google/apis/dfareporting_v3_0/representations.rb +0 -4336
  263. data/generated/google/apis/dfareporting_v3_0/service.rb +0 -8701
  264. data/generated/google/apis/speech_v1beta1/classes.rb +0 -480
  265. data/generated/google/apis/speech_v1beta1/representations.rb +0 -194
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://developers.google.com/compute/docs/reference/latest/
26
26
  module ComputeV1
27
27
  VERSION = 'V1'
28
- REVISION = '20181017'
28
+ REVISION = '20181128'
29
29
 
30
30
  # View and manage your data across Google Cloud Platform services
31
31
  AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
@@ -576,13 +576,33 @@ module Google
576
576
  # @return [String]
577
577
  attr_accessor :name
578
578
 
579
+ # The URL of the network in which to reserve the address. This field can only be
580
+ # used with INTERNAL type with VPC_PEERING purpose.
581
+ # Corresponds to the JSON property `network`
582
+ # @return [String]
583
+ attr_accessor :network
584
+
579
585
  # This signifies the networking tier used for configuring this Address and can
580
- # only take the following values: PREMIUM , STANDARD.
586
+ # only take the following values: PREMIUM, STANDARD. Global forwarding rules can
587
+ # only be Premium Tier. Regional forwarding rules can be either Premium or
588
+ # Standard Tier. Standard Tier addresses applied to regional forwarding rules
589
+ # can be used with any external load balancer. Regional forwarding rules in
590
+ # Premium Tier can only be used with a Network load balancer.
581
591
  # If this field is not specified, it is assumed to be PREMIUM.
582
592
  # Corresponds to the JSON property `networkTier`
583
593
  # @return [String]
584
594
  attr_accessor :network_tier
585
595
 
596
+ # The prefix length if the resource reprensents an IP range.
597
+ # Corresponds to the JSON property `prefixLength`
598
+ # @return [Fixnum]
599
+ attr_accessor :prefix_length
600
+
601
+ # The purpose of resource, only used with INTERNAL type.
602
+ # Corresponds to the JSON property `purpose`
603
+ # @return [String]
604
+ attr_accessor :purpose
605
+
586
606
  # [Output Only] URL of the region where the regional address resides. This field
587
607
  # is not applicable to global addresses. You must specify this field as part of
588
608
  # the HTTP request URL. You cannot set this field in the request body.
@@ -630,7 +650,10 @@ module Google
630
650
  @ip_version = args[:ip_version] if args.key?(:ip_version)
631
651
  @kind = args[:kind] if args.key?(:kind)
632
652
  @name = args[:name] if args.key?(:name)
653
+ @network = args[:network] if args.key?(:network)
633
654
  @network_tier = args[:network_tier] if args.key?(:network_tier)
655
+ @prefix_length = args[:prefix_length] if args.key?(:prefix_length)
656
+ @purpose = args[:purpose] if args.key?(:purpose)
634
657
  @region = args[:region] if args.key?(:region)
635
658
  @self_link = args[:self_link] if args.key?(:self_link)
636
659
  @status = args[:status] if args.key?(:status)
@@ -1207,6 +1230,104 @@ module Google
1207
1230
  end
1208
1231
  end
1209
1232
 
1233
+ # Specifies the audit configuration for a service. The configuration determines
1234
+ # which permission types are logged, and what identities, if any, are exempted
1235
+ # from logging. An AuditConfig must have one or more AuditLogConfigs.
1236
+ # If there are AuditConfigs for both `allServices` and a specific service, the
1237
+ # union of the two AuditConfigs is used for that service: the log_types
1238
+ # specified in each AuditConfig are enabled, and the exempted_members in each
1239
+ # AuditLogConfig are exempted.
1240
+ # Example Policy with multiple AuditConfigs:
1241
+ # ` "audit_configs": [ ` "service": "allServices" "audit_log_configs": [ ` "
1242
+ # log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] `, ` "
1243
+ # log_type": "DATA_WRITE", `, ` "log_type": "ADMIN_READ", ` ] `, ` "service": "
1244
+ # fooservice.googleapis.com" "audit_log_configs": [ ` "log_type": "DATA_READ", `,
1245
+ # ` "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] ` ] `
1246
+ # ] `
1247
+ # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
1248
+ # logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.
1249
+ # com from DATA_WRITE logging.
1250
+ class AuditConfig
1251
+ include Google::Apis::Core::Hashable
1252
+
1253
+ # The configuration for logging of each type of permission.
1254
+ # Corresponds to the JSON property `auditLogConfigs`
1255
+ # @return [Array<Google::Apis::ComputeV1::AuditLogConfig>]
1256
+ attr_accessor :audit_log_configs
1257
+
1258
+ #
1259
+ # Corresponds to the JSON property `exemptedMembers`
1260
+ # @return [Array<String>]
1261
+ attr_accessor :exempted_members
1262
+
1263
+ # Specifies a service that will be enabled for audit logging. For example, `
1264
+ # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
1265
+ # value that covers all services.
1266
+ # Corresponds to the JSON property `service`
1267
+ # @return [String]
1268
+ attr_accessor :service
1269
+
1270
+ def initialize(**args)
1271
+ update!(**args)
1272
+ end
1273
+
1274
+ # Update properties of this object
1275
+ def update!(**args)
1276
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
1277
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
1278
+ @service = args[:service] if args.key?(:service)
1279
+ end
1280
+ end
1281
+
1282
+ # Provides the configuration for logging a type of permissions. Example:
1283
+ # ` "audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "
1284
+ # user:foo@gmail.com" ] `, ` "log_type": "DATA_WRITE", ` ] `
1285
+ # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.
1286
+ # com from DATA_READ logging.
1287
+ class AuditLogConfig
1288
+ include Google::Apis::Core::Hashable
1289
+
1290
+ # Specifies the identities that do not cause logging for this type of permission.
1291
+ # Follows the same format of [Binding.members][].
1292
+ # Corresponds to the JSON property `exemptedMembers`
1293
+ # @return [Array<String>]
1294
+ attr_accessor :exempted_members
1295
+
1296
+ # The log type that this config enables.
1297
+ # Corresponds to the JSON property `logType`
1298
+ # @return [String]
1299
+ attr_accessor :log_type
1300
+
1301
+ def initialize(**args)
1302
+ update!(**args)
1303
+ end
1304
+
1305
+ # Update properties of this object
1306
+ def update!(**args)
1307
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
1308
+ @log_type = args[:log_type] if args.key?(:log_type)
1309
+ end
1310
+ end
1311
+
1312
+ # Authorization-related information used by Cloud Audit Logging.
1313
+ class AuthorizationLoggingOptions
1314
+ include Google::Apis::Core::Hashable
1315
+
1316
+ # The type of the permission that was checked.
1317
+ # Corresponds to the JSON property `permissionType`
1318
+ # @return [String]
1319
+ attr_accessor :permission_type
1320
+
1321
+ def initialize(**args)
1322
+ update!(**args)
1323
+ end
1324
+
1325
+ # Update properties of this object
1326
+ def update!(**args)
1327
+ @permission_type = args[:permission_type] if args.key?(:permission_type)
1328
+ end
1329
+ end
1330
+
1210
1331
  # Represents an Autoscaler resource. Autoscalers allow you to automatically
1211
1332
  # scale virtual machine instances in managed instance groups according to an
1212
1333
  # autoscaling policy that you define. For more information, read Autoscaling
@@ -1769,8 +1890,7 @@ module Google
1769
1890
  attr_accessor :utilization_target
1770
1891
 
1771
1892
  # Defines how target utilization value is expressed for a Stackdriver Monitoring
1772
- # metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified,
1773
- # the default is GAUGE.
1893
+ # metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE.
1774
1894
  # Corresponds to the JSON property `utilizationTargetType`
1775
1895
  # @return [String]
1776
1896
  attr_accessor :utilization_target_type
@@ -1836,15 +1956,21 @@ module Google
1836
1956
  # @return [String]
1837
1957
  attr_accessor :description
1838
1958
 
1839
- # The fully-qualified URL of a Instance Group resource. This instance group
1840
- # defines the list of instances that serve traffic. Member virtual machine
1841
- # instances from each instance group must live in the same zone as the instance
1842
- # group itself. No two backends in a backend service are allowed to use same
1843
- # Instance Group resource.
1844
- # Note that you must specify an Instance Group resource using the fully-
1845
- # qualified URL, rather than a partial URL.
1959
+ # The fully-qualified URL of an Instance Group or Network Endpoint Group
1960
+ # resource. In case of instance group this defines the list of instances that
1961
+ # serve traffic. Member virtual machine instances from each instance group must
1962
+ # live in the same zone as the instance group itself. No two backends in a
1963
+ # backend service are allowed to use same Instance Group resource.
1964
+ # For Network Endpoint Groups this defines list of endpoints. All endpoints of
1965
+ # Network Endpoint Group must be hosted on instances located in the same zone as
1966
+ # the Network Endpoint Group.
1967
+ # Backend service can not contain mix of Instance Group and Network Endpoint
1968
+ # Group backends.
1969
+ # Note that you must specify an Instance Group or Network Endpoint Group
1970
+ # resource using the fully-qualified URL, rather than a partial URL.
1846
1971
  # When the BackendService has load balancing scheme INTERNAL, the instance group
1847
- # must be within the same region as the BackendService.
1972
+ # must be within the same region as the BackendService. Network Endpoint Groups
1973
+ # are not supported for INTERNAL load balancing scheme.
1848
1974
  # Corresponds to the JSON property `group`
1849
1975
  # @return [String]
1850
1976
  attr_accessor :group
@@ -1990,7 +2116,7 @@ module Google
1990
2116
  # considered fresh. After this time period, the response will be revalidated
1991
2117
  # before being served. Defaults to 1hr (3600s). When serving responses to signed
1992
2118
  # URL requests, Cloud CDN will internally behave as though all responses from
1993
- # this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless
2119
+ # this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless
1994
2120
  # of any existing Cache-Control header. The actual headers served in responses
1995
2121
  # will not be altered.
1996
2122
  # Corresponds to the JSON property `signedUrlCacheMaxAgeSec`
@@ -2180,7 +2306,8 @@ module Google
2180
2306
  # Fingerprint of this resource. A hash of the contents stored in this object.
2181
2307
  # This field is used in optimistic locking. This field will be ignored when
2182
2308
  # inserting a BackendService. An up-to-date fingerprint must be provided in
2183
- # order to update the BackendService.
2309
+ # order to update the BackendService, otherwise the request will fail with error
2310
+ # 412 conditionNotMet.
2184
2311
  # To see the latest fingerprint, make a get() request to retrieve a
2185
2312
  # BackendService.
2186
2313
  # Corresponds to the JSON property `fingerprint`
@@ -2453,7 +2580,7 @@ module Google
2453
2580
  # considered fresh. After this time period, the response will be revalidated
2454
2581
  # before being served. Defaults to 1hr (3600s). When serving responses to signed
2455
2582
  # URL requests, Cloud CDN will internally behave as though all responses from
2456
- # this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless
2583
+ # this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless
2457
2584
  # of any existing Cache-Control header. The actual headers served in responses
2458
2585
  # will not be altered.
2459
2586
  # Corresponds to the JSON property `signedUrlCacheMaxAgeSec`
@@ -2481,7 +2608,8 @@ module Google
2481
2608
  class BackendServiceGroupHealth
2482
2609
  include Google::Apis::Core::Hashable
2483
2610
 
2484
- #
2611
+ # Health state of the backend instances or endpoints in requested instance or
2612
+ # network endpoint group, determined based on configured health checks.
2485
2613
  # Corresponds to the JSON property `healthStatus`
2486
2614
  # @return [Array<Google::Apis::ComputeV1::HealthStatus>]
2487
2615
  attr_accessor :health_status
@@ -2750,6 +2878,53 @@ module Google
2750
2878
  end
2751
2879
  end
2752
2880
 
2881
+ # Associates `members` with a `role`.
2882
+ class Binding
2883
+ include Google::Apis::Core::Hashable
2884
+
2885
+ # Represents an expression text. Example:
2886
+ # title: "User account presence" description: "Determines whether the request
2887
+ # has a user account" expression: "size(request.user) > 0"
2888
+ # Corresponds to the JSON property `condition`
2889
+ # @return [Google::Apis::ComputeV1::Expr]
2890
+ attr_accessor :condition
2891
+
2892
+ # Specifies the identities requesting access for a Cloud Platform resource. `
2893
+ # members` can have the following values:
2894
+ # * `allUsers`: A special identifier that represents anyone who is on the
2895
+ # internet; with or without a Google account.
2896
+ # * `allAuthenticatedUsers`: A special identifier that represents anyone who is
2897
+ # authenticated with a Google account or a service account.
2898
+ # * `user:`emailid``: An email address that represents a specific Google account.
2899
+ # For example, `alice@gmail.com` .
2900
+ # * `serviceAccount:`emailid``: An email address that represents a service
2901
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`.
2902
+ # * `group:`emailid``: An email address that represents a Google group. For
2903
+ # example, `admins@example.com`.
2904
+ # * `domain:`domain``: A Google Apps domain name that represents all the users
2905
+ # of that domain. For example, `google.com` or `example.com`.
2906
+ # Corresponds to the JSON property `members`
2907
+ # @return [Array<String>]
2908
+ attr_accessor :members
2909
+
2910
+ # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
2911
+ # , or `roles/owner`.
2912
+ # Corresponds to the JSON property `role`
2913
+ # @return [String]
2914
+ attr_accessor :role
2915
+
2916
+ def initialize(**args)
2917
+ update!(**args)
2918
+ end
2919
+
2920
+ # Update properties of this object
2921
+ def update!(**args)
2922
+ @condition = args[:condition] if args.key?(:condition)
2923
+ @members = args[:members] if args.key?(:members)
2924
+ @role = args[:role] if args.key?(:role)
2925
+ end
2926
+ end
2927
+
2753
2928
  #
2754
2929
  class CacheInvalidationRule
2755
2930
  include Google::Apis::Core::Hashable
@@ -3271,6 +3446,56 @@ module Google
3271
3446
  end
3272
3447
  end
3273
3448
 
3449
+ # A condition to be met.
3450
+ class Condition
3451
+ include Google::Apis::Core::Hashable
3452
+
3453
+ # Trusted attributes supplied by the IAM system.
3454
+ # Corresponds to the JSON property `iam`
3455
+ # @return [String]
3456
+ attr_accessor :iam
3457
+
3458
+ # An operator to apply the subject with.
3459
+ # Corresponds to the JSON property `op`
3460
+ # @return [String]
3461
+ attr_accessor :op
3462
+
3463
+ # Trusted attributes discharged by the service.
3464
+ # Corresponds to the JSON property `svc`
3465
+ # @return [String]
3466
+ attr_accessor :svc
3467
+
3468
+ # Trusted attributes supplied by any service that owns resources and uses the
3469
+ # IAM system for access control.
3470
+ # Corresponds to the JSON property `sys`
3471
+ # @return [String]
3472
+ attr_accessor :sys
3473
+
3474
+ # DEPRECATED. Use 'values' instead.
3475
+ # Corresponds to the JSON property `value`
3476
+ # @return [String]
3477
+ attr_accessor :value
3478
+
3479
+ # The objects of the condition. This is mutually exclusive with 'value'.
3480
+ # Corresponds to the JSON property `values`
3481
+ # @return [Array<String>]
3482
+ attr_accessor :values
3483
+
3484
+ def initialize(**args)
3485
+ update!(**args)
3486
+ end
3487
+
3488
+ # Update properties of this object
3489
+ def update!(**args)
3490
+ @iam = args[:iam] if args.key?(:iam)
3491
+ @op = args[:op] if args.key?(:op)
3492
+ @svc = args[:svc] if args.key?(:svc)
3493
+ @sys = args[:sys] if args.key?(:sys)
3494
+ @value = args[:value] if args.key?(:value)
3495
+ @values = args[:values] if args.key?(:values)
3496
+ end
3497
+ end
3498
+
3274
3499
  # Message containing connection draining configuration.
3275
3500
  class ConnectionDraining
3276
3501
  include Google::Apis::Core::Hashable
@@ -3447,7 +3672,8 @@ module Google
3447
3672
  # a hash of the labels set used for optimistic locking. The fingerprint is
3448
3673
  # initially generated by Compute Engine and changes after every request to
3449
3674
  # modify or update labels. You must always provide an up-to-date fingerprint
3450
- # hash in order to update or change labels.
3675
+ # hash in order to update or change labels, otherwise the request will fail with
3676
+ # error 412 conditionNotMet.
3451
3677
  # To see the latest fingerprint, make a get() request to retrieve a disk.
3452
3678
  # Corresponds to the JSON property `labelFingerprint`
3453
3679
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
@@ -3495,6 +3721,14 @@ module Google
3495
3721
  # @return [String]
3496
3722
  attr_accessor :options
3497
3723
 
3724
+ # Physical block size of the persistent disk, in bytes. If not present in a
3725
+ # request, a default value is used. Currently supported sizes are 4096 and 16384,
3726
+ # other sizes may be added in the future. If an unsupported value is requested,
3727
+ # the error message will list the supported values for the caller's project.
3728
+ # Corresponds to the JSON property `physicalBlockSizeBytes`
3729
+ # @return [Fixnum]
3730
+ attr_accessor :physical_block_size_bytes
3731
+
3498
3732
  # [Output Only] URL of the region where the disk resides. Only applicable for
3499
3733
  # regional resources. You must specify this field as part of the HTTP request
3500
3734
  # URL. It is not settable as a field in the request body.
@@ -3626,6 +3860,7 @@ module Google
3626
3860
  @licenses = args[:licenses] if args.key?(:licenses)
3627
3861
  @name = args[:name] if args.key?(:name)
3628
3862
  @options = args[:options] if args.key?(:options)
3863
+ @physical_block_size_bytes = args[:physical_block_size_bytes] if args.key?(:physical_block_size_bytes)
3629
3864
  @region = args[:region] if args.key?(:region)
3630
3865
  @replica_zones = args[:replica_zones] if args.key?(:replica_zones)
3631
3866
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -4525,6 +4760,50 @@ module Google
4525
4760
  end
4526
4761
  end
4527
4762
 
4763
+ # Represents an expression text. Example:
4764
+ # title: "User account presence" description: "Determines whether the request
4765
+ # has a user account" expression: "size(request.user) > 0"
4766
+ class Expr
4767
+ include Google::Apis::Core::Hashable
4768
+
4769
+ # An optional description of the expression. This is a longer text which
4770
+ # describes the expression, e.g. when hovered over it in a UI.
4771
+ # Corresponds to the JSON property `description`
4772
+ # @return [String]
4773
+ attr_accessor :description
4774
+
4775
+ # Textual representation of an expression in Common Expression Language syntax.
4776
+ # The application context of the containing message determines which well-known
4777
+ # feature set of CEL is supported.
4778
+ # Corresponds to the JSON property `expression`
4779
+ # @return [String]
4780
+ attr_accessor :expression
4781
+
4782
+ # An optional string indicating the location of the expression for error
4783
+ # reporting, e.g. a file name and a position in the file.
4784
+ # Corresponds to the JSON property `location`
4785
+ # @return [String]
4786
+ attr_accessor :location
4787
+
4788
+ # An optional title for the expression, i.e. a short string describing its
4789
+ # purpose. This can be used e.g. in UIs which allow to enter the expression.
4790
+ # Corresponds to the JSON property `title`
4791
+ # @return [String]
4792
+ attr_accessor :title
4793
+
4794
+ def initialize(**args)
4795
+ update!(**args)
4796
+ end
4797
+
4798
+ # Update properties of this object
4799
+ def update!(**args)
4800
+ @description = args[:description] if args.key?(:description)
4801
+ @expression = args[:expression] if args.key?(:expression)
4802
+ @location = args[:location] if args.key?(:location)
4803
+ @title = args[:title] if args.key?(:title)
4804
+ end
4805
+ end
4806
+
4528
4807
  # Represents a Firewall resource.
4529
4808
  class Firewall
4530
4809
  include Google::Apis::Core::Hashable
@@ -4586,6 +4865,11 @@ module Google
4586
4865
  # @return [String]
4587
4866
  attr_accessor :kind
4588
4867
 
4868
+ # The available logging options for a firewall rule.
4869
+ # Corresponds to the JSON property `logConfig`
4870
+ # @return [Google::Apis::ComputeV1::FirewallLogConfig]
4871
+ attr_accessor :log_config
4872
+
4589
4873
  # Name of the resource; provided by the client when the resource is created. The
4590
4874
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
4591
4875
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -4695,6 +4979,7 @@ module Google
4695
4979
  @disabled = args[:disabled] if args.key?(:disabled)
4696
4980
  @id = args[:id] if args.key?(:id)
4697
4981
  @kind = args[:kind] if args.key?(:kind)
4982
+ @log_config = args[:log_config] if args.key?(:log_config)
4698
4983
  @name = args[:name] if args.key?(:name)
4699
4984
  @network = args[:network] if args.key?(:network)
4700
4985
  @priority = args[:priority] if args.key?(:priority)
@@ -4887,6 +5172,26 @@ module Google
4887
5172
  end
4888
5173
  end
4889
5174
 
5175
+ # The available logging options for a firewall rule.
5176
+ class FirewallLogConfig
5177
+ include Google::Apis::Core::Hashable
5178
+
5179
+ # This field denotes whether to enable logging for a particular firewall rule.
5180
+ # Corresponds to the JSON property `enable`
5181
+ # @return [Boolean]
5182
+ attr_accessor :enable
5183
+ alias_method :enable?, :enable
5184
+
5185
+ def initialize(**args)
5186
+ update!(**args)
5187
+ end
5188
+
5189
+ # Update properties of this object
5190
+ def update!(**args)
5191
+ @enable = args[:enable] if args.key?(:enable)
5192
+ end
5193
+ end
5194
+
4890
5195
  # A ForwardingRule resource. A ForwardingRule resource specifies which pool of
4891
5196
  # target virtual machines to forward a packet to if it matches the given [
4892
5197
  # IPAddress, IPProtocol, ports] tuple. (== resource_for beta.forwardingRules ==)
@@ -5030,9 +5335,9 @@ module Google
5030
5335
 
5031
5336
  # This field is used along with the backend_service field for internal load
5032
5337
  # balancing.
5033
- # When the load balancing scheme is INTERNAL, a single port or a comma separated
5034
- # list of ports can be configured. Only packets addressed to these ports will be
5035
- # forwarded to the backends configured with this forwarding rule.
5338
+ # When the load balancing scheme is INTERNAL, a list of ports can be configured,
5339
+ # for example, ['80'], ['8000','9000'] etc. Only packets addressed to these
5340
+ # ports will be forwarded to the backends configured with this forwarding rule.
5036
5341
  # You may specify a maximum of up to 5 ports.
5037
5342
  # Corresponds to the JSON property `ports`
5038
5343
  # @return [Array<String>]
@@ -5431,8 +5736,9 @@ module Google
5431
5736
  # The fingerprint of the previous set of labels for this resource, used to
5432
5737
  # detect conflicts. The fingerprint is initially generated by Compute Engine and
5433
5738
  # changes after every request to modify or update labels. You must always
5434
- # provide an up-to-date fingerprint hash when updating or changing labels. Make
5435
- # a get() request to the resource to get the latest fingerprint.
5739
+ # provide an up-to-date fingerprint hash when updating or changing labels,
5740
+ # otherwise the request will fail with error 412 conditionNotMet. Make a get()
5741
+ # request to the resource to get the latest fingerprint.
5436
5742
  # Corresponds to the JSON property `labelFingerprint`
5437
5743
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
5438
5744
  # @return [String]
@@ -5460,6 +5766,56 @@ module Google
5460
5766
  end
5461
5767
  end
5462
5768
 
5769
+ #
5770
+ class GlobalSetPolicyRequest
5771
+ include Google::Apis::Core::Hashable
5772
+
5773
+ # Flatten Policy to create a backward compatible wire-format. Deprecated. Use '
5774
+ # policy' to specify bindings.
5775
+ # Corresponds to the JSON property `bindings`
5776
+ # @return [Array<Google::Apis::ComputeV1::Binding>]
5777
+ attr_accessor :bindings
5778
+
5779
+ # Flatten Policy to create a backward compatible wire-format. Deprecated. Use '
5780
+ # policy' to specify the etag.
5781
+ # Corresponds to the JSON property `etag`
5782
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
5783
+ # @return [String]
5784
+ attr_accessor :etag
5785
+
5786
+ # Defines an Identity and Access Management (IAM) policy. It is used to specify
5787
+ # access control policies for Cloud Platform resources.
5788
+ # A `Policy` consists of a list of `bindings`. A `binding` binds a list of `
5789
+ # members` to a `role`, where the members can be user accounts, Google groups,
5790
+ # Google domains, and service accounts. A `role` is a named list of permissions
5791
+ # defined by IAM.
5792
+ # **JSON Example**
5793
+ # ` "bindings": [ ` "role": "roles/owner", "members": [ "user:mike@example.com",
5794
+ # "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@
5795
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/viewer", "members": ["user:
5796
+ # sean@example.com"] ` ] `
5797
+ # **YAML Example**
5798
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
5799
+ # domain:google.com - serviceAccount:my-other-app@appspot.gserviceaccount.com
5800
+ # role: roles/owner - members: - user:sean@example.com role: roles/viewer
5801
+ # For a description of IAM and its features, see the [IAM developer's guide](
5802
+ # https://cloud.google.com/iam/docs).
5803
+ # Corresponds to the JSON property `policy`
5804
+ # @return [Google::Apis::ComputeV1::Policy]
5805
+ attr_accessor :policy
5806
+
5807
+ def initialize(**args)
5808
+ update!(**args)
5809
+ end
5810
+
5811
+ # Update properties of this object
5812
+ def update!(**args)
5813
+ @bindings = args[:bindings] if args.key?(:bindings)
5814
+ @etag = args[:etag] if args.key?(:etag)
5815
+ @policy = args[:policy] if args.key?(:policy)
5816
+ end
5817
+ end
5818
+
5463
5819
  # Guest OS features.
5464
5820
  class GuestOsFeature
5465
5821
  include Google::Apis::Core::Hashable
@@ -6436,7 +6792,8 @@ module Google
6436
6792
  # a hash of the labels used for optimistic locking. The fingerprint is initially
6437
6793
  # generated by Compute Engine and changes after every request to modify or
6438
6794
  # update labels. You must always provide an up-to-date fingerprint hash in order
6439
- # to update or change labels.
6795
+ # to update or change labels, otherwise the request will fail with error 412
6796
+ # conditionNotMet.
6440
6797
  # To see the latest fingerprint, make a get() request to retrieve an image.
6441
6798
  # Corresponds to the JSON property `labelFingerprint`
6442
6799
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
@@ -7455,7 +7812,8 @@ module Google
7455
7812
 
7456
7813
  # Fingerprint of this resource. This field may be used in optimistic locking. It
7457
7814
  # will be ignored when inserting an InstanceGroupManager. An up-to-date
7458
- # fingerprint must be provided in order to update the InstanceGroupManager.
7815
+ # fingerprint must be provided in order to update the InstanceGroupManager,
7816
+ # otherwise the request will fail with error 412 conditionNotMet.
7459
7817
  # To see the latest fingerprint, make a get() request to retrieve an
7460
7818
  # InstanceGroupManager.
7461
7819
  # Corresponds to the JSON property `fingerprint`
@@ -7619,6 +7977,13 @@ module Google
7619
7977
  # @return [Fixnum]
7620
7978
  attr_accessor :restarting
7621
7979
 
7980
+ # [Output Only] The number of instances in the managed instance group that are
7981
+ # being verified. See the managedInstances[].currentAction property in the
7982
+ # listManagedInstances method documentation.
7983
+ # Corresponds to the JSON property `verifying`
7984
+ # @return [Fixnum]
7985
+ attr_accessor :verifying
7986
+
7622
7987
  def initialize(**args)
7623
7988
  update!(**args)
7624
7989
  end
@@ -7633,6 +7998,7 @@ module Google
7633
7998
  @recreating = args[:recreating] if args.key?(:recreating)
7634
7999
  @refreshing = args[:refreshing] if args.key?(:refreshing)
7635
8000
  @restarting = args[:restarting] if args.key?(:restarting)
8001
+ @verifying = args[:verifying] if args.key?(:verifying)
7636
8002
  end
7637
8003
  end
7638
8004
 
@@ -8376,7 +8742,8 @@ module Google
8376
8742
  # named ports settings concurrently. Obtain the fingerprint with the
8377
8743
  # instanceGroups.get method. Then, include the fingerprint in your request to
8378
8744
  # ensure that you do not overwrite changes that were applied from another
8379
- # concurrent request.
8745
+ # concurrent request. A request with an incorrect fingerprint will fail with
8746
+ # error 412 conditionNotMet.
8380
8747
  # Corresponds to the JSON property `fingerprint`
8381
8748
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
8382
8749
  # @return [String]
@@ -9438,7 +9805,7 @@ module Google
9438
9805
 
9439
9806
  # Provisioned bandwidth capacity for the interconnectAttachment. Can be set by
9440
9807
  # the partner to update the customer's provisioned bandwidth. Output only for
9441
- # for PARTNER type, mutable for PARTNER_PROVIDER, not available for DEDICATED.
9808
+ # PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED.
9442
9809
  # Corresponds to the JSON property `bandwidth`
9443
9810
  # @return [String]
9444
9811
  attr_accessor :bandwidth
@@ -9561,7 +9928,7 @@ module Google
9561
9928
  # @return [String]
9562
9929
  attr_accessor :region
9563
9930
 
9564
- # URL of the cloud router to be used for dynamic routing. This router must be in
9931
+ # URL of the Cloud Router to be used for dynamic routing. This router must be in
9565
9932
  # the same region as this InterconnectAttachment. The InterconnectAttachment
9566
9933
  # will automatically connect the Interconnect to the network & region within
9567
9934
  # which the Cloud Router is configured.
@@ -9584,9 +9951,8 @@ module Google
9584
9951
  # @return [String]
9585
9952
  attr_accessor :type
9586
9953
 
9587
- # Available only for DEDICATED and PARTNER_PROVIDER. Desired VLAN tag for this
9588
- # attachment, in the range 2-4094. This field refers to 802.1q VLAN tag, also
9589
- # known as IEEE 802.1Q Only specified at creation time.
9954
+ # The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4094. Only
9955
+ # specified at creation time.
9590
9956
  # Corresponds to the JSON property `vlanTag8021q`
9591
9957
  # @return [Fixnum]
9592
9958
  attr_accessor :vlan_tag8021q
@@ -9868,7 +10234,7 @@ module Google
9868
10234
  include Google::Apis::Core::Hashable
9869
10235
 
9870
10236
  # Plain text name of the Interconnect this attachment is connected to, as
9871
- # displayed in the Partner?s portal. For instance ?Chicago 1?. This value may be
10237
+ # displayed in the Partner?s portal. For instance "Chicago 1". This value may be
9872
10238
  # validated to match approved Partner values.
9873
10239
  # Corresponds to the JSON property `interconnectName`
9874
10240
  # @return [String]
@@ -10045,44 +10411,84 @@ module Google
10045
10411
  end
10046
10412
  end
10047
10413
 
10048
- # Response to the list request, and contains a list of interconnects.
10049
- class InterconnectList
10414
+ # Diagnostics information about interconnect, contains detailed and current
10415
+ # technical information about Google?s side of the connection.
10416
+ class InterconnectDiagnostics
10050
10417
  include Google::Apis::Core::Hashable
10051
10418
 
10052
- # [Output Only] Unique identifier for the resource; defined by the server.
10053
- # Corresponds to the JSON property `id`
10419
+ # A list of InterconnectDiagnostics.ARPEntry objects, describing individual
10420
+ # neighbors currently seen by the Google router in the ARP cache for the
10421
+ # Interconnect. This will be empty when the Interconnect is not bundled.
10422
+ # Corresponds to the JSON property `arpCaches`
10423
+ # @return [Array<Google::Apis::ComputeV1::InterconnectDiagnosticsArpEntry>]
10424
+ attr_accessor :arp_caches
10425
+
10426
+ # A list of InterconnectDiagnostics.LinkStatus objects, describing the status
10427
+ # for each link on the Interconnect.
10428
+ # Corresponds to the JSON property `links`
10429
+ # @return [Array<Google::Apis::ComputeV1::InterconnectDiagnosticsLinkStatus>]
10430
+ attr_accessor :links
10431
+
10432
+ # The MAC address of the Interconnect's bundle interface.
10433
+ # Corresponds to the JSON property `macAddress`
10054
10434
  # @return [String]
10055
- attr_accessor :id
10435
+ attr_accessor :mac_address
10056
10436
 
10057
- # A list of Interconnect resources.
10058
- # Corresponds to the JSON property `items`
10059
- # @return [Array<Google::Apis::ComputeV1::Interconnect>]
10060
- attr_accessor :items
10437
+ def initialize(**args)
10438
+ update!(**args)
10439
+ end
10061
10440
 
10062
- # [Output Only] Type of resource. Always compute#interconnectList for lists of
10063
- # interconnects.
10064
- # Corresponds to the JSON property `kind`
10441
+ # Update properties of this object
10442
+ def update!(**args)
10443
+ @arp_caches = args[:arp_caches] if args.key?(:arp_caches)
10444
+ @links = args[:links] if args.key?(:links)
10445
+ @mac_address = args[:mac_address] if args.key?(:mac_address)
10446
+ end
10447
+ end
10448
+
10449
+ # Describing the ARP neighbor entries seen on this link
10450
+ class InterconnectDiagnosticsArpEntry
10451
+ include Google::Apis::Core::Hashable
10452
+
10453
+ # The IP address of this ARP neighbor.
10454
+ # Corresponds to the JSON property `ipAddress`
10065
10455
  # @return [String]
10066
- attr_accessor :kind
10456
+ attr_accessor :ip_address
10067
10457
 
10068
- # [Output Only] This token allows you to get the next page of results for list
10069
- # requests. If the number of results is larger than maxResults, use the
10070
- # nextPageToken as a value for the query parameter pageToken in the next list
10071
- # request. Subsequent list requests will have their own nextPageToken to
10072
- # continue paging through the results.
10073
- # Corresponds to the JSON property `nextPageToken`
10458
+ # The MAC address of this ARP neighbor.
10459
+ # Corresponds to the JSON property `macAddress`
10074
10460
  # @return [String]
10075
- attr_accessor :next_page_token
10461
+ attr_accessor :mac_address
10076
10462
 
10077
- # [Output Only] Server-defined URL for this resource.
10078
- # Corresponds to the JSON property `selfLink`
10463
+ def initialize(**args)
10464
+ update!(**args)
10465
+ end
10466
+
10467
+ # Update properties of this object
10468
+ def update!(**args)
10469
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
10470
+ @mac_address = args[:mac_address] if args.key?(:mac_address)
10471
+ end
10472
+ end
10473
+
10474
+ #
10475
+ class InterconnectDiagnosticsLinkLacpStatus
10476
+ include Google::Apis::Core::Hashable
10477
+
10478
+ # System ID of the port on Google?s side of the LACP exchange.
10479
+ # Corresponds to the JSON property `googleSystemId`
10079
10480
  # @return [String]
10080
- attr_accessor :self_link
10481
+ attr_accessor :google_system_id
10081
10482
 
10082
- # [Output Only] Informational warning message.
10083
- # Corresponds to the JSON property `warning`
10084
- # @return [Google::Apis::ComputeV1::InterconnectList::Warning]
10085
- attr_accessor :warning
10483
+ # System ID of the port on the neighbor?s side of the LACP exchange.
10484
+ # Corresponds to the JSON property `neighborSystemId`
10485
+ # @return [String]
10486
+ attr_accessor :neighbor_system_id
10487
+
10488
+ #
10489
+ # Corresponds to the JSON property `state`
10490
+ # @return [String]
10491
+ attr_accessor :state
10086
10492
 
10087
10493
  def initialize(**args)
10088
10494
  update!(**args)
@@ -10090,41 +10496,170 @@ module Google
10090
10496
 
10091
10497
  # Update properties of this object
10092
10498
  def update!(**args)
10093
- @id = args[:id] if args.key?(:id)
10094
- @items = args[:items] if args.key?(:items)
10095
- @kind = args[:kind] if args.key?(:kind)
10096
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
10097
- @self_link = args[:self_link] if args.key?(:self_link)
10098
- @warning = args[:warning] if args.key?(:warning)
10499
+ @google_system_id = args[:google_system_id] if args.key?(:google_system_id)
10500
+ @neighbor_system_id = args[:neighbor_system_id] if args.key?(:neighbor_system_id)
10501
+ @state = args[:state] if args.key?(:state)
10099
10502
  end
10100
-
10101
- # [Output Only] Informational warning message.
10102
- class Warning
10103
- include Google::Apis::Core::Hashable
10104
-
10105
- # [Output Only] A warning code, if applicable. For example, Compute Engine
10106
- # returns NO_RESULTS_ON_PAGE if there are no results in the response.
10107
- # Corresponds to the JSON property `code`
10108
- # @return [String]
10109
- attr_accessor :code
10110
-
10111
- # [Output Only] Metadata about this warning in key: value format. For example:
10112
- # "data": [ ` "key": "scope", "value": "zones/us-east1-d" `
10113
- # Corresponds to the JSON property `data`
10114
- # @return [Array<Google::Apis::ComputeV1::InterconnectList::Warning::Datum>]
10115
- attr_accessor :data
10116
-
10117
- # [Output Only] A human-readable description of the warning code.
10118
- # Corresponds to the JSON property `message`
10119
- # @return [String]
10120
- attr_accessor :message
10121
-
10122
- def initialize(**args)
10123
- update!(**args)
10124
- end
10125
-
10126
- # Update properties of this object
10127
- def update!(**args)
10503
+ end
10504
+
10505
+ #
10506
+ class InterconnectDiagnosticsLinkOpticalPower
10507
+ include Google::Apis::Core::Hashable
10508
+
10509
+ #
10510
+ # Corresponds to the JSON property `state`
10511
+ # @return [String]
10512
+ attr_accessor :state
10513
+
10514
+ # Value of the current optical power, read in dBm. Take a known good optical
10515
+ # value, give it a 10% margin and trigger warnings relative to that value. In
10516
+ # general, a -7dBm warning and a -11dBm alarm are good optical value estimates
10517
+ # for most links.
10518
+ # Corresponds to the JSON property `value`
10519
+ # @return [Float]
10520
+ attr_accessor :value
10521
+
10522
+ def initialize(**args)
10523
+ update!(**args)
10524
+ end
10525
+
10526
+ # Update properties of this object
10527
+ def update!(**args)
10528
+ @state = args[:state] if args.key?(:state)
10529
+ @value = args[:value] if args.key?(:value)
10530
+ end
10531
+ end
10532
+
10533
+ #
10534
+ class InterconnectDiagnosticsLinkStatus
10535
+ include Google::Apis::Core::Hashable
10536
+
10537
+ # A list of InterconnectDiagnostics.ARPEntry objects, describing the ARP
10538
+ # neighbor entries seen on this link. This will be empty if the link is bundled
10539
+ # Corresponds to the JSON property `arpCaches`
10540
+ # @return [Array<Google::Apis::ComputeV1::InterconnectDiagnosticsArpEntry>]
10541
+ attr_accessor :arp_caches
10542
+
10543
+ # The unique ID for this link assigned during turn up by Google.
10544
+ # Corresponds to the JSON property `circuitId`
10545
+ # @return [String]
10546
+ attr_accessor :circuit_id
10547
+
10548
+ # The Demarc address assigned by Google and provided in the LoA.
10549
+ # Corresponds to the JSON property `googleDemarc`
10550
+ # @return [String]
10551
+ attr_accessor :google_demarc
10552
+
10553
+ #
10554
+ # Corresponds to the JSON property `lacpStatus`
10555
+ # @return [Google::Apis::ComputeV1::InterconnectDiagnosticsLinkLacpStatus]
10556
+ attr_accessor :lacp_status
10557
+
10558
+ #
10559
+ # Corresponds to the JSON property `receivingOpticalPower`
10560
+ # @return [Google::Apis::ComputeV1::InterconnectDiagnosticsLinkOpticalPower]
10561
+ attr_accessor :receiving_optical_power
10562
+
10563
+ #
10564
+ # Corresponds to the JSON property `transmittingOpticalPower`
10565
+ # @return [Google::Apis::ComputeV1::InterconnectDiagnosticsLinkOpticalPower]
10566
+ attr_accessor :transmitting_optical_power
10567
+
10568
+ def initialize(**args)
10569
+ update!(**args)
10570
+ end
10571
+
10572
+ # Update properties of this object
10573
+ def update!(**args)
10574
+ @arp_caches = args[:arp_caches] if args.key?(:arp_caches)
10575
+ @circuit_id = args[:circuit_id] if args.key?(:circuit_id)
10576
+ @google_demarc = args[:google_demarc] if args.key?(:google_demarc)
10577
+ @lacp_status = args[:lacp_status] if args.key?(:lacp_status)
10578
+ @receiving_optical_power = args[:receiving_optical_power] if args.key?(:receiving_optical_power)
10579
+ @transmitting_optical_power = args[:transmitting_optical_power] if args.key?(:transmitting_optical_power)
10580
+ end
10581
+ end
10582
+
10583
+ # Response to the list request, and contains a list of interconnects.
10584
+ class InterconnectList
10585
+ include Google::Apis::Core::Hashable
10586
+
10587
+ # [Output Only] Unique identifier for the resource; defined by the server.
10588
+ # Corresponds to the JSON property `id`
10589
+ # @return [String]
10590
+ attr_accessor :id
10591
+
10592
+ # A list of Interconnect resources.
10593
+ # Corresponds to the JSON property `items`
10594
+ # @return [Array<Google::Apis::ComputeV1::Interconnect>]
10595
+ attr_accessor :items
10596
+
10597
+ # [Output Only] Type of resource. Always compute#interconnectList for lists of
10598
+ # interconnects.
10599
+ # Corresponds to the JSON property `kind`
10600
+ # @return [String]
10601
+ attr_accessor :kind
10602
+
10603
+ # [Output Only] This token allows you to get the next page of results for list
10604
+ # requests. If the number of results is larger than maxResults, use the
10605
+ # nextPageToken as a value for the query parameter pageToken in the next list
10606
+ # request. Subsequent list requests will have their own nextPageToken to
10607
+ # continue paging through the results.
10608
+ # Corresponds to the JSON property `nextPageToken`
10609
+ # @return [String]
10610
+ attr_accessor :next_page_token
10611
+
10612
+ # [Output Only] Server-defined URL for this resource.
10613
+ # Corresponds to the JSON property `selfLink`
10614
+ # @return [String]
10615
+ attr_accessor :self_link
10616
+
10617
+ # [Output Only] Informational warning message.
10618
+ # Corresponds to the JSON property `warning`
10619
+ # @return [Google::Apis::ComputeV1::InterconnectList::Warning]
10620
+ attr_accessor :warning
10621
+
10622
+ def initialize(**args)
10623
+ update!(**args)
10624
+ end
10625
+
10626
+ # Update properties of this object
10627
+ def update!(**args)
10628
+ @id = args[:id] if args.key?(:id)
10629
+ @items = args[:items] if args.key?(:items)
10630
+ @kind = args[:kind] if args.key?(:kind)
10631
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
10632
+ @self_link = args[:self_link] if args.key?(:self_link)
10633
+ @warning = args[:warning] if args.key?(:warning)
10634
+ end
10635
+
10636
+ # [Output Only] Informational warning message.
10637
+ class Warning
10638
+ include Google::Apis::Core::Hashable
10639
+
10640
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
10641
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
10642
+ # Corresponds to the JSON property `code`
10643
+ # @return [String]
10644
+ attr_accessor :code
10645
+
10646
+ # [Output Only] Metadata about this warning in key: value format. For example:
10647
+ # "data": [ ` "key": "scope", "value": "zones/us-east1-d" `
10648
+ # Corresponds to the JSON property `data`
10649
+ # @return [Array<Google::Apis::ComputeV1::InterconnectList::Warning::Datum>]
10650
+ attr_accessor :data
10651
+
10652
+ # [Output Only] A human-readable description of the warning code.
10653
+ # Corresponds to the JSON property `message`
10654
+ # @return [String]
10655
+ attr_accessor :message
10656
+
10657
+ def initialize(**args)
10658
+ update!(**args)
10659
+ end
10660
+
10661
+ # Update properties of this object
10662
+ def update!(**args)
10128
10663
  @code = args[:code] if args.key?(:code)
10129
10664
  @data = args[:data] if args.key?(:data)
10130
10665
  @message = args[:message] if args.key?(:message)
@@ -10488,6 +11023,26 @@ module Google
10488
11023
  end
10489
11024
  end
10490
11025
 
11026
+ # Response for the InterconnectsGetDiagnosticsRequest.
11027
+ class InterconnectsGetDiagnosticsResponse
11028
+ include Google::Apis::Core::Hashable
11029
+
11030
+ # Diagnostics information about interconnect, contains detailed and current
11031
+ # technical information about Google?s side of the connection.
11032
+ # Corresponds to the JSON property `result`
11033
+ # @return [Google::Apis::ComputeV1::InterconnectDiagnostics]
11034
+ attr_accessor :result
11035
+
11036
+ def initialize(**args)
11037
+ update!(**args)
11038
+ end
11039
+
11040
+ # Update properties of this object
11041
+ def update!(**args)
11042
+ @result = args[:result] if args.key?(:result)
11043
+ end
11044
+ end
11045
+
10491
11046
  # A license resource.
10492
11047
  class License
10493
11048
  include Google::Apis::Core::Hashable
@@ -10804,6 +11359,141 @@ module Google
10804
11359
  end
10805
11360
  end
10806
11361
 
11362
+ # Specifies what kind of log the caller must write
11363
+ class LogConfig
11364
+ include Google::Apis::Core::Hashable
11365
+
11366
+ # Write a Cloud Audit log
11367
+ # Corresponds to the JSON property `cloudAudit`
11368
+ # @return [Google::Apis::ComputeV1::LogConfigCloudAuditOptions]
11369
+ attr_accessor :cloud_audit
11370
+
11371
+ # Increment a streamz counter with the specified metric and field names.
11372
+ # Metric names should start with a '/', generally be lowercase-only, and end in "
11373
+ # _count". Field names should not contain an initial slash. The actual exported
11374
+ # metric names will have "/iam/policy" prepended.
11375
+ # Field names correspond to IAM request parameters and field values are their
11376
+ # respective values.
11377
+ # Supported field names: - "authority", which is "[token]" if IAMContext.token
11378
+ # is present, otherwise the value of IAMContext.authority_selector if present,
11379
+ # and otherwise a representation of IAMContext.principal; or - "iam_principal",
11380
+ # a representation of IAMContext.principal even if a token or authority selector
11381
+ # is present; or - "" (empty string), resulting in a counter with no fields.
11382
+ # Examples: counter ` metric: "/debug_access_count" field: "iam_principal" ` ==>
11383
+ # increment counter /iam/policy/backend_debug_access_count `iam_principal=[value
11384
+ # of IAMContext.principal]`
11385
+ # At this time we do not support multiple field names (though this may be
11386
+ # supported in the future).
11387
+ # Corresponds to the JSON property `counter`
11388
+ # @return [Google::Apis::ComputeV1::LogConfigCounterOptions]
11389
+ attr_accessor :counter
11390
+
11391
+ # Write a Data Access (Gin) log
11392
+ # Corresponds to the JSON property `dataAccess`
11393
+ # @return [Google::Apis::ComputeV1::LogConfigDataAccessOptions]
11394
+ attr_accessor :data_access
11395
+
11396
+ def initialize(**args)
11397
+ update!(**args)
11398
+ end
11399
+
11400
+ # Update properties of this object
11401
+ def update!(**args)
11402
+ @cloud_audit = args[:cloud_audit] if args.key?(:cloud_audit)
11403
+ @counter = args[:counter] if args.key?(:counter)
11404
+ @data_access = args[:data_access] if args.key?(:data_access)
11405
+ end
11406
+ end
11407
+
11408
+ # Write a Cloud Audit log
11409
+ class LogConfigCloudAuditOptions
11410
+ include Google::Apis::Core::Hashable
11411
+
11412
+ # Authorization-related information used by Cloud Audit Logging.
11413
+ # Corresponds to the JSON property `authorizationLoggingOptions`
11414
+ # @return [Google::Apis::ComputeV1::AuthorizationLoggingOptions]
11415
+ attr_accessor :authorization_logging_options
11416
+
11417
+ # The log_name to populate in the Cloud Audit Record.
11418
+ # Corresponds to the JSON property `logName`
11419
+ # @return [String]
11420
+ attr_accessor :log_name
11421
+
11422
+ def initialize(**args)
11423
+ update!(**args)
11424
+ end
11425
+
11426
+ # Update properties of this object
11427
+ def update!(**args)
11428
+ @authorization_logging_options = args[:authorization_logging_options] if args.key?(:authorization_logging_options)
11429
+ @log_name = args[:log_name] if args.key?(:log_name)
11430
+ end
11431
+ end
11432
+
11433
+ # Increment a streamz counter with the specified metric and field names.
11434
+ # Metric names should start with a '/', generally be lowercase-only, and end in "
11435
+ # _count". Field names should not contain an initial slash. The actual exported
11436
+ # metric names will have "/iam/policy" prepended.
11437
+ # Field names correspond to IAM request parameters and field values are their
11438
+ # respective values.
11439
+ # Supported field names: - "authority", which is "[token]" if IAMContext.token
11440
+ # is present, otherwise the value of IAMContext.authority_selector if present,
11441
+ # and otherwise a representation of IAMContext.principal; or - "iam_principal",
11442
+ # a representation of IAMContext.principal even if a token or authority selector
11443
+ # is present; or - "" (empty string), resulting in a counter with no fields.
11444
+ # Examples: counter ` metric: "/debug_access_count" field: "iam_principal" ` ==>
11445
+ # increment counter /iam/policy/backend_debug_access_count `iam_principal=[value
11446
+ # of IAMContext.principal]`
11447
+ # At this time we do not support multiple field names (though this may be
11448
+ # supported in the future).
11449
+ class LogConfigCounterOptions
11450
+ include Google::Apis::Core::Hashable
11451
+
11452
+ # The field value to attribute.
11453
+ # Corresponds to the JSON property `field`
11454
+ # @return [String]
11455
+ attr_accessor :field
11456
+
11457
+ # The metric to update.
11458
+ # Corresponds to the JSON property `metric`
11459
+ # @return [String]
11460
+ attr_accessor :metric
11461
+
11462
+ def initialize(**args)
11463
+ update!(**args)
11464
+ end
11465
+
11466
+ # Update properties of this object
11467
+ def update!(**args)
11468
+ @field = args[:field] if args.key?(:field)
11469
+ @metric = args[:metric] if args.key?(:metric)
11470
+ end
11471
+ end
11472
+
11473
+ # Write a Data Access (Gin) log
11474
+ class LogConfigDataAccessOptions
11475
+ include Google::Apis::Core::Hashable
11476
+
11477
+ # Whether Gin logging should happen in a fail-closed manner at the caller. This
11478
+ # is relevant only in the LocalIAM implementation, for now.
11479
+ # NOTE: Logging to Gin in a fail-closed manner is currently unsupported while
11480
+ # work is being done to satisfy the requirements of go/345. Currently, setting
11481
+ # LOG_FAIL_CLOSED mode will have no effect, but still exists because there is
11482
+ # active work being done to support it (b/115874152).
11483
+ # Corresponds to the JSON property `logMode`
11484
+ # @return [String]
11485
+ attr_accessor :log_mode
11486
+
11487
+ def initialize(**args)
11488
+ update!(**args)
11489
+ end
11490
+
11491
+ # Update properties of this object
11492
+ def update!(**args)
11493
+ @log_mode = args[:log_mode] if args.key?(:log_mode)
11494
+ end
11495
+ end
11496
+
10807
11497
  # A Machine Type resource. (== resource_for v1.machineTypes ==) (== resource_for
10808
11498
  # beta.machineTypes ==)
10809
11499
  class MachineType
@@ -11407,7 +12097,8 @@ module Google
11407
12097
  # metadata's contents and used for optimistic locking. The fingerprint is
11408
12098
  # initially generated by Compute Engine and changes after every request to
11409
12099
  # modify or update metadata. You must always provide an up-to-date fingerprint
11410
- # hash in order to update or change metadata.
12100
+ # hash in order to update or change metadata, otherwise the request will fail
12101
+ # with error 412 conditionNotMet.
11411
12102
  # To see the latest fingerprint, make a get() request to retrieve the resource.
11412
12103
  # Corresponds to the JSON property `fingerprint`
11413
12104
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
@@ -11617,7 +12308,8 @@ module Google
11617
12308
 
11618
12309
  # Fingerprint hash of contents stored in this network interface. This field will
11619
12310
  # be ignored when inserting an Instance or adding a NetworkInterface. An up-to-
11620
- # date fingerprint must be provided in order to update the NetworkInterface.
12311
+ # date fingerprint must be provided in order to update the NetworkInterface,
12312
+ # otherwise the request will fail with error 412 conditionNotMet.
11621
12313
  # Corresponds to the JSON property `fingerprint`
11622
12314
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
11623
12315
  # @return [String]
@@ -11812,10 +12504,10 @@ module Google
11812
12504
  class NetworkPeering
11813
12505
  include Google::Apis::Core::Hashable
11814
12506
 
11815
- # Whether full mesh connectivity is created and managed automatically. When it
11816
- # is set to true, Google Compute Engine will automatically create and manage the
11817
- # routes between two networks when the state is ACTIVE. Otherwise, user needs to
11818
- # create routes manually to route packets to peer network.
12507
+ # Indicates whether full mesh connectivity is created and managed automatically.
12508
+ # When it is set to true, Google Compute Engine will automatically create and
12509
+ # manage the routes between two networks when the state is ACTIVE. Otherwise,
12510
+ # user needs to create routes manually to route packets to peer network.
11819
12511
  # Corresponds to the JSON property `autoCreateRoutes`
11820
12512
  # @return [Boolean]
11821
12513
  attr_accessor :auto_create_routes
@@ -12596,8 +13288,8 @@ module Google
12596
13288
  # RFC1035. Specifically, the name must be 1-63 characters long and match the
12597
13289
  # regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
12598
13290
  # character must be a lowercase letter, and all following characters must be a
12599
- # dash, lowercase letter, or digit, except the last charaicter, which cannot be
12600
- # a dash.
13291
+ # dash, lowercase letter, or digit, except the last character, which cannot be a
13292
+ # dash.
12601
13293
  # Corresponds to the JSON property `name`
12602
13294
  # @return [String]
12603
13295
  attr_accessor :name
@@ -14069,13 +14761,21 @@ module Google
14069
14761
  include Google::Apis::Core::Hashable
14070
14762
 
14071
14763
  # The full or partial URL to the BackendService resource. This will be used if
14072
- # none of the pathRules defined by this PathMatcher is matched by the URL's path
14073
- # portion. For example, the following are all valid URLs to a BackendService
14074
- # resource:
14764
+ # none of the pathRules or routeRules defined by this PathMatcher are matched.
14765
+ # For example, the following are all valid URLs to a BackendService resource:
14075
14766
  # - https://www.googleapis.com/compute/v1/projects/project/global/
14076
14767
  # backendServices/backendService
14077
14768
  # - compute/v1/projects/project/global/backendServices/backendService
14078
14769
  # - global/backendServices/backendService
14770
+ # Use defaultService instead of defaultRouteAction when simple routing to a
14771
+ # backend service is desired and other advanced capabilities like traffic
14772
+ # splitting and URL rewrites are not required.
14773
+ # Only one of defaultService, defaultRouteAction or defaultUrlRedirect must be
14774
+ # set.
14775
+ # Authorization requires one or more of the following Google IAM permissions on
14776
+ # the specified resource default_service:
14777
+ # - compute.backendBuckets.use
14778
+ # - compute.backendServices.use
14079
14779
  # Corresponds to the JSON property `defaultService`
14080
14780
  # @return [String]
14081
14781
  attr_accessor :default_service
@@ -14091,7 +14791,13 @@ module Google
14091
14791
  # @return [String]
14092
14792
  attr_accessor :name
14093
14793
 
14094
- # The list of path rules.
14794
+ # The list of path rules. Use this list instead of routeRules when routing based
14795
+ # on simple path matching is all that's required. The order by which path rules
14796
+ # are specified does not matter. Matches are always done on the longest-path-
14797
+ # first basis.
14798
+ # For example: a pathRule with a path /a/b/c/* will match before /a/b/*
14799
+ # irrespective of the order in which those paths appear in this list.
14800
+ # Only one of pathRules or routeRules must be set.
14095
14801
  # Corresponds to the JSON property `pathRules`
14096
14802
  # @return [Array<Google::Apis::ComputeV1::PathRule>]
14097
14803
  attr_accessor :path_rules
@@ -14122,7 +14828,11 @@ module Google
14122
14828
  # @return [Array<String>]
14123
14829
  attr_accessor :paths
14124
14830
 
14125
- # The URL of the BackendService resource if this rule is matched.
14831
+ # The URL of the backend service resource if this rule is matched.
14832
+ # Use service instead of routeAction when simple routing to a backend service is
14833
+ # desired and other advanced capabilities like traffic splitting and rewrites
14834
+ # are not required.
14835
+ # Only one of service, routeAction or urlRedirect should must be set.
14126
14836
  # Corresponds to the JSON property `service`
14127
14837
  # @return [String]
14128
14838
  attr_accessor :service
@@ -14138,6 +14848,88 @@ module Google
14138
14848
  end
14139
14849
  end
14140
14850
 
14851
+ # Defines an Identity and Access Management (IAM) policy. It is used to specify
14852
+ # access control policies for Cloud Platform resources.
14853
+ # A `Policy` consists of a list of `bindings`. A `binding` binds a list of `
14854
+ # members` to a `role`, where the members can be user accounts, Google groups,
14855
+ # Google domains, and service accounts. A `role` is a named list of permissions
14856
+ # defined by IAM.
14857
+ # **JSON Example**
14858
+ # ` "bindings": [ ` "role": "roles/owner", "members": [ "user:mike@example.com",
14859
+ # "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@
14860
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/viewer", "members": ["user:
14861
+ # sean@example.com"] ` ] `
14862
+ # **YAML Example**
14863
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
14864
+ # domain:google.com - serviceAccount:my-other-app@appspot.gserviceaccount.com
14865
+ # role: roles/owner - members: - user:sean@example.com role: roles/viewer
14866
+ # For a description of IAM and its features, see the [IAM developer's guide](
14867
+ # https://cloud.google.com/iam/docs).
14868
+ class Policy
14869
+ include Google::Apis::Core::Hashable
14870
+
14871
+ # Specifies cloud audit logging configuration for this policy.
14872
+ # Corresponds to the JSON property `auditConfigs`
14873
+ # @return [Array<Google::Apis::ComputeV1::AuditConfig>]
14874
+ attr_accessor :audit_configs
14875
+
14876
+ # Associates a list of `members` to a `role`. `bindings` with no members will
14877
+ # result in an error.
14878
+ # Corresponds to the JSON property `bindings`
14879
+ # @return [Array<Google::Apis::ComputeV1::Binding>]
14880
+ attr_accessor :bindings
14881
+
14882
+ # `etag` is used for optimistic concurrency control as a way to help prevent
14883
+ # simultaneous updates of a policy from overwriting each other. It is strongly
14884
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
14885
+ # to perform policy updates in order to avoid race conditions: An `etag` is
14886
+ # returned in the response to `getIamPolicy`, and systems are expected to put
14887
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
14888
+ # applied to the same version of the policy.
14889
+ # If no `etag` is provided in the call to `setIamPolicy`, then the existing
14890
+ # policy is overwritten blindly.
14891
+ # Corresponds to the JSON property `etag`
14892
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
14893
+ # @return [String]
14894
+ attr_accessor :etag
14895
+
14896
+ #
14897
+ # Corresponds to the JSON property `iamOwned`
14898
+ # @return [Boolean]
14899
+ attr_accessor :iam_owned
14900
+ alias_method :iam_owned?, :iam_owned
14901
+
14902
+ # If more than one rule is specified, the rules are applied in the following
14903
+ # manner: - All matching LOG rules are always applied. - If any DENY/
14904
+ # DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if
14905
+ # one or more matching rule requires logging. - Otherwise, if any ALLOW/
14906
+ # ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if
14907
+ # one or more matching rule requires logging. - Otherwise, if no rule applies,
14908
+ # permission is denied.
14909
+ # Corresponds to the JSON property `rules`
14910
+ # @return [Array<Google::Apis::ComputeV1::Rule>]
14911
+ attr_accessor :rules
14912
+
14913
+ # Deprecated.
14914
+ # Corresponds to the JSON property `version`
14915
+ # @return [Fixnum]
14916
+ attr_accessor :version
14917
+
14918
+ def initialize(**args)
14919
+ update!(**args)
14920
+ end
14921
+
14922
+ # Update properties of this object
14923
+ def update!(**args)
14924
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
14925
+ @bindings = args[:bindings] if args.key?(:bindings)
14926
+ @etag = args[:etag] if args.key?(:etag)
14927
+ @iam_owned = args[:iam_owned] if args.key?(:iam_owned)
14928
+ @rules = args[:rules] if args.key?(:rules)
14929
+ @version = args[:version] if args.key?(:version)
14930
+ end
14931
+ end
14932
+
14141
14933
  # A Project resource. For an overview of projects, see Cloud Platform Resource
14142
14934
  # Hierarchy. (== resource_for v1.projects ==) (== resource_for beta.projects ==)
14143
14935
  class Project
@@ -15440,6 +16232,56 @@ module Google
15440
16232
  end
15441
16233
  end
15442
16234
 
16235
+ #
16236
+ class RegionSetPolicyRequest
16237
+ include Google::Apis::Core::Hashable
16238
+
16239
+ # Flatten Policy to create a backwacd compatible wire-format. Deprecated. Use '
16240
+ # policy' to specify bindings.
16241
+ # Corresponds to the JSON property `bindings`
16242
+ # @return [Array<Google::Apis::ComputeV1::Binding>]
16243
+ attr_accessor :bindings
16244
+
16245
+ # Flatten Policy to create a backward compatible wire-format. Deprecated. Use '
16246
+ # policy' to specify the etag.
16247
+ # Corresponds to the JSON property `etag`
16248
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
16249
+ # @return [String]
16250
+ attr_accessor :etag
16251
+
16252
+ # Defines an Identity and Access Management (IAM) policy. It is used to specify
16253
+ # access control policies for Cloud Platform resources.
16254
+ # A `Policy` consists of a list of `bindings`. A `binding` binds a list of `
16255
+ # members` to a `role`, where the members can be user accounts, Google groups,
16256
+ # Google domains, and service accounts. A `role` is a named list of permissions
16257
+ # defined by IAM.
16258
+ # **JSON Example**
16259
+ # ` "bindings": [ ` "role": "roles/owner", "members": [ "user:mike@example.com",
16260
+ # "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@
16261
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/viewer", "members": ["user:
16262
+ # sean@example.com"] ` ] `
16263
+ # **YAML Example**
16264
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
16265
+ # domain:google.com - serviceAccount:my-other-app@appspot.gserviceaccount.com
16266
+ # role: roles/owner - members: - user:sean@example.com role: roles/viewer
16267
+ # For a description of IAM and its features, see the [IAM developer's guide](
16268
+ # https://cloud.google.com/iam/docs).
16269
+ # Corresponds to the JSON property `policy`
16270
+ # @return [Google::Apis::ComputeV1::Policy]
16271
+ attr_accessor :policy
16272
+
16273
+ def initialize(**args)
16274
+ update!(**args)
16275
+ end
16276
+
16277
+ # Update properties of this object
16278
+ def update!(**args)
16279
+ @bindings = args[:bindings] if args.key?(:bindings)
16280
+ @etag = args[:etag] if args.key?(:etag)
16281
+ @policy = args[:policy] if args.key?(:policy)
16282
+ end
16283
+ end
16284
+
15443
16285
  # Commitment for a particular resource (a Commitment is composed of one or more
15444
16286
  # of these).
15445
16287
  class ResourceCommitment
@@ -15474,7 +16316,8 @@ module Google
15474
16316
  class ResourceGroupReference
15475
16317
  include Google::Apis::Core::Hashable
15476
16318
 
15477
- # A URI referencing one of the instance groups listed in the backend service.
16319
+ # A URI referencing one of the instance groups or network endpoint groups listed
16320
+ # in the backend service.
15478
16321
  # Corresponds to the JSON property `group`
15479
16322
  # @return [String]
15480
16323
  attr_accessor :group
@@ -15870,6 +16713,11 @@ module Google
15870
16713
  # @return [String]
15871
16714
  attr_accessor :name
15872
16715
 
16716
+ # A list of Nat services created in this router.
16717
+ # Corresponds to the JSON property `nats`
16718
+ # @return [Array<Google::Apis::ComputeV1::RouterNat>]
16719
+ attr_accessor :nats
16720
+
15873
16721
  # URI of the network to which this router belongs.
15874
16722
  # Corresponds to the JSON property `network`
15875
16723
  # @return [String]
@@ -15901,6 +16749,7 @@ module Google
15901
16749
  @interfaces = args[:interfaces] if args.key?(:interfaces)
15902
16750
  @kind = args[:kind] if args.key?(:kind)
15903
16751
  @name = args[:name] if args.key?(:name)
16752
+ @nats = args[:nats] if args.key?(:nats)
15904
16753
  @network = args[:network] if args.key?(:network)
15905
16754
  @region = args[:region] if args.key?(:region)
15906
16755
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -16139,11 +16988,12 @@ module Google
16139
16988
  # @return [String]
16140
16989
  attr_accessor :ip_address
16141
16990
 
16142
- # [Output Only] Type of how the resource/configuration of the BGP peer is
16143
- # managed. MANAGED_BY_USER is the default value; MANAGED_BY_ATTACHMENT
16144
- # represents an BGP peer that is automatically created for PARTNER
16145
- # interconnectAttachment, Google will automatically create/delete this type of
16146
- # BGP peer when the PARTNER interconnectAttachment is created/deleted.
16991
+ # [Output Only] The resource that configures and manages this BGP peer.
16992
+ # MANAGED_BY_USER is the default value and can be managed by you or other users;
16993
+ # MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed by Cloud
16994
+ # Interconnect, specifically by an InterconnectAttachment of type PARTNER.
16995
+ # Google will automatically create, update, and delete this type of BGP peer
16996
+ # when the PARTNER InterconnectAttachment is created, updated, or deleted.
16147
16997
  # Corresponds to the JSON property `managementType`
16148
16998
  # @return [String]
16149
16999
  attr_accessor :management_type
@@ -16210,12 +17060,12 @@ module Google
16210
17060
  # @return [String]
16211
17061
  attr_accessor :linked_vpn_tunnel
16212
17062
 
16213
- # [Output Only] Type of how the resource/configuration of the interface is
16214
- # managed. MANAGED_BY_USER is the default value; MANAGED_BY_ATTACHMENT
16215
- # represents an interface that is automatically created for PARTNER type
16216
- # interconnectAttachment, Google will automatically create/update/delete this
16217
- # type of interface when the PARTNER interconnectAttachment is created/
16218
- # provisioned/deleted.
17063
+ # [Output Only] The resource that configures and manages this interface.
17064
+ # MANAGED_BY_USER is the default value and can be managed by you or other users;
17065
+ # MANAGED_BY_ATTACHMENT is an interface that is configured and managed by Cloud
17066
+ # Interconnect, specifically by an InterconnectAttachment of type PARTNER.
17067
+ # Google will automatically create, update, and delete this type of interface
17068
+ # when the PARTNER InterconnectAttachment is created, updated, or deleted.
16219
17069
  # Corresponds to the JSON property `managementType`
16220
17070
  # @return [String]
16221
17071
  attr_accessor :management_type
@@ -16357,24 +17207,155 @@ module Google
16357
17207
  end
16358
17208
  end
16359
17209
 
16360
- #
16361
- class RouterStatus
17210
+ # Represents a Nat resource. It enables the VMs within the specified subnetworks
17211
+ # to access Internet without external IP addresses. It specifies a list of
17212
+ # subnetworks (and the ranges within) that want to use NAT. Customers can also
17213
+ # provide the external IPs that would be used for NAT. GCP would auto-allocate
17214
+ # ephemeral IPs if no external IPs are provided.
17215
+ class RouterNat
16362
17216
  include Google::Apis::Core::Hashable
16363
17217
 
16364
- # Best routes for this router's network.
16365
- # Corresponds to the JSON property `bestRoutes`
16366
- # @return [Array<Google::Apis::ComputeV1::Route>]
16367
- attr_accessor :best_routes
17218
+ # Timeout (in seconds) for ICMP connections. Defaults to 30s if not set.
17219
+ # Corresponds to the JSON property `icmpIdleTimeoutSec`
17220
+ # @return [Fixnum]
17221
+ attr_accessor :icmp_idle_timeout_sec
16368
17222
 
16369
- # Best routes learned by this router.
16370
- # Corresponds to the JSON property `bestRoutesForRouter`
16371
- # @return [Array<Google::Apis::ComputeV1::Route>]
16372
- attr_accessor :best_routes_for_router
17223
+ # Minimum number of ports allocated to a VM from this NAT config. If not set, a
17224
+ # default number of ports is allocated to a VM. This gets rounded up to the
17225
+ # nearest power of 2. Eg. if the value of this field is 50, at least 64 ports
17226
+ # will be allocated to a VM.
17227
+ # Corresponds to the JSON property `minPortsPerVm`
17228
+ # @return [Fixnum]
17229
+ attr_accessor :min_ports_per_vm
16373
17230
 
16374
- #
16375
- # Corresponds to the JSON property `bgpPeerStatus`
16376
- # @return [Array<Google::Apis::ComputeV1::RouterStatusBgpPeerStatus>]
16377
- attr_accessor :bgp_peer_status
17231
+ # Unique name of this Nat service. The name must be 1-63 characters long and
17232
+ # comply with RFC1035.
17233
+ # Corresponds to the JSON property `name`
17234
+ # @return [String]
17235
+ attr_accessor :name
17236
+
17237
+ # Specify the NatIpAllocateOption. If it is AUTO_ONLY, then nat_ip should be
17238
+ # empty.
17239
+ # Corresponds to the JSON property `natIpAllocateOption`
17240
+ # @return [String]
17241
+ attr_accessor :nat_ip_allocate_option
17242
+
17243
+ # A list of URLs of the IP resources used for this Nat service. These IPs must
17244
+ # be valid static external IP addresses assigned to the project. max_length is
17245
+ # subject to change post alpha.
17246
+ # Corresponds to the JSON property `natIps`
17247
+ # @return [Array<String>]
17248
+ attr_accessor :nat_ips
17249
+
17250
+ # Specify the Nat option. If this field contains ALL_SUBNETWORKS_ALL_IP_RANGES
17251
+ # or ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any other
17252
+ # Router.Nat section in any Router for this network in this region.
17253
+ # Corresponds to the JSON property `sourceSubnetworkIpRangesToNat`
17254
+ # @return [String]
17255
+ attr_accessor :source_subnetwork_ip_ranges_to_nat
17256
+
17257
+ # A list of Subnetwork resources whose traffic should be translated by NAT
17258
+ # Gateway. It is used only when LIST_OF_SUBNETWORKS is selected for the
17259
+ # SubnetworkIpRangeToNatOption above.
17260
+ # Corresponds to the JSON property `subnetworks`
17261
+ # @return [Array<Google::Apis::ComputeV1::RouterNatSubnetworkToNat>]
17262
+ attr_accessor :subnetworks
17263
+
17264
+ # Timeout (in seconds) for TCP established connections. Defaults to 1200s if not
17265
+ # set.
17266
+ # Corresponds to the JSON property `tcpEstablishedIdleTimeoutSec`
17267
+ # @return [Fixnum]
17268
+ attr_accessor :tcp_established_idle_timeout_sec
17269
+
17270
+ # Timeout (in seconds) for TCP transitory connections. Defaults to 30s if not
17271
+ # set.
17272
+ # Corresponds to the JSON property `tcpTransitoryIdleTimeoutSec`
17273
+ # @return [Fixnum]
17274
+ attr_accessor :tcp_transitory_idle_timeout_sec
17275
+
17276
+ # Timeout (in seconds) for UDP connections. Defaults to 30s if not set.
17277
+ # Corresponds to the JSON property `udpIdleTimeoutSec`
17278
+ # @return [Fixnum]
17279
+ attr_accessor :udp_idle_timeout_sec
17280
+
17281
+ def initialize(**args)
17282
+ update!(**args)
17283
+ end
17284
+
17285
+ # Update properties of this object
17286
+ def update!(**args)
17287
+ @icmp_idle_timeout_sec = args[:icmp_idle_timeout_sec] if args.key?(:icmp_idle_timeout_sec)
17288
+ @min_ports_per_vm = args[:min_ports_per_vm] if args.key?(:min_ports_per_vm)
17289
+ @name = args[:name] if args.key?(:name)
17290
+ @nat_ip_allocate_option = args[:nat_ip_allocate_option] if args.key?(:nat_ip_allocate_option)
17291
+ @nat_ips = args[:nat_ips] if args.key?(:nat_ips)
17292
+ @source_subnetwork_ip_ranges_to_nat = args[:source_subnetwork_ip_ranges_to_nat] if args.key?(:source_subnetwork_ip_ranges_to_nat)
17293
+ @subnetworks = args[:subnetworks] if args.key?(:subnetworks)
17294
+ @tcp_established_idle_timeout_sec = args[:tcp_established_idle_timeout_sec] if args.key?(:tcp_established_idle_timeout_sec)
17295
+ @tcp_transitory_idle_timeout_sec = args[:tcp_transitory_idle_timeout_sec] if args.key?(:tcp_transitory_idle_timeout_sec)
17296
+ @udp_idle_timeout_sec = args[:udp_idle_timeout_sec] if args.key?(:udp_idle_timeout_sec)
17297
+ end
17298
+ end
17299
+
17300
+ # Defines the IP ranges that want to use NAT for a subnetwork.
17301
+ class RouterNatSubnetworkToNat
17302
+ include Google::Apis::Core::Hashable
17303
+
17304
+ # URL for the subnetwork resource to use NAT.
17305
+ # Corresponds to the JSON property `name`
17306
+ # @return [String]
17307
+ attr_accessor :name
17308
+
17309
+ # A list of the secondary ranges of the Subnetwork that are allowed to use NAT.
17310
+ # This can be populated only if "LIST_OF_SECONDARY_IP_RANGES" is one of the
17311
+ # values in source_ip_ranges_to_nat.
17312
+ # Corresponds to the JSON property `secondaryIpRangeNames`
17313
+ # @return [Array<String>]
17314
+ attr_accessor :secondary_ip_range_names
17315
+
17316
+ # Specify the options for NAT ranges in the Subnetwork. All usages of single
17317
+ # value are valid except NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option
17318
+ # with multiple values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"]
17319
+ # Default: [ALL_IP_RANGES]
17320
+ # Corresponds to the JSON property `sourceIpRangesToNat`
17321
+ # @return [Array<String>]
17322
+ attr_accessor :source_ip_ranges_to_nat
17323
+
17324
+ def initialize(**args)
17325
+ update!(**args)
17326
+ end
17327
+
17328
+ # Update properties of this object
17329
+ def update!(**args)
17330
+ @name = args[:name] if args.key?(:name)
17331
+ @secondary_ip_range_names = args[:secondary_ip_range_names] if args.key?(:secondary_ip_range_names)
17332
+ @source_ip_ranges_to_nat = args[:source_ip_ranges_to_nat] if args.key?(:source_ip_ranges_to_nat)
17333
+ end
17334
+ end
17335
+
17336
+ #
17337
+ class RouterStatus
17338
+ include Google::Apis::Core::Hashable
17339
+
17340
+ # Best routes for this router's network.
17341
+ # Corresponds to the JSON property `bestRoutes`
17342
+ # @return [Array<Google::Apis::ComputeV1::Route>]
17343
+ attr_accessor :best_routes
17344
+
17345
+ # Best routes learned by this router.
17346
+ # Corresponds to the JSON property `bestRoutesForRouter`
17347
+ # @return [Array<Google::Apis::ComputeV1::Route>]
17348
+ attr_accessor :best_routes_for_router
17349
+
17350
+ #
17351
+ # Corresponds to the JSON property `bgpPeerStatus`
17352
+ # @return [Array<Google::Apis::ComputeV1::RouterStatusBgpPeerStatus>]
17353
+ attr_accessor :bgp_peer_status
17354
+
17355
+ #
17356
+ # Corresponds to the JSON property `natStatus`
17357
+ # @return [Array<Google::Apis::ComputeV1::RouterStatusNatStatus>]
17358
+ attr_accessor :nat_status
16378
17359
 
16379
17360
  # URI of the network to which this router belongs.
16380
17361
  # Corresponds to the JSON property `network`
@@ -16390,6 +17371,7 @@ module Google
16390
17371
  @best_routes = args[:best_routes] if args.key?(:best_routes)
16391
17372
  @best_routes_for_router = args[:best_routes_for_router] if args.key?(:best_routes_for_router)
16392
17373
  @bgp_peer_status = args[:bgp_peer_status] if args.key?(:bgp_peer_status)
17374
+ @nat_status = args[:nat_status] if args.key?(:nat_status)
16393
17375
  @network = args[:network] if args.key?(:network)
16394
17376
  end
16395
17377
  end
@@ -16468,6 +17450,58 @@ module Google
16468
17450
  end
16469
17451
  end
16470
17452
 
17453
+ # Status of a NAT contained in this router.
17454
+ class RouterStatusNatStatus
17455
+ include Google::Apis::Core::Hashable
17456
+
17457
+ # A list of IPs auto-allocated for NAT. Example: ["1.1.1.1", "129.2.16.89"]
17458
+ # Corresponds to the JSON property `autoAllocatedNatIps`
17459
+ # @return [Array<String>]
17460
+ attr_accessor :auto_allocated_nat_ips
17461
+
17462
+ # The number of extra IPs to allocate. This will be greater than 0 only if user-
17463
+ # specified IPs are NOT enough to allow all configured VMs to use NAT. This
17464
+ # value is meaningful only when auto-allocation of NAT IPs is *not* used.
17465
+ # Corresponds to the JSON property `minExtraNatIpsNeeded`
17466
+ # @return [Fixnum]
17467
+ attr_accessor :min_extra_nat_ips_needed
17468
+
17469
+ # Unique name of this NAT.
17470
+ # Corresponds to the JSON property `name`
17471
+ # @return [String]
17472
+ attr_accessor :name
17473
+
17474
+ # Number of VM endpoints (i.e., Nics) that can use NAT.
17475
+ # Corresponds to the JSON property `numVmEndpointsWithNatMappings`
17476
+ # @return [Fixnum]
17477
+ attr_accessor :num_vm_endpoints_with_nat_mappings
17478
+
17479
+ # A list of fully qualified URLs of reserved IP address resources.
17480
+ # Corresponds to the JSON property `userAllocatedNatIpResources`
17481
+ # @return [Array<String>]
17482
+ attr_accessor :user_allocated_nat_ip_resources
17483
+
17484
+ # A list of IPs user-allocated for NAT. They will be raw IP strings like "179.12.
17485
+ # 26.133".
17486
+ # Corresponds to the JSON property `userAllocatedNatIps`
17487
+ # @return [Array<String>]
17488
+ attr_accessor :user_allocated_nat_ips
17489
+
17490
+ def initialize(**args)
17491
+ update!(**args)
17492
+ end
17493
+
17494
+ # Update properties of this object
17495
+ def update!(**args)
17496
+ @auto_allocated_nat_ips = args[:auto_allocated_nat_ips] if args.key?(:auto_allocated_nat_ips)
17497
+ @min_extra_nat_ips_needed = args[:min_extra_nat_ips_needed] if args.key?(:min_extra_nat_ips_needed)
17498
+ @name = args[:name] if args.key?(:name)
17499
+ @num_vm_endpoints_with_nat_mappings = args[:num_vm_endpoints_with_nat_mappings] if args.key?(:num_vm_endpoints_with_nat_mappings)
17500
+ @user_allocated_nat_ip_resources = args[:user_allocated_nat_ip_resources] if args.key?(:user_allocated_nat_ip_resources)
17501
+ @user_allocated_nat_ips = args[:user_allocated_nat_ips] if args.key?(:user_allocated_nat_ips)
17502
+ end
17503
+ end
17504
+
16471
17505
  #
16472
17506
  class RouterStatusResponse
16473
17507
  include Google::Apis::Core::Hashable
@@ -16603,6 +17637,67 @@ module Google
16603
17637
  end
16604
17638
  end
16605
17639
 
17640
+ # A rule to be applied in a Policy.
17641
+ class Rule
17642
+ include Google::Apis::Core::Hashable
17643
+
17644
+ # Required
17645
+ # Corresponds to the JSON property `action`
17646
+ # @return [String]
17647
+ attr_accessor :action
17648
+
17649
+ # Additional restrictions that must be met. All conditions must pass for the
17650
+ # rule to match.
17651
+ # Corresponds to the JSON property `conditions`
17652
+ # @return [Array<Google::Apis::ComputeV1::Condition>]
17653
+ attr_accessor :conditions
17654
+
17655
+ # Human-readable description of the rule.
17656
+ # Corresponds to the JSON property `description`
17657
+ # @return [String]
17658
+ attr_accessor :description
17659
+
17660
+ # If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/
17661
+ # AUTHORITY_SELECTOR is in at least one of these entries.
17662
+ # Corresponds to the JSON property `ins`
17663
+ # @return [Array<String>]
17664
+ attr_accessor :ins
17665
+
17666
+ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
17667
+ # that match the LOG action.
17668
+ # Corresponds to the JSON property `logConfigs`
17669
+ # @return [Array<Google::Apis::ComputeV1::LogConfig>]
17670
+ attr_accessor :log_configs
17671
+
17672
+ # If one or more 'not_in' clauses are specified, the rule matches if the
17673
+ # PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
17674
+ # Corresponds to the JSON property `notIns`
17675
+ # @return [Array<String>]
17676
+ attr_accessor :not_ins
17677
+
17678
+ # A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value
17679
+ # of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.
17680
+ # *') matches all verbs.
17681
+ # Corresponds to the JSON property `permissions`
17682
+ # @return [Array<String>]
17683
+ attr_accessor :permissions
17684
+
17685
+ def initialize(**args)
17686
+ update!(**args)
17687
+ end
17688
+
17689
+ # Update properties of this object
17690
+ def update!(**args)
17691
+ @action = args[:action] if args.key?(:action)
17692
+ @conditions = args[:conditions] if args.key?(:conditions)
17693
+ @description = args[:description] if args.key?(:description)
17694
+ @ins = args[:ins] if args.key?(:ins)
17695
+ @log_configs = args[:log_configs] if args.key?(:log_configs)
17696
+ @not_ins = args[:not_ins] if args.key?(:not_ins)
17697
+ @permissions = args[:permissions] if args.key?(:permissions)
17698
+ end
17699
+ end
17700
+
16606
17701
  #
16607
17702
  class SslHealthCheck
16608
17703
  include Google::Apis::Core::Hashable
@@ -16756,7 +17851,8 @@ module Google
16756
17851
  # metadata's contents and used for optimistic locking. The fingerprint is
16757
17852
  # initially generated by Compute Engine and changes after every request to
16758
17853
  # modify or update metadata. You must always provide an up-to-date fingerprint
16759
- # hash in order to update or change metadata.
17854
+ # hash in order to update or change metadata, otherwise the request will fail
17855
+ # with error 412 conditionNotMet.
16760
17856
  # To see the latest fingerprint, make get() request to the security policy.
16761
17857
  # Corresponds to the JSON property `fingerprint`
16762
17858
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
@@ -16983,8 +18079,9 @@ module Google
16983
18079
  alias_method :preview?, :preview
16984
18080
 
16985
18081
  # An integer indicating the priority of a rule in the list. The priority must be
16986
- # a positive value between 0 and 2147483647. Rules are evaluated in the
16987
- # increasing order of priority.
18082
+ # a positive value between 0 and 2147483647. Rules are evaluated from highest to
18083
+ # lowest priority where 0 is the highest priority and 2147483647 is the lowest
18084
+ # prority.
16988
18085
  # Corresponds to the JSON property `priority`
16989
18086
  # @return [Fixnum]
16990
18087
  attr_accessor :priority
@@ -17195,7 +18292,8 @@ module Google
17195
18292
  # essentially a hash of the labels set used for optimistic locking. The
17196
18293
  # fingerprint is initially generated by Compute Engine and changes after every
17197
18294
  # request to modify or update labels. You must always provide an up-to-date
17198
- # fingerprint hash in order to update or change labels.
18295
+ # fingerprint hash in order to update or change labels, otherwise the request
18296
+ # will fail with error 412 conditionNotMet.
17199
18297
  # To see the latest fingerprint, make a get() request to retrieve a snapshot.
17200
18298
  # Corresponds to the JSON property `labelFingerprint`
17201
18299
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
@@ -17807,7 +18905,8 @@ module Google
17807
18905
  # Fingerprint of this resource. A hash of the contents stored in this object.
17808
18906
  # This field is used in optimistic locking. This field will be ignored when
17809
18907
  # inserting a SslPolicy. An up-to-date fingerprint must be provided in order to
17810
- # update the SslPolicy.
18908
+ # update the SslPolicy, otherwise the request will fail with error 412
18909
+ # conditionNotMet.
17811
18910
  # To see the latest fingerprint, make a get() request to retrieve an SslPolicy.
17812
18911
  # Corresponds to the JSON property `fingerprint`
17813
18912
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
@@ -17993,7 +19092,8 @@ module Google
17993
19092
  # Fingerprint of this resource. A hash of the contents stored in this object.
17994
19093
  # This field is used in optimistic locking. This field will be ignored when
17995
19094
  # inserting a Subnetwork. An up-to-date fingerprint must be provided in order to
17996
- # update the Subnetwork.
19095
+ # update the Subnetwork, otherwise the request will fail with error 412
19096
+ # conditionNotMet.
17997
19097
  # To see the latest fingerprint, make a get() request to retrieve a Subnetwork.
17998
19098
  # Corresponds to the JSON property `fingerprint`
17999
19099
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
@@ -18061,7 +19161,7 @@ module Google
18061
19161
  # An array of configurations for secondary IP ranges for VM instances contained
18062
19162
  # in this subnetwork. The primary IP of such VM must belong to the primary
18063
19163
  # ipCidrRange of the subnetwork. The alias IPs may belong to either primary or
18064
- # secondary ranges.
19164
+ # secondary ranges. This field can be updated with a patch request.
18065
19165
  # Corresponds to the JSON property `secondaryIpRanges`
18066
19166
  # @return [Array<Google::Apis::ComputeV1::SubnetworkSecondaryRange>]
18067
19167
  attr_accessor :secondary_ip_ranges
@@ -18853,8 +19953,8 @@ module Google
18853
19953
  attr_accessor :self_link
18854
19954
 
18855
19955
  # URLs to SslCertificate resources that are used to authenticate connections
18856
- # between users and the load balancer. Currently, exactly one SSL certificate
18857
- # must be specified.
19956
+ # between users and the load balancer. At least one SSL certificate must be
19957
+ # specified. Currently, you may specify up to 15 SSL certificates.
18858
19958
  # Corresponds to the JSON property `sslCertificates`
18859
19959
  # @return [Array<String>]
18860
19960
  attr_accessor :ssl_certificates
@@ -19518,7 +20618,7 @@ module Google
19518
20618
  # @return [String]
19519
20619
  attr_accessor :self_link
19520
20620
 
19521
- # Sesssion affinity option, must be one of the following values:
20621
+ # Session affinity option, must be one of the following values:
19522
20622
  # NONE: Connections from the same client IP may go to any instance in the pool.
19523
20623
  # CLIENT_IP: Connections from the same client IP will go to the same instance in
19524
20624
  # the pool while that instance remains healthy.
@@ -20121,7 +21221,8 @@ module Google
20121
21221
  attr_accessor :service
20122
21222
 
20123
21223
  # URLs to SslCertificate resources that are used to authenticate connections to
20124
- # Backends. Currently exactly one SSL certificate must be specified.
21224
+ # Backends. At least one SSL certificate must be specified. Currently, you may
21225
+ # specify up to 15 SSL certificates.
20125
21226
  # Corresponds to the JSON property `sslCertificates`
20126
21227
  # @return [Array<String>]
20127
21228
  attr_accessor :ssl_certificates
@@ -21004,7 +22105,12 @@ module Google
21004
22105
  # @return [String]
21005
22106
  attr_accessor :creation_timestamp
21006
22107
 
21007
- # The URL of the BackendService resource if none of the hostRules match.
22108
+ # The URL of the backendService resource if none of the hostRules match.
22109
+ # Use defaultService instead of defaultRouteAction when simple routing to a
22110
+ # backendService is desired and other advanced capabilities like traffic
22111
+ # splitting and rewrites are not required.
22112
+ # Only one of defaultService, defaultRouteAction or defaultUrlRedirect should
22113
+ # must be set.
21008
22114
  # Corresponds to the JSON property `defaultService`
21009
22115
  # @return [String]
21010
22116
  attr_accessor :default_service
@@ -21018,7 +22124,8 @@ module Google
21018
22124
  # Fingerprint of this resource. A hash of the contents stored in this object.
21019
22125
  # This field is used in optimistic locking. This field will be ignored when
21020
22126
  # inserting a UrlMap. An up-to-date fingerprint must be provided in order to
21021
- # update the UrlMap.
22127
+ # update the UrlMap, otherwise the request will fail with error 412
22128
+ # conditionNotMet.
21022
22129
  # To see the latest fingerprint, make a get() request to retrieve a UrlMap.
21023
22130
  # Corresponds to the JSON property `fingerprint`
21024
22131
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
@@ -21559,6 +22666,191 @@ module Google
21559
22666
  end
21560
22667
  end
21561
22668
 
22669
+ # Contain information of Nat mapping for a VM endpoint (i.e., NIC).
22670
+ class VmEndpointNatMappings
22671
+ include Google::Apis::Core::Hashable
22672
+
22673
+ # Name of the VM instance which the endpoint belongs to
22674
+ # Corresponds to the JSON property `instanceName`
22675
+ # @return [String]
22676
+ attr_accessor :instance_name
22677
+
22678
+ #
22679
+ # Corresponds to the JSON property `interfaceNatMappings`
22680
+ # @return [Array<Google::Apis::ComputeV1::VmEndpointNatMappingsInterfaceNatMappings>]
22681
+ attr_accessor :interface_nat_mappings
22682
+
22683
+ def initialize(**args)
22684
+ update!(**args)
22685
+ end
22686
+
22687
+ # Update properties of this object
22688
+ def update!(**args)
22689
+ @instance_name = args[:instance_name] if args.key?(:instance_name)
22690
+ @interface_nat_mappings = args[:interface_nat_mappings] if args.key?(:interface_nat_mappings)
22691
+ end
22692
+ end
22693
+
22694
+ # Contain information of Nat mapping for an interface of this endpoint.
22695
+ class VmEndpointNatMappingsInterfaceNatMappings
22696
+ include Google::Apis::Core::Hashable
22697
+
22698
+ # A list of all IP:port-range mappings assigned to this interface. These ranges
22699
+ # are inclusive, that is, both the first and the last ports can be used for NAT.
22700
+ # Example: ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
22701
+ # Corresponds to the JSON property `natIpPortRanges`
22702
+ # @return [Array<String>]
22703
+ attr_accessor :nat_ip_port_ranges
22704
+
22705
+ # Total number of ports across all NAT IPs allocated to this interface. It
22706
+ # equals to the aggregated port number in the field nat_ip_port_ranges.
22707
+ # Corresponds to the JSON property `numTotalNatPorts`
22708
+ # @return [Fixnum]
22709
+ attr_accessor :num_total_nat_ports
22710
+
22711
+ # Alias IP range for this interface endpoint. It will be a private (RFC 1918) IP
22712
+ # range. Examples: "10.33.4.55/32", or "192.168.5.0/24".
22713
+ # Corresponds to the JSON property `sourceAliasIpRange`
22714
+ # @return [String]
22715
+ attr_accessor :source_alias_ip_range
22716
+
22717
+ # Primary IP of the VM for this NIC.
22718
+ # Corresponds to the JSON property `sourceVirtualIp`
22719
+ # @return [String]
22720
+ attr_accessor :source_virtual_ip
22721
+
22722
+ def initialize(**args)
22723
+ update!(**args)
22724
+ end
22725
+
22726
+ # Update properties of this object
22727
+ def update!(**args)
22728
+ @nat_ip_port_ranges = args[:nat_ip_port_ranges] if args.key?(:nat_ip_port_ranges)
22729
+ @num_total_nat_ports = args[:num_total_nat_ports] if args.key?(:num_total_nat_ports)
22730
+ @source_alias_ip_range = args[:source_alias_ip_range] if args.key?(:source_alias_ip_range)
22731
+ @source_virtual_ip = args[:source_virtual_ip] if args.key?(:source_virtual_ip)
22732
+ end
22733
+ end
22734
+
22735
+ # Contains a list of VmEndpointNatMappings.
22736
+ class VmEndpointNatMappingsList
22737
+ include Google::Apis::Core::Hashable
22738
+
22739
+ # [Output Only] The unique identifier for the resource. This identifier is
22740
+ # defined by the server.
22741
+ # Corresponds to the JSON property `id`
22742
+ # @return [String]
22743
+ attr_accessor :id
22744
+
22745
+ # [Output Only] Type of resource. Always compute#vmEndpointNatMappingsList for
22746
+ # lists of Nat mappings of VM endpoints.
22747
+ # Corresponds to the JSON property `kind`
22748
+ # @return [String]
22749
+ attr_accessor :kind
22750
+
22751
+ # [Output Only] This token allows you to get the next page of results for list
22752
+ # requests. If the number of results is larger than maxResults, use the
22753
+ # nextPageToken as a value for the query parameter pageToken in the next list
22754
+ # request. Subsequent list requests will have their own nextPageToken to
22755
+ # continue paging through the results.
22756
+ # Corresponds to the JSON property `nextPageToken`
22757
+ # @return [String]
22758
+ attr_accessor :next_page_token
22759
+
22760
+ # [Output Only] A list of Nat mapping information of VM endpoints.
22761
+ # Corresponds to the JSON property `result`
22762
+ # @return [Array<Google::Apis::ComputeV1::VmEndpointNatMappings>]
22763
+ attr_accessor :result
22764
+
22765
+ # [Output Only] Server-defined URL for this resource.
22766
+ # Corresponds to the JSON property `selfLink`
22767
+ # @return [String]
22768
+ attr_accessor :self_link
22769
+
22770
+ # [Output Only] Informational warning message.
22771
+ # Corresponds to the JSON property `warning`
22772
+ # @return [Google::Apis::ComputeV1::VmEndpointNatMappingsList::Warning]
22773
+ attr_accessor :warning
22774
+
22775
+ def initialize(**args)
22776
+ update!(**args)
22777
+ end
22778
+
22779
+ # Update properties of this object
22780
+ def update!(**args)
22781
+ @id = args[:id] if args.key?(:id)
22782
+ @kind = args[:kind] if args.key?(:kind)
22783
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
22784
+ @result = args[:result] if args.key?(:result)
22785
+ @self_link = args[:self_link] if args.key?(:self_link)
22786
+ @warning = args[:warning] if args.key?(:warning)
22787
+ end
22788
+
22789
+ # [Output Only] Informational warning message.
22790
+ class Warning
22791
+ include Google::Apis::Core::Hashable
22792
+
22793
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
22794
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
22795
+ # Corresponds to the JSON property `code`
22796
+ # @return [String]
22797
+ attr_accessor :code
22798
+
22799
+ # [Output Only] Metadata about this warning in key: value format. For example:
22800
+ # "data": [ ` "key": "scope", "value": "zones/us-east1-d" `
22801
+ # Corresponds to the JSON property `data`
22802
+ # @return [Array<Google::Apis::ComputeV1::VmEndpointNatMappingsList::Warning::Datum>]
22803
+ attr_accessor :data
22804
+
22805
+ # [Output Only] A human-readable description of the warning code.
22806
+ # Corresponds to the JSON property `message`
22807
+ # @return [String]
22808
+ attr_accessor :message
22809
+
22810
+ def initialize(**args)
22811
+ update!(**args)
22812
+ end
22813
+
22814
+ # Update properties of this object
22815
+ def update!(**args)
22816
+ @code = args[:code] if args.key?(:code)
22817
+ @data = args[:data] if args.key?(:data)
22818
+ @message = args[:message] if args.key?(:message)
22819
+ end
22820
+
22821
+ #
22822
+ class Datum
22823
+ include Google::Apis::Core::Hashable
22824
+
22825
+ # [Output Only] A key that provides more detail on the warning being returned.
22826
+ # For example, for warnings where there are no results in a list request for a
22827
+ # particular zone, this key might be scope and the key value might be the zone
22828
+ # name. Other examples might be a key indicating a deprecated resource and a
22829
+ # suggested replacement, or a warning about invalid network settings (for
22830
+ # example, if an instance attempts to perform IP forwarding but is not enabled
22831
+ # for IP forwarding).
22832
+ # Corresponds to the JSON property `key`
22833
+ # @return [String]
22834
+ attr_accessor :key
22835
+
22836
+ # [Output Only] A warning data value corresponding to the key.
22837
+ # Corresponds to the JSON property `value`
22838
+ # @return [String]
22839
+ attr_accessor :value
22840
+
22841
+ def initialize(**args)
22842
+ update!(**args)
22843
+ end
22844
+
22845
+ # Update properties of this object
22846
+ def update!(**args)
22847
+ @key = args[:key] if args.key?(:key)
22848
+ @value = args[:value] if args.key?(:value)
22849
+ end
22850
+ end
22851
+ end
22852
+ end
22853
+
21562
22854
  # VPN tunnel resource. (== resource_for beta.vpnTunnels ==) (== resource_for v1.
21563
22855
  # vpnTunnels ==)
21564
22856
  class VpnTunnel
@@ -22380,6 +23672,56 @@ module Google
22380
23672
  @labels = args[:labels] if args.key?(:labels)
22381
23673
  end
22382
23674
  end
23675
+
23676
+ #
23677
+ class ZoneSetPolicyRequest
23678
+ include Google::Apis::Core::Hashable
23679
+
23680
+ # Flatten Policy to create a backwacd compatible wire-format. Deprecated. Use '
23681
+ # policy' to specify bindings.
23682
+ # Corresponds to the JSON property `bindings`
23683
+ # @return [Array<Google::Apis::ComputeV1::Binding>]
23684
+ attr_accessor :bindings
23685
+
23686
+ # Flatten Policy to create a backward compatible wire-format. Deprecated. Use '
23687
+ # policy' to specify the etag.
23688
+ # Corresponds to the JSON property `etag`
23689
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
23690
+ # @return [String]
23691
+ attr_accessor :etag
23692
+
23693
+ # Defines an Identity and Access Management (IAM) policy. It is used to specify
23694
+ # access control policies for Cloud Platform resources.
23695
+ # A `Policy` consists of a list of `bindings`. A `binding` binds a list of `
23696
+ # members` to a `role`, where the members can be user accounts, Google groups,
23697
+ # Google domains, and service accounts. A `role` is a named list of permissions
23698
+ # defined by IAM.
23699
+ # **JSON Example**
23700
+ # ` "bindings": [ ` "role": "roles/owner", "members": [ "user:mike@example.com",
23701
+ # "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@
23702
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/viewer", "members": ["user:
23703
+ # sean@example.com"] ` ] `
23704
+ # **YAML Example**
23705
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
23706
+ # domain:google.com - serviceAccount:my-other-app@appspot.gserviceaccount.com
23707
+ # role: roles/owner - members: - user:sean@example.com role: roles/viewer
23708
+ # For a description of IAM and its features, see the [IAM developer's guide](
23709
+ # https://cloud.google.com/iam/docs).
23710
+ # Corresponds to the JSON property `policy`
23711
+ # @return [Google::Apis::ComputeV1::Policy]
23712
+ attr_accessor :policy
23713
+
23714
+ def initialize(**args)
23715
+ update!(**args)
23716
+ end
23717
+
23718
+ # Update properties of this object
23719
+ def update!(**args)
23720
+ @bindings = args[:bindings] if args.key?(:bindings)
23721
+ @etag = args[:etag] if args.key?(:etag)
23722
+ @policy = args[:policy] if args.key?(:policy)
23723
+ end
23724
+ end
22383
23725
  end
22384
23726
  end
22385
23727
  end