google-api-client 0.51.0 → 0.52.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (218) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/release-please.yml +23 -45
  3. data/CHANGELOG.md +100 -0
  4. data/README.md +2 -2
  5. data/generated/google/apis/admin_datatransfer_v1.rb +2 -2
  6. data/generated/google/apis/admin_datatransfer_v1/classes.rb +6 -16
  7. data/generated/google/apis/admin_datatransfer_v1/service.rb +3 -3
  8. data/generated/google/apis/admin_directory_v1.rb +2 -2
  9. data/generated/google/apis/admin_directory_v1/classes.rb +453 -321
  10. data/generated/google/apis/admin_directory_v1/representations.rb +15 -15
  11. data/generated/google/apis/admin_directory_v1/service.rb +323 -183
  12. data/generated/google/apis/admin_reports_v1.rb +2 -2
  13. data/generated/google/apis/admin_reports_v1/classes.rb +48 -43
  14. data/generated/google/apis/admin_reports_v1/service.rb +198 -179
  15. data/generated/google/apis/alertcenter_v1beta1.rb +1 -1
  16. data/generated/google/apis/analytics_v3/service.rb +1 -1
  17. data/generated/google/apis/analyticsadmin_v1alpha.rb +1 -1
  18. data/generated/google/apis/analyticsadmin_v1alpha/classes.rb +2 -2
  19. data/generated/google/apis/analyticsadmin_v1alpha/service.rb +5 -12
  20. data/generated/google/apis/analyticsdata_v1alpha.rb +1 -1
  21. data/generated/google/apis/analyticsdata_v1alpha/classes.rb +11 -11
  22. data/generated/google/apis/androidmanagement_v1.rb +1 -1
  23. data/generated/google/apis/apigateway_v1beta.rb +1 -1
  24. data/generated/google/apis/apigateway_v1beta/classes.rb +3 -9
  25. data/generated/google/apis/apigateway_v1beta/representations.rb +0 -1
  26. data/generated/google/apis/apigee_v1.rb +1 -1
  27. data/generated/google/apis/apigee_v1/classes.rb +71 -0
  28. data/generated/google/apis/apigee_v1/representations.rb +42 -0
  29. data/generated/google/apis/apigee_v1/service.rb +206 -0
  30. data/generated/google/apis/appengine_v1.rb +1 -1
  31. data/generated/google/apis/appengine_v1/classes.rb +7 -0
  32. data/generated/google/apis/appengine_v1/representations.rb +1 -0
  33. data/generated/google/apis/artifactregistry_v1beta1.rb +1 -1
  34. data/generated/google/apis/artifactregistry_v1beta1/classes.rb +2 -2
  35. data/generated/google/apis/artifactregistry_v1beta1/service.rb +4 -1
  36. data/generated/google/apis/artifactregistry_v1beta2.rb +1 -1
  37. data/generated/google/apis/artifactregistry_v1beta2/classes.rb +2 -2
  38. data/generated/google/apis/artifactregistry_v1beta2/service.rb +4 -1
  39. data/generated/google/apis/cloudasset_v1.rb +1 -1
  40. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  41. data/generated/google/apis/cloudbuild_v1alpha1.rb +1 -1
  42. data/generated/google/apis/cloudbuild_v1alpha2.rb +1 -1
  43. data/generated/google/apis/cloudfunctions_v1.rb +1 -1
  44. data/generated/google/apis/cloudfunctions_v1/classes.rb +6 -0
  45. data/generated/google/apis/cloudfunctions_v1/representations.rb +1 -0
  46. data/generated/google/apis/cloudidentity_v1.rb +1 -1
  47. data/generated/google/apis/cloudidentity_v1/classes.rb +240 -0
  48. data/generated/google/apis/cloudidentity_v1/representations.rb +125 -0
  49. data/generated/google/apis/cloudidentity_v1/service.rb +202 -2
  50. data/generated/google/apis/cloudidentity_v1beta1.rb +1 -1
  51. data/generated/google/apis/cloudidentity_v1beta1/service.rb +8 -2
  52. data/generated/google/apis/cloudkms_v1.rb +1 -1
  53. data/generated/google/apis/cloudkms_v1/classes.rb +0 -6
  54. data/generated/google/apis/cloudkms_v1/representations.rb +0 -1
  55. data/generated/google/apis/cloudscheduler_v1beta1.rb +1 -1
  56. data/generated/google/apis/cloudscheduler_v1beta1/classes.rb +19 -0
  57. data/generated/google/apis/cloudscheduler_v1beta1/representations.rb +2 -0
  58. data/generated/google/apis/cloudscheduler_v1beta1/service.rb +12 -2
  59. data/generated/google/apis/cloudtasks_v2beta2.rb +1 -1
  60. data/generated/google/apis/cloudtasks_v2beta2/classes.rb +59 -0
  61. data/generated/google/apis/cloudtasks_v2beta2/representations.rb +19 -0
  62. data/generated/google/apis/cloudtasks_v2beta3.rb +1 -1
  63. data/generated/google/apis/cloudtasks_v2beta3/classes.rb +102 -0
  64. data/generated/google/apis/cloudtasks_v2beta3/representations.rb +35 -0
  65. data/generated/google/apis/cloudtasks_v2beta3/service.rb +16 -2
  66. data/generated/google/apis/composer_v1beta1.rb +1 -1
  67. data/generated/google/apis/composer_v1beta1/classes.rb +64 -0
  68. data/generated/google/apis/composer_v1beta1/representations.rb +18 -0
  69. data/generated/google/apis/compute_alpha.rb +1 -1
  70. data/generated/google/apis/compute_alpha/classes.rb +1071 -341
  71. data/generated/google/apis/compute_alpha/representations.rb +248 -19
  72. data/generated/google/apis/compute_alpha/service.rb +291 -15
  73. data/generated/google/apis/compute_beta.rb +1 -1
  74. data/generated/google/apis/compute_beta/classes.rb +926 -283
  75. data/generated/google/apis/compute_beta/representations.rb +221 -18
  76. data/generated/google/apis/compute_beta/service.rb +24 -15
  77. data/generated/google/apis/compute_v1.rb +1 -1
  78. data/generated/google/apis/compute_v1/classes.rb +419 -158
  79. data/generated/google/apis/compute_v1/representations.rb +55 -0
  80. data/generated/google/apis/compute_v1/service.rb +9 -7
  81. data/generated/google/apis/container_v1.rb +1 -1
  82. data/generated/google/apis/container_v1/classes.rb +48 -9
  83. data/generated/google/apis/container_v1/representations.rb +17 -0
  84. data/generated/google/apis/container_v1/service.rb +4 -2
  85. data/generated/google/apis/container_v1beta1.rb +1 -1
  86. data/generated/google/apis/container_v1beta1/classes.rb +24 -13
  87. data/generated/google/apis/container_v1beta1/representations.rb +2 -0
  88. data/generated/google/apis/container_v1beta1/service.rb +6 -2
  89. data/generated/google/apis/content_v2_1.rb +1 -1
  90. data/generated/google/apis/content_v2_1/classes.rb +16 -7
  91. data/generated/google/apis/content_v2_1/representations.rb +1 -0
  92. data/generated/google/apis/datamigration_v1beta1.rb +1 -1
  93. data/generated/google/apis/datamigration_v1beta1/classes.rb +0 -6
  94. data/generated/google/apis/datamigration_v1beta1/representations.rb +0 -1
  95. data/generated/google/apis/deploymentmanager_alpha.rb +6 -5
  96. data/generated/google/apis/deploymentmanager_alpha/classes.rb +276 -644
  97. data/generated/google/apis/deploymentmanager_alpha/representations.rb +10 -143
  98. data/generated/google/apis/deploymentmanager_alpha/service.rb +247 -398
  99. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  100. data/generated/google/apis/deploymentmanager_v2/service.rb +5 -25
  101. data/generated/google/apis/deploymentmanager_v2beta.rb +1 -1
  102. data/generated/google/apis/deploymentmanager_v2beta/service.rb +8 -40
  103. data/generated/google/apis/dialogflow_v2.rb +1 -1
  104. data/generated/google/apis/dialogflow_v2/classes.rb +692 -0
  105. data/generated/google/apis/dialogflow_v2/representations.rb +326 -0
  106. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  107. data/generated/google/apis/dialogflow_v2beta1/classes.rb +692 -0
  108. data/generated/google/apis/dialogflow_v2beta1/representations.rb +326 -0
  109. data/generated/google/apis/{bigqueryreservation_v1alpha2.rb → dialogflow_v3.rb} +13 -12
  110. data/generated/google/apis/dialogflow_v3/classes.rb +8943 -0
  111. data/generated/google/apis/dialogflow_v3/representations.rb +3773 -0
  112. data/generated/google/apis/dialogflow_v3/service.rb +3006 -0
  113. data/generated/google/apis/dialogflow_v3beta1.rb +1 -1
  114. data/generated/google/apis/dialogflow_v3beta1/classes.rb +784 -0
  115. data/generated/google/apis/dialogflow_v3beta1/representations.rb +360 -0
  116. data/generated/google/apis/dialogflow_v3beta1/service.rb +173 -0
  117. data/generated/google/apis/dlp_v2.rb +1 -1
  118. data/generated/google/apis/dlp_v2/service.rb +294 -1
  119. data/generated/google/apis/dns_v1.rb +1 -1
  120. data/generated/google/apis/dns_v1/classes.rb +65 -0
  121. data/generated/google/apis/dns_v1/representations.rb +32 -0
  122. data/generated/google/apis/documentai_v1beta2.rb +1 -1
  123. data/generated/google/apis/documentai_v1beta2/classes.rb +220 -102
  124. data/generated/google/apis/documentai_v1beta2/representations.rb +105 -9
  125. data/generated/google/apis/documentai_v1beta3.rb +1 -1
  126. data/generated/google/apis/documentai_v1beta3/classes.rb +241 -117
  127. data/generated/google/apis/documentai_v1beta3/representations.rb +105 -9
  128. data/generated/google/apis/documentai_v1beta3/service.rb +81 -2
  129. data/generated/google/apis/eventarc_v1beta1.rb +1 -1
  130. data/generated/google/apis/eventarc_v1beta1/classes.rb +8 -9
  131. data/generated/google/apis/eventarc_v1beta1/service.rb +25 -5
  132. data/generated/google/apis/file_v1.rb +1 -1
  133. data/generated/google/apis/file_v1/classes.rb +61 -0
  134. data/generated/google/apis/file_v1/representations.rb +19 -0
  135. data/generated/google/apis/genomics_v2alpha1.rb +1 -1
  136. data/generated/google/apis/genomics_v2alpha1/classes.rb +11 -7
  137. data/generated/google/apis/healthcare_v1.rb +1 -1
  138. data/generated/google/apis/healthcare_v1/classes.rb +0 -6
  139. data/generated/google/apis/healthcare_v1/representations.rb +0 -1
  140. data/generated/google/apis/healthcare_v1/service.rb +13 -12
  141. data/generated/google/apis/healthcare_v1beta1.rb +1 -1
  142. data/generated/google/apis/healthcare_v1beta1/classes.rb +45 -19
  143. data/generated/google/apis/healthcare_v1beta1/representations.rb +3 -1
  144. data/generated/google/apis/healthcare_v1beta1/service.rb +37 -37
  145. data/generated/google/apis/iap_v1.rb +1 -1
  146. data/generated/google/apis/iap_v1/classes.rb +0 -6
  147. data/generated/google/apis/iap_v1/representations.rb +0 -1
  148. data/generated/google/apis/iap_v1beta1.rb +1 -1
  149. data/generated/google/apis/iap_v1beta1/classes.rb +0 -6
  150. data/generated/google/apis/iap_v1beta1/representations.rb +0 -1
  151. data/generated/google/apis/metastore_v1beta.rb +35 -0
  152. data/generated/google/apis/metastore_v1beta/classes.rb +1151 -0
  153. data/generated/google/apis/metastore_v1beta/representations.rb +479 -0
  154. data/generated/google/apis/metastore_v1beta/service.rb +800 -0
  155. data/generated/google/apis/ml_v1.rb +1 -1
  156. data/generated/google/apis/ml_v1/classes.rb +51 -18
  157. data/generated/google/apis/ml_v1/representations.rb +16 -0
  158. data/generated/google/apis/monitoring_v3.rb +1 -1
  159. data/generated/google/apis/monitoring_v3/classes.rb +8 -4
  160. data/generated/google/apis/privateca_v1beta1.rb +1 -1
  161. data/generated/google/apis/privateca_v1beta1/classes.rb +2 -1
  162. data/generated/google/apis/prod_tt_sasportal_v1alpha1.rb +1 -1
  163. data/generated/google/apis/prod_tt_sasportal_v1alpha1/classes.rb +37 -0
  164. data/generated/google/apis/prod_tt_sasportal_v1alpha1/representations.rb +18 -0
  165. data/generated/google/apis/recommender_v1beta1.rb +1 -1
  166. data/generated/google/apis/recommender_v1beta1/service.rb +317 -0
  167. data/generated/google/apis/redis_v1.rb +1 -1
  168. data/generated/google/apis/redis_v1/classes.rb +2 -2
  169. data/generated/google/apis/redis_v1beta1.rb +1 -1
  170. data/generated/google/apis/redis_v1beta1/classes.rb +2 -2
  171. data/generated/google/apis/safebrowsing_v4.rb +1 -1
  172. data/generated/google/apis/safebrowsing_v4/classes.rb +277 -277
  173. data/generated/google/apis/safebrowsing_v4/representations.rb +128 -128
  174. data/generated/google/apis/safebrowsing_v4/service.rb +44 -44
  175. data/generated/google/apis/searchconsole_v1.rb +1 -1
  176. data/generated/google/apis/searchconsole_v1/classes.rb +7 -0
  177. data/generated/google/apis/searchconsole_v1/representations.rb +1 -0
  178. data/generated/google/apis/serviceconsumermanagement_v1beta1.rb +1 -1
  179. data/generated/google/apis/serviceconsumermanagement_v1beta1/classes.rb +11 -10
  180. data/generated/google/apis/servicecontrol_v1.rb +3 -3
  181. data/generated/google/apis/servicecontrol_v1/service.rb +2 -2
  182. data/generated/google/apis/servicecontrol_v2.rb +3 -3
  183. data/generated/google/apis/servicecontrol_v2/service.rb +2 -2
  184. data/generated/google/apis/servicedirectory_v1.rb +35 -0
  185. data/generated/google/apis/servicedirectory_v1/classes.rb +721 -0
  186. data/generated/google/apis/servicedirectory_v1/representations.rb +304 -0
  187. data/generated/google/apis/servicedirectory_v1/service.rb +957 -0
  188. data/generated/google/apis/servicenetworking_v1.rb +1 -1
  189. data/generated/google/apis/servicenetworking_v1/classes.rb +1 -1
  190. data/generated/google/apis/servicenetworking_v1beta.rb +1 -1
  191. data/generated/google/apis/servicenetworking_v1beta/classes.rb +1 -1
  192. data/generated/google/apis/serviceusage_v1.rb +1 -1
  193. data/generated/google/apis/serviceusage_v1/classes.rb +11 -10
  194. data/generated/google/apis/serviceusage_v1beta1.rb +1 -1
  195. data/generated/google/apis/serviceusage_v1beta1/classes.rb +11 -10
  196. data/generated/google/apis/slides_v1.rb +1 -1
  197. data/generated/google/apis/slides_v1/classes.rb +9 -3
  198. data/generated/google/apis/speech_v1p1beta1.rb +1 -1
  199. data/generated/google/apis/speech_v1p1beta1/classes.rb +0 -22
  200. data/generated/google/apis/speech_v1p1beta1/representations.rb +0 -2
  201. data/generated/google/apis/testing_v1.rb +1 -1
  202. data/generated/google/apis/testing_v1/classes.rb +1 -1
  203. data/generated/google/apis/trafficdirector_v2.rb +2 -2
  204. data/generated/google/apis/trafficdirector_v2/service.rb +1 -1
  205. data/generated/google/apis/transcoder_v1beta1.rb +1 -1
  206. data/generated/google/apis/transcoder_v1beta1/classes.rb +12 -2
  207. data/generated/google/apis/transcoder_v1beta1/representations.rb +1 -0
  208. data/generated/google/apis/translate_v3.rb +1 -1
  209. data/generated/google/apis/translate_v3/classes.rb +1 -1
  210. data/generated/google/apis/translate_v3beta1.rb +1 -1
  211. data/generated/google/apis/translate_v3beta1/classes.rb +1 -1
  212. data/generated/google/apis/workflows_v1beta.rb +1 -1
  213. data/generated/google/apis/workflows_v1beta/classes.rb +4 -4
  214. data/lib/google/apis/version.rb +1 -1
  215. metadata +15 -7
  216. data/generated/google/apis/bigqueryreservation_v1alpha2/classes.rb +0 -426
  217. data/generated/google/apis/bigqueryreservation_v1alpha2/representations.rb +0 -195
  218. data/generated/google/apis/bigqueryreservation_v1alpha2/service.rb +0 -622
@@ -136,6 +136,12 @@ module Google
136
136
  include Google::Apis::Core::JsonObjectSupport
137
137
  end
138
138
 
139
+ class PullMessage
140
+ class Representation < Google::Apis::Core::JsonRepresentation; end
141
+
142
+ include Google::Apis::Core::JsonObjectSupport
143
+ end
144
+
139
145
  class PurgeQueueRequest
140
146
  class Representation < Google::Apis::Core::JsonRepresentation; end
141
147
 
@@ -148,6 +154,12 @@ module Google
148
154
  include Google::Apis::Core::JsonObjectSupport
149
155
  end
150
156
 
157
+ class QueueStats
158
+ class Representation < Google::Apis::Core::JsonRepresentation; end
159
+
160
+ include Google::Apis::Core::JsonObjectSupport
161
+ end
162
+
151
163
  class RateLimits
152
164
  class Representation < Google::Apis::Core::JsonRepresentation; end
153
165
 
@@ -383,6 +395,14 @@ module Google
383
395
  end
384
396
  end
385
397
 
398
+ class PullMessage
399
+ # @private
400
+ class Representation < Google::Apis::Core::JsonRepresentation
401
+ property :payload, :base64 => true, as: 'payload'
402
+ property :tag, as: 'tag'
403
+ end
404
+ end
405
+
386
406
  class PurgeQueueRequest
387
407
  # @private
388
408
  class Representation < Google::Apis::Core::JsonRepresentation
@@ -403,10 +423,23 @@ module Google
403
423
  property :stackdriver_logging_config, as: 'stackdriverLoggingConfig', class: Google::Apis::CloudtasksV2beta3::StackdriverLoggingConfig, decorator: Google::Apis::CloudtasksV2beta3::StackdriverLoggingConfig::Representation
404
424
 
405
425
  property :state, as: 'state'
426
+ property :stats, as: 'stats', class: Google::Apis::CloudtasksV2beta3::QueueStats, decorator: Google::Apis::CloudtasksV2beta3::QueueStats::Representation
427
+
406
428
  property :type, as: 'type'
407
429
  end
408
430
  end
409
431
 
432
+ class QueueStats
433
+ # @private
434
+ class Representation < Google::Apis::Core::JsonRepresentation
435
+ property :concurrent_dispatches_count, :numeric_string => true, as: 'concurrentDispatchesCount'
436
+ property :effective_execution_rate, as: 'effectiveExecutionRate'
437
+ property :executed_last_minute_count, :numeric_string => true, as: 'executedLastMinuteCount'
438
+ property :oldest_estimated_arrival_time, as: 'oldestEstimatedArrivalTime'
439
+ property :tasks_count, :numeric_string => true, as: 'tasksCount'
440
+ end
441
+ end
442
+
410
443
  class RateLimits
411
444
  # @private
412
445
  class Representation < Google::Apis::Core::JsonRepresentation
@@ -479,6 +512,8 @@ module Google
479
512
  property :last_attempt, as: 'lastAttempt', class: Google::Apis::CloudtasksV2beta3::Attempt, decorator: Google::Apis::CloudtasksV2beta3::Attempt::Representation
480
513
 
481
514
  property :name, as: 'name'
515
+ property :pull_message, as: 'pullMessage', class: Google::Apis::CloudtasksV2beta3::PullMessage, decorator: Google::Apis::CloudtasksV2beta3::PullMessage::Representation
516
+
482
517
  property :response_count, as: 'responseCount'
483
518
  property :schedule_time, as: 'scheduleTime'
484
519
  property :view, as: 'view'
@@ -197,6 +197,12 @@ module Google
197
197
  # @param [String] name
198
198
  # Required. The resource name of the queue. For example: `projects/PROJECT_ID/
199
199
  # locations/LOCATION_ID/queues/QUEUE_ID`
200
+ # @param [String] read_mask
201
+ # Optional. Read mask is used for a more granular control over what the API
202
+ # returns. If the mask is not present all fields will be returned except [Queue.
203
+ # stats], if the mask is set to "*" all fields including [Queue.stats] will be
204
+ # returned, otherwise only the fields explicitly specified in the mask will be
205
+ # returned.
200
206
  # @param [String] fields
201
207
  # Selector specifying which fields to include in a partial response.
202
208
  # @param [String] quota_user
@@ -214,11 +220,12 @@ module Google
214
220
  # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
215
221
  # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
216
222
  # @raise [Google::Apis::AuthorizationError] Authorization is required
217
- def get_project_location_queue(name, fields: nil, quota_user: nil, options: nil, &block)
223
+ def get_project_location_queue(name, read_mask: nil, fields: nil, quota_user: nil, options: nil, &block)
218
224
  command = make_simple_command(:get, 'v2beta3/{+name}', options)
219
225
  command.response_representation = Google::Apis::CloudtasksV2beta3::Queue::Representation
220
226
  command.response_class = Google::Apis::CloudtasksV2beta3::Queue
221
227
  command.params['name'] = name unless name.nil?
228
+ command.query['readMask'] = read_mask unless read_mask.nil?
222
229
  command.query['fields'] = fields unless fields.nil?
223
230
  command.query['quotaUser'] = quota_user unless quota_user.nil?
224
231
  execute_or_queue_command(command, &block)
@@ -283,6 +290,12 @@ module Google
283
290
  # page_token must be the value of next_page_token returned from the previous
284
291
  # call to ListQueues method. It is an error to switch the value of the filter
285
292
  # while iterating through pages.
293
+ # @param [String] read_mask
294
+ # Optional. Read mask is used for a more granular control on the queues that the
295
+ # API returns. If the mask is not present all fields will be returned except [
296
+ # Queue.stats], if the mask is set to "*" all fields including [Queue.stats]
297
+ # will be returned, otherwise only the fields explicitly specified in the mask
298
+ # will be returned.
286
299
  # @param [String] fields
287
300
  # Selector specifying which fields to include in a partial response.
288
301
  # @param [String] quota_user
@@ -300,7 +313,7 @@ module Google
300
313
  # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
301
314
  # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
302
315
  # @raise [Google::Apis::AuthorizationError] Authorization is required
303
- def list_project_location_queues(parent, filter: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block)
316
+ def list_project_location_queues(parent, filter: nil, page_size: nil, page_token: nil, read_mask: nil, fields: nil, quota_user: nil, options: nil, &block)
304
317
  command = make_simple_command(:get, 'v2beta3/{+parent}/queues', options)
305
318
  command.response_representation = Google::Apis::CloudtasksV2beta3::ListQueuesResponse::Representation
306
319
  command.response_class = Google::Apis::CloudtasksV2beta3::ListQueuesResponse
@@ -308,6 +321,7 @@ module Google
308
321
  command.query['filter'] = filter unless filter.nil?
309
322
  command.query['pageSize'] = page_size unless page_size.nil?
310
323
  command.query['pageToken'] = page_token unless page_token.nil?
324
+ command.query['readMask'] = read_mask unless read_mask.nil?
311
325
  command.query['fields'] = fields unless fields.nil?
312
326
  command.query['quotaUser'] = quota_user unless quota_user.nil?
313
327
  execute_or_queue_command(command, &block)
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://cloud.google.com/composer/
26
26
  module ComposerV1beta1
27
27
  VERSION = 'V1beta1'
28
- REVISION = '20201202'
28
+ REVISION = '20201208'
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'
@@ -250,6 +250,15 @@ module Google
250
250
  # @return [String]
251
251
  attr_accessor :gke_cluster
252
252
 
253
+ # The configuration settings for Cloud Composer maintenance window. The
254
+ # following example: ` "startTime":"2019-08-01T01:00:00Z" "endTime":"2019-08-
255
+ # 01T07:00:00Z" "recurrence":"FREQ=WEEKLY;BYDAY=TU,WE" ` would define a
256
+ # maintenance window between 01 and 07 hours UTC during each Tuesday and
257
+ # Wednesday.
258
+ # Corresponds to the JSON property `maintenanceWindow`
259
+ # @return [Google::Apis::ComposerV1beta1::MaintenanceWindow]
260
+ attr_accessor :maintenance_window
261
+
253
262
  # The configuration information for the Kubernetes Engine nodes running the
254
263
  # Apache Airflow software.
255
264
  # Corresponds to the JSON property `nodeConfig`
@@ -294,6 +303,7 @@ module Google
294
303
  @database_config = args[:database_config] if args.key?(:database_config)
295
304
  @encryption_config = args[:encryption_config] if args.key?(:encryption_config)
296
305
  @gke_cluster = args[:gke_cluster] if args.key?(:gke_cluster)
306
+ @maintenance_window = args[:maintenance_window] if args.key?(:maintenance_window)
297
307
  @node_config = args[:node_config] if args.key?(:node_config)
298
308
  @node_count = args[:node_count] if args.key?(:node_count)
299
309
  @private_environment_config = args[:private_environment_config] if args.key?(:private_environment_config)
@@ -505,6 +515,46 @@ module Google
505
515
  end
506
516
  end
507
517
 
518
+ # The configuration settings for Cloud Composer maintenance window. The
519
+ # following example: ` "startTime":"2019-08-01T01:00:00Z" "endTime":"2019-08-
520
+ # 01T07:00:00Z" "recurrence":"FREQ=WEEKLY;BYDAY=TU,WE" ` would define a
521
+ # maintenance window between 01 and 07 hours UTC during each Tuesday and
522
+ # Wednesday.
523
+ class MaintenanceWindow
524
+ include Google::Apis::Core::Hashable
525
+
526
+ # Required. Maintenance window end time. It is used only to calculate the
527
+ # duration of the maintenance window. The value for end_time must be in the
528
+ # future, relative to `start_time`.
529
+ # Corresponds to the JSON property `endTime`
530
+ # @return [String]
531
+ attr_accessor :end_time
532
+
533
+ # Required. Maintenance window recurrence. Format is a subset of [RFC-5545](
534
+ # https://tools.ietf.org/html/rfc5545) `RRULE`. The only allowed values for `
535
+ # FREQ` field are `FREQ=DAILY` and `FREQ=WEEKLY;BYDAY=...` Example values: `FREQ=
536
+ # WEEKLY;BYDAY=TU,WE`, `FREQ=DAILY`.
537
+ # Corresponds to the JSON property `recurrence`
538
+ # @return [String]
539
+ attr_accessor :recurrence
540
+
541
+ # Required. Start time of the first recurrence of the maintenance window.
542
+ # Corresponds to the JSON property `startTime`
543
+ # @return [String]
544
+ attr_accessor :start_time
545
+
546
+ def initialize(**args)
547
+ update!(**args)
548
+ end
549
+
550
+ # Update properties of this object
551
+ def update!(**args)
552
+ @end_time = args[:end_time] if args.key?(:end_time)
553
+ @recurrence = args[:recurrence] if args.key?(:recurrence)
554
+ @start_time = args[:start_time] if args.key?(:start_time)
555
+ end
556
+ end
557
+
508
558
  # The configuration information for the Kubernetes Engine nodes running the
509
559
  # Apache Airflow software.
510
560
  class NodeConfig
@@ -553,6 +603,19 @@ module Google
553
603
  # @return [String]
554
604
  attr_accessor :machine_type
555
605
 
606
+ # Optional. The maximum number of pods per node in the Cloud Composer GKE
607
+ # cluster. The value must be between 8 and 110 and it can be set only if the
608
+ # environment is VPC-native. The default value is 32. Values of this field will
609
+ # be propagated both to the `default-pool` node pool of the newly created GKE
610
+ # cluster, and to the default "Maximum Pods per Node" value which is used for
611
+ # newly created node pools if their value is not explicitly set during node pool
612
+ # creation. For more information, see [Optimizing IP address allocation] (https:/
613
+ # /cloud.google.com/kubernetes-engine/docs/how-to/flexible-pod-cidr). Cannot be
614
+ # updated.
615
+ # Corresponds to the JSON property `maxPodsPerNode`
616
+ # @return [Fixnum]
617
+ attr_accessor :max_pods_per_node
618
+
556
619
  # Optional. The Compute Engine network to be used for machine communications,
557
620
  # specified as a [relative resource name](/apis/design/resource_names#
558
621
  # relative_resource_name). For example: "projects/`projectId`/global/networks/`
@@ -606,6 +669,7 @@ module Google
606
669
  @ip_allocation_policy = args[:ip_allocation_policy] if args.key?(:ip_allocation_policy)
607
670
  @location = args[:location] if args.key?(:location)
608
671
  @machine_type = args[:machine_type] if args.key?(:machine_type)
672
+ @max_pods_per_node = args[:max_pods_per_node] if args.key?(:max_pods_per_node)
609
673
  @network = args[:network] if args.key?(:network)
610
674
  @oauth_scopes = args[:oauth_scopes] if args.key?(:oauth_scopes)
611
675
  @service_account = args[:service_account] if args.key?(:service_account)
@@ -94,6 +94,12 @@ module Google
94
94
  include Google::Apis::Core::JsonObjectSupport
95
95
  end
96
96
 
97
+ class MaintenanceWindow
98
+ class Representation < Google::Apis::Core::JsonRepresentation; end
99
+
100
+ include Google::Apis::Core::JsonObjectSupport
101
+ end
102
+
97
103
  class NodeConfig
98
104
  class Representation < Google::Apis::Core::JsonRepresentation; end
99
105
 
@@ -215,6 +221,8 @@ module Google
215
221
  property :encryption_config, as: 'encryptionConfig', class: Google::Apis::ComposerV1beta1::EncryptionConfig, decorator: Google::Apis::ComposerV1beta1::EncryptionConfig::Representation
216
222
 
217
223
  property :gke_cluster, as: 'gkeCluster'
224
+ property :maintenance_window, as: 'maintenanceWindow', class: Google::Apis::ComposerV1beta1::MaintenanceWindow, decorator: Google::Apis::ComposerV1beta1::MaintenanceWindow::Representation
225
+
218
226
  property :node_config, as: 'nodeConfig', class: Google::Apis::ComposerV1beta1::NodeConfig, decorator: Google::Apis::ComposerV1beta1::NodeConfig::Representation
219
227
 
220
228
  property :node_count, as: 'nodeCount'
@@ -280,6 +288,15 @@ module Google
280
288
  end
281
289
  end
282
290
 
291
+ class MaintenanceWindow
292
+ # @private
293
+ class Representation < Google::Apis::Core::JsonRepresentation
294
+ property :end_time, as: 'endTime'
295
+ property :recurrence, as: 'recurrence'
296
+ property :start_time, as: 'startTime'
297
+ end
298
+ end
299
+
283
300
  class NodeConfig
284
301
  # @private
285
302
  class Representation < Google::Apis::Core::JsonRepresentation
@@ -288,6 +305,7 @@ module Google
288
305
 
289
306
  property :location, as: 'location'
290
307
  property :machine_type, as: 'machineType'
308
+ property :max_pods_per_node, as: 'maxPodsPerNode'
291
309
  property :network, as: 'network'
292
310
  collection :oauth_scopes, as: 'oauthScopes'
293
311
  property :service_account, as: 'serviceAccount'
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://developers.google.com/compute/docs/reference/latest/
26
26
  module ComputeAlpha
27
27
  VERSION = 'Alpha'
28
- REVISION = '20200910'
28
+ REVISION = '20201122'
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'
@@ -471,6 +471,19 @@ module Google
471
471
  class AccessConfig
472
472
  include Google::Apis::Core::Hashable
473
473
 
474
+ # [Output Only] The first IPv6 address of the external IPv6 range associated
475
+ # with this instance, prefix length is stored in externalIpv6PrefixLength in
476
+ # ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork
477
+ # associated with the instance will be allocated dynamically.
478
+ # Corresponds to the JSON property `externalIpv6`
479
+ # @return [String]
480
+ attr_accessor :external_ipv6
481
+
482
+ # [Output Only] The prefix length of the external IPv6 range.
483
+ # Corresponds to the JSON property `externalIpv6PrefixLength`
484
+ # @return [Fixnum]
485
+ attr_accessor :external_ipv6_prefix_length
486
+
474
487
  # [Output Only] Type of the resource. Always compute#accessConfig for access
475
488
  # configs.
476
489
  # Corresponds to the JSON property `kind`
@@ -540,6 +553,8 @@ module Google
540
553
 
541
554
  # Update properties of this object
542
555
  def update!(**args)
556
+ @external_ipv6 = args[:external_ipv6] if args.key?(:external_ipv6)
557
+ @external_ipv6_prefix_length = args[:external_ipv6_prefix_length] if args.key?(:external_ipv6_prefix_length)
543
558
  @kind = args[:kind] if args.key?(:kind)
544
559
  @name = args[:name] if args.key?(:name)
545
560
  @nat_ip = args[:nat_ip] if args.key?(:nat_ip)
@@ -668,6 +683,9 @@ module Google
668
683
  # - `VPC_PEERING` for addresses that are reserved for VPC peer networks.
669
684
  # - `NAT_AUTO` for addresses that are external IP addresses automatically
670
685
  # reserved for Cloud NAT.
686
+ # - `IPSEC_INTERCONNECT` for addresses created from a private IP range that are
687
+ # reserved for a VLAN attachment in an IPsec encrypted Interconnect
688
+ # configuration. These addresses are regional resources.
671
689
  # Corresponds to the JSON property `purpose`
672
690
  # @return [String]
673
691
  attr_accessor :purpose
@@ -1134,6 +1152,25 @@ module Google
1134
1152
  end
1135
1153
  end
1136
1154
 
1155
+ #
1156
+ class AllocationShareSettings
1157
+ include Google::Apis::Core::Hashable
1158
+
1159
+ # Type of sharing for this shared-reservation
1160
+ # Corresponds to the JSON property `shareType`
1161
+ # @return [String]
1162
+ attr_accessor :share_type
1163
+
1164
+ def initialize(**args)
1165
+ update!(**args)
1166
+ end
1167
+
1168
+ # Update properties of this object
1169
+ def update!(**args)
1170
+ @share_type = args[:share_type] if args.key?(:share_type)
1171
+ end
1172
+ end
1173
+
1137
1174
  #
1138
1175
  class AllocationSpecificSkuAllocationAllocatedInstancePropertiesReservedDisk
1139
1176
  include Google::Apis::Core::Hashable
@@ -1195,6 +1232,13 @@ module Google
1195
1232
  # @return [Fixnum]
1196
1233
  attr_accessor :maintenance_freeze_duration_hours
1197
1234
 
1235
+ # Specifies whether this VM may be a stable fleet VM. Setting this to "Periodic"
1236
+ # designates this VM as a Stable Fleet VM.
1237
+ # See go/stable-fleet-ug for more details.
1238
+ # Corresponds to the JSON property `maintenanceInterval`
1239
+ # @return [String]
1240
+ attr_accessor :maintenance_interval
1241
+
1198
1242
  # Minimum cpu platform the reservation.
1199
1243
  # Corresponds to the JSON property `minCpuPlatform`
1200
1244
  # @return [String]
@@ -1211,6 +1255,7 @@ module Google
1211
1255
  @location_hint = args[:location_hint] if args.key?(:location_hint)
1212
1256
  @machine_type = args[:machine_type] if args.key?(:machine_type)
1213
1257
  @maintenance_freeze_duration_hours = args[:maintenance_freeze_duration_hours] if args.key?(:maintenance_freeze_duration_hours)
1258
+ @maintenance_interval = args[:maintenance_interval] if args.key?(:maintenance_interval)
1214
1259
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
1215
1260
  end
1216
1261
  end
@@ -1298,6 +1343,14 @@ module Google
1298
1343
  # @return [Fixnum]
1299
1344
  attr_accessor :disk_size_gb
1300
1345
 
1346
+ # [Input Only] Whether to force attach the regional disk even if it's currently
1347
+ # attached to another instance. If you try to force attach a zonal disk to an
1348
+ # instance, you will receive an error.
1349
+ # Corresponds to the JSON property `forceAttach`
1350
+ # @return [Boolean]
1351
+ attr_accessor :force_attach
1352
+ alias_method :force_attach?, :force_attach
1353
+
1301
1354
  # A list of features to enable on the guest operating system. Applicable only
1302
1355
  # for bootable images. Read Enabling guest operating system features to see a
1303
1356
  # list of available options.
@@ -1397,6 +1450,7 @@ module Google
1397
1450
  @device_name = args[:device_name] if args.key?(:device_name)
1398
1451
  @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
1399
1452
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
1453
+ @force_attach = args[:force_attach] if args.key?(:force_attach)
1400
1454
  @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
1401
1455
  @index = args[:index] if args.key?(:index)
1402
1456
  @initialize_params = args[:initialize_params] if args.key?(:initialize_params)
@@ -1753,8 +1807,8 @@ module Google
1753
1807
 
1754
1808
  # Represents an Autoscaler resource.
1755
1809
  # Google Compute Engine has two Autoscaler resources:
1756
- # * [Global](/compute/docs/reference/rest/`$api_version`/autoscalers) * [
1757
- # Regional](/compute/docs/reference/rest/`$api_version`/regionAutoscalers)
1810
+ # * [Zonal](/compute/docs/reference/rest/`$api_version`/autoscalers) * [Regional]
1811
+ # (/compute/docs/reference/rest/`$api_version`/regionAutoscalers)
1758
1812
  # Use autoscalers to automatically add or delete instances from a managed
1759
1813
  # instance group according to your defined autoscaling policy. For more
1760
1814
  # information, read Autoscaling Groups of Instances.
@@ -1803,10 +1857,10 @@ module Google
1803
1857
  attr_accessor :name
1804
1858
 
1805
1859
  # [Output Only] Target recommended MIG size (number of instances) computed by
1806
- # autoscaler. Autoscaler calculates recommended MIG size even when autoscaling
1807
- # policy mode is different from ON. This field is empty when autoscaler is not
1808
- # connected to the existing managed instance group or autoscaler did not
1809
- # generate its prediction.
1860
+ # autoscaler. Autoscaler calculates the recommended MIG size even when the
1861
+ # autoscaling policy mode is different from ON. This field is empty when
1862
+ # autoscaler is not connected to an existing managed instance group or
1863
+ # autoscaler did not generate its prediction.
1810
1864
  # Corresponds to the JSON property `recommendedSize`
1811
1865
  # @return [Fixnum]
1812
1866
  attr_accessor :recommended_size
@@ -1851,7 +1905,8 @@ module Google
1851
1905
  # @return [Array<Google::Apis::ComputeAlpha::AutoscalerStatusDetails>]
1852
1906
  attr_accessor :status_details
1853
1907
 
1854
- # URL of the managed instance group that this autoscaler will scale.
1908
+ # URL of the managed instance group that this autoscaler will scale. This field
1909
+ # is required when creating an autoscaler.
1855
1910
  # Corresponds to the JSON property `target`
1856
1911
  # @return [String]
1857
1912
  attr_accessor :target
@@ -2160,7 +2215,7 @@ module Google
2160
2215
  # - MODE_OFF (WARNING): Autoscaling is turned off. The number of instances in
2161
2216
  # the group won't change automatically. The autoscaling configuration is
2162
2217
  # preserved.
2163
- # - MODE_ONLY_UP (WARNING): Autoscaling is in the "Autoscale only up" mode. The
2218
+ # - MODE_ONLY_UP (WARNING): Autoscaling is in the "Autoscale only out" mode. The
2164
2219
  # autoscaler can add instances but not remove any.
2165
2220
  # - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The instance group cannot be
2166
2221
  # autoscaled because it has more than one backend service attached to it.
@@ -2286,11 +2341,10 @@ module Google
2286
2341
  class AutoscalingPolicy
2287
2342
  include Google::Apis::Core::Hashable
2288
2343
 
2289
- # The number of seconds that the autoscaler should wait before it starts
2290
- # collecting information from a new instance. This prevents the autoscaler from
2291
- # collecting information when the instance is initializing, during which the
2292
- # collected usage would not be reliable. The default time autoscaler waits is 60
2293
- # seconds.
2344
+ # The number of seconds that the autoscaler waits before it starts collecting
2345
+ # information from a new instance. This prevents the autoscaler from collecting
2346
+ # information when the instance is initializing, during which the collected
2347
+ # usage would not be reliable. The default time autoscaler waits is 60 seconds.
2294
2348
  # Virtual machine initialization times might vary because of numerous factors.
2295
2349
  # We recommend that you test how long an instance may take to initialize. To do
2296
2350
  # this, create an instance and time the startup process.
@@ -2313,15 +2367,15 @@ module Google
2313
2367
  # @return [Google::Apis::ComputeAlpha::AutoscalingPolicyLoadBalancingUtilization]
2314
2368
  attr_accessor :load_balancing_utilization
2315
2369
 
2316
- # The maximum number of instances that the autoscaler can scale up to. This is
2370
+ # The maximum number of instances that the autoscaler can scale out to. This is
2317
2371
  # required when creating or updating an autoscaler. The maximum number of
2318
- # replicas should not be lower than minimal number of replicas.
2372
+ # replicas must not be lower than minimal number of replicas.
2319
2373
  # Corresponds to the JSON property `maxNumReplicas`
2320
2374
  # @return [Fixnum]
2321
2375
  attr_accessor :max_num_replicas
2322
2376
 
2323
- # The minimum number of replicas that the autoscaler can scale down to. This
2324
- # cannot be less than 0. If not provided, autoscaler will choose a default value
2377
+ # The minimum number of replicas that the autoscaler can scale in to. This
2378
+ # cannot be less than 0. If not provided, autoscaler chooses a default value
2325
2379
  # depending on maximum number of instances allowed.
2326
2380
  # Corresponds to the JSON property `minNumReplicas`
2327
2381
  # @return [Fixnum]
@@ -2332,8 +2386,8 @@ module Google
2332
2386
  # @return [String]
2333
2387
  attr_accessor :mode
2334
2388
 
2335
- # Configuration that allows for slower scale down so that even if Autoscaler
2336
- # recommends an abrupt scale down of a MIG, it will be throttled as specified by
2389
+ # Configuration that allows for slower scale in so that even if Autoscaler
2390
+ # recommends an abrupt scale in of a MIG, it will be throttled as specified by
2337
2391
  # the parameters below.
2338
2392
  # Corresponds to the JSON property `scaleDownControl`
2339
2393
  # @return [Google::Apis::ComputeAlpha::AutoscalingPolicyScaleDownControl]
@@ -2347,9 +2401,9 @@ module Google
2347
2401
  attr_accessor :scale_in_control
2348
2402
 
2349
2403
  # Scaling schedules defined for an autoscaler. Multiple schedules can be set on
2350
- # an autoscaler and they can overlap. During overlapping periods the greatest
2351
- # min_required_replicas of all scaling schedules will be applied. Up to 128
2352
- # scaling schedules are allowed.
2404
+ # an autoscaler, and they can overlap. During overlapping periods the greatest
2405
+ # min_required_replicas of all scaling schedules is applied. Up to 128 scaling
2406
+ # schedules are allowed.
2353
2407
  # Corresponds to the JSON property `scalingSchedules`
2354
2408
  # @return [Hash<String,Google::Apis::ComputeAlpha::AutoscalingPolicyScalingSchedule>]
2355
2409
  attr_accessor :scaling_schedules
@@ -2388,13 +2442,13 @@ module Google
2388
2442
  # @return [String]
2389
2443
  attr_accessor :predictive_method
2390
2444
 
2391
- # The target CPU utilization that the autoscaler should maintain. Must be a
2392
- # float value in the range (0, 1]. If not specified, the default is 0.6.
2393
- # If the CPU level is below the target utilization, the autoscaler scales down
2394
- # the number of instances until it reaches the minimum number of instances you
2445
+ # The target CPU utilization that the autoscaler maintains. Must be a float
2446
+ # value in the range (0, 1]. If not specified, the default is 0.6.
2447
+ # If the CPU level is below the target utilization, the autoscaler scales in the
2448
+ # number of instances until it reaches the minimum number of instances you
2395
2449
  # specified or until the average CPU of your instances reaches the target
2396
2450
  # utilization.
2397
- # If the average CPU is above the target utilization, the autoscaler scales up
2451
+ # If the average CPU is above the target utilization, the autoscaler scales out
2398
2452
  # until it reaches the maximum number of instances you specified or until the
2399
2453
  # average utilization reaches the target utilization.
2400
2454
  # Corresponds to the JSON property `utilizationTarget`
@@ -2437,11 +2491,11 @@ module Google
2437
2491
  # to scale upon. This is called a per-group metric for the purpose of
2438
2492
  # autoscaling.
2439
2493
  # If not specified, the type defaults to gce_instance.
2440
- # You should provide a filter that is selective enough to pick just one
2441
- # TimeSeries for the autoscaled group or for each of the instances (if you are
2442
- # using gce_instance resource type). If multiple TimeSeries are returned upon
2443
- # the query execution, the autoscaler will sum their respective values to obtain
2444
- # its scaling value.
2494
+ # Try to provide a filter that is selective enough to pick just one TimeSeries
2495
+ # for the autoscaled group or for each of the instances (if you are using
2496
+ # gce_instance resource type). If multiple TimeSeries are returned upon the
2497
+ # query execution, the autoscaler will sum their respective values to obtain its
2498
+ # scaling value.
2445
2499
  # Corresponds to the JSON property `filter`
2446
2500
  # @return [String]
2447
2501
  attr_accessor :filter
@@ -2455,9 +2509,9 @@ module Google
2455
2509
 
2456
2510
  # If scaling is based on a per-group metric value that represents the total
2457
2511
  # amount of work to be done or resource usage, set this value to an amount
2458
- # assigned for a single instance of the scaled group. Autoscaler will keep the
2459
- # number of instances proportional to the value of this metric, the metric
2460
- # itself should not change value due to group resizing.
2512
+ # assigned for a single instance of the scaled group. Autoscaler keeps the
2513
+ # number of instances proportional to the value of this metric. The metric
2514
+ # itself does not change value due to group resizing.
2461
2515
  # A good metric to use with the target is for example pubsub.googleapis.com/
2462
2516
  # subscription/num_undelivered_messages or a custom metric exporting the total
2463
2517
  # number of requests coming to your instances.
@@ -2468,12 +2522,12 @@ module Google
2468
2522
  # @return [Float]
2469
2523
  attr_accessor :single_instance_assignment
2470
2524
 
2471
- # The target value of the metric that autoscaler should maintain. This must be a
2525
+ # The target value of the metric that autoscaler maintains. This must be a
2472
2526
  # positive value. A utilization metric scales number of virtual machines
2473
2527
  # handling requests to increase or decrease proportionally to the metric.
2474
2528
  # For example, a good metric to use as a utilization_target is https://www.
2475
2529
  # googleapis.com/compute/v1/instance/network/received_bytes_count. The
2476
- # autoscaler will work to keep this value constant for each of the instances.
2530
+ # autoscaler works to keep this value constant for each of the instances.
2477
2531
  # Corresponds to the JSON property `utilizationTarget`
2478
2532
  # @return [Float]
2479
2533
  attr_accessor :utilization_target
@@ -2503,7 +2557,7 @@ module Google
2503
2557
  include Google::Apis::Core::Hashable
2504
2558
 
2505
2559
  # Fraction of backend capacity utilization (set in HTTP(S) load balancing
2506
- # configuration) that autoscaler should maintain. Must be a positive float value.
2560
+ # configuration) that the autoscaler maintains. Must be a positive float value.
2507
2561
  # If not defined, the default is 0.8.
2508
2562
  # Corresponds to the JSON property `utilizationTarget`
2509
2563
  # @return [Float]
@@ -2519,8 +2573,8 @@ module Google
2519
2573
  end
2520
2574
  end
2521
2575
 
2522
- # Configuration that allows for slower scale down so that even if Autoscaler
2523
- # recommends an abrupt scale down of a MIG, it will be throttled as specified by
2576
+ # Configuration that allows for slower scale in so that even if Autoscaler
2577
+ # recommends an abrupt scale in of a MIG, it will be throttled as specified by
2524
2578
  # the parameters below.
2525
2579
  class AutoscalingPolicyScaleDownControl
2526
2580
  include Google::Apis::Core::Hashable
@@ -2530,8 +2584,8 @@ module Google
2530
2584
  # @return [Google::Apis::ComputeAlpha::FixedOrPercent]
2531
2585
  attr_accessor :max_scaled_down_replicas
2532
2586
 
2533
- # How long back autoscaling should look when computing recommendations to
2534
- # include directives regarding slower scale down, as described above.
2587
+ # How far back autoscaling looks when computing recommendations to include
2588
+ # directives regarding slower scale in, as described above.
2535
2589
  # Corresponds to the JSON property `timeWindowSec`
2536
2590
  # @return [Fixnum]
2537
2591
  attr_accessor :time_window_sec
@@ -2558,8 +2612,8 @@ module Google
2558
2612
  # @return [Google::Apis::ComputeAlpha::FixedOrPercent]
2559
2613
  attr_accessor :max_scaled_in_replicas
2560
2614
 
2561
- # How long back autoscaling should look when computing recommendations to
2562
- # include directives regarding slower scale in, as described above.
2615
+ # How far back autoscaling looks when computing recommendations to include
2616
+ # directives regarding slower scale in, as described above.
2563
2617
  # Corresponds to the JSON property `timeWindowSec`
2564
2618
  # @return [Fixnum]
2565
2619
  attr_accessor :time_window_sec
@@ -2586,41 +2640,40 @@ module Google
2586
2640
  # @return [String]
2587
2641
  attr_accessor :description
2588
2642
 
2589
- # A boolean value that specifies if a scaling schedule can influence autoscaler
2590
- # recommendations. If set to true, then a scaling schedule has no effect. This
2591
- # field is optional and its value is false by default.
2643
+ # A boolean value that specifies whether a scaling schedule can influence
2644
+ # autoscaler recommendations. If set to true, then a scaling schedule has no
2645
+ # effect. This field is optional, and its value is false by default.
2592
2646
  # Corresponds to the JSON property `disabled`
2593
2647
  # @return [Boolean]
2594
2648
  attr_accessor :disabled
2595
2649
  alias_method :disabled?, :disabled
2596
2650
 
2597
- # The duration of time intervals (in seconds) for which this scaling schedule
2598
- # will be running. The minimum allowed value is 300. This field is required.
2651
+ # The duration of time intervals, in seconds, for which this scaling schedule is
2652
+ # to run. The minimum allowed value is 300. This field is required.
2599
2653
  # Corresponds to the JSON property `durationSec`
2600
2654
  # @return [Fixnum]
2601
2655
  attr_accessor :duration_sec
2602
2656
 
2603
- # Minimum number of VM instances that autoscaler will recommend in time
2657
+ # The minimum number of VM instances that the autoscaler will recommend in time
2604
2658
  # intervals starting according to schedule. This field is required.
2605
2659
  # Corresponds to the JSON property `minRequiredReplicas`
2606
2660
  # @return [Fixnum]
2607
2661
  attr_accessor :min_required_replicas
2608
2662
 
2609
- # The start timestamps of time intervals when this scaling schedule should
2663
+ # The start timestamps of time intervals when this scaling schedule is to
2610
2664
  # provide a scaling signal. This field uses the extended cron format (with an
2611
- # optional year field). The expression may describe a single timestamp if the
2612
- # optional year is set, in which case a scaling schedule will run once. schedule
2613
- # is interpreted with respect to time_zone. This field is required. NOTE: these
2614
- # timestamps only describe when autoscaler will start providing the scaling
2615
- # signal. The VMs will need additional time to become serving.
2665
+ # optional year field). The expression can describe a single timestamp if the
2666
+ # optional year is set, in which case the scaling schedule runs once. The
2667
+ # schedule is interpreted with respect to time_zone. This field is required.
2668
+ # Note: These timestamps only describe when autoscaler starts providing the
2669
+ # scaling signal. The VMs need additional time to become serving.
2616
2670
  # Corresponds to the JSON property `schedule`
2617
2671
  # @return [String]
2618
2672
  attr_accessor :schedule
2619
2673
 
2620
- # The time zone to be used when interpreting the schedule. The value of this
2621
- # field must be a time zone name from the tz database: http://en.wikipedia.org/
2622
- # wiki/Tz_database. This field will be assigned a default value of ?UTC? if left
2623
- # empty.
2674
+ # The time zone to use when interpreting the schedule. The value of this field
2675
+ # must be a time zone name from the tz database: http://en.wikipedia.org/wiki/
2676
+ # Tz_database. This field is assigned a default value of ?UTC? if left empty.
2624
2677
  # Corresponds to the JSON property `timeZone`
2625
2678
  # @return [String]
2626
2679
  attr_accessor :time_zone
@@ -2658,21 +2711,22 @@ module Google
2658
2711
  # parameters: maxConnections (except for regional managed instance groups),
2659
2712
  # maxConnectionsPerInstance, or maxConnectionsPerEndpoint.
2660
2713
  # If the loadBalancingScheme for the backend service is INTERNAL (internal TCP/
2661
- # UDP load balancers), you cannot specify any additional parameters.
2714
+ # UDP Load Balancers) or EXTERNAL (Network Load Balancing), you cannot specify
2715
+ # any additional parameters.
2662
2716
  #
2663
2717
  # - If the load balancing mode is RATE, the load is spread based on the rate of
2664
2718
  # HTTP requests per second (RPS).
2665
2719
  # You can use the RATE balancing mode if the protocol for the backend service is
2666
- # HTTP or HTTPS. You must specify exactly one of the following parameters:
2667
- # maxRate (except for regional managed instance groups), maxRatePerInstance, or
2668
- # maxRatePerEndpoint.
2720
+ # HTTP, HTTP2, or HTTPS. You must specify exactly one of the following
2721
+ # parameters: maxRate (except for regional managed instance groups),
2722
+ # maxRatePerInstance, or maxRatePerEndpoint.
2669
2723
  #
2670
2724
  # - If the load balancing mode is UTILIZATION, the load is spread based on the
2671
2725
  # backend utilization of instances in an instance group.
2672
2726
  # You can use the UTILIZATION balancing mode if the loadBalancingScheme of the
2673
- # backend service is EXTERNAL, INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED and
2674
- # the backends are instance groups. There are no restrictions on the backend
2675
- # service protocol.
2727
+ # backend service is EXTERNAL (except Network Load Balancing),
2728
+ # INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED and the backends are instance
2729
+ # groups. There are no restrictions on the backend service protocol.
2676
2730
  # Corresponds to the JSON property `balancingMode`
2677
2731
  # @return [String]
2678
2732
  attr_accessor :balancing_mode
@@ -2684,7 +2738,8 @@ module Google
2684
2738
  # available capacity. Valid range is 0.0 and [0.1,1.0]. You cannot configure a
2685
2739
  # setting larger than 0 and smaller than 0.1. You cannot configure a setting of
2686
2740
  # 0 when there is only one backend attached to the backend service.
2687
- # This cannot be used for internal load balancing.
2741
+ # This cannot be used for Internal TCP/UDP Load Balancing and Network Load
2742
+ # Balancing.
2688
2743
  # Corresponds to the JSON property `capacityScaler`
2689
2744
  # @return [Float]
2690
2745
  attr_accessor :capacity_scaler
@@ -2706,14 +2761,16 @@ module Google
2706
2761
  # resource. The type of backend that a backend service supports depends on the
2707
2762
  # backend service's loadBalancingScheme.
2708
2763
  #
2709
- # - When the loadBalancingScheme for the backend service is EXTERNAL,
2710
- # INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED, the backend can be either an
2711
- # instance group or a NEG. The backends on the backend service must be either
2712
- # all instance groups or all NEGs. You cannot mix instance group and NEG
2713
- # backends on the same backend service.
2714
- # - When the loadBalancingScheme for the backend service is INTERNAL, the
2715
- # backend must be an instance group in the same region as the backend service.
2716
- # NEGs are not supported.
2764
+ # - When the loadBalancingScheme for the backend service is EXTERNAL (except
2765
+ # Network Load Balancing), INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED , the
2766
+ # backend can be either an instance group or a NEG. The backends on the backend
2767
+ # service must be either all instance groups or all NEGs. You cannot mix
2768
+ # instance group and NEG backends on the same backend service.
2769
+ # - When the loadBalancingScheme for the backend service is EXTERNAL for Network
2770
+ # Load Balancing or INTERNAL for Internal TCP/UDP Load Balancing, the backend
2771
+ # must be an instance group. NEGs are not supported.
2772
+ # For regional services, the backend must be in the same region as the backend
2773
+ # service.
2717
2774
  # You must use the fully-qualified URL (starting with https://www.googleapis.com/
2718
2775
  # ) to specify the instance group or NEG. Partial URLs are not supported.
2719
2776
  # Corresponds to the JSON property `group`
@@ -2725,11 +2782,12 @@ module Google
2725
2782
  # except for regional managed instance groups). If the backend's balancingMode
2726
2783
  # is UTILIZATION, this is an optional parameter. If the backend's balancingMode
2727
2784
  # is CONNECTION, and backend is attached to a backend service whose
2728
- # loadBalancingScheme is EXTERNAL, you must specify either this parameter,
2729
- # maxConnectionsPerInstance, or maxConnectionsPerEndpoint.
2730
- # Not available if the backend's balancingMode is RATE. If the
2731
- # loadBalancingScheme is INTERNAL, then maxConnections is not supported, even
2732
- # though the backend requires a balancing mode of CONNECTION.
2785
+ # loadBalancingScheme is EXTERNAL (except Network Load Balancing), you must
2786
+ # specify either this parameter, maxConnectionsPerInstance, or
2787
+ # maxConnectionsPerEndpoint.
2788
+ # Not available if the backend's balancingMode is RATE. Cannot be specified for
2789
+ # Network Load Balancing or Internal TCP/UDP Load Balancing, even though those
2790
+ # load balancers require a balancing mode of CONNECTION.
2733
2791
  # Corresponds to the JSON property `maxConnections`
2734
2792
  # @return [Fixnum]
2735
2793
  attr_accessor :max_connections
@@ -2737,12 +2795,13 @@ module Google
2737
2795
  # Defines a target maximum number of simultaneous connections for an endpoint of
2738
2796
  # a NEG. This is multiplied by the number of endpoints in the NEG to implicitly
2739
2797
  # calculate a maximum number of target maximum simultaneous connections for the
2740
- # NEG. If the backend's balancingMode is CONNECTION, and the backend is attached
2741
- # to a backend service whose loadBalancingScheme is EXTERNAL, you must specify
2742
- # either this parameter, maxConnections, or maxConnectionsPerInstance.
2743
- # Not available if the backend's balancingMode is RATE. Internal TCP/UDP load
2744
- # balancing does not support setting maxConnectionsPerEndpoint even though its
2745
- # backends require a balancing mode of CONNECTION.
2798
+ # NEG. If the backend's balancingMode is CONNECTION, and backend is attached to
2799
+ # a backend service whose loadBalancingScheme is EXTERNAL (except Network Load
2800
+ # Balancing), you must specify either this parameter, maxConnections, or
2801
+ # maxConnectionsPerInstance.
2802
+ # Not available if the backend's balancingMode is RATE. Cannot be specified for
2803
+ # Network Load Balancing or Internal TCP/UDP Load Balancing, even though those
2804
+ # load balancers require a balancing mode of CONNECTION.
2746
2805
  # Corresponds to the JSON property `maxConnectionsPerEndpoint`
2747
2806
  # @return [Fixnum]
2748
2807
  attr_accessor :max_connections_per_endpoint
@@ -2753,11 +2812,11 @@ module Google
2753
2812
  # connections for the whole instance group. If the backend's balancingMode is
2754
2813
  # UTILIZATION, this is an optional parameter. If the backend's balancingMode is
2755
2814
  # CONNECTION, and backend is attached to a backend service whose
2756
- # loadBalancingScheme is EXTERNAL, you must specify either this parameter,
2757
- # maxConnections, or maxConnectionsPerEndpoint.
2758
- # Not available if the backend's balancingMode is RATE. Internal TCP/UDP load
2759
- # balancing does not support setting maxConnectionsPerInstance even though its
2760
- # backends require a balancing mode of CONNECTION.
2815
+ # loadBalancingScheme is EXTERNAL (except Network Load Balancing), you must
2816
+ # specify either this parameter, maxConnections, or maxConnectionsPerEndpoint.
2817
+ # Not available if the backend's balancingMode is RATE. Cannot be specified for
2818
+ # Network Load Balancing or Internal TCP/UDP Load Balancing, even though those
2819
+ # load balancers require a balancing mode of CONNECTION.
2761
2820
  # Corresponds to the JSON property `maxConnectionsPerInstance`
2762
2821
  # @return [Fixnum]
2763
2822
  attr_accessor :max_connections_per_instance
@@ -2860,6 +2919,12 @@ module Google
2860
2919
  # @return [String]
2861
2920
  attr_accessor :description
2862
2921
 
2922
+ # [Output Only] The resource URL for the edge security policy associated with
2923
+ # this backend bucket.
2924
+ # Corresponds to the JSON property `edgeSecurityPolicy`
2925
+ # @return [String]
2926
+ attr_accessor :edge_security_policy
2927
+
2863
2928
  # If true, enable Cloud CDN for this BackendBucket.
2864
2929
  # Corresponds to the JSON property `enableCdn`
2865
2930
  # @return [Boolean]
@@ -2907,6 +2972,7 @@ module Google
2907
2972
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
2908
2973
  @custom_response_headers = args[:custom_response_headers] if args.key?(:custom_response_headers)
2909
2974
  @description = args[:description] if args.key?(:description)
2975
+ @edge_security_policy = args[:edge_security_policy] if args.key?(:edge_security_policy)
2910
2976
  @enable_cdn = args[:enable_cdn] if args.key?(:enable_cdn)
2911
2977
  @id = args[:id] if args.key?(:id)
2912
2978
  @kind = args[:kind] if args.key?(:kind)
@@ -2978,12 +3044,17 @@ module Google
2978
3044
 
2979
3045
  # Negative caching allows per-status code TTLs to be set, in order to apply fine-
2980
3046
  # grained caching for common errors or redirects. This can reduce the load on
2981
- # your origin and improve end-user experience by reducing response latency. By
2982
- # default, Cloud CDN will apply the following default TTLs to these status codes:
2983
- # HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not
2984
- # Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method
2985
- # Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s These
2986
- # defaults can be overridden in negative_caching_policy
3047
+ # your origin and improve end-user experience by reducing response latency. When
3048
+ # the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative
3049
+ # caching applies to responses with the specified response code that lack any
3050
+ # Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is
3051
+ # set to FORCE_CACHE_ALL, negative caching applies to all responses with the
3052
+ # specified response code, and override any caching headers. By default, Cloud
3053
+ # CDN will apply the following default TTLs to these status codes: HTTP 300 (
3054
+ # Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found),
3055
+ # 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not
3056
+ # Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults
3057
+ # can be overridden in negative_caching_policy.
2987
3058
  # Corresponds to the JSON property `negativeCaching`
2988
3059
  # @return [Boolean]
2989
3060
  attr_accessor :negative_caching
@@ -3087,9 +3158,10 @@ module Google
3087
3158
  # @return [Fixnum]
3088
3159
  attr_accessor :code
3089
3160
 
3090
- # The TTL (in seconds) to cache responses with the corresponding status code for.
3091
- # The maximum allowed value is 1800s (30 minutes), noting that infrequently
3092
- # accessed objects may be evicted from the cache before the defined TTL.
3161
+ # The TTL (in seconds) for which to cache responses with the corresponding
3162
+ # status code. The maximum allowed value is 1800s (30 minutes), noting that
3163
+ # infrequently accessed objects may be evicted from the cache before the defined
3164
+ # TTL.
3093
3165
  # Corresponds to the JSON property `ttl`
3094
3166
  # @return [Fixnum]
3095
3167
  attr_accessor :ttl
@@ -3269,6 +3341,11 @@ module Google
3269
3341
  # @return [Google::Apis::ComputeAlpha::ConnectionDraining]
3270
3342
  attr_accessor :connection_draining
3271
3343
 
3344
+ # Connection Tracking configuration for this BackendService.
3345
+ # Corresponds to the JSON property `connectionTrackingPolicy`
3346
+ # @return [Google::Apis::ComputeAlpha::BackendServiceConnectionTrackingPolicy]
3347
+ attr_accessor :connection_tracking_policy
3348
+
3272
3349
  # This message defines settings for a consistent hash style load balancer.
3273
3350
  # Corresponds to the JSON property `consistentHash`
3274
3351
  # @return [Google::Apis::ComputeAlpha::ConsistentHashLoadBalancerSettings]
@@ -3295,6 +3372,12 @@ module Google
3295
3372
  # @return [String]
3296
3373
  attr_accessor :description
3297
3374
 
3375
+ # [Output Only] The resource URL for the edge security policy associated with
3376
+ # this backend service.
3377
+ # Corresponds to the JSON property `edgeSecurityPolicy`
3378
+ # @return [String]
3379
+ attr_accessor :edge_security_policy
3380
+
3298
3381
  # If true, enables Cloud CDN for the backend service. Only applicable if the
3299
3382
  # loadBalancingScheme is EXTERNAL and the protocol is HTTP or HTTPS.
3300
3383
  # Corresponds to the JSON property `enableCDN`
@@ -3302,13 +3385,14 @@ module Google
3302
3385
  attr_accessor :enable_cdn
3303
3386
  alias_method :enable_cdn?, :enable_cdn
3304
3387
 
3305
- # Applicable only to Failover for Internal TCP/UDP Load Balancing. On failover
3306
- # or failback, this field indicates whether connection draining will be honored.
3307
- # GCP has a fixed connection draining timeout of 10 minutes. A setting of true
3308
- # terminates existing TCP connections to the active pool during failover and
3309
- # failback, immediately draining traffic. A setting of false allows existing TCP
3310
- # connections to persist, even on VMs no longer in the active pool, for up to
3311
- # the duration of the connection draining timeout (10 minutes).
3388
+ # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network
3389
+ # Load Balancing. On failover or failback, this field indicates whether
3390
+ # connection draining will be honored. GCP has a fixed connection draining
3391
+ # timeout of 10 minutes. A setting of true terminates existing TCP connections
3392
+ # to the active pool during failover and failback, immediately draining traffic.
3393
+ # A setting of false allows existing TCP connections to persist, even on VMs no
3394
+ # longer in the active pool, for up to the duration of the connection draining
3395
+ # timeout (10 minutes).
3312
3396
  # Corresponds to the JSON property `failoverPolicy`
3313
3397
  # @return [Google::Apis::ComputeAlpha::BackendServiceFailoverPolicy]
3314
3398
  attr_accessor :failover_policy
@@ -3353,11 +3437,11 @@ module Google
3353
3437
  # @return [String]
3354
3438
  attr_accessor :kind
3355
3439
 
3356
- # Specifies the load balancer type. Choose EXTERNAL for load balancers that
3357
- # receive traffic from external clients. Choose INTERNAL for Internal TCP/UDP
3358
- # Load Balancing. Choose INTERNAL_MANAGED for Internal HTTP(S) Load Balancing.
3359
- # Choose INTERNAL_SELF_MANAGED for Traffic Director. A backend service created
3360
- # for one type of load balancing cannot be used with another. For more
3440
+ # Specifies the load balancer type. Choose EXTERNAL for external HTTP(S), SSL
3441
+ # Proxy, TCP Proxy and Network Load Balancing. Choose INTERNAL for Internal TCP/
3442
+ # UDP Load Balancing. Choose INTERNAL_MANAGED for Internal HTTP(S) Load
3443
+ # Balancing. INTERNAL_SELF_MANAGED for Traffic Director. A backend service
3444
+ # created for one type of load balancer cannot be used with another. For more
3361
3445
  # information, refer to Choosing a load balancer.
3362
3446
  # Corresponds to the JSON property `loadBalancingScheme`
3363
3447
  # @return [String]
@@ -3412,7 +3496,7 @@ module Google
3412
3496
  attr_accessor :name
3413
3497
 
3414
3498
  # The URL of the network to which this backend service belongs. This field can
3415
- # only be spcified when the load balancing scheme is set to INTERNAL.
3499
+ # only be specified when the load balancing scheme is set to INTERNAL.
3416
3500
  # Corresponds to the JSON property `network`
3417
3501
  # @return [String]
3418
3502
  attr_accessor :network
@@ -3433,11 +3517,12 @@ module Google
3433
3517
 
3434
3518
  # A named port on a backend instance group representing the port for
3435
3519
  # communication to the backend VMs in that group. Required when the
3436
- # loadBalancingScheme is EXTERNAL, INTERNAL_MANAGED, or INTERNAL_SELF_MANAGED
3437
- # and the backends are instance groups. The named port must be defined on each
3438
- # backend instance group. This parameter has no meaning if the backends are NEGs.
3439
- # Must be omitted when the loadBalancingScheme is INTERNAL (Internal TCP/UDP
3440
- # Load Balancing).
3520
+ # loadBalancingScheme is EXTERNAL (except Network Load Balancing),
3521
+ # INTERNAL_MANAGED, or INTERNAL_SELF_MANAGED and the backends are instance
3522
+ # groups. The named port must be defined on each backend instance group. This
3523
+ # parameter has no meaning if the backends are NEGs.
3524
+ # Backend services for Internal TCP/UDP Load Balancing and Network Load
3525
+ # Balancing require you omit port_name.
3441
3526
  # Corresponds to the JSON property `portName`
3442
3527
  # @return [String]
3443
3528
  attr_accessor :port_name
@@ -3482,11 +3567,12 @@ module Google
3482
3567
  # @return [String]
3483
3568
  attr_accessor :self_link_with_id
3484
3569
 
3485
- # Type of session affinity to use. The default is NONE. Session affinity is not
3486
- # applicable if the --protocol is UDP.
3487
- # When the loadBalancingScheme is EXTERNAL, possible values are NONE, CLIENT_IP,
3488
- # or GENERATED_COOKIE. You can use GENERATED_COOKIE if the protocol is HTTP or
3489
- # HTTPS.
3570
+ # Type of session affinity to use. The default is NONE.
3571
+ # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the
3572
+ # possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
3573
+ # * For all other load balancers that use loadBalancingScheme=EXTERNAL, the
3574
+ # possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use
3575
+ # GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
3490
3576
  # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP,
3491
3577
  # CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
3492
3578
  # When the loadBalancingScheme is INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED,
@@ -3521,11 +3607,13 @@ module Google
3521
3607
  @cdn_policy = args[:cdn_policy] if args.key?(:cdn_policy)
3522
3608
  @circuit_breakers = args[:circuit_breakers] if args.key?(:circuit_breakers)
3523
3609
  @connection_draining = args[:connection_draining] if args.key?(:connection_draining)
3610
+ @connection_tracking_policy = args[:connection_tracking_policy] if args.key?(:connection_tracking_policy)
3524
3611
  @consistent_hash = args[:consistent_hash] if args.key?(:consistent_hash)
3525
3612
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
3526
3613
  @custom_request_headers = args[:custom_request_headers] if args.key?(:custom_request_headers)
3527
3614
  @custom_response_headers = args[:custom_response_headers] if args.key?(:custom_response_headers)
3528
3615
  @description = args[:description] if args.key?(:description)
3616
+ @edge_security_policy = args[:edge_security_policy] if args.key?(:edge_security_policy)
3529
3617
  @enable_cdn = args[:enable_cdn] if args.key?(:enable_cdn)
3530
3618
  @failover_policy = args[:failover_policy] if args.key?(:failover_policy)
3531
3619
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
@@ -3744,12 +3832,17 @@ module Google
3744
3832
 
3745
3833
  # Negative caching allows per-status code TTLs to be set, in order to apply fine-
3746
3834
  # grained caching for common errors or redirects. This can reduce the load on
3747
- # your origin and improve end-user experience by reducing response latency. By
3748
- # default, Cloud CDN will apply the following default TTLs to these status codes:
3749
- # HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not
3750
- # Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method
3751
- # Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s These
3752
- # defaults can be overridden in negative_caching_policy
3835
+ # your origin and improve end-user experience by reducing response latency. When
3836
+ # the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative
3837
+ # caching applies to responses with the specified response code that lack any
3838
+ # Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is
3839
+ # set to FORCE_CACHE_ALL, negative caching applies to all responses with the
3840
+ # specified response code, and override any caching headers. By default, Cloud
3841
+ # CDN will apply the following default TTLs to these status codes: HTTP 300 (
3842
+ # Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found),
3843
+ # 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not
3844
+ # Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults
3845
+ # can be overridden in negative_caching_policy.
3753
3846
  # Corresponds to the JSON property `negativeCaching`
3754
3847
  # @return [Boolean]
3755
3848
  attr_accessor :negative_caching
@@ -3854,9 +3947,10 @@ module Google
3854
3947
  # @return [Fixnum]
3855
3948
  attr_accessor :code
3856
3949
 
3857
- # The TTL (in seconds) to cache responses with the corresponding status code for.
3858
- # The maximum allowed value is 1800s (30 minutes), noting that infrequently
3859
- # accessed objects may be evicted from the cache before the defined TTL.
3950
+ # The TTL (in seconds) for which to cache responses with the corresponding
3951
+ # status code. The maximum allowed value is 1800s (30 minutes), noting that
3952
+ # infrequently accessed objects may be evicted from the cache before the defined
3953
+ # TTL.
3860
3954
  # Corresponds to the JSON property `ttl`
3861
3955
  # @return [Fixnum]
3862
3956
  attr_accessor :ttl
@@ -3872,13 +3966,45 @@ module Google
3872
3966
  end
3873
3967
  end
3874
3968
 
3875
- # Applicable only to Failover for Internal TCP/UDP Load Balancing. On failover
3876
- # or failback, this field indicates whether connection draining will be honored.
3877
- # GCP has a fixed connection draining timeout of 10 minutes. A setting of true
3878
- # terminates existing TCP connections to the active pool during failover and
3879
- # failback, immediately draining traffic. A setting of false allows existing TCP
3880
- # connections to persist, even on VMs no longer in the active pool, for up to
3881
- # the duration of the connection draining timeout (10 minutes).
3969
+ # Connection Tracking configuration for this BackendService.
3970
+ class BackendServiceConnectionTrackingPolicy
3971
+ include Google::Apis::Core::Hashable
3972
+
3973
+ # Specifies connection persistence when backends are unhealthy. The default
3974
+ # value is DEFAULT_FOR_PROTOCOL.
3975
+ # If set to DEFAULT_FOR_PROTOCOL, the existing connections persist on unhealthy
3976
+ # backends only for connection-oriented protocols (TCP and SCTP) and only if the
3977
+ # Tracking Mode is PER_CONNECTION (default tracking mode) or the Session
3978
+ # Affinity is configured for 5-tuple. They do not persist for UDP.
3979
+ # If set to NEVER_PERSIST, after a backend becomes unhealthy, the existing
3980
+ # connections on the unhealthy backend are never persisted on the unhealthy
3981
+ # backend. They are always diverted to newly selected healthy backends (unless
3982
+ # all backends are unhealthy).
3983
+ # If set to ALWAYS_PERSIST, existing connections always persist on unhealthy
3984
+ # backends regardless of protocol and session affinity. It is generally not
3985
+ # recommended to use this mode overriding the default.
3986
+ # Corresponds to the JSON property `connectionPersistenceOnUnhealthyBackends`
3987
+ # @return [String]
3988
+ attr_accessor :connection_persistence_on_unhealthy_backends
3989
+
3990
+ def initialize(**args)
3991
+ update!(**args)
3992
+ end
3993
+
3994
+ # Update properties of this object
3995
+ def update!(**args)
3996
+ @connection_persistence_on_unhealthy_backends = args[:connection_persistence_on_unhealthy_backends] if args.key?(:connection_persistence_on_unhealthy_backends)
3997
+ end
3998
+ end
3999
+
4000
+ # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network
4001
+ # Load Balancing. On failover or failback, this field indicates whether
4002
+ # connection draining will be honored. GCP has a fixed connection draining
4003
+ # timeout of 10 minutes. A setting of true terminates existing TCP connections
4004
+ # to the active pool during failover and failback, immediately draining traffic.
4005
+ # A setting of false allows existing TCP connections to persist, even on VMs no
4006
+ # longer in the active pool, for up to the duration of the connection draining
4007
+ # timeout (10 minutes).
3882
4008
  class BackendServiceFailoverPolicy
3883
4009
  include Google::Apis::Core::Hashable
3884
4010
 
@@ -3889,22 +4015,21 @@ module Google
3889
4015
  attr_accessor :disable_connection_drain_on_failover
3890
4016
  alias_method :disable_connection_drain_on_failover?, :disable_connection_drain_on_failover
3891
4017
 
3892
- # Applicable only to Failover for Internal TCP/UDP Load Balancing. If set to
3893
- # true, connections to the load balancer are dropped when all primary and all
3894
- # backup backend VMs are unhealthy. If set to false, connections are distributed
3895
- # among all primary VMs when all primary and all backup backend VMs are
3896
- # unhealthy.
3897
- # The default is false.
4018
+ # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network
4019
+ # Load Balancing, If set to true, connections to the load balancer are dropped
4020
+ # when all primary and all backup backend VMs are unhealthy.If set to false,
4021
+ # connections are distributed among all primary VMs when all primary and all
4022
+ # backup backend VMs are unhealthy. The default is false.
3898
4023
  # Corresponds to the JSON property `dropTrafficIfUnhealthy`
3899
4024
  # @return [Boolean]
3900
4025
  attr_accessor :drop_traffic_if_unhealthy
3901
4026
  alias_method :drop_traffic_if_unhealthy?, :drop_traffic_if_unhealthy
3902
4027
 
3903
- # Applicable only to Failover for Internal TCP/UDP Load Balancing. The value of
3904
- # the field must be in the range [0, 1]. If the value is 0, the load balancer
3905
- # performs a failover when the number of healthy primary VMs equals zero. For
3906
- # all other values, the load balancer performs a failover when the total number
3907
- # of healthy primary VMs is less than this ratio.
4028
+ # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network
4029
+ # Load Balancing. The value of the field must be in the range [0, 1]. If the
4030
+ # value is 0, the load balancer performs a failover when the number of healthy
4031
+ # primary VMs equals zero. For all other values, the load balancer performs a
4032
+ # failover when the total number of healthy primary VMs is less than this ratio.
3908
4033
  # Corresponds to the JSON property `failoverRatio`
3909
4034
  # @return [Float]
3910
4035
  attr_accessor :failover_ratio
@@ -4573,8 +4698,7 @@ module Google
4573
4698
  class Binding
4574
4699
  include Google::Apis::Core::Hashable
4575
4700
 
4576
- # A client-specified ID for this binding. Expected to be globally unique to
4577
- # support the internal bindings-by-ID API.
4701
+ #
4578
4702
  # Corresponds to the JSON property `bindingId`
4579
4703
  # @return [String]
4580
4704
  attr_accessor :binding_id
@@ -4678,6 +4802,12 @@ module Google
4678
4802
  # @return [Google::Apis::ComputeAlpha::InstanceProperties]
4679
4803
  attr_accessor :instance_properties
4680
4804
 
4805
+ # Configuration for location policy among multiple possible locations (e.g.
4806
+ # preferences for zone selection among zones in a single region).
4807
+ # Corresponds to the JSON property `locationPolicy`
4808
+ # @return [Google::Apis::ComputeAlpha::LocationPolicy]
4809
+ attr_accessor :location_policy
4810
+
4681
4811
  # The minimum number of instances to create. If no min_count is specified then
4682
4812
  # count is used as the default value. If min_count instances cannot be created,
4683
4813
  # then no instances will be created.
@@ -4685,6 +4815,21 @@ module Google
4685
4815
  # @return [Fixnum]
4686
4816
  attr_accessor :min_count
4687
4817
 
4818
+ # The string pattern used for the names of the VMs. Either name_pattern or
4819
+ # predefined_names must be set. The pattern should contain one consecutive
4820
+ # sequence of placeholder hash characters (#) with each character corresponding
4821
+ # to one digit of the generated instance name. Example: name_pattern of inst-####
4822
+ # will generate instance names like inst-0001, inst-0002, ... . If there
4823
+ # already exist instance(s) whose names match the name pattern in the same
4824
+ # project and zone, then the generated instance numbers will start after the
4825
+ # biggest existing number. For example, if there exists an instance with name
4826
+ # inst-0050, then instance names generated using the pattern inst-#### will be
4827
+ # inst-0051, inst-0052, etc. The name pattern placeholder #...# can contain up
4828
+ # to 18 characters.
4829
+ # Corresponds to the JSON property `namePattern`
4830
+ # @return [String]
4831
+ attr_accessor :name_pattern
4832
+
4688
4833
  # List of predefined names. The number of names provided must be equal to count.
4689
4834
  # Corresponds to the JSON property `predefinedNames`
4690
4835
  # @return [Array<String>]
@@ -4714,7 +4859,9 @@ module Google
4714
4859
  @count = args[:count] if args.key?(:count)
4715
4860
  @instance = args[:instance] if args.key?(:instance)
4716
4861
  @instance_properties = args[:instance_properties] if args.key?(:instance_properties)
4862
+ @location_policy = args[:location_policy] if args.key?(:location_policy)
4717
4863
  @min_count = args[:min_count] if args.key?(:min_count)
4864
+ @name_pattern = args[:name_pattern] if args.key?(:name_pattern)
4718
4865
  @predefined_names = args[:predefined_names] if args.key?(:predefined_names)
4719
4866
  @source_instance_template = args[:source_instance_template] if args.key?(:source_instance_template)
4720
4867
  end
@@ -7156,18 +7303,14 @@ module Google
7156
7303
  class DistributionPolicy
7157
7304
  include Google::Apis::Core::Hashable
7158
7305
 
7159
- # The shape to which the group converges either proactively or on resize events (
7160
- # depending on the value set in updatePolicy.instanceRedistributionType). The
7161
- # possible values are EVEN and ANY. For EVEN the group attempts to preserve a
7162
- # balanced number of instances across zones. For ANY the group creates new
7163
- # instances where resources are available to fulfill the request; as a result,
7164
- # instances may be distributed unevenly across zones in this mode. The default
7165
- # value is EVEN.
7306
+ # The distribution shape to which the group converges either proactively or on
7307
+ # resize events (depending on the value set in updatePolicy.
7308
+ # instanceRedistributionType).
7166
7309
  # Corresponds to the JSON property `targetShape`
7167
7310
  # @return [String]
7168
7311
  attr_accessor :target_shape
7169
7312
 
7170
- # Zones where the regional managed instance group will create and manage
7313
+ # Zones where the regional managed instance group will create and manage its
7171
7314
  # instances.
7172
7315
  # Corresponds to the JSON property `zones`
7173
7316
  # @return [Array<Google::Apis::ComputeAlpha::DistributionPolicyZoneConfiguration>]
@@ -8443,6 +8586,14 @@ module Google
8443
8586
  # @return [String]
8444
8587
  attr_accessor :direction
8445
8588
 
8589
+ # Denotes whether the firewall policy rule is disabled. When set to true, the
8590
+ # firewall policy rule is not enforced and traffic behaves as if it did not
8591
+ # exist. If this is unspecified, the firewall policy rule will be enabled.
8592
+ # Corresponds to the JSON property `disabled`
8593
+ # @return [Boolean]
8594
+ attr_accessor :disabled
8595
+ alias_method :disabled?, :disabled
8596
+
8446
8597
  # Denotes whether to enable logging for a particular rule. If logging is enabled,
8447
8598
  # logs will be exported to the configured export destination in Stackdriver.
8448
8599
  # Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging
@@ -8464,12 +8615,6 @@ module Google
8464
8615
  # @return [Google::Apis::ComputeAlpha::FirewallPolicyRuleMatcher]
8465
8616
  attr_accessor :match
8466
8617
 
8467
- # If set to true, the specified action is not enforced.
8468
- # Corresponds to the JSON property `preview`
8469
- # @return [Boolean]
8470
- attr_accessor :preview
8471
- alias_method :preview?, :preview
8472
-
8473
8618
  # An integer indicating the priority of a rule in the list. The priority must be
8474
8619
  # a positive value between 0 and 2147483647. Rules are evaluated from highest to
8475
8620
  # lowest priority where 0 is the highest priority and 2147483647 is the lowest
@@ -8490,6 +8635,17 @@ module Google
8490
8635
  # @return [Array<String>]
8491
8636
  attr_accessor :target_resources
8492
8637
 
8638
+ # A list of secure labels that controls which instances the firewall rule
8639
+ # applies to. If targetSecureLabel are specified, then the firewall rule applies
8640
+ # only to instances in the VPC network that have one of those secure labels.
8641
+ # targetSecureLabel may not be set at the same time as targetServiceAccounts. If
8642
+ # neither targetServiceAccounts nor targetSecureLabel are specified, the
8643
+ # firewall rule applies to all instances on the specified network. Maximum
8644
+ # number of target label values allowed is 256.
8645
+ # Corresponds to the JSON property `targetSecureLabels`
8646
+ # @return [Array<String>]
8647
+ attr_accessor :target_secure_labels
8648
+
8493
8649
  # A list of service accounts indicating the sets of instances that are applied
8494
8650
  # with this rule.
8495
8651
  # Corresponds to the JSON property `targetServiceAccounts`
@@ -8505,13 +8661,14 @@ module Google
8505
8661
  @action = args[:action] if args.key?(:action)
8506
8662
  @description = args[:description] if args.key?(:description)
8507
8663
  @direction = args[:direction] if args.key?(:direction)
8664
+ @disabled = args[:disabled] if args.key?(:disabled)
8508
8665
  @enable_logging = args[:enable_logging] if args.key?(:enable_logging)
8509
8666
  @kind = args[:kind] if args.key?(:kind)
8510
8667
  @match = args[:match] if args.key?(:match)
8511
- @preview = args[:preview] if args.key?(:preview)
8512
8668
  @priority = args[:priority] if args.key?(:priority)
8513
8669
  @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
8514
8670
  @target_resources = args[:target_resources] if args.key?(:target_resources)
8671
+ @target_secure_labels = args[:target_secure_labels] if args.key?(:target_secure_labels)
8515
8672
  @target_service_accounts = args[:target_service_accounts] if args.key?(:target_service_accounts)
8516
8673
  end
8517
8674
  end
@@ -8537,6 +8694,12 @@ module Google
8537
8694
  # @return [Array<String>]
8538
8695
  attr_accessor :src_ip_ranges
8539
8696
 
8697
+ # List of firewall label values, which should be matched at the source of the
8698
+ # traffic. Maximum number of source label values allowed is 256.
8699
+ # Corresponds to the JSON property `srcSecureLabels`
8700
+ # @return [Array<String>]
8701
+ attr_accessor :src_secure_labels
8702
+
8540
8703
  def initialize(**args)
8541
8704
  update!(**args)
8542
8705
  end
@@ -8546,6 +8709,7 @@ module Google
8546
8709
  @dest_ip_ranges = args[:dest_ip_ranges] if args.key?(:dest_ip_ranges)
8547
8710
  @layer4_configs = args[:layer4_configs] if args.key?(:layer4_configs)
8548
8711
  @src_ip_ranges = args[:src_ip_ranges] if args.key?(:src_ip_ranges)
8712
+ @src_secure_labels = args[:src_secure_labels] if args.key?(:src_secure_labels)
8549
8713
  end
8550
8714
  end
8551
8715
 
@@ -8643,29 +8807,36 @@ module Google
8643
8807
  # assigned. Methods for specifying an IP address:
8644
8808
  # * IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in https://www.
8645
8809
  # googleapis.com/compute/v1/projects/project_id/regions/region/addresses/address-
8646
- # name * Partial URL or by name, as in: * projects/project_id/regions/region/
8647
- # addresses/address-name * regions/region/addresses/address-name * global/
8648
- # addresses/address-name * address-name
8810
+ # name * Partial URL or by name, as in:
8811
+ # - projects/project_id/regions/region/addresses/address-name
8812
+ # - regions/region/addresses/address-name
8813
+ # - global/addresses/address-name
8814
+ # - address-name
8649
8815
  # The loadBalancingScheme and the forwarding rule's target determine the type of
8650
8816
  # IP address that you can use. For detailed information, refer to [IP address
8651
8817
  # specifications](/load-balancing/docs/forwarding-rule-concepts#
8652
8818
  # ip_address_specifications).
8653
8819
  # Must be set to `0.0.0.0` when the target is targetGrpcProxy that has
8654
8820
  # validateForProxyless field set to true.
8821
+ # For Private Service Connect forwarding rules that forward traffic to Google
8822
+ # APIs, IP address must be provided.
8655
8823
  # Corresponds to the JSON property `IPAddress`
8656
8824
  # @return [String]
8657
8825
  attr_accessor :ip_address
8658
8826
 
8659
- # The IP protocol to which this rule applies. For protocol forwarding, valid
8660
- # options are TCP, UDP, ESP, AH, SCTP or ICMP.
8661
- # For Internal TCP/UDP Load Balancing, the load balancing scheme is INTERNAL,
8662
- # and one of TCP or UDP are valid. For Traffic Director, the load balancing
8663
- # scheme is INTERNAL_SELF_MANAGED, and only TCPis valid. For Internal HTTP(S)
8664
- # Load Balancing, the load balancing scheme is INTERNAL_MANAGED, and only TCP is
8665
- # valid. For HTTP(S), SSL Proxy, and TCP Proxy Load Balancing, the load
8666
- # balancing scheme is EXTERNAL and only TCP is valid. For Network TCP/UDP Load
8667
- # Balancing, the load balancing scheme is EXTERNAL, and one of TCP or UDP is
8668
- # valid.
8827
+ # The IP protocol to which this rule applies.
8828
+ # For protocol forwarding, valid options are TCP, UDP, ESP, AH, SCTP and ICMP.
8829
+ # The valid IP protocols are different for different load balancing products:
8830
+ # - Internal TCP/UDP Load Balancing: The load balancing scheme is INTERNAL, and
8831
+ # one of TCP, UDP or ALL is valid.
8832
+ # - Traffic Director: The load balancing scheme is INTERNAL_SELF_MANAGED, and
8833
+ # only TCP is valid.
8834
+ # - Internal HTTP(S) Load Balancing: The load balancing scheme is
8835
+ # INTERNAL_MANAGED, and only TCP is valid.
8836
+ # - HTTP(S), SSL Proxy, and TCP Proxy Load Balancing: The load balancing scheme
8837
+ # is EXTERNAL and only TCP is valid.
8838
+ # - Network Load Balancing: The load balancing scheme is EXTERNAL, and one of
8839
+ # TCP or UDP is valid.
8669
8840
  # Corresponds to the JSON property `IPProtocol`
8670
8841
  # @return [String]
8671
8842
  attr_accessor :ip_protocol
@@ -8690,9 +8861,9 @@ module Google
8690
8861
  attr_accessor :allow_global_access
8691
8862
  alias_method :allow_global_access?, :allow_global_access
8692
8863
 
8693
- # This field is only used for INTERNAL load balancing.
8694
- # For internal load balancing, this field identifies the BackendService resource
8695
- # to receive the matched traffic.
8864
+ # Identifies the backend service to which the forwarding rule sends traffic.
8865
+ # Required for Internal TCP/UDP Load Balancing and Network Load Balancing; must
8866
+ # be omitted for all other load balancer types.
8696
8867
  # Corresponds to the JSON property `backendService`
8697
8868
  # @return [String]
8698
8869
  attr_accessor :backend_service
@@ -8774,13 +8945,12 @@ module Google
8774
8945
  # - EXTERNAL is used for:
8775
8946
  # - Classic Cloud VPN gateways
8776
8947
  # - Protocol forwarding to VMs from an external IP address
8777
- # - The following load balancers: HTTP(S), SSL Proxy, TCP Proxy, and Network TCP/
8778
- # UDP
8948
+ # - HTTP(S), SSL Proxy, TCP Proxy, and Network Load Balancing
8779
8949
  # - INTERNAL is used for:
8780
8950
  # - Protocol forwarding to VMs from an internal IP address
8781
- # - Internal TCP/UDP load balancers
8951
+ # - Internal TCP/UDP Load Balancing
8782
8952
  # - INTERNAL_MANAGED is used for:
8783
- # - Internal HTTP(S) load balancers
8953
+ # - Internal HTTP(S) Load Balancing
8784
8954
  # - INTERNAL_SELF_MANAGED is used for:
8785
8955
  # - Traffic Director
8786
8956
  # For more information about forwarding rules, refer to Forwarding rule concepts.
@@ -8819,9 +8989,11 @@ module Google
8819
8989
  attr_accessor :name
8820
8990
 
8821
8991
  # This field is not used for external load balancing.
8822
- # For internal load balancing, this field identifies the network that the load
8823
- # balanced IP should belong to for this Forwarding Rule. If this field is not
8824
- # specified, the default network will be used.
8992
+ # For Internal TCP/UDP Load Balancing, this field identifies the network that
8993
+ # the load balanced IP should belong to for this Forwarding Rule. If this field
8994
+ # is not specified, the default network will be used.
8995
+ # For Private Service Connect forwarding rules that forward traffic to Google
8996
+ # APIs, a network must be provided.
8825
8997
  # Corresponds to the JSON property `network`
8826
8998
  # @return [String]
8827
8999
  attr_accessor :network
@@ -8836,19 +9008,17 @@ module Google
8836
9008
  # @return [String]
8837
9009
  attr_accessor :network_tier
8838
9010
 
8839
- # When the load balancing scheme is EXTERNAL, INTERNAL_SELF_MANAGED and
8840
- # INTERNAL_MANAGED, you can specify a port_range. Use with a forwarding rule
8841
- # that points to a target proxy or a target pool. Do not use with a forwarding
8842
- # rule that points to a backend service. This field is used along with the
8843
- # target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy,
8844
- # TargetTcpProxy, TargetGrpcProxy, TargetVpnGateway, TargetPool, TargetInstance.
8845
- # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed
8846
- # to ports in the specified range will be forwarded to target. Forwarding rules
8847
- # with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
9011
+ # This field can be used only if: * Load balancing scheme is one of EXTERNAL,
9012
+ # INTERNAL_SELF_MANAGED or INTERNAL_MANAGED, and * IPProtocol is one of TCP, UDP,
9013
+ # or SCTP.
9014
+ # Packets addressed to ports in the specified range will be forwarded to target
9015
+ # or backend_service. You can only use one of ports, port_range, or allPorts.
9016
+ # The three are mutually exclusive. Forwarding rules with the same [IPAddress,
9017
+ # IPProtocol] pair must have disjoint port ranges.
8848
9018
  # Some types of forwarding target have constraints on the acceptable ports:
8849
9019
  # - TargetHttpProxy: 80, 8080
8850
9020
  # - TargetHttpsProxy: 443
8851
- # - TargetGrpcProxy: Any ports
9021
+ # - TargetGrpcProxy: no constraints
8852
9022
  # - TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688,
8853
9023
  # 1883, 5222
8854
9024
  # - TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688,
@@ -8858,16 +9028,17 @@ module Google
8858
9028
  # @return [String]
8859
9029
  attr_accessor :port_range
8860
9030
 
8861
- # This field is used along with the backend_service field for internal load
8862
- # balancing.
8863
- # When the load balancing scheme is INTERNAL, a list of ports can be configured,
8864
- # for example, ['80'], ['8000','9000']. Only packets addressed to these ports
8865
- # are forwarded to the backends configured with the forwarding rule.
8866
- # If the forwarding rule's loadBalancingScheme is INTERNAL, you can specify
8867
- # ports in one of the following ways:
8868
- # * A list of up to five ports, which can be non-contiguous * Keyword ALL, which
8869
- # causes the forwarding rule to forward traffic on any port of the forwarding
8870
- # rule's protocol.
9031
+ # The ports field is only supported when the forwarding rule references a
9032
+ # backend_service directly. Supported load balancing products are Internal TCP/
9033
+ # UDP Load Balancing and Network Load Balancing. Only packets addressed to the
9034
+ # specified list of ports are forwarded to backends.
9035
+ # You can only use one of ports and port_range, or allPorts. The three are
9036
+ # mutually exclusive.
9037
+ # You can specify a list of up to five ports, which can be non-contiguous.
9038
+ # For Internal TCP/UDP Load Balancing, if you specify allPorts, you should not
9039
+ # specify ports.
9040
+ # For more information, see [Port specifications](/load-balancing/docs/
9041
+ # forwarding-rule-concepts#port_specifications).
8871
9042
  # Corresponds to the JSON property `ports`
8872
9043
  # @return [Array<String>]
8873
9044
  attr_accessor :ports
@@ -8892,6 +9063,8 @@ module Google
8892
9063
 
8893
9064
  # Service Directory resources to register this forwarding rule with. Currently,
8894
9065
  # only supports a single Service Directory resource.
9066
+ # It is only supported for Internal TCP/UDP Load Balancing and Internal HTTP(S)
9067
+ # Load Balancing.
8895
9068
  # Corresponds to the JSON property `serviceDirectoryRegistrations`
8896
9069
  # @return [Array<Google::Apis::ComputeAlpha::ForwardingRuleServiceDirectoryRegistration>]
8897
9070
  attr_accessor :service_directory_registrations
@@ -8931,6 +9104,15 @@ module Google
8931
9104
  # resource. The forwarded traffic must be of a type appropriate to the target
8932
9105
  # object. For more information, see the "Target" column in [Port specifications](
8933
9106
  # /load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).
9107
+ # For Private Service Connect forwarding rules that forward traffic to Google
9108
+ # APIs, provide the name of a supported Google API bundle. Currently, the
9109
+ # supported Google API bundles include:
9110
+ #
9111
+ # - vpc-sc - GCP APIs that support VPC Service Controls. For more information
9112
+ # about which APIs support VPC Service Controls, refer to VPC-SC supported
9113
+ # products and limitations.
9114
+ # - all-apis - All GCP APIs. For more information about which APIs are supported
9115
+ # with this bundle, refer to Private Google Access-specific domains and VIPs.
8934
9116
  # Corresponds to the JSON property `target`
8935
9117
  # @return [String]
8936
9118
  attr_accessor :target
@@ -9931,12 +10113,16 @@ module Google
9931
10113
  # Google Compute Engine has two Health Check resources:
9932
10114
  # * [Global](/compute/docs/reference/rest/`$api_version`/healthChecks) * [
9933
10115
  # Regional](/compute/docs/reference/rest/`$api_version`/regionHealthChecks)
9934
- # Internal HTTP(S) load balancers must use regional health checks. Internal TCP/
9935
- # UDP load balancers can use either regional or global health checks. All other
9936
- # types of GCP load balancers and managed instance group auto-healing must use
9937
- # global health checks. For more information, read Health Check Concepts.
9938
- # To perform health checks on network load balancers, you must use either
9939
- # httpHealthChecks or httpsHealthChecks.
10116
+ # Internal HTTP(S) load balancers must use regional health checks (`compute.v1.
10117
+ # regionHealthChecks`).
10118
+ # Traffic Director must use global health checks (`compute.v1.HealthChecks`).
10119
+ # Internal TCP/UDP load balancers can use either regional or global health
10120
+ # checks (`compute.v1.regionHealthChecks` or `compute.v1.HealthChecks`).
10121
+ # External HTTP(S), TCP proxy, and SSL proxy load balancers as well as managed
10122
+ # instance group auto-healing must use global health checks (`compute.v1.
10123
+ # HealthChecks`).
10124
+ # Network load balancers must use legacy HTTP health checks (httpHealthChecks).
10125
+ # For more information, see Health checks overview.
9940
10126
  class HealthCheck
9941
10127
  include Google::Apis::Core::Hashable
9942
10128
 
@@ -10780,6 +10966,16 @@ module Google
10780
10966
  # @return [Fixnum]
10781
10967
  attr_accessor :port
10782
10968
 
10969
+ #
10970
+ # Corresponds to the JSON property `weight`
10971
+ # @return [String]
10972
+ attr_accessor :weight
10973
+
10974
+ #
10975
+ # Corresponds to the JSON property `weightError`
10976
+ # @return [String]
10977
+ attr_accessor :weight_error
10978
+
10783
10979
  def initialize(**args)
10784
10980
  update!(**args)
10785
10981
  end
@@ -10791,6 +10987,8 @@ module Google
10791
10987
  @instance = args[:instance] if args.key?(:instance)
10792
10988
  @ip_address = args[:ip_address] if args.key?(:ip_address)
10793
10989
  @port = args[:port] if args.key?(:port)
10990
+ @weight = args[:weight] if args.key?(:weight)
10991
+ @weight_error = args[:weight_error] if args.key?(:weight_error)
10794
10992
  end
10795
10993
  end
10796
10994
 
@@ -13026,6 +13224,11 @@ module Google
13026
13224
  # @return [Array<Google::Apis::ComputeAlpha::NetworkInterface>]
13027
13225
  attr_accessor :network_interfaces
13028
13226
 
13227
+ #
13228
+ # Corresponds to the JSON property `networkPerformanceConfig`
13229
+ # @return [Google::Apis::ComputeAlpha::NetworkPerformanceConfig]
13230
+ attr_accessor :network_performance_config
13231
+
13029
13232
  # PostKeyRevocationActionType of the instance.
13030
13233
  # Corresponds to the JSON property `postKeyRevocationActionType`
13031
13234
  # @return [String]
@@ -13069,6 +13272,12 @@ module Google
13069
13272
  # @return [Array<String>]
13070
13273
  attr_accessor :secure_labels
13071
13274
 
13275
+ # Secure tags to apply to this instance. These can be later modified by the
13276
+ # update method. Maximum number of secure tags allowed is 300.
13277
+ # Corresponds to the JSON property `secureTags`
13278
+ # @return [Array<String>]
13279
+ attr_accessor :secure_tags
13280
+
13072
13281
  # [Output Only] Server-defined URL for this resource.
13073
13282
  # Corresponds to the JSON property `selfLink`
13074
13283
  # @return [String]
@@ -13189,6 +13398,7 @@ module Google
13189
13398
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
13190
13399
  @name = args[:name] if args.key?(:name)
13191
13400
  @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
13401
+ @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
13192
13402
  @post_key_revocation_action_type = args[:post_key_revocation_action_type] if args.key?(:post_key_revocation_action_type)
13193
13403
  @preserved_state_size_gb = args[:preserved_state_size_gb] if args.key?(:preserved_state_size_gb)
13194
13404
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
@@ -13197,6 +13407,7 @@ module Google
13197
13407
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
13198
13408
  @scheduling = args[:scheduling] if args.key?(:scheduling)
13199
13409
  @secure_labels = args[:secure_labels] if args.key?(:secure_labels)
13410
+ @secure_tags = args[:secure_tags] if args.key?(:secure_tags)
13200
13411
  @self_link = args[:self_link] if args.key?(:self_link)
13201
13412
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
13202
13413
  @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
@@ -13750,8 +13961,8 @@ module Google
13750
13961
  # @return [String]
13751
13962
  attr_accessor :description
13752
13963
 
13753
- # Policy specifying intended distribution of instances in regional managed
13754
- # instance group.
13964
+ # Policy specifying the intended distribution of managed instances across zones
13965
+ # in a regional managed instance group.
13755
13966
  # Corresponds to the JSON property `distributionPolicy`
13756
13967
  # @return [Google::Apis::ComputeAlpha::DistributionPolicy]
13757
13968
  attr_accessor :distribution_policy
@@ -13786,7 +13997,9 @@ module Google
13786
13997
 
13787
13998
  # The URL of the instance template that is specified for this managed instance
13788
13999
  # group. The group uses this template to create all new instances in the managed
13789
- # instance group.
14000
+ # instance group. The templates for existing instances in the group do not
14001
+ # change unless you run recreateInstances, run applyUpdatesToInstances, or set
14002
+ # the group's updatePolicy.type to PROACTIVE.
13790
14003
  # Corresponds to the JSON property `instanceTemplate`
13791
14004
  # @return [String]
13792
14005
  attr_accessor :instance_template
@@ -13809,15 +14022,6 @@ module Google
13809
14022
  # @return [Array<Google::Apis::ComputeAlpha::NamedPort>]
13810
14023
  attr_accessor :named_ports
13811
14024
 
13812
- # [Deprecated] This field is deprecated and will be removed. Prefer using the
13813
- # status field instead. Please contact cloud-updater-feedback@google.com to
13814
- # leave feedback if your workload relies on this field. [Output Only] The list
13815
- # of instance actions and the number of instances in this managed instance group
13816
- # that are pending for each of those actions.
13817
- # Corresponds to the JSON property `pendingActions`
13818
- # @return [Google::Apis::ComputeAlpha::InstanceGroupManagerPendingActionsSummary]
13819
- attr_accessor :pending_actions
13820
-
13821
14025
  # [Output Only] The URL of the region where the managed instance group resides (
13822
14026
  # for regional resources).
13823
14027
  # Corresponds to the JSON property `region`
@@ -13884,7 +14088,7 @@ module Google
13884
14088
  # @return [Array<Google::Apis::ComputeAlpha::InstanceGroupManagerVersion>]
13885
14089
  attr_accessor :versions
13886
14090
 
13887
- # [Output Only] The URL of the zone where the managed instance group is located (
14091
+ # [Output Only] The URL of a zone where the managed instance group is located (
13888
14092
  # for zonal resources).
13889
14093
  # Corresponds to the JSON property `zone`
13890
14094
  # @return [String]
@@ -13910,7 +14114,6 @@ module Google
13910
14114
  @kind = args[:kind] if args.key?(:kind)
13911
14115
  @name = args[:name] if args.key?(:name)
13912
14116
  @named_ports = args[:named_ports] if args.key?(:named_ports)
13913
- @pending_actions = args[:pending_actions] if args.key?(:pending_actions)
13914
14117
  @region = args[:region] if args.key?(:region)
13915
14118
  @self_link = args[:self_link] if args.key?(:self_link)
13916
14119
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
@@ -14291,55 +14494,6 @@ module Google
14291
14494
  end
14292
14495
  end
14293
14496
 
14294
- #
14295
- class InstanceGroupManagerPendingActionsSummary
14296
- include Google::Apis::Core::Hashable
14297
-
14298
- # [Deprecated] This field is deprecated and will be removed. Prefer using the
14299
- # status field instead. Please contact cloud-updater-feedback@google.com to
14300
- # leave feedback if your workload relies on this field. [Output Only] The number
14301
- # of instances in the managed instance group that are pending to be created.
14302
- # Corresponds to the JSON property `creating`
14303
- # @return [Fixnum]
14304
- attr_accessor :creating
14305
-
14306
- # [Deprecated] This field is deprecated and will be removed. Prefer using the
14307
- # status field instead. Please contact cloud-updater-feedback@google.com to
14308
- # leave feedback if your workload relies on this field. [Output Only] The number
14309
- # of instances in the managed instance group that are pending to be deleted.
14310
- # Corresponds to the JSON property `deleting`
14311
- # @return [Fixnum]
14312
- attr_accessor :deleting
14313
-
14314
- # [Deprecated] This field is deprecated and will be removed. Prefer using the
14315
- # status field instead. Please contact cloud-updater-feedback@google.com to
14316
- # leave feedback if your workload relies on this field. [Output Only] The number
14317
- # of instances in the managed instance group that are pending to be recreated.
14318
- # Corresponds to the JSON property `recreating`
14319
- # @return [Fixnum]
14320
- attr_accessor :recreating
14321
-
14322
- # [Deprecated] This field is deprecated and will be removed. Prefer using the
14323
- # status field instead. Please contact cloud-updater-feedback@google.com to
14324
- # leave feedback if your workload relies on this field. [Output Only] The number
14325
- # of instances in the managed instance group that are pending to be restarted.
14326
- # Corresponds to the JSON property `restarting`
14327
- # @return [Fixnum]
14328
- attr_accessor :restarting
14329
-
14330
- def initialize(**args)
14331
- update!(**args)
14332
- end
14333
-
14334
- # Update properties of this object
14335
- def update!(**args)
14336
- @creating = args[:creating] if args.key?(:creating)
14337
- @deleting = args[:deleting] if args.key?(:deleting)
14338
- @recreating = args[:recreating] if args.key?(:recreating)
14339
- @restarting = args[:restarting] if args.key?(:restarting)
14340
- end
14341
- end
14342
-
14343
14497
  #
14344
14498
  class InstanceGroupManagerStatus
14345
14499
  include Google::Apis::Core::Hashable
@@ -14511,6 +14665,17 @@ module Google
14511
14665
  # @return [String]
14512
14666
  attr_accessor :minimal_action
14513
14667
 
14668
+ # Most disruptive action that is allowed to be taken on an instance. You can
14669
+ # specify either NONE to forbid any actions, REFRESH to allow actions that do
14670
+ # not need instance restart, RESTART to allow actions that can be applied
14671
+ # without instance replacing or REPLACE to allow all possible actions. If the
14672
+ # Updater determines that the minimal update action needed is more disruptive
14673
+ # than most disruptive allowed action you specify it will not perform the update
14674
+ # at all.
14675
+ # Corresponds to the JSON property `mostDisruptiveAllowedAction`
14676
+ # @return [String]
14677
+ attr_accessor :most_disruptive_allowed_action
14678
+
14514
14679
  # What action should be used to replace instances. See minimal_action.REPLACE
14515
14680
  # Corresponds to the JSON property `replacementMethod`
14516
14681
  # @return [String]
@@ -14536,6 +14701,7 @@ module Google
14536
14701
  @max_unavailable = args[:max_unavailable] if args.key?(:max_unavailable)
14537
14702
  @min_ready_sec = args[:min_ready_sec] if args.key?(:min_ready_sec)
14538
14703
  @minimal_action = args[:minimal_action] if args.key?(:minimal_action)
14704
+ @most_disruptive_allowed_action = args[:most_disruptive_allowed_action] if args.key?(:most_disruptive_allowed_action)
14539
14705
  @replacement_method = args[:replacement_method] if args.key?(:replacement_method)
14540
14706
  @type = args[:type] if args.key?(:type)
14541
14707
  end
@@ -14547,7 +14713,11 @@ module Google
14547
14713
 
14548
14714
  # The URL of the instance template that is specified for this managed instance
14549
14715
  # group. The group uses this template to create new instances in the managed
14550
- # instance group until the `targetSize` for this version is reached.
14716
+ # instance group until the `targetSize` for this version is reached. The
14717
+ # templates for existing instances in the group do not change unless you run
14718
+ # recreateInstances, run applyUpdatesToInstances, or set the group's
14719
+ # updatePolicy.type to PROACTIVE; in those cases, existing instances are updated
14720
+ # until the `targetSize` for this version is reached.
14551
14721
  # Corresponds to the JSON property `instanceTemplate`
14552
14722
  # @return [String]
14553
14723
  attr_accessor :instance_template
@@ -15080,7 +15250,9 @@ module Google
15080
15250
 
15081
15251
  # The URL of the instance template that is specified for this managed instance
15082
15252
  # group. The group uses this template to create all new instances in the managed
15083
- # instance group.
15253
+ # instance group. The templates for existing instances in the group do not
15254
+ # change unless you run recreateInstances, run applyUpdatesToInstances, or set
15255
+ # the group's updatePolicy.type to PROACTIVE.
15084
15256
  # Corresponds to the JSON property `instanceTemplate`
15085
15257
  # @return [String]
15086
15258
  attr_accessor :instance_template
@@ -15895,6 +16067,11 @@ module Google
15895
16067
  # @return [Array<Google::Apis::ComputeAlpha::NetworkInterface>]
15896
16068
  attr_accessor :network_interfaces
15897
16069
 
16070
+ #
16071
+ # Corresponds to the JSON property `networkPerformanceConfig`
16072
+ # @return [Google::Apis::ComputeAlpha::NetworkPerformanceConfig]
16073
+ attr_accessor :network_performance_config
16074
+
15898
16075
  # PostKeyRevocationActionType of the instance.
15899
16076
  # Corresponds to the JSON property `postKeyRevocationActionType`
15900
16077
  # @return [String]
@@ -15963,6 +16140,7 @@ module Google
15963
16140
  @metadata = args[:metadata] if args.key?(:metadata)
15964
16141
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
15965
16142
  @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
16143
+ @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
15966
16144
  @post_key_revocation_action_type = args[:post_key_revocation_action_type] if args.key?(:post_key_revocation_action_type)
15967
16145
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
15968
16146
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
@@ -16257,6 +16435,11 @@ module Google
16257
16435
  class InstancesGetEffectiveFirewallsResponse
16258
16436
  include Google::Apis::Core::Hashable
16259
16437
 
16438
+ # Effective firewalls from firewall policies.
16439
+ # Corresponds to the JSON property `firewallPolicys`
16440
+ # @return [Array<Google::Apis::ComputeAlpha::InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy>]
16441
+ attr_accessor :firewall_policys
16442
+
16260
16443
  # Effective firewalls on the instance.
16261
16444
  # Corresponds to the JSON property `firewalls`
16262
16445
  # @return [Array<Google::Apis::ComputeAlpha::Firewall>]
@@ -16273,11 +16456,49 @@ module Google
16273
16456
 
16274
16457
  # Update properties of this object
16275
16458
  def update!(**args)
16459
+ @firewall_policys = args[:firewall_policys] if args.key?(:firewall_policys)
16276
16460
  @firewalls = args[:firewalls] if args.key?(:firewalls)
16277
16461
  @organization_firewalls = args[:organization_firewalls] if args.key?(:organization_firewalls)
16278
16462
  end
16279
16463
  end
16280
16464
 
16465
+ #
16466
+ class InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
16467
+ include Google::Apis::Core::Hashable
16468
+
16469
+ # [Output Only] The display name of the firewall policy.
16470
+ # Corresponds to the JSON property `displayName`
16471
+ # @return [String]
16472
+ attr_accessor :display_name
16473
+
16474
+ # [Output Only] The name of the firewall policy.
16475
+ # Corresponds to the JSON property `name`
16476
+ # @return [String]
16477
+ attr_accessor :name
16478
+
16479
+ # The rules that apply to the network.
16480
+ # Corresponds to the JSON property `rules`
16481
+ # @return [Array<Google::Apis::ComputeAlpha::FirewallPolicyRule>]
16482
+ attr_accessor :rules
16483
+
16484
+ # [Output Only] The type of the firewall policy.
16485
+ # Corresponds to the JSON property `type`
16486
+ # @return [String]
16487
+ attr_accessor :type
16488
+
16489
+ def initialize(**args)
16490
+ update!(**args)
16491
+ end
16492
+
16493
+ # Update properties of this object
16494
+ def update!(**args)
16495
+ @display_name = args[:display_name] if args.key?(:display_name)
16496
+ @name = args[:name] if args.key?(:name)
16497
+ @rules = args[:rules] if args.key?(:rules)
16498
+ @type = args[:type] if args.key?(:type)
16499
+ end
16500
+ end
16501
+
16281
16502
  # A pruned SecurityPolicy containing ID and any applicable firewall rules.
16282
16503
  class InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy
16283
16504
  include Google::Apis::Core::Hashable
@@ -16764,6 +16985,55 @@ module Google
16764
16985
  end
16765
16986
  end
16766
16987
 
16988
+ #
16989
+ class InstantSnapshotExportParams
16990
+ include Google::Apis::Core::Hashable
16991
+
16992
+ # An optional base instant snapshot that this resource is compared against. If
16993
+ # not specified, all blocks of this resource are exported. The base instant
16994
+ # snapshot and this resource must be created from the same disk. The base
16995
+ # instant snapshot must be created earlier in time than this resource.
16996
+ # Corresponds to the JSON property `baseInstantSnapshot`
16997
+ # @return [String]
16998
+ attr_accessor :base_instant_snapshot
16999
+
17000
+ # The name of an existing bucket in Cloud Storage where the changed blocks will
17001
+ # be stored. The Google Service Account must have read and write access to this
17002
+ # bucket. The bucket has to be in the same region as this resource.
17003
+ # Corresponds to the JSON property `bucketName`
17004
+ # @return [String]
17005
+ attr_accessor :bucket_name
17006
+
17007
+ # Encryption key used to encrypt the instant snapshot.
17008
+ # Corresponds to the JSON property `encryptionKey`
17009
+ # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey]
17010
+ attr_accessor :encryption_key
17011
+
17012
+ # Name of the output Bigstore object storing the changed blocks. Object name
17013
+ # must be less than 1024 bytes in length.
17014
+ # Corresponds to the JSON property `objectName`
17015
+ # @return [String]
17016
+ attr_accessor :object_name
17017
+
17018
+ # The format of the output file.
17019
+ # Corresponds to the JSON property `outputType`
17020
+ # @return [String]
17021
+ attr_accessor :output_type
17022
+
17023
+ def initialize(**args)
17024
+ update!(**args)
17025
+ end
17026
+
17027
+ # Update properties of this object
17028
+ def update!(**args)
17029
+ @base_instant_snapshot = args[:base_instant_snapshot] if args.key?(:base_instant_snapshot)
17030
+ @bucket_name = args[:bucket_name] if args.key?(:bucket_name)
17031
+ @encryption_key = args[:encryption_key] if args.key?(:encryption_key)
17032
+ @object_name = args[:object_name] if args.key?(:object_name)
17033
+ @output_type = args[:output_type] if args.key?(:output_type)
17034
+ end
17035
+ end
17036
+
16767
17037
  # Contains a list of InstantSnapshot resources.
16768
17038
  class InstantSnapshotList
16769
17039
  include Google::Apis::Core::Hashable
@@ -17193,6 +17463,11 @@ module Google
17193
17463
  # @return [String]
17194
17464
  attr_accessor :customer_router_ip_address
17195
17465
 
17466
+ # [Output Only] Dataplane version for this InterconnectAttachment.
17467
+ # Corresponds to the JSON property `dataplaneVersion`
17468
+ # @return [Fixnum]
17469
+ attr_accessor :dataplane_version
17470
+
17196
17471
  # An optional description of this resource.
17197
17472
  # Corresponds to the JSON property `description`
17198
17473
  # @return [String]
@@ -17211,7 +17486,14 @@ module Google
17211
17486
  # @return [String]
17212
17487
  attr_accessor :edge_availability_domain
17213
17488
 
17214
- # Indicates the user-supplied encryption option of this interconnect attachment.
17489
+ # Indicates the user-supplied encryption option of this interconnect attachment:
17490
+ # - NONE is the default value, which means that the attachment carries
17491
+ # unencrypted traffic. VMs can send traffic to, or receive traffic from, this
17492
+ # type of attachment.
17493
+ # - IPSEC indicates that the attachment carries only traffic encrypted by an
17494
+ # IPsec device such as an HA VPN gateway. VMs cannot directly send traffic to,
17495
+ # or receive traffic from, such an attachment. To use IPsec over Interconnect,
17496
+ # create the attachment using this option.
17215
17497
  # Corresponds to the JSON property `encryption`
17216
17498
  # @return [String]
17217
17499
  attr_accessor :encryption
@@ -17407,6 +17689,7 @@ module Google
17407
17689
  @cloud_router_ip_address = args[:cloud_router_ip_address] if args.key?(:cloud_router_ip_address)
17408
17690
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
17409
17691
  @customer_router_ip_address = args[:customer_router_ip_address] if args.key?(:customer_router_ip_address)
17692
+ @dataplane_version = args[:dataplane_version] if args.key?(:dataplane_version)
17410
17693
  @description = args[:description] if args.key?(:description)
17411
17694
  @edge_availability_domain = args[:edge_availability_domain] if args.key?(:edge_availability_domain)
17412
17695
  @encryption = args[:encryption] if args.key?(:encryption)
@@ -19330,6 +19613,47 @@ module Google
19330
19613
  end
19331
19614
  end
19332
19615
 
19616
+ # Configuration for location policy among multiple possible locations (e.g.
19617
+ # preferences for zone selection among zones in a single region).
19618
+ class LocationPolicy
19619
+ include Google::Apis::Core::Hashable
19620
+
19621
+ # Location configurations mapped by location name. Currently only zone names are
19622
+ # supported and must be represented as valid internal URLs, like: zones/us-
19623
+ # central1-a.
19624
+ # Corresponds to the JSON property `locations`
19625
+ # @return [Hash<String,Google::Apis::ComputeAlpha::LocationPolicyLocation>]
19626
+ attr_accessor :locations
19627
+
19628
+ def initialize(**args)
19629
+ update!(**args)
19630
+ end
19631
+
19632
+ # Update properties of this object
19633
+ def update!(**args)
19634
+ @locations = args[:locations] if args.key?(:locations)
19635
+ end
19636
+ end
19637
+
19638
+ #
19639
+ class LocationPolicyLocation
19640
+ include Google::Apis::Core::Hashable
19641
+
19642
+ #
19643
+ # Corresponds to the JSON property `preference`
19644
+ # @return [String]
19645
+ attr_accessor :preference
19646
+
19647
+ def initialize(**args)
19648
+ update!(**args)
19649
+ end
19650
+
19651
+ # Update properties of this object
19652
+ def update!(**args)
19653
+ @preference = args[:preference] if args.key?(:preference)
19654
+ end
19655
+ end
19656
+
19333
19657
  # Specifies what kind of log the caller must write
19334
19658
  class LogConfig
19335
19659
  include Google::Apis::Core::Hashable
@@ -20856,8 +21180,9 @@ module Google
20856
21180
  # Represents a collection of network endpoints.
20857
21181
  # A network endpoint group (NEG) defines how a set of endpoints should be
20858
21182
  # reached, whether they are reachable, and where they are located. For more
20859
- # information about using NEGs, see Setting up internet NEGs, Setting up zonal
20860
- # NEGs, or Setting up serverless NEGs. (== resource_for `$api_version`.
21183
+ # information about using NEGs, see Setting up external HTTP(S) Load Balancing
21184
+ # with internet NEGs, Setting up zonal NEGs, or Setting up external HTTP(S)
21185
+ # Load Balancing with serverless NEGs. (== resource_for `$api_version`.
20861
21186
  # networkEndpointGroups ==) (== resource_for `$api_version`.
20862
21187
  # globalNetworkEndpointGroups ==) (== resource_for `$api_version`.
20863
21188
  # regionNetworkEndpointGroups ==)
@@ -21155,7 +21480,7 @@ module Google
21155
21480
  include Google::Apis::Core::Hashable
21156
21481
 
21157
21482
  # Optional serving service.
21158
- # The service name must be 1-63 characters long, and comply with RFC1035.
21483
+ # The service name is case-sensitive and must be 1-63 characters long.
21159
21484
  # Example value: "default", "my-service".
21160
21485
  # Corresponds to the JSON property `service`
21161
21486
  # @return [String]
@@ -21173,7 +21498,7 @@ module Google
21173
21498
  attr_accessor :url_mask
21174
21499
 
21175
21500
  # Optional serving version.
21176
- # The version must be 1-63 characters long, and comply with RFC1035.
21501
+ # The version name is case-sensitive and must be 1-100 characters long.
21177
21502
  # Example value: "v1", "v2".
21178
21503
  # Corresponds to the JSON property `version`
21179
21504
  # @return [String]
@@ -21774,6 +22099,25 @@ module Google
21774
22099
  # @return [String]
21775
22100
  attr_accessor :fingerprint
21776
22101
 
22102
+ # [Output Only] The prefix length of the primary internal IPv6 range.
22103
+ # Corresponds to the JSON property `internalIpv6PrefixLength`
22104
+ # @return [Fixnum]
22105
+ attr_accessor :internal_ipv6_prefix_length
22106
+
22107
+ # An array of IPv6 access configurations for this interface. Currently, only one
22108
+ # IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig
22109
+ # specified, then this instance will have no external IPv6 Internet access.
22110
+ # Corresponds to the JSON property `ipv6AccessConfigs`
22111
+ # @return [Array<Google::Apis::ComputeAlpha::AccessConfig>]
22112
+ attr_accessor :ipv6_access_configs
22113
+
22114
+ # [Output Only] One of EXTERNAL, INTERNAL to indicate whether the IP can be
22115
+ # accessed from the Internet. This field is always inherited from its subnetwork.
22116
+ # Valid only if stackType is IPV4_IPV6.
22117
+ # Corresponds to the JSON property `ipv6AccessType`
22118
+ # @return [String]
22119
+ attr_accessor :ipv6_access_type
22120
+
21777
22121
  # [Output Only] An IPv6 internal network address for this network interface.
21778
22122
  # Corresponds to the JSON property `ipv6Address`
21779
22123
  # @return [String]
@@ -21812,15 +22156,26 @@ module Google
21812
22156
  # @return [String]
21813
22157
  attr_accessor :network_ip
21814
22158
 
21815
- # The networking queue count for the network interface. Both Rx and Tx queues
21816
- # will be set to this number. If it's not specified by the user, a default
21817
- # number of queues will be assigned. For Virtio-net, each interface will get (
21818
- # min(#vCPU, 32) / #vNIC) queues. For gVNIC, each interface will get (min(#vCPU /
21819
- # 2, 16) / #vNIC) qeueus.
22159
+ # The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.
22160
+ # Corresponds to the JSON property `nicType`
22161
+ # @return [String]
22162
+ attr_accessor :nic_type
22163
+
22164
+ # The networking queue count that's specified by users for the network interface.
22165
+ # Both Rx and Tx queues will be set to this number. It'll be empty if not
22166
+ # specified by the users.
21820
22167
  # Corresponds to the JSON property `queueCount`
21821
22168
  # @return [Fixnum]
21822
22169
  attr_accessor :queue_count
21823
22170
 
22171
+ # The stack type for this network interface to identify whether the IPv6 feature
22172
+ # is enabled or not. If not specified, IPV4_ONLY will be used.
22173
+ # This field can be both set at instance creation and update network interface
22174
+ # operations.
22175
+ # Corresponds to the JSON property `stackType`
22176
+ # @return [String]
22177
+ attr_accessor :stack_type
22178
+
21824
22179
  # The URL of the Subnetwork resource for this instance. If the network resource
21825
22180
  # is in legacy mode, do not specify this field. If the network is in auto subnet
21826
22181
  # mode, specifying the subnetwork is optional. If the network is in custom
@@ -21843,12 +22198,17 @@ module Google
21843
22198
  @access_configs = args[:access_configs] if args.key?(:access_configs)
21844
22199
  @alias_ip_ranges = args[:alias_ip_ranges] if args.key?(:alias_ip_ranges)
21845
22200
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
22201
+ @internal_ipv6_prefix_length = args[:internal_ipv6_prefix_length] if args.key?(:internal_ipv6_prefix_length)
22202
+ @ipv6_access_configs = args[:ipv6_access_configs] if args.key?(:ipv6_access_configs)
22203
+ @ipv6_access_type = args[:ipv6_access_type] if args.key?(:ipv6_access_type)
21846
22204
  @ipv6_address = args[:ipv6_address] if args.key?(:ipv6_address)
21847
22205
  @kind = args[:kind] if args.key?(:kind)
21848
22206
  @name = args[:name] if args.key?(:name)
21849
22207
  @network = args[:network] if args.key?(:network)
21850
22208
  @network_ip = args[:network_ip] if args.key?(:network_ip)
22209
+ @nic_type = args[:nic_type] if args.key?(:nic_type)
21851
22210
  @queue_count = args[:queue_count] if args.key?(:queue_count)
22211
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
21852
22212
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
21853
22213
  end
21854
22214
  end
@@ -22088,6 +22448,31 @@ module Google
22088
22448
  end
22089
22449
  end
22090
22450
 
22451
+ #
22452
+ class NetworkPerformanceConfig
22453
+ include Google::Apis::Core::Hashable
22454
+
22455
+ #
22456
+ # Corresponds to the JSON property `externalIpEgressBandwidthTier`
22457
+ # @return [String]
22458
+ attr_accessor :external_ip_egress_bandwidth_tier
22459
+
22460
+ #
22461
+ # Corresponds to the JSON property `totalEgressBandwidthTier`
22462
+ # @return [String]
22463
+ attr_accessor :total_egress_bandwidth_tier
22464
+
22465
+ def initialize(**args)
22466
+ update!(**args)
22467
+ end
22468
+
22469
+ # Update properties of this object
22470
+ def update!(**args)
22471
+ @external_ip_egress_bandwidth_tier = args[:external_ip_egress_bandwidth_tier] if args.key?(:external_ip_egress_bandwidth_tier)
22472
+ @total_egress_bandwidth_tier = args[:total_egress_bandwidth_tier] if args.key?(:total_egress_bandwidth_tier)
22473
+ end
22474
+ end
22475
+
22091
22476
  # A routing configuration attached to a network resource. The message includes
22092
22477
  # the list of routers associated with the network, and a flag indicating the
22093
22478
  # type of routing behavior to enforce network-wide.
@@ -22179,6 +22564,11 @@ module Google
22179
22564
  class NetworksGetEffectiveFirewallsResponse
22180
22565
  include Google::Apis::Core::Hashable
22181
22566
 
22567
+ # Effective firewalls from firewall policy.
22568
+ # Corresponds to the JSON property `firewallPolicys`
22569
+ # @return [Array<Google::Apis::ComputeAlpha::NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy>]
22570
+ attr_accessor :firewall_policys
22571
+
22182
22572
  # Effective firewalls on the network.
22183
22573
  # Corresponds to the JSON property `firewalls`
22184
22574
  # @return [Array<Google::Apis::ComputeAlpha::Firewall>]
@@ -22195,11 +22585,49 @@ module Google
22195
22585
 
22196
22586
  # Update properties of this object
22197
22587
  def update!(**args)
22588
+ @firewall_policys = args[:firewall_policys] if args.key?(:firewall_policys)
22198
22589
  @firewalls = args[:firewalls] if args.key?(:firewalls)
22199
22590
  @organization_firewalls = args[:organization_firewalls] if args.key?(:organization_firewalls)
22200
22591
  end
22201
22592
  end
22202
22593
 
22594
+ #
22595
+ class NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy
22596
+ include Google::Apis::Core::Hashable
22597
+
22598
+ # [Output Only] The display name of the firewall policy.
22599
+ # Corresponds to the JSON property `displayName`
22600
+ # @return [String]
22601
+ attr_accessor :display_name
22602
+
22603
+ # [Output Only] The name of the firewall policy.
22604
+ # Corresponds to the JSON property `name`
22605
+ # @return [String]
22606
+ attr_accessor :name
22607
+
22608
+ # The rules that apply to the network.
22609
+ # Corresponds to the JSON property `rules`
22610
+ # @return [Array<Google::Apis::ComputeAlpha::FirewallPolicyRule>]
22611
+ attr_accessor :rules
22612
+
22613
+ # [Output Only] The type of the firewall policy.
22614
+ # Corresponds to the JSON property `type`
22615
+ # @return [String]
22616
+ attr_accessor :type
22617
+
22618
+ def initialize(**args)
22619
+ update!(**args)
22620
+ end
22621
+
22622
+ # Update properties of this object
22623
+ def update!(**args)
22624
+ @display_name = args[:display_name] if args.key?(:display_name)
22625
+ @name = args[:name] if args.key?(:name)
22626
+ @rules = args[:rules] if args.key?(:rules)
22627
+ @type = args[:type] if args.key?(:type)
22628
+ end
22629
+ end
22630
+
22203
22631
  # A pruned SecurityPolicy containing ID and any applicable firewall rules.
22204
22632
  class NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy
22205
22633
  include Google::Apis::Core::Hashable
@@ -22683,6 +23111,14 @@ module Google
22683
23111
  # @return [String]
22684
23112
  attr_accessor :duration
22685
23113
 
23114
+ # A Duration represents a fixed-length span of time represented as a count of
23115
+ # seconds and fractions of seconds at nanosecond resolution. It is independent
23116
+ # of any calendar and concepts like "day" or "month". Range is approximately 10,
23117
+ # 000 years.
23118
+ # Corresponds to the JSON property `maintenanceDuration`
23119
+ # @return [Google::Apis::ComputeAlpha::Duration]
23120
+ attr_accessor :maintenance_duration
23121
+
22686
23122
  # Start time of the window. This must be in UTC format that resolves to one of
22687
23123
  # 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:
22688
23124
  # 00 are valid.
@@ -22697,6 +23133,7 @@ module Google
22697
23133
  # Update properties of this object
22698
23134
  def update!(**args)
22699
23135
  @duration = args[:duration] if args.key?(:duration)
23136
+ @maintenance_duration = args[:maintenance_duration] if args.key?(:maintenance_duration)
22700
23137
  @start_time = args[:start_time] if args.key?(:start_time)
22701
23138
  end
22702
23139
  end
@@ -26851,6 +27288,12 @@ module Google
26851
27288
  # @return [String]
26852
27289
  attr_accessor :ip_cidr_range
26853
27290
 
27291
+ # If true, the prefix will be live migrated.
27292
+ # Corresponds to the JSON property `isLiveMigration`
27293
+ # @return [Boolean]
27294
+ attr_accessor :is_live_migration
27295
+ alias_method :is_live_migration?, :is_live_migration
27296
+
26854
27297
  # [Output Only] Type of the resource. Always compute#publicDelegatedPrefix for
26855
27298
  # public delegated prefixes.
26856
27299
  # Corresponds to the JSON property `kind`
@@ -26913,6 +27356,7 @@ module Google
26913
27356
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
26914
27357
  @id = args[:id] if args.key?(:id)
26915
27358
  @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range)
27359
+ @is_live_migration = args[:is_live_migration] if args.key?(:is_live_migration)
26916
27360
  @kind = args[:kind] if args.key?(:kind)
26917
27361
  @name = args[:name] if args.key?(:name)
26918
27362
  @parent_prefix = args[:parent_prefix] if args.key?(:parent_prefix)
@@ -28235,6 +28679,14 @@ module Google
28235
28679
  # @return [Array<String>]
28236
28680
  attr_accessor :instances
28237
28681
 
28682
+ # If false and the request contains references to instances that cannot be
28683
+ # deleted (that is, instances that are not in the group or are already deleted),
28684
+ # the request fails. Otherwise, such instances are ignored.
28685
+ # Corresponds to the JSON property `skipInapplicableInstances`
28686
+ # @return [Boolean]
28687
+ attr_accessor :skip_inapplicable_instances
28688
+ alias_method :skip_inapplicable_instances?, :skip_inapplicable_instances
28689
+
28238
28690
  def initialize(**args)
28239
28691
  update!(**args)
28240
28692
  end
@@ -28242,6 +28694,7 @@ module Google
28242
28694
  # Update properties of this object
28243
28695
  def update!(**args)
28244
28696
  @instances = args[:instances] if args.key?(:instances)
28697
+ @skip_inapplicable_instances = args[:skip_inapplicable_instances] if args.key?(:skip_inapplicable_instances)
28245
28698
  end
28246
28699
  end
28247
28700
 
@@ -28667,6 +29120,25 @@ module Google
28667
29120
  end
28668
29121
  end
28669
29122
 
29123
+ #
29124
+ class RegionInstantSnapshotsExportRequest
29125
+ include Google::Apis::Core::Hashable
29126
+
29127
+ # Parameters to export the changed blocks.
29128
+ # Corresponds to the JSON property `exportParams`
29129
+ # @return [Google::Apis::ComputeAlpha::InstantSnapshotExportParams]
29130
+ attr_accessor :export_params
29131
+
29132
+ def initialize(**args)
29133
+ update!(**args)
29134
+ end
29135
+
29136
+ # Update properties of this object
29137
+ def update!(**args)
29138
+ @export_params = args[:export_params] if args.key?(:export_params)
29139
+ end
29140
+ end
29141
+
28670
29142
  # Contains a list of region resources.
28671
29143
  class RegionList
28672
29144
  include Google::Apis::Core::Hashable
@@ -29012,6 +29484,11 @@ module Google
29012
29484
  # @return [String]
29013
29485
  attr_accessor :self_link_with_id
29014
29486
 
29487
+ # Share-settings for shared-reservation
29488
+ # Corresponds to the JSON property `shareSettings`
29489
+ # @return [Google::Apis::ComputeAlpha::AllocationShareSettings]
29490
+ attr_accessor :share_settings
29491
+
29015
29492
  # This reservation type allows to pre allocate specific instance configuration.
29016
29493
  # Corresponds to the JSON property `specificReservation`
29017
29494
  # @return [Google::Apis::ComputeAlpha::AllocationSpecificSkuReservation]
@@ -29050,6 +29527,7 @@ module Google
29050
29527
  @name = args[:name] if args.key?(:name)
29051
29528
  @self_link = args[:self_link] if args.key?(:self_link)
29052
29529
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
29530
+ @share_settings = args[:share_settings] if args.key?(:share_settings)
29053
29531
  @specific_reservation = args[:specific_reservation] if args.key?(:specific_reservation)
29054
29532
  @specific_reservation_required = args[:specific_reservation_required] if args.key?(:specific_reservation_required)
29055
29533
  @status = args[:status] if args.key?(:status)
@@ -30410,8 +30888,8 @@ module Google
30410
30888
  # @return [String]
30411
30889
  attr_accessor :description
30412
30890
 
30413
- # The destination range of outgoing packets that this route applies to. Only
30414
- # IPv4 is supported.
30891
+ # The destination range of outgoing packets that this route applies to. Both
30892
+ # IPv4 and IPv6 are supported.
30415
30893
  # Corresponds to the JSON property `destRange`
30416
30894
  # @return [String]
30417
30895
  attr_accessor :dest_range
@@ -30450,8 +30928,9 @@ module Google
30450
30928
  attr_accessor :next_hop_gateway
30451
30929
 
30452
30930
  # The URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should
30453
- # handle matching packets. You can only specify the forwarding rule as a partial
30454
- # or full URL. For example, the following are all valid URLs:
30931
+ # handle matching packets or the IP address of the forwarding Rule. For example,
30932
+ # the following are all valid URLs:
30933
+ # - 10.128.0.56
30455
30934
  # - https://www.googleapis.com/compute/v1/projects/project/regions/region/
30456
30935
  # forwardingRules/forwardingRule
30457
30936
  # - regions/region/forwardingRules/forwardingRule
@@ -30763,6 +31242,13 @@ module Google
30763
31242
  # @return [String]
30764
31243
  attr_accessor :description
30765
31244
 
31245
+ # Field to indicate if a router is dedicated to use with encrypted Interconnect
31246
+ # Attachment (Encrypted Interconnect feature).
31247
+ # Corresponds to the JSON property `encryptedInterconnectRouter`
31248
+ # @return [Boolean]
31249
+ attr_accessor :encrypted_interconnect_router
31250
+ alias_method :encrypted_interconnect_router?, :encrypted_interconnect_router
31251
+
30766
31252
  # [Output Only] The unique identifier for the resource. This identifier is
30767
31253
  # defined by the server.
30768
31254
  # Corresponds to the JSON property `id`
@@ -30828,6 +31314,7 @@ module Google
30828
31314
  @bgp_peers = args[:bgp_peers] if args.key?(:bgp_peers)
30829
31315
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
30830
31316
  @description = args[:description] if args.key?(:description)
31317
+ @encrypted_interconnect_router = args[:encrypted_interconnect_router] if args.key?(:encrypted_interconnect_router)
30831
31318
  @id = args[:id] if args.key?(:id)
30832
31319
  @interfaces = args[:interfaces] if args.key?(:interfaces)
30833
31320
  @kind = args[:kind] if args.key?(:kind)
@@ -31145,10 +31632,10 @@ module Google
31145
31632
  # @return [String]
31146
31633
  attr_accessor :peer_ip_address
31147
31634
 
31148
- # URI of the VM instance that is used as third party router appliances such as
31149
- # Next Gen Firewalls, Virtual Routers, SD-WAN. The VM instance must live in
31150
- # zones contained in the same region as this Cloud Router. The VM instance is
31151
- # the peer side of the BGP session.
31635
+ # URI of the VM instance that is used as third-party router appliances such as
31636
+ # Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance
31637
+ # must be located in zones contained in the same region as this Cloud Router.
31638
+ # The VM instance is the peer side of the BGP session.
31152
31639
  # Corresponds to the JSON property `routerApplianceInstance`
31153
31640
  # @return [String]
31154
31641
  attr_accessor :router_appliance_instance
@@ -31313,17 +31800,17 @@ module Google
31313
31800
  # @return [String]
31314
31801
  attr_accessor :name
31315
31802
 
31316
- # The regional private internal IP address that will be used to establish BGP
31317
- # session to a VM instance, which is used as third party router appliances such
31318
- # as Next Gen Firewalls, Virtual Routers, SD-WAN.
31803
+ # The regional private internal IP address that is used to establish BGP
31804
+ # sessions to a VM instance acting as a third-party Router Appliance, such as a
31805
+ # Next Gen Firewall, a Virtual Router, or an SD-WAN VM.
31319
31806
  # Corresponds to the JSON property `privateIpAddress`
31320
31807
  # @return [String]
31321
31808
  attr_accessor :private_ip_address
31322
31809
 
31323
31810
  # Name of the interface that will be redundant with the current interface you
31324
31811
  # are creating. The redundantInterface must belong to the same Cloud Router as
31325
- # the interface here. To establish the BGP session to SD-WAN VM, you must create
31326
- # two BGP peers, and the two BGP peers need to be attached to two separate
31812
+ # the interface here. To establish the BGP session to a Router Appliance VM, you
31813
+ # must create two BGP peers. The two BGP peers must be attached to two separate
31327
31814
  # interfaces that are redundant with each other. The redundant_interface must be
31328
31815
  # 1-63 characters long, and comply with RFC1035. Specifically, the
31329
31816
  # redundant_interface must be 1-63 characters long and match the regular
@@ -31334,9 +31821,9 @@ module Google
31334
31821
  # @return [String]
31335
31822
  attr_accessor :redundant_interface
31336
31823
 
31337
- # The URL of the subnetwork resource this interface belongs to, it must be in
31338
- # the same region as the router. When you establish a BGP session to a VM
31339
- # instance using this interface, the VM instance must belong to the same
31824
+ # The URL of the subnetwork resource that this interface belongs to, which must
31825
+ # be in the same region as the Cloud Router. When you establish a BGP session to
31826
+ # a VM instance using this interface, the VM instance must belong to the same
31340
31827
  # subnetwork as the subnetwork specified here.
31341
31828
  # Corresponds to the JSON property `subnetwork`
31342
31829
  # @return [String]
@@ -32382,15 +32869,14 @@ module Google
32382
32869
 
32383
32870
  # [Output Only] The last time the scaling schedule became active. Note: this is
32384
32871
  # a timestamp when a schedule actually became active, not when it was planned to
32385
- # do so. The timestamp is an RFC3339 string in RFC3339 text format.
32872
+ # do so. The timestamp is in RFC3339 text format.
32386
32873
  # Corresponds to the JSON property `lastStartTime`
32387
32874
  # @return [String]
32388
32875
  attr_accessor :last_start_time
32389
32876
 
32390
- # [Output Only] The next time the scaling schedule will become active. Note:
32877
+ # [Output Only] The next time the scaling schedule is to become active. Note:
32391
32878
  # this is a timestamp when a schedule is planned to run, but the actual time
32392
- # might be slightly different. The timestamp is an RFC3339 string in RFC3339
32393
- # text format.
32879
+ # might be slightly different. The timestamp is in RFC3339 text format.
32394
32880
  # Corresponds to the JSON property `nextStartTime`
32395
32881
  # @return [String]
32396
32882
  attr_accessor :next_start_time
@@ -32447,6 +32933,13 @@ module Google
32447
32933
  # @return [Fixnum]
32448
32934
  attr_accessor :maintenance_freeze_duration_hours
32449
32935
 
32936
+ # Specifies whether this VM may be a stable fleet VM. Setting this to "Periodic"
32937
+ # designates this VM as a Stable Fleet VM.
32938
+ # See go/stable-fleet-ug for more details.
32939
+ # Corresponds to the JSON property `maintenanceInterval`
32940
+ # @return [String]
32941
+ attr_accessor :maintenance_interval
32942
+
32450
32943
  # The minimum number of virtual CPUs this instance will consume when running on
32451
32944
  # a sole-tenant node.
32452
32945
  # Corresponds to the JSON property `minNodeCpus`
@@ -32486,6 +32979,7 @@ module Google
32486
32979
  @latency_tolerant = args[:latency_tolerant] if args.key?(:latency_tolerant)
32487
32980
  @location_hint = args[:location_hint] if args.key?(:location_hint)
32488
32981
  @maintenance_freeze_duration_hours = args[:maintenance_freeze_duration_hours] if args.key?(:maintenance_freeze_duration_hours)
32982
+ @maintenance_interval = args[:maintenance_interval] if args.key?(:maintenance_interval)
32489
32983
  @min_node_cpus = args[:min_node_cpus] if args.key?(:min_node_cpus)
32490
32984
  @node_affinities = args[:node_affinities] if args.key?(:node_affinities)
32491
32985
  @on_host_maintenance = args[:on_host_maintenance] if args.key?(:on_host_maintenance)
@@ -32611,13 +33105,18 @@ module Google
32611
33105
  end
32612
33106
  end
32613
33107
 
32614
- # Represents a Cloud Armor Security Policy resource.
33108
+ # Represents a Google Cloud Armor security policy resource.
32615
33109
  # Only external backend services that use load balancers can reference a
32616
- # Security Policy. For more information, read Cloud Armor Security Policy
32617
- # Concepts. (== resource_for `$api_version`.securityPolicies ==)
33110
+ # security policy. For more information, see Google Cloud Armor security policy
33111
+ # overview. (== resource_for `$api_version`.securityPolicies ==)
32618
33112
  class SecurityPolicy
32619
33113
  include Google::Apis::Core::Hashable
32620
33114
 
33115
+ # Configuration options for Cloud Armor Adaptive Protection (CAAP).
33116
+ # Corresponds to the JSON property `adaptiveProtectionConfig`
33117
+ # @return [Google::Apis::ComputeAlpha::SecurityPolicyAdaptiveProtectionConfig]
33118
+ attr_accessor :adaptive_protection_config
33119
+
32621
33120
  # A list of associations that belong to this policy.
32622
33121
  # Corresponds to the JSON property `associations`
32623
33122
  # @return [Array<Google::Apis::ComputeAlpha::SecurityPolicyAssociation>]
@@ -32642,11 +33141,11 @@ module Google
32642
33141
  # User-provided name of the Organization security plicy. The name should be
32643
33142
  # unique in the organization in which the security policy is created. This
32644
33143
  # should only be used when SecurityPolicyType is FIREWALL. The name must be 1-63
32645
- # characters long, and comply with RFC1035. Specifically, the name must be 1-63
32646
- # characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
32647
- # which means the first character must be a lowercase letter, and all following
32648
- # characters must be a dash, lowercase letter, or digit, except the last
32649
- # character, which cannot be a dash.
33144
+ # characters long, and comply with https://www.ietf.org/rfc/rfc1035.txt.
33145
+ # Specifically, the name must be 1-63 characters long and match the regular
33146
+ # expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
33147
+ # be a lowercase letter, and all following characters must be a dash, lowercase
33148
+ # letter, or digit, except the last character, which cannot be a dash.
32650
33149
  # Corresponds to the JSON property `displayName`
32651
33150
  # @return [String]
32652
33151
  attr_accessor :display_name
@@ -32744,6 +33243,7 @@ module Google
32744
33243
 
32745
33244
  # Update properties of this object
32746
33245
  def update!(**args)
33246
+ @adaptive_protection_config = args[:adaptive_protection_config] if args.key?(:adaptive_protection_config)
32747
33247
  @associations = args[:associations] if args.key?(:associations)
32748
33248
  @cloud_armor_config = args[:cloud_armor_config] if args.key?(:cloud_armor_config)
32749
33249
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
@@ -32764,6 +33264,52 @@ module Google
32764
33264
  end
32765
33265
  end
32766
33266
 
33267
+ # Configuration options for Cloud Armor Adaptive Protection (CAAP).
33268
+ class SecurityPolicyAdaptiveProtectionConfig
33269
+ include Google::Apis::Core::Hashable
33270
+
33271
+ # Configuration options for L7 DDoS detection.
33272
+ # Corresponds to the JSON property `layer7DdosDefenseConfig`
33273
+ # @return [Google::Apis::ComputeAlpha::SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig]
33274
+ attr_accessor :layer7_ddos_defense_config
33275
+
33276
+ def initialize(**args)
33277
+ update!(**args)
33278
+ end
33279
+
33280
+ # Update properties of this object
33281
+ def update!(**args)
33282
+ @layer7_ddos_defense_config = args[:layer7_ddos_defense_config] if args.key?(:layer7_ddos_defense_config)
33283
+ end
33284
+ end
33285
+
33286
+ # Configuration options for L7 DDoS detection.
33287
+ class SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig
33288
+ include Google::Apis::Core::Hashable
33289
+
33290
+ # If set to true, enables CAAP for L7 DDoS detection.
33291
+ # Corresponds to the JSON property `enable`
33292
+ # @return [Boolean]
33293
+ attr_accessor :enable
33294
+ alias_method :enable?, :enable
33295
+
33296
+ # Rule visibility can be one of the following: STANDARD - opaque rules. (default)
33297
+ # PREMIUM - transparent rules.
33298
+ # Corresponds to the JSON property `ruleVisibility`
33299
+ # @return [String]
33300
+ attr_accessor :rule_visibility
33301
+
33302
+ def initialize(**args)
33303
+ update!(**args)
33304
+ end
33305
+
33306
+ # Update properties of this object
33307
+ def update!(**args)
33308
+ @enable = args[:enable] if args.key?(:enable)
33309
+ @rule_visibility = args[:rule_visibility] if args.key?(:rule_visibility)
33310
+ end
33311
+ end
33312
+
32767
33313
  #
32768
33314
  class SecurityPolicyAssociation
32769
33315
  include Google::Apis::Core::Hashable
@@ -33007,7 +33553,7 @@ module Google
33007
33553
  # An integer indicating the priority of a rule in the list. The priority must be
33008
33554
  # a positive value between 0 and 2147483647. Rules are evaluated from highest to
33009
33555
  # lowest priority where 0 is the highest priority and 2147483647 is the lowest
33010
- # prority.
33556
+ # priority.
33011
33557
  # Corresponds to the JSON property `priority`
33012
33558
  # @return [Fixnum]
33013
33559
  attr_accessor :priority
@@ -33018,6 +33564,13 @@ module Google
33018
33564
  # @return [Google::Apis::ComputeAlpha::SecurityPolicyRuleRateLimitOptions]
33019
33565
  attr_accessor :rate_limit_options
33020
33566
 
33567
+ # Identifier for the rule. This is only unique within the given security policy.
33568
+ # This can only be set during rule creation, if rule number is not specified it
33569
+ # will be generated by the server.
33570
+ # Corresponds to the JSON property `ruleNumber`
33571
+ # @return [Fixnum]
33572
+ attr_accessor :rule_number
33573
+
33021
33574
  # [Output Only] Calculation of the complexity of a single firewall security
33022
33575
  # policy rule.
33023
33576
  # Corresponds to the JSON property `ruleTupleCount`
@@ -33053,6 +33606,7 @@ module Google
33053
33606
  @preview = args[:preview] if args.key?(:preview)
33054
33607
  @priority = args[:priority] if args.key?(:priority)
33055
33608
  @rate_limit_options = args[:rate_limit_options] if args.key?(:rate_limit_options)
33609
+ @rule_number = args[:rule_number] if args.key?(:rule_number)
33056
33610
  @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
33057
33611
  @target_resources = args[:target_resources] if args.key?(:target_resources)
33058
33612
  @target_service_accounts = args[:target_service_accounts] if args.key?(:target_service_accounts)
@@ -33530,13 +34084,15 @@ module Google
33530
34084
  class ServiceAttachment
33531
34085
  include Google::Apis::Core::Hashable
33532
34086
 
33533
- #
34087
+ # The connection preference of service attachment. The value can be set to
34088
+ # ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC service attachment is one that always
34089
+ # accepts the connection from consumer forwarding rules.
33534
34090
  # Corresponds to the JSON property `connectionPreference`
33535
34091
  # @return [String]
33536
34092
  attr_accessor :connection_preference
33537
34093
 
33538
- # An array of forwarding rules for all the consumers connected to this service
33539
- # attachment.
34094
+ # [Output Only] An array of forwarding rules for all the consumers connected to
34095
+ # this service attachment.
33540
34096
  # Corresponds to the JSON property `consumerForwardingRules`
33541
34097
  # @return [Array<Google::Apis::ComputeAlpha::ServiceAttachmentConsumerForwardingRule>]
33542
34098
  attr_accessor :consumer_forwarding_rules
@@ -35183,10 +35739,10 @@ module Google
35183
35739
  end
35184
35740
  end
35185
35741
 
35186
- # Represents a Cloud Armor Security Policy resource.
35187
- # Only external backend services used by HTTP or HTTPS load balancers can
35188
- # reference a Security Policy. For more information, read read Cloud Armor
35189
- # Security Policy Concepts. (== resource_for `$api_version`.sslPolicies ==)
35742
+ # Represents an SSL Policy resource.
35743
+ # Use SSL policies to control the SSL features, such as versions and cipher
35744
+ # suites, offered by an HTTPS or SSL Proxy load balancer. For more information,
35745
+ # read SSL Policy Concepts. (== resource_for `$api_version`.sslPolicies ==)
35190
35746
  class SslPolicy
35191
35747
  include Google::Apis::Core::Hashable
35192
35748
 
@@ -35512,6 +36068,12 @@ module Google
35512
36068
  attr_accessor :enable_private_v6_access
35513
36069
  alias_method :enable_private_v6_access?, :enable_private_v6_access
35514
36070
 
36071
+ # [Output Only] The range of external IPv6 addresses that are owned by this
36072
+ # subnetwork.
36073
+ # Corresponds to the JSON property `externalIpv6Prefix`
36074
+ # @return [String]
36075
+ attr_accessor :external_ipv6_prefix
36076
+
35515
36077
  # Fingerprint of this resource. A hash of the contents stored in this object.
35516
36078
  # This field is used in optimistic locking. This field will be ignored when
35517
36079
  # inserting a Subnetwork. An up-to-date fingerprint must be provided in order to
@@ -35554,6 +36116,14 @@ module Google
35554
36116
  # @return [String]
35555
36117
  attr_accessor :ip_cidr_range
35556
36118
 
36119
+ # The access type of IPv6 address this subnet holds. It's immutable and can only
36120
+ # be specified during creation or the first time the subnet is updated into
36121
+ # IPV4_IPV6 dual stack. If the ipv6_type is EXTERNAL then this subnet cannot
36122
+ # enable direct path.
36123
+ # Corresponds to the JSON property `ipv6AccessType`
36124
+ # @return [String]
36125
+ attr_accessor :ipv6_access_type
36126
+
35557
36127
  # [Output Only] The range of internal IPv6 addresses that are owned by this
35558
36128
  # subnetwork.
35559
36129
  # Corresponds to the JSON property `ipv6CidrRange`
@@ -35667,12 +36237,21 @@ module Google
35667
36237
  # @return [String]
35668
36238
  attr_accessor :self_link_with_id
35669
36239
 
35670
- # [Output Only] The state of the subnetwork, which can be one of READY or
35671
- # DRAINING. A subnetwork that is READY is ready to be used. The state of
35672
- # DRAINING is only applicable to subnetworks that have the purpose set to
36240
+ # The stack type for this subnet to identify whether the IPv6 feature is enabled
36241
+ # or not. If not specified IPV4_ONLY will be used.
36242
+ # This field can be both set at resource creation time and updated using patch.
36243
+ # Corresponds to the JSON property `stackType`
36244
+ # @return [String]
36245
+ attr_accessor :stack_type
36246
+
36247
+ # [Output Only] The state of the subnetwork, which can be one of the following
36248
+ # values: READY: Subnetwork is created and ready to use DRAINING: only
36249
+ # applicable to subnetworks that have the purpose set to
35673
36250
  # INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the load
35674
36251
  # balancer are being drained. A subnetwork that is draining cannot be used or
35675
- # modified until it reaches a status of READY.
36252
+ # modified until it reaches a status of READY CREATING: Subnetwork is
36253
+ # provisioning DELETING: Subnetwork is being deleted UPDATING: Subnetwork is
36254
+ # being updated
35676
36255
  # Corresponds to the JSON property `state`
35677
36256
  # @return [String]
35678
36257
  attr_accessor :state
@@ -35689,11 +36268,13 @@ module Google
35689
36268
  @description = args[:description] if args.key?(:description)
35690
36269
  @enable_flow_logs = args[:enable_flow_logs] if args.key?(:enable_flow_logs)
35691
36270
  @enable_private_v6_access = args[:enable_private_v6_access] if args.key?(:enable_private_v6_access)
36271
+ @external_ipv6_prefix = args[:external_ipv6_prefix] if args.key?(:external_ipv6_prefix)
35692
36272
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
35693
36273
  @flow_sampling = args[:flow_sampling] if args.key?(:flow_sampling)
35694
36274
  @gateway_address = args[:gateway_address] if args.key?(:gateway_address)
35695
36275
  @id = args[:id] if args.key?(:id)
35696
36276
  @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range)
36277
+ @ipv6_access_type = args[:ipv6_access_type] if args.key?(:ipv6_access_type)
35697
36278
  @ipv6_cidr_range = args[:ipv6_cidr_range] if args.key?(:ipv6_cidr_range)
35698
36279
  @kind = args[:kind] if args.key?(:kind)
35699
36280
  @log_config = args[:log_config] if args.key?(:log_config)
@@ -35709,6 +36290,7 @@ module Google
35709
36290
  @secondary_ip_ranges = args[:secondary_ip_ranges] if args.key?(:secondary_ip_ranges)
35710
36291
  @self_link = args[:self_link] if args.key?(:self_link)
35711
36292
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
36293
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
35712
36294
  @state = args[:state] if args.key?(:state)
35713
36295
  end
35714
36296
  end
@@ -36678,9 +37260,14 @@ module Google
36678
37260
  # @return [String]
36679
37261
  attr_accessor :name
36680
37262
 
36681
- # This field only applies when the loadBalancingScheme is INTERNAL_SELF_MANAGED.
36682
- # When set to true the Envoy binds on the IP address specified by the forwarding
36683
- # rule. Default is false.
37263
+ # This field only applies when the forwarding rule that references this target
37264
+ # proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED.
37265
+ # When this field is set to true, Envoy proxies set up inbound traffic
37266
+ # interception and bind to the IP address and port specified in the forwarding
37267
+ # rule. This is generally useful when using Traffic Director to configure Envoy
37268
+ # as a gateway or middle proxy (in other words, not a sidecar proxy). The Envoy
37269
+ # proxy listens for inbound requests and handles requests when it receives them.
37270
+ # The default is false.
36684
37271
  # Corresponds to the JSON property `proxyBind`
36685
37272
  # @return [Boolean]
36686
37273
  attr_accessor :proxy_bind
@@ -37174,6 +37761,17 @@ module Google
37174
37761
  # @return [String]
37175
37762
  attr_accessor :description
37176
37763
 
37764
+ # Fingerprint of this resource. A hash of the contents stored in this object.
37765
+ # This field is used in optimistic locking. This field will be ignored when
37766
+ # inserting a TargetHttpsProxy. An up-to-date fingerprint must be provided in
37767
+ # order to patch the TargetHttpsProxy; otherwise, the request will fail with
37768
+ # error 412 conditionNotMet. To see the latest fingerprint, make a get() request
37769
+ # to retrieve the TargetHttpsProxy.
37770
+ # Corresponds to the JSON property `fingerprint`
37771
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
37772
+ # @return [String]
37773
+ attr_accessor :fingerprint
37774
+
37177
37775
  # URLs to networkservices.HttpFilter resources enabled for xDS clients using
37178
37776
  # this configuration. For example, https://networkservices.googleapis.com/beta/
37179
37777
  # projects/project/locations/locationhttpFilters/httpFilter Only filters that
@@ -37211,9 +37809,14 @@ module Google
37211
37809
  # @return [String]
37212
37810
  attr_accessor :name
37213
37811
 
37214
- # This field only applies when the loadBalancingScheme is INTERNAL_SELF_MANAGED.
37215
- # When set to true the Envoy binds on the IP address specified by the forwarding
37216
- # rule. Default is false.
37812
+ # This field only applies when the forwarding rule that references this target
37813
+ # proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED.
37814
+ # When this field is set to true, Envoy proxies set up inbound traffic
37815
+ # interception and bind to the IP address and port specified in the forwarding
37816
+ # rule. This is generally useful when using Traffic Director to configure Envoy
37817
+ # as a gateway or middle proxy (in other words, not a sidecar proxy). The Envoy
37818
+ # proxy listens for inbound requests and handles requests when it receives them.
37819
+ # The default is false.
37217
37820
  # Corresponds to the JSON property `proxyBind`
37218
37821
  # @return [Boolean]
37219
37822
  attr_accessor :proxy_bind
@@ -37295,6 +37898,7 @@ module Google
37295
37898
  @certificate_map = args[:certificate_map] if args.key?(:certificate_map)
37296
37899
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
37297
37900
  @description = args[:description] if args.key?(:description)
37901
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
37298
37902
  @http_filters = args[:http_filters] if args.key?(:http_filters)
37299
37903
  @id = args[:id] if args.key?(:id)
37300
37904
  @kind = args[:kind] if args.key?(:kind)
@@ -37995,9 +38599,9 @@ module Google
37995
38599
  class TargetPool
37996
38600
  include Google::Apis::Core::Hashable
37997
38601
 
37998
- # This field is applicable only when the containing target pool is serving a
37999
- # forwarding rule as the primary pool, and its failoverRatio field is properly
38000
- # set to a value between [0, 1].
38602
+ # The server-defined URL for the resource. This field is applicable only when
38603
+ # the containing target pool is serving a forwarding rule as the primary pool,
38604
+ # and its failoverRatio field is properly set to a value between [0, 1].
38001
38605
  # backupPool and failoverRatio together define the fallback behavior of the
38002
38606
  # primary target pool: if the ratio of the healthy instances in the primary pool
38003
38607
  # is at or below failoverRatio, traffic arriving at the load-balanced IP will be
@@ -38956,6 +39560,19 @@ module Google
38956
39560
  # @return [String]
38957
39561
  attr_accessor :name
38958
39562
 
39563
+ # This field only applies when the forwarding rule that references this target
39564
+ # proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED.
39565
+ # When this field is set to true, Envoy proxies set up inbound traffic
39566
+ # interception and bind to the IP address and port specified in the forwarding
39567
+ # rule. This is generally useful when using Traffic Director to configure Envoy
39568
+ # as a gateway or middle proxy (in other words, not a sidecar proxy). The Envoy
39569
+ # proxy listens for inbound requests and handles requests when it receives them.
39570
+ # The default is false.
39571
+ # Corresponds to the JSON property `proxyBind`
39572
+ # @return [Boolean]
39573
+ attr_accessor :proxy_bind
39574
+ alias_method :proxy_bind?, :proxy_bind
39575
+
38959
39576
  # Specifies the type of proxy header to append before sending data to the
38960
39577
  # backend, either NONE or PROXY_V1. The default is NONE.
38961
39578
  # Corresponds to the JSON property `proxyHeader`
@@ -38983,6 +39600,7 @@ module Google
38983
39600
  @id = args[:id] if args.key?(:id)
38984
39601
  @kind = args[:kind] if args.key?(:kind)
38985
39602
  @name = args[:name] if args.key?(:name)
39603
+ @proxy_bind = args[:proxy_bind] if args.key?(:proxy_bind)
38986
39604
  @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
38987
39605
  @self_link = args[:self_link] if args.key?(:self_link)
38988
39606
  @service = args[:service] if args.key?(:service)
@@ -39562,17 +40180,46 @@ module Google
39562
40180
  class TestFailure
39563
40181
  include Google::Apis::Core::Hashable
39564
40182
 
40183
+ # The actual output URL evaluated by load balancer containing the scheme, host,
40184
+ # path and query parameters.
40185
+ # Corresponds to the JSON property `actualOutputUrl`
40186
+ # @return [String]
40187
+ attr_accessor :actual_output_url
40188
+
40189
+ # Actual HTTP status code for rule with `urlRedirect` calculated by load
40190
+ # balancer
40191
+ # Corresponds to the JSON property `actualRedirectResponseCode`
40192
+ # @return [Fixnum]
40193
+ attr_accessor :actual_redirect_response_code
40194
+
39565
40195
  # BackendService or BackendBucket returned by load balancer.
39566
40196
  # Corresponds to the JSON property `actualService`
39567
40197
  # @return [String]
39568
40198
  attr_accessor :actual_service
39569
40199
 
40200
+ # The expected output URL evaluated by load balancer containing the scheme, host,
40201
+ # path and query parameters.
40202
+ # Corresponds to the JSON property `expectedOutputUrl`
40203
+ # @return [String]
40204
+ attr_accessor :expected_output_url
40205
+
40206
+ # Expected HTTP status code for rule with `urlRedirect` calculated by load
40207
+ # balancer
40208
+ # Corresponds to the JSON property `expectedRedirectResponseCode`
40209
+ # @return [Fixnum]
40210
+ attr_accessor :expected_redirect_response_code
40211
+
39570
40212
  # Expected BackendService or BackendBucket resource the given URL should be
39571
40213
  # mapped to.
39572
40214
  # Corresponds to the JSON property `expectedService`
39573
40215
  # @return [String]
39574
40216
  attr_accessor :expected_service
39575
40217
 
40218
+ # HTTP headers of the request.
40219
+ # Corresponds to the JSON property `headers`
40220
+ # @return [Array<Google::Apis::ComputeAlpha::UrlMapTestHeader>]
40221
+ attr_accessor :headers
40222
+
39576
40223
  # Host portion of the URL.
39577
40224
  # Corresponds to the JSON property `host`
39578
40225
  # @return [String]
@@ -39589,8 +40236,13 @@ module Google
39589
40236
 
39590
40237
  # Update properties of this object
39591
40238
  def update!(**args)
40239
+ @actual_output_url = args[:actual_output_url] if args.key?(:actual_output_url)
40240
+ @actual_redirect_response_code = args[:actual_redirect_response_code] if args.key?(:actual_redirect_response_code)
39592
40241
  @actual_service = args[:actual_service] if args.key?(:actual_service)
40242
+ @expected_output_url = args[:expected_output_url] if args.key?(:expected_output_url)
40243
+ @expected_redirect_response_code = args[:expected_redirect_response_code] if args.key?(:expected_redirect_response_code)
39593
40244
  @expected_service = args[:expected_service] if args.key?(:expected_service)
40245
+ @headers = args[:headers] if args.key?(:headers)
39594
40246
  @host = args[:host] if args.key?(:host)
39595
40247
  @path = args[:path] if args.key?(:path)
39596
40248
  end
@@ -40144,12 +40796,43 @@ module Google
40144
40796
  # @return [String]
40145
40797
  attr_accessor :description
40146
40798
 
40799
+ # The expected output URL evaluated by load balancer containing the scheme, host,
40800
+ # path and query parameters.
40801
+ # For rules that forward requests to backends, the test passes only when
40802
+ # expectedOutputUrl matches the request forwarded by load balancer to backends.
40803
+ # For rules with urlRewrite, the test verifies that the forwarded request
40804
+ # matches hostRewrite and pathPrefixRewrite in the urlRewrite action. When
40805
+ # service is specified, expectedOutputUrl`s scheme is ignored.
40806
+ # For rules with urlRedirect, the test passes only if expectedOutputUrl matches
40807
+ # the URL in the load balancer's redirect response. If urlRedirect specifies
40808
+ # https_redirect, the test passes only if the scheme in expectedOutputUrl is
40809
+ # also set to https. If urlRedirect specifies strip_query, the test passes only
40810
+ # if expectedOutputUrl does not contain any query parameters.
40811
+ # expectedOutputUrl is optional when service is specified.
40812
+ # Corresponds to the JSON property `expectedOutputUrl`
40813
+ # @return [String]
40814
+ attr_accessor :expected_output_url
40815
+
40816
+ # For rules with urlRedirect, the test passes only if
40817
+ # expectedRedirectResponseCode matches the HTTP status code in load balancer's
40818
+ # redirect response.
40819
+ # expectedRedirectResponseCode cannot be set when service is set.
40820
+ # Corresponds to the JSON property `expectedRedirectResponseCode`
40821
+ # @return [Fixnum]
40822
+ attr_accessor :expected_redirect_response_code
40823
+
40147
40824
  # The expected URL that should be redirected to for the host and path being
40148
40825
  # tested. [Deprecated] This field is deprecated. Use expected_output_url instead.
40149
40826
  # Corresponds to the JSON property `expectedUrlRedirect`
40150
40827
  # @return [String]
40151
40828
  attr_accessor :expected_url_redirect
40152
40829
 
40830
+ # HTTP headers for this request. If headers contains a host header, then host
40831
+ # must also match the header value.
40832
+ # Corresponds to the JSON property `headers`
40833
+ # @return [Array<Google::Apis::ComputeAlpha::UrlMapTestHeader>]
40834
+ attr_accessor :headers
40835
+
40153
40836
  # Host portion of the URL. If headers contains a host header, then host must
40154
40837
  # also match the header value.
40155
40838
  # Corresponds to the JSON property `host`
@@ -40176,13 +40859,41 @@ module Google
40176
40859
  def update!(**args)
40177
40860
  @backend_service_weight = args[:backend_service_weight] if args.key?(:backend_service_weight)
40178
40861
  @description = args[:description] if args.key?(:description)
40862
+ @expected_output_url = args[:expected_output_url] if args.key?(:expected_output_url)
40863
+ @expected_redirect_response_code = args[:expected_redirect_response_code] if args.key?(:expected_redirect_response_code)
40179
40864
  @expected_url_redirect = args[:expected_url_redirect] if args.key?(:expected_url_redirect)
40865
+ @headers = args[:headers] if args.key?(:headers)
40180
40866
  @host = args[:host] if args.key?(:host)
40181
40867
  @path = args[:path] if args.key?(:path)
40182
40868
  @service = args[:service] if args.key?(:service)
40183
40869
  end
40184
40870
  end
40185
40871
 
40872
+ # HTTP headers used in UrlMapTests.
40873
+ class UrlMapTestHeader
40874
+ include Google::Apis::Core::Hashable
40875
+
40876
+ # Header name.
40877
+ # Corresponds to the JSON property `name`
40878
+ # @return [String]
40879
+ attr_accessor :name
40880
+
40881
+ # Header value.
40882
+ # Corresponds to the JSON property `value`
40883
+ # @return [String]
40884
+ attr_accessor :value
40885
+
40886
+ def initialize(**args)
40887
+ update!(**args)
40888
+ end
40889
+
40890
+ # Update properties of this object
40891
+ def update!(**args)
40892
+ @name = args[:name] if args.key?(:name)
40893
+ @value = args[:value] if args.key?(:value)
40894
+ end
40895
+ end
40896
+
40186
40897
  # Message representing the validation result for a UrlMap.
40187
40898
  class UrlMapValidationResult
40188
40899
  include Google::Apis::Core::Hashable
@@ -42481,6 +43192,25 @@ module Google
42481
43192
  end
42482
43193
  end
42483
43194
 
43195
+ #
43196
+ class ZoneInstantSnapshotsExportRequest
43197
+ include Google::Apis::Core::Hashable
43198
+
43199
+ # Parameters to export the changed blocks.
43200
+ # Corresponds to the JSON property `exportParams`
43201
+ # @return [Google::Apis::ComputeAlpha::InstantSnapshotExportParams]
43202
+ attr_accessor :export_params
43203
+
43204
+ def initialize(**args)
43205
+ update!(**args)
43206
+ end
43207
+
43208
+ # Update properties of this object
43209
+ def update!(**args)
43210
+ @export_params = args[:export_params] if args.key?(:export_params)
43211
+ end
43212
+ end
43213
+
42484
43214
  # Contains a list of zone resources.
42485
43215
  class ZoneList
42486
43216
  include Google::Apis::Core::Hashable