google-api-client 0.25.0 → 0.26.0

Sign up to get free protection for your applications and to get access to all the features.
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