google-api-client 0.51.0 → 0.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
@@ -1516,6 +1516,58 @@ module Google
1516
1516
  execute_or_queue_command(command, &block)
1517
1517
  end
1518
1518
 
1519
+ # Sets the edge security policy for the specified backend bucket.
1520
+ # @param [String] project
1521
+ # Project ID for this request.
1522
+ # @param [String] backend_bucket
1523
+ # Name of the BackendService resource to which the security policy should be set.
1524
+ # The name should conform to RFC1035.
1525
+ # @param [Google::Apis::ComputeAlpha::SecurityPolicyReference] security_policy_reference_object
1526
+ # @param [String] request_id
1527
+ # An optional request ID to identify requests. Specify a unique request ID so
1528
+ # that if you must retry your request, the server will know to ignore the
1529
+ # request if it has already been completed.
1530
+ # For example, consider a situation where you make an initial request and the
1531
+ # request times out. If you make the request again with the same request ID, the
1532
+ # server can check if original operation with the same request ID was received,
1533
+ # and if so, will ignore the second request. This prevents clients from
1534
+ # accidentally creating duplicate commitments.
1535
+ # The request ID must be a valid UUID with the exception that zero UUID is not
1536
+ # supported (00000000-0000-0000-0000-000000000000).
1537
+ # @param [String] fields
1538
+ # Selector specifying which fields to include in a partial response.
1539
+ # @param [String] quota_user
1540
+ # An opaque string that represents a user for quota purposes. Must not exceed 40
1541
+ # characters.
1542
+ # @param [String] user_ip
1543
+ # Deprecated. Please use quotaUser instead.
1544
+ # @param [Google::Apis::RequestOptions] options
1545
+ # Request-specific options
1546
+ #
1547
+ # @yield [result, err] Result & error if block supplied
1548
+ # @yieldparam result [Google::Apis::ComputeAlpha::Operation] parsed result object
1549
+ # @yieldparam err [StandardError] error object if request failed
1550
+ #
1551
+ # @return [Google::Apis::ComputeAlpha::Operation]
1552
+ #
1553
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
1554
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
1555
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
1556
+ def set_backend_bucket_edge_security_policy(project, backend_bucket, security_policy_reference_object = nil, request_id: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
1557
+ command = make_simple_command(:post, 'projects/{project}/global/backendBuckets/{backendBucket}/setEdgeSecurityPolicy', options)
1558
+ command.request_representation = Google::Apis::ComputeAlpha::SecurityPolicyReference::Representation
1559
+ command.request_object = security_policy_reference_object
1560
+ command.response_representation = Google::Apis::ComputeAlpha::Operation::Representation
1561
+ command.response_class = Google::Apis::ComputeAlpha::Operation
1562
+ command.params['project'] = project unless project.nil?
1563
+ command.params['backendBucket'] = backend_bucket unless backend_bucket.nil?
1564
+ command.query['requestId'] = request_id unless request_id.nil?
1565
+ command.query['fields'] = fields unless fields.nil?
1566
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
1567
+ command.query['userIp'] = user_ip unless user_ip.nil?
1568
+ execute_or_queue_command(command, &block)
1569
+ end
1570
+
1519
1571
  # Sets the access control policy on the specified resource. Replaces any
1520
1572
  # existing policy.
1521
1573
  # @param [String] project
@@ -2140,6 +2192,58 @@ module Google
2140
2192
  execute_or_queue_command(command, &block)
2141
2193
  end
2142
2194
 
2195
+ # Sets the edge security policy for the specified backend service.
2196
+ # @param [String] project
2197
+ # Project ID for this request.
2198
+ # @param [String] backend_service
2199
+ # Name of the BackendService resource to which the edge security policy should
2200
+ # be set. The name should conform to RFC1035.
2201
+ # @param [Google::Apis::ComputeAlpha::SecurityPolicyReference] security_policy_reference_object
2202
+ # @param [String] request_id
2203
+ # An optional request ID to identify requests. Specify a unique request ID so
2204
+ # that if you must retry your request, the server will know to ignore the
2205
+ # request if it has already been completed.
2206
+ # For example, consider a situation where you make an initial request and the
2207
+ # request times out. If you make the request again with the same request ID, the
2208
+ # server can check if original operation with the same request ID was received,
2209
+ # and if so, will ignore the second request. This prevents clients from
2210
+ # accidentally creating duplicate commitments.
2211
+ # The request ID must be a valid UUID with the exception that zero UUID is not
2212
+ # supported (00000000-0000-0000-0000-000000000000).
2213
+ # @param [String] fields
2214
+ # Selector specifying which fields to include in a partial response.
2215
+ # @param [String] quota_user
2216
+ # An opaque string that represents a user for quota purposes. Must not exceed 40
2217
+ # characters.
2218
+ # @param [String] user_ip
2219
+ # Deprecated. Please use quotaUser instead.
2220
+ # @param [Google::Apis::RequestOptions] options
2221
+ # Request-specific options
2222
+ #
2223
+ # @yield [result, err] Result & error if block supplied
2224
+ # @yieldparam result [Google::Apis::ComputeAlpha::Operation] parsed result object
2225
+ # @yieldparam err [StandardError] error object if request failed
2226
+ #
2227
+ # @return [Google::Apis::ComputeAlpha::Operation]
2228
+ #
2229
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
2230
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
2231
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
2232
+ def set_backend_service_edge_security_policy(project, backend_service, security_policy_reference_object = nil, request_id: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
2233
+ command = make_simple_command(:post, 'projects/{project}/global/backendServices/{backendService}/setEdgeSecurityPolicy', options)
2234
+ command.request_representation = Google::Apis::ComputeAlpha::SecurityPolicyReference::Representation
2235
+ command.request_object = security_policy_reference_object
2236
+ command.response_representation = Google::Apis::ComputeAlpha::Operation::Representation
2237
+ command.response_class = Google::Apis::ComputeAlpha::Operation
2238
+ command.params['project'] = project unless project.nil?
2239
+ command.params['backendService'] = backend_service unless backend_service.nil?
2240
+ command.query['requestId'] = request_id unless request_id.nil?
2241
+ command.query['fields'] = fields unless fields.nil?
2242
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
2243
+ command.query['userIp'] = user_ip unless user_ip.nil?
2244
+ execute_or_queue_command(command, &block)
2245
+ end
2246
+
2143
2247
  # Sets the security policy for the specified backend service.
2144
2248
  # @param [String] project
2145
2249
  # Project ID for this request.
@@ -9029,8 +9133,9 @@ module Google
9029
9133
  execute_or_queue_command(command, &block)
9030
9134
  end
9031
9135
 
9032
- # Modifies the autohealing policies. [Deprecated] This method is deprecated.
9033
- # Please use Patch instead.
9136
+ # Motifies the autohealing policy for the instances in this managed instance
9137
+ # group. [Deprecated] This method is deprecated. Use instanceGroupManagers.patch
9138
+ # instead.
9034
9139
  # @param [String] project
9035
9140
  # Project ID for this request.
9036
9141
  # @param [String] zone
@@ -9086,7 +9191,8 @@ module Google
9086
9191
 
9087
9192
  # Specifies the instance template to use when creating new instances in this
9088
9193
  # group. The templates for existing instances in the group do not change unless
9089
- # you recreate them.
9194
+ # you run recreateInstances, run applyUpdatesToInstances, or set the group's
9195
+ # updatePolicy.type to PROACTIVE.
9090
9196
  # @param [String] project
9091
9197
  # Project ID for this request.
9092
9198
  # @param [String] zone
@@ -11140,9 +11246,9 @@ module Google
11140
11246
  # - projects/project/global/instanceTemplates/instanceTemplate
11141
11247
  # - global/instanceTemplates/instanceTemplate
11142
11248
  # @param [String] source_machine_image
11143
- # Specifies instance machine to create the instance.
11249
+ # Specifies the machine image to use to create the instance.
11144
11250
  # This field is optional. It can be a full or partial URL. For example, the
11145
- # following are all valid URLs to an instance template:
11251
+ # following are all valid URLs to a machine image:
11146
11252
  # - https://www.googleapis.com/compute/v1/projects/project/global/global/
11147
11253
  # machineImages/machineImage
11148
11254
  # - projects/project/global/global/machineImages/machineImage
@@ -18583,7 +18689,7 @@ module Google
18583
18689
  # @param [Boolean] replace_existing_association
18584
18690
  # Indicates whether or not to replace it if an association of the attachment
18585
18691
  # already exists. This is false by default, in which case an error will be
18586
- # returned if an assocation already exists.
18692
+ # returned if an association already exists.
18587
18693
  # @param [String] request_id
18588
18694
  # An optional request ID to identify requests. Specify a unique request ID so
18589
18695
  # that if you must retry your request, the server will know to ignore the
@@ -24802,9 +24908,9 @@ module Google
24802
24908
  execute_or_queue_command(command, &block)
24803
24909
  end
24804
24910
 
24805
- # Insert or patch (for the ones that already exist) per-instance configs for the
24806
- # managed instance group. perInstanceConfig.instance serves as a key used to
24807
- # distinguish whether to perform insert or patch.
24911
+ # Inserts or patches per-instance configs for the managed instance group.
24912
+ # perInstanceConfig.name serves as a key used to distinguish whether to perform
24913
+ # insert or patch.
24808
24914
  # @param [String] project
24809
24915
  # Project ID for this request.
24810
24916
  # @param [String] region
@@ -24984,7 +25090,8 @@ module Google
24984
25090
  end
24985
25091
 
24986
25092
  # Modifies the autohealing policy for the instances in this managed instance
24987
- # group. [Deprecated] This method is deprecated. Please use Patch instead.
25093
+ # group. [Deprecated] This method is deprecated. Use regionInstanceGroupManagers.
25094
+ # patch instead.
24988
25095
  # @param [String] project
24989
25096
  # Project ID for this request.
24990
25097
  # @param [String] region
@@ -25248,9 +25355,9 @@ module Google
25248
25355
  execute_or_queue_command(command, &block)
25249
25356
  end
25250
25357
 
25251
- # Insert or update (for the ones that already exist) per-instance configs for
25252
- # the managed instance group. perInstanceConfig.instance serves as a key used to
25253
- # distinguish whether to perform insert or patch.
25358
+ # Inserts or updates per-instance configs for the managed instance group.
25359
+ # perInstanceConfig.name serves as a key used to distinguish whether to perform
25360
+ # insert or patch.
25254
25361
  # @param [String] project
25255
25362
  # Project ID for this request.
25256
25363
  # @param [String] region
@@ -25713,6 +25820,61 @@ module Google
25713
25820
  execute_or_queue_command(command, &block)
25714
25821
  end
25715
25822
 
25823
+ # Export the changed blocks between two instant snapshots to a customer?s bucket
25824
+ # in the user specified format.
25825
+ # @param [String] project
25826
+ # Project ID for this request.
25827
+ # @param [String] region
25828
+ # The name of the zone for this request.
25829
+ # @param [String] instant_snapshot
25830
+ # Name of the instant snapshot to export.
25831
+ # @param [Google::Apis::ComputeAlpha::RegionInstantSnapshotsExportRequest] region_instant_snapshots_export_request_object
25832
+ # @param [String] request_id
25833
+ # An optional request ID to identify requests. Specify a unique request ID so
25834
+ # that if you must retry your request, the server will know to ignore the
25835
+ # request if it has already been completed.
25836
+ # For example, consider a situation where you make an initial request and the
25837
+ # request times out. If you make the request again with the same request ID, the
25838
+ # server can check if original operation with the same request ID was received,
25839
+ # and if so, will ignore the second request. This prevents clients from
25840
+ # accidentally creating duplicate commitments.
25841
+ # The request ID must be a valid UUID with the exception that zero UUID is not
25842
+ # supported (00000000-0000-0000-0000-000000000000).
25843
+ # @param [String] fields
25844
+ # Selector specifying which fields to include in a partial response.
25845
+ # @param [String] quota_user
25846
+ # An opaque string that represents a user for quota purposes. Must not exceed 40
25847
+ # characters.
25848
+ # @param [String] user_ip
25849
+ # Deprecated. Please use quotaUser instead.
25850
+ # @param [Google::Apis::RequestOptions] options
25851
+ # Request-specific options
25852
+ #
25853
+ # @yield [result, err] Result & error if block supplied
25854
+ # @yieldparam result [Google::Apis::ComputeAlpha::Operation] parsed result object
25855
+ # @yieldparam err [StandardError] error object if request failed
25856
+ #
25857
+ # @return [Google::Apis::ComputeAlpha::Operation]
25858
+ #
25859
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
25860
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
25861
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
25862
+ def export_region_instant_snapshot(project, region, instant_snapshot, region_instant_snapshots_export_request_object = nil, request_id: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
25863
+ command = make_simple_command(:post, 'projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}/export', options)
25864
+ command.request_representation = Google::Apis::ComputeAlpha::RegionInstantSnapshotsExportRequest::Representation
25865
+ command.request_object = region_instant_snapshots_export_request_object
25866
+ command.response_representation = Google::Apis::ComputeAlpha::Operation::Representation
25867
+ command.response_class = Google::Apis::ComputeAlpha::Operation
25868
+ command.params['project'] = project unless project.nil?
25869
+ command.params['region'] = region unless region.nil?
25870
+ command.params['instantSnapshot'] = instant_snapshot unless instant_snapshot.nil?
25871
+ command.query['requestId'] = request_id unless request_id.nil?
25872
+ command.query['fields'] = fields unless fields.nil?
25873
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
25874
+ command.query['userIp'] = user_ip unless user_ip.nil?
25875
+ execute_or_queue_command(command, &block)
25876
+ end
25877
+
25716
25878
  # Returns the specified InstantSnapshot resource in the specified region.
25717
25879
  # @param [String] project
25718
25880
  # Project ID for this request.
@@ -27839,6 +28001,8 @@ module Google
27839
28001
 
27840
28002
  # Initiates a cache invalidation operation, invalidating the specified path,
27841
28003
  # scoped to the specified UrlMap.
28004
+ # For more information, see [Invalidating cached content](/cdn/docs/invalidating-
28005
+ # cached-content).
27842
28006
  # @param [String] project
27843
28007
  # Project ID for this request.
27844
28008
  # @param [String] region
@@ -30413,7 +30577,9 @@ module Google
30413
30577
  execute_or_queue_command(command, &block)
30414
30578
  end
30415
30579
 
30416
- # Patches the specified policy with the data included in the request.
30580
+ # Patches the specified policy with the data included in the request. This
30581
+ # cannot be used to be update the rules in the policy. Please use the per rule
30582
+ # methods like addRule, patchRule, and removeRule instead.
30417
30583
  # @param [String] project
30418
30584
  # Project ID for this request.
30419
30585
  # @param [String] security_policy
@@ -32536,7 +32702,7 @@ module Google
32536
32702
  end
32537
32703
 
32538
32704
  # Patches the specified subnetwork with the data included in the request. Only
32539
- # certain fields can up updated with a patch request as indicated in the field
32705
+ # certain fields can be updated with a patch request as indicated in the field
32540
32706
  # descriptions. You must specify the current fingerprint of the subnetwork
32541
32707
  # resource being patched.
32542
32708
  # @param [String] project
@@ -33772,6 +33938,59 @@ module Google
33772
33938
  execute_or_queue_command(command, &block)
33773
33939
  end
33774
33940
 
33941
+ # Patches the specified TargetHttpsProxy resource with the data included in the
33942
+ # request. This method supports PATCH semantics and uses JSON merge patch format
33943
+ # and processing rules. (== suppress_warning http-rest-shadowed ==)
33944
+ # @param [String] project
33945
+ # Project ID for this request.
33946
+ # @param [String] target_https_proxy
33947
+ # Name of the TargetHttpsProxy resource to patch.
33948
+ # @param [Google::Apis::ComputeAlpha::TargetHttpsProxy] target_https_proxy_object
33949
+ # @param [String] request_id
33950
+ # An optional request ID to identify requests. Specify a unique request ID so
33951
+ # that if you must retry your request, the server will know to ignore the
33952
+ # request if it has already been completed.
33953
+ # For example, consider a situation where you make an initial request and the
33954
+ # request times out. If you make the request again with the same request ID, the
33955
+ # server can check if original operation with the same request ID was received,
33956
+ # and if so, will ignore the second request. This prevents clients from
33957
+ # accidentally creating duplicate commitments.
33958
+ # The request ID must be a valid UUID with the exception that zero UUID is not
33959
+ # supported (00000000-0000-0000-0000-000000000000).
33960
+ # @param [String] fields
33961
+ # Selector specifying which fields to include in a partial response.
33962
+ # @param [String] quota_user
33963
+ # An opaque string that represents a user for quota purposes. Must not exceed 40
33964
+ # characters.
33965
+ # @param [String] user_ip
33966
+ # Deprecated. Please use quotaUser instead.
33967
+ # @param [Google::Apis::RequestOptions] options
33968
+ # Request-specific options
33969
+ #
33970
+ # @yield [result, err] Result & error if block supplied
33971
+ # @yieldparam result [Google::Apis::ComputeAlpha::Operation] parsed result object
33972
+ # @yieldparam err [StandardError] error object if request failed
33973
+ #
33974
+ # @return [Google::Apis::ComputeAlpha::Operation]
33975
+ #
33976
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
33977
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
33978
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
33979
+ def patch_target_https_proxy(project, target_https_proxy, target_https_proxy_object = nil, request_id: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
33980
+ command = make_simple_command(:patch, 'projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}', options)
33981
+ command.request_representation = Google::Apis::ComputeAlpha::TargetHttpsProxy::Representation
33982
+ command.request_object = target_https_proxy_object
33983
+ command.response_representation = Google::Apis::ComputeAlpha::Operation::Representation
33984
+ command.response_class = Google::Apis::ComputeAlpha::Operation
33985
+ command.params['project'] = project unless project.nil?
33986
+ command.params['targetHttpsProxy'] = target_https_proxy unless target_https_proxy.nil?
33987
+ command.query['requestId'] = request_id unless request_id.nil?
33988
+ command.query['fields'] = fields unless fields.nil?
33989
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
33990
+ command.query['userIp'] = user_ip unless user_ip.nil?
33991
+ execute_or_queue_command(command, &block)
33992
+ end
33993
+
33775
33994
  # Changes the Certificate Map for TargetHttpsProxy.
33776
33995
  # @param [String] project
33777
33996
  # Project ID for this request.
@@ -36563,6 +36782,8 @@ module Google
36563
36782
 
36564
36783
  # Initiates a cache invalidation operation, invalidating the specified path,
36565
36784
  # scoped to the specified UrlMap.
36785
+ # For more information, see [Invalidating cached content](/cdn/docs/invalidating-
36786
+ # cached-content).
36566
36787
  # @param [String] project
36567
36788
  # Project ID for this request.
36568
36789
  # @param [String] url_map
@@ -38177,6 +38398,61 @@ module Google
38177
38398
  execute_or_queue_command(command, &block)
38178
38399
  end
38179
38400
 
38401
+ # Export the changed blocks between two instant snapshots to a customer?s bucket
38402
+ # in the user specified format.
38403
+ # @param [String] project
38404
+ # Project ID for this request.
38405
+ # @param [String] zone
38406
+ # The name of the zone for this request.
38407
+ # @param [String] instant_snapshot
38408
+ # Name of the instant snapshot to export.
38409
+ # @param [Google::Apis::ComputeAlpha::ZoneInstantSnapshotsExportRequest] zone_instant_snapshots_export_request_object
38410
+ # @param [String] request_id
38411
+ # An optional request ID to identify requests. Specify a unique request ID so
38412
+ # that if you must retry your request, the server will know to ignore the
38413
+ # request if it has already been completed.
38414
+ # For example, consider a situation where you make an initial request and the
38415
+ # request times out. If you make the request again with the same request ID, the
38416
+ # server can check if original operation with the same request ID was received,
38417
+ # and if so, will ignore the second request. This prevents clients from
38418
+ # accidentally creating duplicate commitments.
38419
+ # The request ID must be a valid UUID with the exception that zero UUID is not
38420
+ # supported (00000000-0000-0000-0000-000000000000).
38421
+ # @param [String] fields
38422
+ # Selector specifying which fields to include in a partial response.
38423
+ # @param [String] quota_user
38424
+ # An opaque string that represents a user for quota purposes. Must not exceed 40
38425
+ # characters.
38426
+ # @param [String] user_ip
38427
+ # Deprecated. Please use quotaUser instead.
38428
+ # @param [Google::Apis::RequestOptions] options
38429
+ # Request-specific options
38430
+ #
38431
+ # @yield [result, err] Result & error if block supplied
38432
+ # @yieldparam result [Google::Apis::ComputeAlpha::Operation] parsed result object
38433
+ # @yieldparam err [StandardError] error object if request failed
38434
+ #
38435
+ # @return [Google::Apis::ComputeAlpha::Operation]
38436
+ #
38437
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
38438
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
38439
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
38440
+ def export_zone_instant_snapshot(project, zone, instant_snapshot, zone_instant_snapshots_export_request_object = nil, request_id: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
38441
+ command = make_simple_command(:post, 'projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}/export', options)
38442
+ command.request_representation = Google::Apis::ComputeAlpha::ZoneInstantSnapshotsExportRequest::Representation
38443
+ command.request_object = zone_instant_snapshots_export_request_object
38444
+ command.response_representation = Google::Apis::ComputeAlpha::Operation::Representation
38445
+ command.response_class = Google::Apis::ComputeAlpha::Operation
38446
+ command.params['project'] = project unless project.nil?
38447
+ command.params['zone'] = zone unless zone.nil?
38448
+ command.params['instantSnapshot'] = instant_snapshot unless instant_snapshot.nil?
38449
+ command.query['requestId'] = request_id unless request_id.nil?
38450
+ command.query['fields'] = fields unless fields.nil?
38451
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
38452
+ command.query['userIp'] = user_ip unless user_ip.nil?
38453
+ execute_or_queue_command(command, &block)
38454
+ end
38455
+
38180
38456
  # Returns the specified InstantSnapshot resource in the specified zone.
38181
38457
  # @param [String] project
38182
38458
  # Project ID for this request.
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://developers.google.com/compute/docs/reference/latest/
26
26
  module ComputeBeta
27
27
  VERSION = 'Beta'
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'
@@ -648,6 +648,9 @@ module Google
648
648
  # - `VPC_PEERING` for addresses that are reserved for VPC peer networks.
649
649
  # - `NAT_AUTO` for addresses that are external IP addresses automatically
650
650
  # reserved for Cloud NAT.
651
+ # - `IPSEC_INTERCONNECT` for addresses created from a private IP range that are
652
+ # reserved for a VLAN attachment in an IPsec encrypted Interconnect
653
+ # configuration. These addresses are regional resources.
651
654
  # Corresponds to the JSON property `purpose`
652
655
  # @return [String]
653
656
  attr_accessor :purpose
@@ -1046,6 +1049,30 @@ module Google
1046
1049
  end
1047
1050
  end
1048
1051
 
1052
+ # Specifies options for controlling advanced machine features. Options that
1053
+ # would traditionally be configured in a BIOS belong here. Features that require
1054
+ # operating system support may have corresponding entries in the GuestOsFeatures
1055
+ # of an Image (e.g., whether or not the OS in the Image supports nested
1056
+ # virtualization being enabled or disabled).
1057
+ class AdvancedMachineFeatures
1058
+ include Google::Apis::Core::Hashable
1059
+
1060
+ # Whether to enable nested virtualization or not (default is false).
1061
+ # Corresponds to the JSON property `enableNestedVirtualization`
1062
+ # @return [Boolean]
1063
+ attr_accessor :enable_nested_virtualization
1064
+ alias_method :enable_nested_virtualization?, :enable_nested_virtualization
1065
+
1066
+ def initialize(**args)
1067
+ update!(**args)
1068
+ end
1069
+
1070
+ # Update properties of this object
1071
+ def update!(**args)
1072
+ @enable_nested_virtualization = args[:enable_nested_virtualization] if args.key?(:enable_nested_virtualization)
1073
+ end
1074
+ end
1075
+
1049
1076
  # An alias IP range attached to an instance's network interface.
1050
1077
  class AliasIpRange
1051
1078
  include Google::Apis::Core::Hashable
@@ -1578,8 +1605,8 @@ module Google
1578
1605
 
1579
1606
  # Represents an Autoscaler resource.
1580
1607
  # Google Compute Engine has two Autoscaler resources:
1581
- # * [Global](/compute/docs/reference/rest/`$api_version`/autoscalers) * [
1582
- # Regional](/compute/docs/reference/rest/`$api_version`/regionAutoscalers)
1608
+ # * [Zonal](/compute/docs/reference/rest/`$api_version`/autoscalers) * [Regional]
1609
+ # (/compute/docs/reference/rest/`$api_version`/regionAutoscalers)
1583
1610
  # Use autoscalers to automatically add or delete instances from a managed
1584
1611
  # instance group according to your defined autoscaling policy. For more
1585
1612
  # information, read Autoscaling Groups of Instances.
@@ -1628,10 +1655,10 @@ module Google
1628
1655
  attr_accessor :name
1629
1656
 
1630
1657
  # [Output Only] Target recommended MIG size (number of instances) computed by
1631
- # autoscaler. Autoscaler calculates recommended MIG size even when autoscaling
1632
- # policy mode is different from ON. This field is empty when autoscaler is not
1633
- # connected to the existing managed instance group or autoscaler did not
1634
- # generate its prediction.
1658
+ # autoscaler. Autoscaler calculates the recommended MIG size even when the
1659
+ # autoscaling policy mode is different from ON. This field is empty when
1660
+ # autoscaler is not connected to an existing managed instance group or
1661
+ # autoscaler did not generate its prediction.
1635
1662
  # Corresponds to the JSON property `recommendedSize`
1636
1663
  # @return [Fixnum]
1637
1664
  attr_accessor :recommended_size
@@ -1642,6 +1669,11 @@ module Google
1642
1669
  # @return [String]
1643
1670
  attr_accessor :region
1644
1671
 
1672
+ # [Output Only] Status information of existing scaling schedules.
1673
+ # Corresponds to the JSON property `scalingScheduleStatus`
1674
+ # @return [Hash<String,Google::Apis::ComputeBeta::ScalingScheduleStatus>]
1675
+ attr_accessor :scaling_schedule_status
1676
+
1645
1677
  # [Output Only] Server-defined URL for the resource.
1646
1678
  # Corresponds to the JSON property `selfLink`
1647
1679
  # @return [String]
@@ -1666,7 +1698,8 @@ module Google
1666
1698
  # @return [Array<Google::Apis::ComputeBeta::AutoscalerStatusDetails>]
1667
1699
  attr_accessor :status_details
1668
1700
 
1669
- # URL of the managed instance group that this autoscaler will scale.
1701
+ # URL of the managed instance group that this autoscaler will scale. This field
1702
+ # is required when creating an autoscaler.
1670
1703
  # Corresponds to the JSON property `target`
1671
1704
  # @return [String]
1672
1705
  attr_accessor :target
@@ -1691,6 +1724,7 @@ module Google
1691
1724
  @name = args[:name] if args.key?(:name)
1692
1725
  @recommended_size = args[:recommended_size] if args.key?(:recommended_size)
1693
1726
  @region = args[:region] if args.key?(:region)
1727
+ @scaling_schedule_status = args[:scaling_schedule_status] if args.key?(:scaling_schedule_status)
1694
1728
  @self_link = args[:self_link] if args.key?(:self_link)
1695
1729
  @status = args[:status] if args.key?(:status)
1696
1730
  @status_details = args[:status_details] if args.key?(:status_details)
@@ -1973,7 +2007,7 @@ module Google
1973
2007
  # - MODE_OFF (WARNING): Autoscaling is turned off. The number of instances in
1974
2008
  # the group won't change automatically. The autoscaling configuration is
1975
2009
  # preserved.
1976
- # - MODE_ONLY_UP (WARNING): Autoscaling is in the "Autoscale only up" mode. The
2010
+ # - MODE_ONLY_UP (WARNING): Autoscaling is in the "Autoscale only out" mode. The
1977
2011
  # autoscaler can add instances but not remove any.
1978
2012
  # - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The instance group cannot be
1979
2013
  # autoscaled because it has more than one backend service attached to it.
@@ -2099,11 +2133,10 @@ module Google
2099
2133
  class AutoscalingPolicy
2100
2134
  include Google::Apis::Core::Hashable
2101
2135
 
2102
- # The number of seconds that the autoscaler should wait before it starts
2103
- # collecting information from a new instance. This prevents the autoscaler from
2104
- # collecting information when the instance is initializing, during which the
2105
- # collected usage would not be reliable. The default time autoscaler waits is 60
2106
- # seconds.
2136
+ # The number of seconds that the autoscaler waits before it starts collecting
2137
+ # information from a new instance. This prevents the autoscaler from collecting
2138
+ # information when the instance is initializing, during which the collected
2139
+ # usage would not be reliable. The default time autoscaler waits is 60 seconds.
2107
2140
  # Virtual machine initialization times might vary because of numerous factors.
2108
2141
  # We recommend that you test how long an instance may take to initialize. To do
2109
2142
  # this, create an instance and time the startup process.
@@ -2126,15 +2159,15 @@ module Google
2126
2159
  # @return [Google::Apis::ComputeBeta::AutoscalingPolicyLoadBalancingUtilization]
2127
2160
  attr_accessor :load_balancing_utilization
2128
2161
 
2129
- # The maximum number of instances that the autoscaler can scale up to. This is
2162
+ # The maximum number of instances that the autoscaler can scale out to. This is
2130
2163
  # required when creating or updating an autoscaler. The maximum number of
2131
- # replicas should not be lower than minimal number of replicas.
2164
+ # replicas must not be lower than minimal number of replicas.
2132
2165
  # Corresponds to the JSON property `maxNumReplicas`
2133
2166
  # @return [Fixnum]
2134
2167
  attr_accessor :max_num_replicas
2135
2168
 
2136
- # The minimum number of replicas that the autoscaler can scale down to. This
2137
- # cannot be less than 0. If not provided, autoscaler will choose a default value
2169
+ # The minimum number of replicas that the autoscaler can scale in to. This
2170
+ # cannot be less than 0. If not provided, autoscaler chooses a default value
2138
2171
  # depending on maximum number of instances allowed.
2139
2172
  # Corresponds to the JSON property `minNumReplicas`
2140
2173
  # @return [Fixnum]
@@ -2145,8 +2178,8 @@ module Google
2145
2178
  # @return [String]
2146
2179
  attr_accessor :mode
2147
2180
 
2148
- # Configuration that allows for slower scale down so that even if Autoscaler
2149
- # recommends an abrupt scale down of a MIG, it will be throttled as specified by
2181
+ # Configuration that allows for slower scale in so that even if Autoscaler
2182
+ # recommends an abrupt scale in of a MIG, it will be throttled as specified by
2150
2183
  # the parameters below.
2151
2184
  # Corresponds to the JSON property `scaleDownControl`
2152
2185
  # @return [Google::Apis::ComputeBeta::AutoscalingPolicyScaleDownControl]
@@ -2159,6 +2192,14 @@ module Google
2159
2192
  # @return [Google::Apis::ComputeBeta::AutoscalingPolicyScaleInControl]
2160
2193
  attr_accessor :scale_in_control
2161
2194
 
2195
+ # Scaling schedules defined for an autoscaler. Multiple schedules can be set on
2196
+ # an autoscaler, and they can overlap. During overlapping periods the greatest
2197
+ # min_required_replicas of all scaling schedules is applied. Up to 128 scaling
2198
+ # schedules are allowed.
2199
+ # Corresponds to the JSON property `scalingSchedules`
2200
+ # @return [Hash<String,Google::Apis::ComputeBeta::AutoscalingPolicyScalingSchedule>]
2201
+ attr_accessor :scaling_schedules
2202
+
2162
2203
  def initialize(**args)
2163
2204
  update!(**args)
2164
2205
  end
@@ -2174,6 +2215,7 @@ module Google
2174
2215
  @mode = args[:mode] if args.key?(:mode)
2175
2216
  @scale_down_control = args[:scale_down_control] if args.key?(:scale_down_control)
2176
2217
  @scale_in_control = args[:scale_in_control] if args.key?(:scale_in_control)
2218
+ @scaling_schedules = args[:scaling_schedules] if args.key?(:scaling_schedules)
2177
2219
  end
2178
2220
  end
2179
2221
 
@@ -2192,13 +2234,13 @@ module Google
2192
2234
  # @return [String]
2193
2235
  attr_accessor :predictive_method
2194
2236
 
2195
- # The target CPU utilization that the autoscaler should maintain. Must be a
2196
- # float value in the range (0, 1]. If not specified, the default is 0.6.
2197
- # If the CPU level is below the target utilization, the autoscaler scales down
2198
- # the number of instances until it reaches the minimum number of instances you
2237
+ # The target CPU utilization that the autoscaler maintains. Must be a float
2238
+ # value in the range (0, 1]. If not specified, the default is 0.6.
2239
+ # If the CPU level is below the target utilization, the autoscaler scales in the
2240
+ # number of instances until it reaches the minimum number of instances you
2199
2241
  # specified or until the average CPU of your instances reaches the target
2200
2242
  # utilization.
2201
- # If the average CPU is above the target utilization, the autoscaler scales up
2243
+ # If the average CPU is above the target utilization, the autoscaler scales out
2202
2244
  # until it reaches the maximum number of instances you specified or until the
2203
2245
  # average utilization reaches the target utilization.
2204
2246
  # Corresponds to the JSON property `utilizationTarget`
@@ -2241,11 +2283,11 @@ module Google
2241
2283
  # to scale upon. This is called a per-group metric for the purpose of
2242
2284
  # autoscaling.
2243
2285
  # If not specified, the type defaults to gce_instance.
2244
- # You should provide a filter that is selective enough to pick just one
2245
- # TimeSeries for the autoscaled group or for each of the instances (if you are
2246
- # using gce_instance resource type). If multiple TimeSeries are returned upon
2247
- # the query execution, the autoscaler will sum their respective values to obtain
2248
- # its scaling value.
2286
+ # Try to provide a filter that is selective enough to pick just one TimeSeries
2287
+ # for the autoscaled group or for each of the instances (if you are using
2288
+ # gce_instance resource type). If multiple TimeSeries are returned upon the
2289
+ # query execution, the autoscaler will sum their respective values to obtain its
2290
+ # scaling value.
2249
2291
  # Corresponds to the JSON property `filter`
2250
2292
  # @return [String]
2251
2293
  attr_accessor :filter
@@ -2259,9 +2301,9 @@ module Google
2259
2301
 
2260
2302
  # If scaling is based on a per-group metric value that represents the total
2261
2303
  # amount of work to be done or resource usage, set this value to an amount
2262
- # assigned for a single instance of the scaled group. Autoscaler will keep the
2263
- # number of instances proportional to the value of this metric, the metric
2264
- # itself should not change value due to group resizing.
2304
+ # assigned for a single instance of the scaled group. Autoscaler keeps the
2305
+ # number of instances proportional to the value of this metric. The metric
2306
+ # itself does not change value due to group resizing.
2265
2307
  # A good metric to use with the target is for example pubsub.googleapis.com/
2266
2308
  # subscription/num_undelivered_messages or a custom metric exporting the total
2267
2309
  # number of requests coming to your instances.
@@ -2272,12 +2314,12 @@ module Google
2272
2314
  # @return [Float]
2273
2315
  attr_accessor :single_instance_assignment
2274
2316
 
2275
- # The target value of the metric that autoscaler should maintain. This must be a
2317
+ # The target value of the metric that autoscaler maintains. This must be a
2276
2318
  # positive value. A utilization metric scales number of virtual machines
2277
2319
  # handling requests to increase or decrease proportionally to the metric.
2278
2320
  # For example, a good metric to use as a utilization_target is https://www.
2279
2321
  # googleapis.com/compute/v1/instance/network/received_bytes_count. The
2280
- # autoscaler will work to keep this value constant for each of the instances.
2322
+ # autoscaler works to keep this value constant for each of the instances.
2281
2323
  # Corresponds to the JSON property `utilizationTarget`
2282
2324
  # @return [Float]
2283
2325
  attr_accessor :utilization_target
@@ -2307,7 +2349,7 @@ module Google
2307
2349
  include Google::Apis::Core::Hashable
2308
2350
 
2309
2351
  # Fraction of backend capacity utilization (set in HTTP(S) load balancing
2310
- # configuration) that autoscaler should maintain. Must be a positive float value.
2352
+ # configuration) that the autoscaler maintains. Must be a positive float value.
2311
2353
  # If not defined, the default is 0.8.
2312
2354
  # Corresponds to the JSON property `utilizationTarget`
2313
2355
  # @return [Float]
@@ -2323,8 +2365,8 @@ module Google
2323
2365
  end
2324
2366
  end
2325
2367
 
2326
- # Configuration that allows for slower scale down so that even if Autoscaler
2327
- # recommends an abrupt scale down of a MIG, it will be throttled as specified by
2368
+ # Configuration that allows for slower scale in so that even if Autoscaler
2369
+ # recommends an abrupt scale in of a MIG, it will be throttled as specified by
2328
2370
  # the parameters below.
2329
2371
  class AutoscalingPolicyScaleDownControl
2330
2372
  include Google::Apis::Core::Hashable
@@ -2334,8 +2376,8 @@ module Google
2334
2376
  # @return [Google::Apis::ComputeBeta::FixedOrPercent]
2335
2377
  attr_accessor :max_scaled_down_replicas
2336
2378
 
2337
- # How long back autoscaling should look when computing recommendations to
2338
- # include directives regarding slower scale down, as described above.
2379
+ # How far back autoscaling looks when computing recommendations to include
2380
+ # directives regarding slower scale in, as described above.
2339
2381
  # Corresponds to the JSON property `timeWindowSec`
2340
2382
  # @return [Fixnum]
2341
2383
  attr_accessor :time_window_sec
@@ -2362,8 +2404,8 @@ module Google
2362
2404
  # @return [Google::Apis::ComputeBeta::FixedOrPercent]
2363
2405
  attr_accessor :max_scaled_in_replicas
2364
2406
 
2365
- # How long back autoscaling should look when computing recommendations to
2366
- # include directives regarding slower scale in, as described above.
2407
+ # How far back autoscaling looks when computing recommendations to include
2408
+ # directives regarding slower scale in, as described above.
2367
2409
  # Corresponds to the JSON property `timeWindowSec`
2368
2410
  # @return [Fixnum]
2369
2411
  attr_accessor :time_window_sec
@@ -2379,6 +2421,70 @@ module Google
2379
2421
  end
2380
2422
  end
2381
2423
 
2424
+ # Scaling based on user-defined schedule. The message describes a single scaling
2425
+ # schedule. A scaling schedule changes the minimum number of VM instances an
2426
+ # autoscaler can recommend, which can trigger scaling out.
2427
+ class AutoscalingPolicyScalingSchedule
2428
+ include Google::Apis::Core::Hashable
2429
+
2430
+ # A description of a scaling schedule.
2431
+ # Corresponds to the JSON property `description`
2432
+ # @return [String]
2433
+ attr_accessor :description
2434
+
2435
+ # A boolean value that specifies whether a scaling schedule can influence
2436
+ # autoscaler recommendations. If set to true, then a scaling schedule has no
2437
+ # effect. This field is optional, and its value is false by default.
2438
+ # Corresponds to the JSON property `disabled`
2439
+ # @return [Boolean]
2440
+ attr_accessor :disabled
2441
+ alias_method :disabled?, :disabled
2442
+
2443
+ # The duration of time intervals, in seconds, for which this scaling schedule is
2444
+ # to run. The minimum allowed value is 300. This field is required.
2445
+ # Corresponds to the JSON property `durationSec`
2446
+ # @return [Fixnum]
2447
+ attr_accessor :duration_sec
2448
+
2449
+ # The minimum number of VM instances that the autoscaler will recommend in time
2450
+ # intervals starting according to schedule. This field is required.
2451
+ # Corresponds to the JSON property `minRequiredReplicas`
2452
+ # @return [Fixnum]
2453
+ attr_accessor :min_required_replicas
2454
+
2455
+ # The start timestamps of time intervals when this scaling schedule is to
2456
+ # provide a scaling signal. This field uses the extended cron format (with an
2457
+ # optional year field). The expression can describe a single timestamp if the
2458
+ # optional year is set, in which case the scaling schedule runs once. The
2459
+ # schedule is interpreted with respect to time_zone. This field is required.
2460
+ # Note: These timestamps only describe when autoscaler starts providing the
2461
+ # scaling signal. The VMs need additional time to become serving.
2462
+ # Corresponds to the JSON property `schedule`
2463
+ # @return [String]
2464
+ attr_accessor :schedule
2465
+
2466
+ # The time zone to use when interpreting the schedule. The value of this field
2467
+ # must be a time zone name from the tz database: http://en.wikipedia.org/wiki/
2468
+ # Tz_database. This field is assigned a default value of ?UTC? if left empty.
2469
+ # Corresponds to the JSON property `timeZone`
2470
+ # @return [String]
2471
+ attr_accessor :time_zone
2472
+
2473
+ def initialize(**args)
2474
+ update!(**args)
2475
+ end
2476
+
2477
+ # Update properties of this object
2478
+ def update!(**args)
2479
+ @description = args[:description] if args.key?(:description)
2480
+ @disabled = args[:disabled] if args.key?(:disabled)
2481
+ @duration_sec = args[:duration_sec] if args.key?(:duration_sec)
2482
+ @min_required_replicas = args[:min_required_replicas] if args.key?(:min_required_replicas)
2483
+ @schedule = args[:schedule] if args.key?(:schedule)
2484
+ @time_zone = args[:time_zone] if args.key?(:time_zone)
2485
+ end
2486
+ end
2487
+
2382
2488
  # Message containing information of one individual backend.
2383
2489
  class Backend
2384
2490
  include Google::Apis::Core::Hashable
@@ -2397,21 +2503,22 @@ module Google
2397
2503
  # parameters: maxConnections (except for regional managed instance groups),
2398
2504
  # maxConnectionsPerInstance, or maxConnectionsPerEndpoint.
2399
2505
  # If the loadBalancingScheme for the backend service is INTERNAL (internal TCP/
2400
- # UDP load balancers), you cannot specify any additional parameters.
2506
+ # UDP Load Balancers) or EXTERNAL (Network Load Balancing), you cannot specify
2507
+ # any additional parameters.
2401
2508
  #
2402
2509
  # - If the load balancing mode is RATE, the load is spread based on the rate of
2403
2510
  # HTTP requests per second (RPS).
2404
2511
  # You can use the RATE balancing mode if the protocol for the backend service is
2405
- # HTTP or HTTPS. You must specify exactly one of the following parameters:
2406
- # maxRate (except for regional managed instance groups), maxRatePerInstance, or
2407
- # maxRatePerEndpoint.
2512
+ # HTTP, HTTP2, or HTTPS. You must specify exactly one of the following
2513
+ # parameters: maxRate (except for regional managed instance groups),
2514
+ # maxRatePerInstance, or maxRatePerEndpoint.
2408
2515
  #
2409
2516
  # - If the load balancing mode is UTILIZATION, the load is spread based on the
2410
2517
  # backend utilization of instances in an instance group.
2411
2518
  # You can use the UTILIZATION balancing mode if the loadBalancingScheme of the
2412
- # backend service is EXTERNAL, INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED and
2413
- # the backends are instance groups. There are no restrictions on the backend
2414
- # service protocol.
2519
+ # backend service is EXTERNAL (except Network Load Balancing),
2520
+ # INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED and the backends are instance
2521
+ # groups. There are no restrictions on the backend service protocol.
2415
2522
  # Corresponds to the JSON property `balancingMode`
2416
2523
  # @return [String]
2417
2524
  attr_accessor :balancing_mode
@@ -2423,7 +2530,8 @@ module Google
2423
2530
  # available capacity. Valid range is 0.0 and [0.1,1.0]. You cannot configure a
2424
2531
  # setting larger than 0 and smaller than 0.1. You cannot configure a setting of
2425
2532
  # 0 when there is only one backend attached to the backend service.
2426
- # This cannot be used for internal load balancing.
2533
+ # This cannot be used for Internal TCP/UDP Load Balancing and Network Load
2534
+ # Balancing.
2427
2535
  # Corresponds to the JSON property `capacityScaler`
2428
2536
  # @return [Float]
2429
2537
  attr_accessor :capacity_scaler
@@ -2445,14 +2553,16 @@ module Google
2445
2553
  # resource. The type of backend that a backend service supports depends on the
2446
2554
  # backend service's loadBalancingScheme.
2447
2555
  #
2448
- # - When the loadBalancingScheme for the backend service is EXTERNAL,
2449
- # INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED, the backend can be either an
2450
- # instance group or a NEG. The backends on the backend service must be either
2451
- # all instance groups or all NEGs. You cannot mix instance group and NEG
2452
- # backends on the same backend service.
2453
- # - When the loadBalancingScheme for the backend service is INTERNAL, the
2454
- # backend must be an instance group in the same region as the backend service.
2455
- # NEGs are not supported.
2556
+ # - When the loadBalancingScheme for the backend service is EXTERNAL (except
2557
+ # Network Load Balancing), INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED , the
2558
+ # backend can be either an instance group or a NEG. The backends on the backend
2559
+ # service must be either all instance groups or all NEGs. You cannot mix
2560
+ # instance group and NEG backends on the same backend service.
2561
+ # - When the loadBalancingScheme for the backend service is EXTERNAL for Network
2562
+ # Load Balancing or INTERNAL for Internal TCP/UDP Load Balancing, the backend
2563
+ # must be an instance group. NEGs are not supported.
2564
+ # For regional services, the backend must be in the same region as the backend
2565
+ # service.
2456
2566
  # You must use the fully-qualified URL (starting with https://www.googleapis.com/
2457
2567
  # ) to specify the instance group or NEG. Partial URLs are not supported.
2458
2568
  # Corresponds to the JSON property `group`
@@ -2464,11 +2574,12 @@ module Google
2464
2574
  # except for regional managed instance groups). If the backend's balancingMode
2465
2575
  # is UTILIZATION, this is an optional parameter. If the backend's balancingMode
2466
2576
  # is CONNECTION, and backend is attached to a backend service whose
2467
- # loadBalancingScheme is EXTERNAL, you must specify either this parameter,
2468
- # maxConnectionsPerInstance, or maxConnectionsPerEndpoint.
2469
- # Not available if the backend's balancingMode is RATE. If the
2470
- # loadBalancingScheme is INTERNAL, then maxConnections is not supported, even
2471
- # though the backend requires a balancing mode of CONNECTION.
2577
+ # loadBalancingScheme is EXTERNAL (except Network Load Balancing), you must
2578
+ # specify either this parameter, maxConnectionsPerInstance, or
2579
+ # maxConnectionsPerEndpoint.
2580
+ # Not available if the backend's balancingMode is RATE. Cannot be specified for
2581
+ # Network Load Balancing or Internal TCP/UDP Load Balancing, even though those
2582
+ # load balancers require a balancing mode of CONNECTION.
2472
2583
  # Corresponds to the JSON property `maxConnections`
2473
2584
  # @return [Fixnum]
2474
2585
  attr_accessor :max_connections
@@ -2476,12 +2587,13 @@ module Google
2476
2587
  # Defines a target maximum number of simultaneous connections for an endpoint of
2477
2588
  # a NEG. This is multiplied by the number of endpoints in the NEG to implicitly
2478
2589
  # calculate a maximum number of target maximum simultaneous connections for the
2479
- # NEG. If the backend's balancingMode is CONNECTION, and the backend is attached
2480
- # to a backend service whose loadBalancingScheme is EXTERNAL, you must specify
2481
- # either this parameter, maxConnections, or maxConnectionsPerInstance.
2482
- # Not available if the backend's balancingMode is RATE. Internal TCP/UDP load
2483
- # balancing does not support setting maxConnectionsPerEndpoint even though its
2484
- # backends require a balancing mode of CONNECTION.
2590
+ # NEG. If the backend's balancingMode is CONNECTION, and backend is attached to
2591
+ # a backend service whose loadBalancingScheme is EXTERNAL (except Network Load
2592
+ # Balancing), you must specify either this parameter, maxConnections, or
2593
+ # maxConnectionsPerInstance.
2594
+ # Not available if the backend's balancingMode is RATE. Cannot be specified for
2595
+ # Network Load Balancing or Internal TCP/UDP Load Balancing, even though those
2596
+ # load balancers require a balancing mode of CONNECTION.
2485
2597
  # Corresponds to the JSON property `maxConnectionsPerEndpoint`
2486
2598
  # @return [Fixnum]
2487
2599
  attr_accessor :max_connections_per_endpoint
@@ -2492,11 +2604,11 @@ module Google
2492
2604
  # connections for the whole instance group. If the backend's balancingMode is
2493
2605
  # UTILIZATION, this is an optional parameter. If the backend's balancingMode is
2494
2606
  # CONNECTION, and backend is attached to a backend service whose
2495
- # loadBalancingScheme is EXTERNAL, you must specify either this parameter,
2496
- # maxConnections, or maxConnectionsPerEndpoint.
2497
- # Not available if the backend's balancingMode is RATE. Internal TCP/UDP load
2498
- # balancing does not support setting maxConnectionsPerInstance even though its
2499
- # backends require a balancing mode of CONNECTION.
2607
+ # loadBalancingScheme is EXTERNAL (except Network Load Balancing), you must
2608
+ # specify either this parameter, maxConnections, or maxConnectionsPerEndpoint.
2609
+ # Not available if the backend's balancingMode is RATE. Cannot be specified for
2610
+ # Network Load Balancing or Internal TCP/UDP Load Balancing, even though those
2611
+ # load balancers require a balancing mode of CONNECTION.
2500
2612
  # Corresponds to the JSON property `maxConnectionsPerInstance`
2501
2613
  # @return [Fixnum]
2502
2614
  attr_accessor :max_connections_per_instance
@@ -2711,12 +2823,17 @@ module Google
2711
2823
 
2712
2824
  # Negative caching allows per-status code TTLs to be set, in order to apply fine-
2713
2825
  # grained caching for common errors or redirects. This can reduce the load on
2714
- # your origin and improve end-user experience by reducing response latency. By
2715
- # default, Cloud CDN will apply the following default TTLs to these status codes:
2716
- # HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not
2717
- # Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method
2718
- # Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s These
2719
- # defaults can be overridden in negative_caching_policy
2826
+ # your origin and improve end-user experience by reducing response latency. When
2827
+ # the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative
2828
+ # caching applies to responses with the specified response code that lack any
2829
+ # Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is
2830
+ # set to FORCE_CACHE_ALL, negative caching applies to all responses with the
2831
+ # specified response code, and override any caching headers. By default, Cloud
2832
+ # CDN will apply the following default TTLs to these status codes: HTTP 300 (
2833
+ # Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found),
2834
+ # 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not
2835
+ # Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults
2836
+ # can be overridden in negative_caching_policy.
2720
2837
  # Corresponds to the JSON property `negativeCaching`
2721
2838
  # @return [Boolean]
2722
2839
  attr_accessor :negative_caching
@@ -2812,9 +2929,10 @@ module Google
2812
2929
  # @return [Fixnum]
2813
2930
  attr_accessor :code
2814
2931
 
2815
- # The TTL (in seconds) to cache responses with the corresponding status code for.
2816
- # The maximum allowed value is 1800s (30 minutes), noting that infrequently
2817
- # accessed objects may be evicted from the cache before the defined TTL.
2932
+ # The TTL (in seconds) for which to cache responses with the corresponding
2933
+ # status code. The maximum allowed value is 1800s (30 minutes), noting that
2934
+ # infrequently accessed objects may be evicted from the cache before the defined
2935
+ # TTL.
2818
2936
  # Corresponds to the JSON property `ttl`
2819
2937
  # @return [Fixnum]
2820
2938
  attr_accessor :ttl
@@ -2994,6 +3112,11 @@ module Google
2994
3112
  # @return [Google::Apis::ComputeBeta::ConnectionDraining]
2995
3113
  attr_accessor :connection_draining
2996
3114
 
3115
+ # Connection Tracking configuration for this BackendService.
3116
+ # Corresponds to the JSON property `connectionTrackingPolicy`
3117
+ # @return [Google::Apis::ComputeBeta::BackendServiceConnectionTrackingPolicy]
3118
+ attr_accessor :connection_tracking_policy
3119
+
2997
3120
  # This message defines settings for a consistent hash style load balancer.
2998
3121
  # Corresponds to the JSON property `consistentHash`
2999
3122
  # @return [Google::Apis::ComputeBeta::ConsistentHashLoadBalancerSettings]
@@ -3027,13 +3150,14 @@ module Google
3027
3150
  attr_accessor :enable_cdn
3028
3151
  alias_method :enable_cdn?, :enable_cdn
3029
3152
 
3030
- # Applicable only to Failover for Internal TCP/UDP Load Balancing. On failover
3031
- # or failback, this field indicates whether connection draining will be honored.
3032
- # GCP has a fixed connection draining timeout of 10 minutes. A setting of true
3033
- # terminates existing TCP connections to the active pool during failover and
3034
- # failback, immediately draining traffic. A setting of false allows existing TCP
3035
- # connections to persist, even on VMs no longer in the active pool, for up to
3036
- # the duration of the connection draining timeout (10 minutes).
3153
+ # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network
3154
+ # Load Balancing. On failover or failback, this field indicates whether
3155
+ # connection draining will be honored. GCP has a fixed connection draining
3156
+ # timeout of 10 minutes. A setting of true terminates existing TCP connections
3157
+ # to the active pool during failover and failback, immediately draining traffic.
3158
+ # A setting of false allows existing TCP connections to persist, even on VMs no
3159
+ # longer in the active pool, for up to the duration of the connection draining
3160
+ # timeout (10 minutes).
3037
3161
  # Corresponds to the JSON property `failoverPolicy`
3038
3162
  # @return [Google::Apis::ComputeBeta::BackendServiceFailoverPolicy]
3039
3163
  attr_accessor :failover_policy
@@ -3078,11 +3202,11 @@ module Google
3078
3202
  # @return [String]
3079
3203
  attr_accessor :kind
3080
3204
 
3081
- # Specifies the load balancer type. Choose EXTERNAL for load balancers that
3082
- # receive traffic from external clients. Choose INTERNAL for Internal TCP/UDP
3083
- # Load Balancing. Choose INTERNAL_MANAGED for Internal HTTP(S) Load Balancing.
3084
- # Choose INTERNAL_SELF_MANAGED for Traffic Director. A backend service created
3085
- # for one type of load balancing cannot be used with another. For more
3205
+ # Specifies the load balancer type. Choose EXTERNAL for external HTTP(S), SSL
3206
+ # Proxy, TCP Proxy and Network Load Balancing. Choose INTERNAL for Internal TCP/
3207
+ # UDP Load Balancing. Choose INTERNAL_MANAGED for Internal HTTP(S) Load
3208
+ # Balancing. INTERNAL_SELF_MANAGED for Traffic Director. A backend service
3209
+ # created for one type of load balancer cannot be used with another. For more
3086
3210
  # information, refer to Choosing a load balancer.
3087
3211
  # Corresponds to the JSON property `loadBalancingScheme`
3088
3212
  # @return [String]
@@ -3137,7 +3261,7 @@ module Google
3137
3261
  attr_accessor :name
3138
3262
 
3139
3263
  # The URL of the network to which this backend service belongs. This field can
3140
- # only be spcified when the load balancing scheme is set to INTERNAL.
3264
+ # only be specified when the load balancing scheme is set to INTERNAL.
3141
3265
  # Corresponds to the JSON property `network`
3142
3266
  # @return [String]
3143
3267
  attr_accessor :network
@@ -3158,11 +3282,12 @@ module Google
3158
3282
 
3159
3283
  # A named port on a backend instance group representing the port for
3160
3284
  # communication to the backend VMs in that group. Required when the
3161
- # loadBalancingScheme is EXTERNAL, INTERNAL_MANAGED, or INTERNAL_SELF_MANAGED
3162
- # and the backends are instance groups. The named port must be defined on each
3163
- # backend instance group. This parameter has no meaning if the backends are NEGs.
3164
- # Must be omitted when the loadBalancingScheme is INTERNAL (Internal TCP/UDP
3165
- # Load Balancing).
3285
+ # loadBalancingScheme is EXTERNAL (except Network Load Balancing),
3286
+ # INTERNAL_MANAGED, or INTERNAL_SELF_MANAGED and the backends are instance
3287
+ # groups. The named port must be defined on each backend instance group. This
3288
+ # parameter has no meaning if the backends are NEGs.
3289
+ # Backend services for Internal TCP/UDP Load Balancing and Network Load
3290
+ # Balancing require you omit port_name.
3166
3291
  # Corresponds to the JSON property `portName`
3167
3292
  # @return [String]
3168
3293
  attr_accessor :port_name
@@ -3202,11 +3327,12 @@ module Google
3202
3327
  # @return [String]
3203
3328
  attr_accessor :self_link
3204
3329
 
3205
- # Type of session affinity to use. The default is NONE. Session affinity is not
3206
- # applicable if the --protocol is UDP.
3207
- # When the loadBalancingScheme is EXTERNAL, possible values are NONE, CLIENT_IP,
3208
- # or GENERATED_COOKIE. You can use GENERATED_COOKIE if the protocol is HTTP or
3209
- # HTTPS.
3330
+ # Type of session affinity to use. The default is NONE.
3331
+ # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the
3332
+ # possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
3333
+ # * For all other load balancers that use loadBalancingScheme=EXTERNAL, the
3334
+ # possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use
3335
+ # GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
3210
3336
  # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP,
3211
3337
  # CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
3212
3338
  # When the loadBalancingScheme is INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED,
@@ -3236,6 +3362,7 @@ module Google
3236
3362
  @cdn_policy = args[:cdn_policy] if args.key?(:cdn_policy)
3237
3363
  @circuit_breakers = args[:circuit_breakers] if args.key?(:circuit_breakers)
3238
3364
  @connection_draining = args[:connection_draining] if args.key?(:connection_draining)
3365
+ @connection_tracking_policy = args[:connection_tracking_policy] if args.key?(:connection_tracking_policy)
3239
3366
  @consistent_hash = args[:consistent_hash] if args.key?(:consistent_hash)
3240
3367
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
3241
3368
  @custom_request_headers = args[:custom_request_headers] if args.key?(:custom_request_headers)
@@ -3457,12 +3584,17 @@ module Google
3457
3584
 
3458
3585
  # Negative caching allows per-status code TTLs to be set, in order to apply fine-
3459
3586
  # grained caching for common errors or redirects. This can reduce the load on
3460
- # your origin and improve end-user experience by reducing response latency. By
3461
- # default, Cloud CDN will apply the following default TTLs to these status codes:
3462
- # HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not
3463
- # Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method
3464
- # Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s These
3465
- # defaults can be overridden in negative_caching_policy
3587
+ # your origin and improve end-user experience by reducing response latency. When
3588
+ # the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative
3589
+ # caching applies to responses with the specified response code that lack any
3590
+ # Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is
3591
+ # set to FORCE_CACHE_ALL, negative caching applies to all responses with the
3592
+ # specified response code, and override any caching headers. By default, Cloud
3593
+ # CDN will apply the following default TTLs to these status codes: HTTP 300 (
3594
+ # Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found),
3595
+ # 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not
3596
+ # Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults
3597
+ # can be overridden in negative_caching_policy.
3466
3598
  # Corresponds to the JSON property `negativeCaching`
3467
3599
  # @return [Boolean]
3468
3600
  attr_accessor :negative_caching
@@ -3559,9 +3691,10 @@ module Google
3559
3691
  # @return [Fixnum]
3560
3692
  attr_accessor :code
3561
3693
 
3562
- # The TTL (in seconds) to cache responses with the corresponding status code for.
3563
- # The maximum allowed value is 1800s (30 minutes), noting that infrequently
3564
- # accessed objects may be evicted from the cache before the defined TTL.
3694
+ # The TTL (in seconds) for which to cache responses with the corresponding
3695
+ # status code. The maximum allowed value is 1800s (30 minutes), noting that
3696
+ # infrequently accessed objects may be evicted from the cache before the defined
3697
+ # TTL.
3565
3698
  # Corresponds to the JSON property `ttl`
3566
3699
  # @return [Fixnum]
3567
3700
  attr_accessor :ttl
@@ -3577,13 +3710,45 @@ module Google
3577
3710
  end
3578
3711
  end
3579
3712
 
3580
- # Applicable only to Failover for Internal TCP/UDP Load Balancing. On failover
3581
- # or failback, this field indicates whether connection draining will be honored.
3582
- # GCP has a fixed connection draining timeout of 10 minutes. A setting of true
3583
- # terminates existing TCP connections to the active pool during failover and
3584
- # failback, immediately draining traffic. A setting of false allows existing TCP
3585
- # connections to persist, even on VMs no longer in the active pool, for up to
3586
- # the duration of the connection draining timeout (10 minutes).
3713
+ # Connection Tracking configuration for this BackendService.
3714
+ class BackendServiceConnectionTrackingPolicy
3715
+ include Google::Apis::Core::Hashable
3716
+
3717
+ # Specifies connection persistence when backends are unhealthy. The default
3718
+ # value is DEFAULT_FOR_PROTOCOL.
3719
+ # If set to DEFAULT_FOR_PROTOCOL, the existing connections persist on unhealthy
3720
+ # backends only for connection-oriented protocols (TCP and SCTP) and only if the
3721
+ # Tracking Mode is PER_CONNECTION (default tracking mode) or the Session
3722
+ # Affinity is configured for 5-tuple. They do not persist for UDP.
3723
+ # If set to NEVER_PERSIST, after a backend becomes unhealthy, the existing
3724
+ # connections on the unhealthy backend are never persisted on the unhealthy
3725
+ # backend. They are always diverted to newly selected healthy backends (unless
3726
+ # all backends are unhealthy).
3727
+ # If set to ALWAYS_PERSIST, existing connections always persist on unhealthy
3728
+ # backends regardless of protocol and session affinity. It is generally not
3729
+ # recommended to use this mode overriding the default.
3730
+ # Corresponds to the JSON property `connectionPersistenceOnUnhealthyBackends`
3731
+ # @return [String]
3732
+ attr_accessor :connection_persistence_on_unhealthy_backends
3733
+
3734
+ def initialize(**args)
3735
+ update!(**args)
3736
+ end
3737
+
3738
+ # Update properties of this object
3739
+ def update!(**args)
3740
+ @connection_persistence_on_unhealthy_backends = args[:connection_persistence_on_unhealthy_backends] if args.key?(:connection_persistence_on_unhealthy_backends)
3741
+ end
3742
+ end
3743
+
3744
+ # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network
3745
+ # Load Balancing. On failover or failback, this field indicates whether
3746
+ # connection draining will be honored. GCP has a fixed connection draining
3747
+ # timeout of 10 minutes. A setting of true terminates existing TCP connections
3748
+ # to the active pool during failover and failback, immediately draining traffic.
3749
+ # A setting of false allows existing TCP connections to persist, even on VMs no
3750
+ # longer in the active pool, for up to the duration of the connection draining
3751
+ # timeout (10 minutes).
3587
3752
  class BackendServiceFailoverPolicy
3588
3753
  include Google::Apis::Core::Hashable
3589
3754
 
@@ -3594,22 +3759,21 @@ module Google
3594
3759
  attr_accessor :disable_connection_drain_on_failover
3595
3760
  alias_method :disable_connection_drain_on_failover?, :disable_connection_drain_on_failover
3596
3761
 
3597
- # Applicable only to Failover for Internal TCP/UDP Load Balancing. If set to
3598
- # true, connections to the load balancer are dropped when all primary and all
3599
- # backup backend VMs are unhealthy. If set to false, connections are distributed
3600
- # among all primary VMs when all primary and all backup backend VMs are
3601
- # unhealthy.
3602
- # The default is false.
3762
+ # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network
3763
+ # Load Balancing, If set to true, connections to the load balancer are dropped
3764
+ # when all primary and all backup backend VMs are unhealthy.If set to false,
3765
+ # connections are distributed among all primary VMs when all primary and all
3766
+ # backup backend VMs are unhealthy. The default is false.
3603
3767
  # Corresponds to the JSON property `dropTrafficIfUnhealthy`
3604
3768
  # @return [Boolean]
3605
3769
  attr_accessor :drop_traffic_if_unhealthy
3606
3770
  alias_method :drop_traffic_if_unhealthy?, :drop_traffic_if_unhealthy
3607
3771
 
3608
- # Applicable only to Failover for Internal TCP/UDP Load Balancing. The value of
3609
- # the field must be in the range [0, 1]. If the value is 0, the load balancer
3610
- # performs a failover when the number of healthy primary VMs equals zero. For
3611
- # all other values, the load balancer performs a failover when the total number
3612
- # of healthy primary VMs is less than this ratio.
3772
+ # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network
3773
+ # Load Balancing. The value of the field must be in the range [0, 1]. If the
3774
+ # value is 0, the load balancer performs a failover when the number of healthy
3775
+ # primary VMs equals zero. For all other values, the load balancer performs a
3776
+ # failover when the total number of healthy primary VMs is less than this ratio.
3613
3777
  # Corresponds to the JSON property `failoverRatio`
3614
3778
  # @return [Float]
3615
3779
  attr_accessor :failover_ratio
@@ -4214,8 +4378,7 @@ module Google
4214
4378
  class Binding
4215
4379
  include Google::Apis::Core::Hashable
4216
4380
 
4217
- # A client-specified ID for this binding. Expected to be globally unique to
4218
- # support the internal bindings-by-ID API.
4381
+ #
4219
4382
  # Corresponds to the JSON property `bindingId`
4220
4383
  # @return [String]
4221
4384
  attr_accessor :binding_id
@@ -6537,7 +6700,14 @@ module Google
6537
6700
  class DistributionPolicy
6538
6701
  include Google::Apis::Core::Hashable
6539
6702
 
6540
- # Zones where the regional managed instance group will create and manage
6703
+ # The distribution shape to which the group converges either proactively or on
6704
+ # resize events (depending on the value set in updatePolicy.
6705
+ # instanceRedistributionType).
6706
+ # Corresponds to the JSON property `targetShape`
6707
+ # @return [String]
6708
+ attr_accessor :target_shape
6709
+
6710
+ # Zones where the regional managed instance group will create and manage its
6541
6711
  # instances.
6542
6712
  # Corresponds to the JSON property `zones`
6543
6713
  # @return [Array<Google::Apis::ComputeBeta::DistributionPolicyZoneConfiguration>]
@@ -6549,6 +6719,7 @@ module Google
6549
6719
 
6550
6720
  # Update properties of this object
6551
6721
  def update!(**args)
6722
+ @target_shape = args[:target_shape] if args.key?(:target_shape)
6552
6723
  @zones = args[:zones] if args.key?(:zones)
6553
6724
  end
6554
6725
  end
@@ -7521,6 +7692,187 @@ module Google
7521
7692
  end
7522
7693
  end
7523
7694
 
7695
+ # Represents a rule that describes one or more match conditions along with the
7696
+ # action to be taken when traffic matches this condition (allow or deny).
7697
+ class FirewallPolicyRule
7698
+ include Google::Apis::Core::Hashable
7699
+
7700
+ # The Action to perform when the client connection triggers the rule. Can
7701
+ # currently be either "allow" or "deny()" where valid values for status are 403,
7702
+ # 404, and 502.
7703
+ # Corresponds to the JSON property `action`
7704
+ # @return [String]
7705
+ attr_accessor :action
7706
+
7707
+ # An optional description of this resource. Provide this property when you
7708
+ # create the resource.
7709
+ # Corresponds to the JSON property `description`
7710
+ # @return [String]
7711
+ attr_accessor :description
7712
+
7713
+ # The direction in which this rule applies.
7714
+ # Corresponds to the JSON property `direction`
7715
+ # @return [String]
7716
+ attr_accessor :direction
7717
+
7718
+ # Denotes whether the firewall policy rule is disabled. When set to true, the
7719
+ # firewall policy rule is not enforced and traffic behaves as if it did not
7720
+ # exist. If this is unspecified, the firewall policy rule will be enabled.
7721
+ # Corresponds to the JSON property `disabled`
7722
+ # @return [Boolean]
7723
+ attr_accessor :disabled
7724
+ alias_method :disabled?, :disabled
7725
+
7726
+ # Denotes whether to enable logging for a particular rule. If logging is enabled,
7727
+ # logs will be exported to the configured export destination in Stackdriver.
7728
+ # Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging
7729
+ # on "goto_next" rules.
7730
+ # Corresponds to the JSON property `enableLogging`
7731
+ # @return [Boolean]
7732
+ attr_accessor :enable_logging
7733
+ alias_method :enable_logging?, :enable_logging
7734
+
7735
+ # [Output only] Type of the resource. Always compute#firewallPolicyRule for
7736
+ # firewall policy rules
7737
+ # Corresponds to the JSON property `kind`
7738
+ # @return [String]
7739
+ attr_accessor :kind
7740
+
7741
+ # Represents a match condition that incoming traffic is evaluated against.
7742
+ # Exactly one field must be specified.
7743
+ # Corresponds to the JSON property `match`
7744
+ # @return [Google::Apis::ComputeBeta::FirewallPolicyRuleMatcher]
7745
+ attr_accessor :match
7746
+
7747
+ # An integer indicating the priority of a rule in the list. The priority must be
7748
+ # a positive value between 0 and 2147483647. Rules are evaluated from highest to
7749
+ # lowest priority where 0 is the highest priority and 2147483647 is the lowest
7750
+ # prority.
7751
+ # Corresponds to the JSON property `priority`
7752
+ # @return [Fixnum]
7753
+ attr_accessor :priority
7754
+
7755
+ # [Output Only] Calculation of the complexity of a single firewall policy rule.
7756
+ # Corresponds to the JSON property `ruleTupleCount`
7757
+ # @return [Fixnum]
7758
+ attr_accessor :rule_tuple_count
7759
+
7760
+ # A list of network resource URLs to which this rule applies. This field allows
7761
+ # you to control which network?s VMs get this rule. If this field is left blank,
7762
+ # all VMs within the organization will receive the rule.
7763
+ # Corresponds to the JSON property `targetResources`
7764
+ # @return [Array<String>]
7765
+ attr_accessor :target_resources
7766
+
7767
+ # A list of secure labels that controls which instances the firewall rule
7768
+ # applies to. If targetSecureLabel are specified, then the firewall rule applies
7769
+ # only to instances in the VPC network that have one of those secure labels.
7770
+ # targetSecureLabel may not be set at the same time as targetServiceAccounts. If
7771
+ # neither targetServiceAccounts nor targetSecureLabel are specified, the
7772
+ # firewall rule applies to all instances on the specified network. Maximum
7773
+ # number of target label values allowed is 256.
7774
+ # Corresponds to the JSON property `targetSecureLabels`
7775
+ # @return [Array<String>]
7776
+ attr_accessor :target_secure_labels
7777
+
7778
+ # A list of service accounts indicating the sets of instances that are applied
7779
+ # with this rule.
7780
+ # Corresponds to the JSON property `targetServiceAccounts`
7781
+ # @return [Array<String>]
7782
+ attr_accessor :target_service_accounts
7783
+
7784
+ def initialize(**args)
7785
+ update!(**args)
7786
+ end
7787
+
7788
+ # Update properties of this object
7789
+ def update!(**args)
7790
+ @action = args[:action] if args.key?(:action)
7791
+ @description = args[:description] if args.key?(:description)
7792
+ @direction = args[:direction] if args.key?(:direction)
7793
+ @disabled = args[:disabled] if args.key?(:disabled)
7794
+ @enable_logging = args[:enable_logging] if args.key?(:enable_logging)
7795
+ @kind = args[:kind] if args.key?(:kind)
7796
+ @match = args[:match] if args.key?(:match)
7797
+ @priority = args[:priority] if args.key?(:priority)
7798
+ @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
7799
+ @target_resources = args[:target_resources] if args.key?(:target_resources)
7800
+ @target_secure_labels = args[:target_secure_labels] if args.key?(:target_secure_labels)
7801
+ @target_service_accounts = args[:target_service_accounts] if args.key?(:target_service_accounts)
7802
+ end
7803
+ end
7804
+
7805
+ # Represents a match condition that incoming traffic is evaluated against.
7806
+ # Exactly one field must be specified.
7807
+ class FirewallPolicyRuleMatcher
7808
+ include Google::Apis::Core::Hashable
7809
+
7810
+ # CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is
7811
+ # 256.
7812
+ # Corresponds to the JSON property `destIpRanges`
7813
+ # @return [Array<String>]
7814
+ attr_accessor :dest_ip_ranges
7815
+
7816
+ # Pairs of IP protocols and ports that the rule should match.
7817
+ # Corresponds to the JSON property `layer4Configs`
7818
+ # @return [Array<Google::Apis::ComputeBeta::FirewallPolicyRuleMatcherLayer4Config>]
7819
+ attr_accessor :layer4_configs
7820
+
7821
+ # CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256.
7822
+ # Corresponds to the JSON property `srcIpRanges`
7823
+ # @return [Array<String>]
7824
+ attr_accessor :src_ip_ranges
7825
+
7826
+ # List of firewall label values, which should be matched at the source of the
7827
+ # traffic. Maximum number of source label values allowed is 256.
7828
+ # Corresponds to the JSON property `srcSecureLabels`
7829
+ # @return [Array<String>]
7830
+ attr_accessor :src_secure_labels
7831
+
7832
+ def initialize(**args)
7833
+ update!(**args)
7834
+ end
7835
+
7836
+ # Update properties of this object
7837
+ def update!(**args)
7838
+ @dest_ip_ranges = args[:dest_ip_ranges] if args.key?(:dest_ip_ranges)
7839
+ @layer4_configs = args[:layer4_configs] if args.key?(:layer4_configs)
7840
+ @src_ip_ranges = args[:src_ip_ranges] if args.key?(:src_ip_ranges)
7841
+ @src_secure_labels = args[:src_secure_labels] if args.key?(:src_secure_labels)
7842
+ end
7843
+ end
7844
+
7845
+ #
7846
+ class FirewallPolicyRuleMatcherLayer4Config
7847
+ include Google::Apis::Core::Hashable
7848
+
7849
+ # The IP protocol to which this rule applies. The protocol type is required when
7850
+ # creating a firewall rule. This value can either be one of the following well
7851
+ # known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP
7852
+ # protocol number.
7853
+ # Corresponds to the JSON property `ipProtocol`
7854
+ # @return [String]
7855
+ attr_accessor :ip_protocol
7856
+
7857
+ # An optional list of ports to which this rule applies. This field is only
7858
+ # applicable for UDP or TCP protocol. Each entry must be either an integer or a
7859
+ # range. If not specified, this rule applies to connections through any port.
7860
+ # Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
7861
+ # Corresponds to the JSON property `ports`
7862
+ # @return [Array<String>]
7863
+ attr_accessor :ports
7864
+
7865
+ def initialize(**args)
7866
+ update!(**args)
7867
+ end
7868
+
7869
+ # Update properties of this object
7870
+ def update!(**args)
7871
+ @ip_protocol = args[:ip_protocol] if args.key?(:ip_protocol)
7872
+ @ports = args[:ports] if args.key?(:ports)
7873
+ end
7874
+ end
7875
+
7524
7876
  # Encapsulates numeric value that can be either absolute or relative.
7525
7877
  class FixedOrPercent
7526
7878
  include Google::Apis::Core::Hashable
@@ -7584,29 +7936,36 @@ module Google
7584
7936
  # assigned. Methods for specifying an IP address:
7585
7937
  # * IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in https://www.
7586
7938
  # googleapis.com/compute/v1/projects/project_id/regions/region/addresses/address-
7587
- # name * Partial URL or by name, as in: * projects/project_id/regions/region/
7588
- # addresses/address-name * regions/region/addresses/address-name * global/
7589
- # addresses/address-name * address-name
7939
+ # name * Partial URL or by name, as in:
7940
+ # - projects/project_id/regions/region/addresses/address-name
7941
+ # - regions/region/addresses/address-name
7942
+ # - global/addresses/address-name
7943
+ # - address-name
7590
7944
  # The loadBalancingScheme and the forwarding rule's target determine the type of
7591
7945
  # IP address that you can use. For detailed information, refer to [IP address
7592
7946
  # specifications](/load-balancing/docs/forwarding-rule-concepts#
7593
7947
  # ip_address_specifications).
7594
7948
  # Must be set to `0.0.0.0` when the target is targetGrpcProxy that has
7595
7949
  # validateForProxyless field set to true.
7950
+ # For Private Service Connect forwarding rules that forward traffic to Google
7951
+ # APIs, IP address must be provided.
7596
7952
  # Corresponds to the JSON property `IPAddress`
7597
7953
  # @return [String]
7598
7954
  attr_accessor :ip_address
7599
7955
 
7600
- # The IP protocol to which this rule applies. For protocol forwarding, valid
7601
- # options are TCP, UDP, ESP, AH, SCTP or ICMP.
7602
- # For Internal TCP/UDP Load Balancing, the load balancing scheme is INTERNAL,
7603
- # and one of TCP or UDP are valid. For Traffic Director, the load balancing
7604
- # scheme is INTERNAL_SELF_MANAGED, and only TCPis valid. For Internal HTTP(S)
7605
- # Load Balancing, the load balancing scheme is INTERNAL_MANAGED, and only TCP is
7606
- # valid. For HTTP(S), SSL Proxy, and TCP Proxy Load Balancing, the load
7607
- # balancing scheme is EXTERNAL and only TCP is valid. For Network TCP/UDP Load
7608
- # Balancing, the load balancing scheme is EXTERNAL, and one of TCP or UDP is
7609
- # valid.
7956
+ # The IP protocol to which this rule applies.
7957
+ # For protocol forwarding, valid options are TCP, UDP, ESP, AH, SCTP and ICMP.
7958
+ # The valid IP protocols are different for different load balancing products:
7959
+ # - Internal TCP/UDP Load Balancing: The load balancing scheme is INTERNAL, and
7960
+ # one of TCP, UDP or ALL is valid.
7961
+ # - Traffic Director: The load balancing scheme is INTERNAL_SELF_MANAGED, and
7962
+ # only TCP is valid.
7963
+ # - Internal HTTP(S) Load Balancing: The load balancing scheme is
7964
+ # INTERNAL_MANAGED, and only TCP is valid.
7965
+ # - HTTP(S), SSL Proxy, and TCP Proxy Load Balancing: The load balancing scheme
7966
+ # is EXTERNAL and only TCP is valid.
7967
+ # - Network Load Balancing: The load balancing scheme is EXTERNAL, and one of
7968
+ # TCP or UDP is valid.
7610
7969
  # Corresponds to the JSON property `IPProtocol`
7611
7970
  # @return [String]
7612
7971
  attr_accessor :ip_protocol
@@ -7631,9 +7990,9 @@ module Google
7631
7990
  attr_accessor :allow_global_access
7632
7991
  alias_method :allow_global_access?, :allow_global_access
7633
7992
 
7634
- # This field is only used for INTERNAL load balancing.
7635
- # For internal load balancing, this field identifies the BackendService resource
7636
- # to receive the matched traffic.
7993
+ # Identifies the backend service to which the forwarding rule sends traffic.
7994
+ # Required for Internal TCP/UDP Load Balancing and Network Load Balancing; must
7995
+ # be omitted for all other load balancer types.
7637
7996
  # Corresponds to the JSON property `backendService`
7638
7997
  # @return [String]
7639
7998
  attr_accessor :backend_service
@@ -7715,13 +8074,12 @@ module Google
7715
8074
  # - EXTERNAL is used for:
7716
8075
  # - Classic Cloud VPN gateways
7717
8076
  # - Protocol forwarding to VMs from an external IP address
7718
- # - The following load balancers: HTTP(S), SSL Proxy, TCP Proxy, and Network TCP/
7719
- # UDP
8077
+ # - HTTP(S), SSL Proxy, TCP Proxy, and Network Load Balancing
7720
8078
  # - INTERNAL is used for:
7721
8079
  # - Protocol forwarding to VMs from an internal IP address
7722
- # - Internal TCP/UDP load balancers
8080
+ # - Internal TCP/UDP Load Balancing
7723
8081
  # - INTERNAL_MANAGED is used for:
7724
- # - Internal HTTP(S) load balancers
8082
+ # - Internal HTTP(S) Load Balancing
7725
8083
  # - INTERNAL_SELF_MANAGED is used for:
7726
8084
  # - Traffic Director
7727
8085
  # For more information about forwarding rules, refer to Forwarding rule concepts.
@@ -7760,9 +8118,11 @@ module Google
7760
8118
  attr_accessor :name
7761
8119
 
7762
8120
  # This field is not used for external load balancing.
7763
- # For internal load balancing, this field identifies the network that the load
7764
- # balanced IP should belong to for this Forwarding Rule. If this field is not
7765
- # specified, the default network will be used.
8121
+ # For Internal TCP/UDP Load Balancing, this field identifies the network that
8122
+ # the load balanced IP should belong to for this Forwarding Rule. If this field
8123
+ # is not specified, the default network will be used.
8124
+ # For Private Service Connect forwarding rules that forward traffic to Google
8125
+ # APIs, a network must be provided.
7766
8126
  # Corresponds to the JSON property `network`
7767
8127
  # @return [String]
7768
8128
  attr_accessor :network
@@ -7777,19 +8137,17 @@ module Google
7777
8137
  # @return [String]
7778
8138
  attr_accessor :network_tier
7779
8139
 
7780
- # When the load balancing scheme is EXTERNAL, INTERNAL_SELF_MANAGED and
7781
- # INTERNAL_MANAGED, you can specify a port_range. Use with a forwarding rule
7782
- # that points to a target proxy or a target pool. Do not use with a forwarding
7783
- # rule that points to a backend service. This field is used along with the
7784
- # target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy,
7785
- # TargetTcpProxy, TargetGrpcProxy, TargetVpnGateway, TargetPool, TargetInstance.
7786
- # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed
7787
- # to ports in the specified range will be forwarded to target. Forwarding rules
7788
- # with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
8140
+ # This field can be used only if: * Load balancing scheme is one of EXTERNAL,
8141
+ # INTERNAL_SELF_MANAGED or INTERNAL_MANAGED, and * IPProtocol is one of TCP, UDP,
8142
+ # or SCTP.
8143
+ # Packets addressed to ports in the specified range will be forwarded to target
8144
+ # or backend_service. You can only use one of ports, port_range, or allPorts.
8145
+ # The three are mutually exclusive. Forwarding rules with the same [IPAddress,
8146
+ # IPProtocol] pair must have disjoint port ranges.
7789
8147
  # Some types of forwarding target have constraints on the acceptable ports:
7790
8148
  # - TargetHttpProxy: 80, 8080
7791
8149
  # - TargetHttpsProxy: 443
7792
- # - TargetGrpcProxy: Any ports
8150
+ # - TargetGrpcProxy: no constraints
7793
8151
  # - TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688,
7794
8152
  # 1883, 5222
7795
8153
  # - TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688,
@@ -7799,16 +8157,17 @@ module Google
7799
8157
  # @return [String]
7800
8158
  attr_accessor :port_range
7801
8159
 
7802
- # This field is used along with the backend_service field for internal load
7803
- # balancing.
7804
- # When the load balancing scheme is INTERNAL, a list of ports can be configured,
7805
- # for example, ['80'], ['8000','9000']. Only packets addressed to these ports
7806
- # are forwarded to the backends configured with the forwarding rule.
7807
- # If the forwarding rule's loadBalancingScheme is INTERNAL, you can specify
7808
- # ports in one of the following ways:
7809
- # * A list of up to five ports, which can be non-contiguous * Keyword ALL, which
7810
- # causes the forwarding rule to forward traffic on any port of the forwarding
7811
- # rule's protocol.
8160
+ # The ports field is only supported when the forwarding rule references a
8161
+ # backend_service directly. Supported load balancing products are Internal TCP/
8162
+ # UDP Load Balancing and Network Load Balancing. Only packets addressed to the
8163
+ # specified list of ports are forwarded to backends.
8164
+ # You can only use one of ports and port_range, or allPorts. The three are
8165
+ # mutually exclusive.
8166
+ # You can specify a list of up to five ports, which can be non-contiguous.
8167
+ # For Internal TCP/UDP Load Balancing, if you specify allPorts, you should not
8168
+ # specify ports.
8169
+ # For more information, see [Port specifications](/load-balancing/docs/
8170
+ # forwarding-rule-concepts#port_specifications).
7812
8171
  # Corresponds to the JSON property `ports`
7813
8172
  # @return [Array<String>]
7814
8173
  attr_accessor :ports
@@ -7828,6 +8187,8 @@ module Google
7828
8187
 
7829
8188
  # Service Directory resources to register this forwarding rule with. Currently,
7830
8189
  # only supports a single Service Directory resource.
8190
+ # It is only supported for Internal TCP/UDP Load Balancing and Internal HTTP(S)
8191
+ # Load Balancing.
7831
8192
  # Corresponds to the JSON property `serviceDirectoryRegistrations`
7832
8193
  # @return [Array<Google::Apis::ComputeBeta::ForwardingRuleServiceDirectoryRegistration>]
7833
8194
  attr_accessor :service_directory_registrations
@@ -7867,6 +8228,15 @@ module Google
7867
8228
  # resource. The forwarded traffic must be of a type appropriate to the target
7868
8229
  # object. For more information, see the "Target" column in [Port specifications](
7869
8230
  # /load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).
8231
+ # For Private Service Connect forwarding rules that forward traffic to Google
8232
+ # APIs, provide the name of a supported Google API bundle. Currently, the
8233
+ # supported Google API bundles include:
8234
+ #
8235
+ # - vpc-sc - GCP APIs that support VPC Service Controls. For more information
8236
+ # about which APIs support VPC Service Controls, refer to VPC-SC supported
8237
+ # products and limitations.
8238
+ # - all-apis - All GCP APIs. For more information about which APIs are supported
8239
+ # with this bundle, refer to Private Google Access-specific domains and VIPs.
7870
8240
  # Corresponds to the JSON property `target`
7871
8241
  # @return [String]
7872
8242
  attr_accessor :target
@@ -8813,12 +9183,16 @@ module Google
8813
9183
  # Google Compute Engine has two Health Check resources:
8814
9184
  # * [Global](/compute/docs/reference/rest/`$api_version`/healthChecks) * [
8815
9185
  # Regional](/compute/docs/reference/rest/`$api_version`/regionHealthChecks)
8816
- # Internal HTTP(S) load balancers must use regional health checks. Internal TCP/
8817
- # UDP load balancers can use either regional or global health checks. All other
8818
- # types of GCP load balancers and managed instance group auto-healing must use
8819
- # global health checks. For more information, read Health Check Concepts.
8820
- # To perform health checks on network load balancers, you must use either
8821
- # httpHealthChecks or httpsHealthChecks.
9186
+ # Internal HTTP(S) load balancers must use regional health checks (`compute.v1.
9187
+ # regionHealthChecks`).
9188
+ # Traffic Director must use global health checks (`compute.v1.HealthChecks`).
9189
+ # Internal TCP/UDP load balancers can use either regional or global health
9190
+ # checks (`compute.v1.regionHealthChecks` or `compute.v1.HealthChecks`).
9191
+ # External HTTP(S), TCP proxy, and SSL proxy load balancers as well as managed
9192
+ # instance group auto-healing must use global health checks (`compute.v1.
9193
+ # HealthChecks`).
9194
+ # Network load balancers must use legacy HTTP health checks (httpHealthChecks).
9195
+ # For more information, see Health checks overview.
8822
9196
  class HealthCheck
8823
9197
  include Google::Apis::Core::Hashable
8824
9198
 
@@ -9644,6 +10018,16 @@ module Google
9644
10018
  # @return [Fixnum]
9645
10019
  attr_accessor :port
9646
10020
 
10021
+ #
10022
+ # Corresponds to the JSON property `weight`
10023
+ # @return [String]
10024
+ attr_accessor :weight
10025
+
10026
+ #
10027
+ # Corresponds to the JSON property `weightError`
10028
+ # @return [String]
10029
+ attr_accessor :weight_error
10030
+
9647
10031
  def initialize(**args)
9648
10032
  update!(**args)
9649
10033
  end
@@ -9655,6 +10039,8 @@ module Google
9655
10039
  @instance = args[:instance] if args.key?(:instance)
9656
10040
  @ip_address = args[:ip_address] if args.key?(:ip_address)
9657
10041
  @port = args[:port] if args.key?(:port)
10042
+ @weight = args[:weight] if args.key?(:weight)
10043
+ @weight_error = args[:weight_error] if args.key?(:weight_error)
9658
10044
  end
9659
10045
  end
9660
10046
 
@@ -11418,6 +11804,15 @@ module Google
11418
11804
  class Instance
11419
11805
  include Google::Apis::Core::Hashable
11420
11806
 
11807
+ # Specifies options for controlling advanced machine features. Options that
11808
+ # would traditionally be configured in a BIOS belong here. Features that require
11809
+ # operating system support may have corresponding entries in the GuestOsFeatures
11810
+ # of an Image (e.g., whether or not the OS in the Image supports nested
11811
+ # virtualization being enabled or disabled).
11812
+ # Corresponds to the JSON property `advancedMachineFeatures`
11813
+ # @return [Google::Apis::ComputeBeta::AdvancedMachineFeatures]
11814
+ attr_accessor :advanced_machine_features
11815
+
11421
11816
  # Allows this instance to send and receive packets with non-matching destination
11422
11817
  # or source IPs. This is required if you plan to use this instance to forward
11423
11818
  # routes. For more information, see Enabling IP Forwarding.
@@ -11690,6 +12085,7 @@ module Google
11690
12085
 
11691
12086
  # Update properties of this object
11692
12087
  def update!(**args)
12088
+ @advanced_machine_features = args[:advanced_machine_features] if args.key?(:advanced_machine_features)
11693
12089
  @can_ip_forward = args[:can_ip_forward] if args.key?(:can_ip_forward)
11694
12090
  @confidential_instance_config = args[:confidential_instance_config] if args.key?(:confidential_instance_config)
11695
12091
  @cpu_platform = args[:cpu_platform] if args.key?(:cpu_platform)
@@ -12263,8 +12659,8 @@ module Google
12263
12659
  # @return [String]
12264
12660
  attr_accessor :description
12265
12661
 
12266
- # Policy specifying intended distribution of instances in regional managed
12267
- # instance group.
12662
+ # Policy specifying the intended distribution of managed instances across zones
12663
+ # in a regional managed instance group.
12268
12664
  # Corresponds to the JSON property `distributionPolicy`
12269
12665
  # @return [Google::Apis::ComputeBeta::DistributionPolicy]
12270
12666
  attr_accessor :distribution_policy
@@ -12299,7 +12695,9 @@ module Google
12299
12695
 
12300
12696
  # The URL of the instance template that is specified for this managed instance
12301
12697
  # group. The group uses this template to create all new instances in the managed
12302
- # instance group.
12698
+ # instance group. The templates for existing instances in the group do not
12699
+ # change unless you run recreateInstances, run applyUpdatesToInstances, or set
12700
+ # the group's updatePolicy.type to PROACTIVE.
12303
12701
  # Corresponds to the JSON property `instanceTemplate`
12304
12702
  # @return [String]
12305
12703
  attr_accessor :instance_template
@@ -12322,15 +12720,6 @@ module Google
12322
12720
  # @return [Array<Google::Apis::ComputeBeta::NamedPort>]
12323
12721
  attr_accessor :named_ports
12324
12722
 
12325
- # [Deprecated] This field is deprecated and will be removed. Prefer using the
12326
- # status field instead. Please contact cloud-updater-feedback@google.com to
12327
- # leave feedback if your workload relies on this field. [Output Only] The list
12328
- # of instance actions and the number of instances in this managed instance group
12329
- # that are pending for each of those actions.
12330
- # Corresponds to the JSON property `pendingActions`
12331
- # @return [Google::Apis::ComputeBeta::InstanceGroupManagerPendingActionsSummary]
12332
- attr_accessor :pending_actions
12333
-
12334
12723
  # [Output Only] The URL of the region where the managed instance group resides (
12335
12724
  # for regional resources).
12336
12725
  # Corresponds to the JSON property `region`
@@ -12392,7 +12781,7 @@ module Google
12392
12781
  # @return [Array<Google::Apis::ComputeBeta::InstanceGroupManagerVersion>]
12393
12782
  attr_accessor :versions
12394
12783
 
12395
- # [Output Only] The URL of the zone where the managed instance group is located (
12784
+ # [Output Only] The URL of a zone where the managed instance group is located (
12396
12785
  # for zonal resources).
12397
12786
  # Corresponds to the JSON property `zone`
12398
12787
  # @return [String]
@@ -12418,7 +12807,6 @@ module Google
12418
12807
  @kind = args[:kind] if args.key?(:kind)
12419
12808
  @name = args[:name] if args.key?(:name)
12420
12809
  @named_ports = args[:named_ports] if args.key?(:named_ports)
12421
- @pending_actions = args[:pending_actions] if args.key?(:pending_actions)
12422
12810
  @region = args[:region] if args.key?(:region)
12423
12811
  @self_link = args[:self_link] if args.key?(:self_link)
12424
12812
  @service_account = args[:service_account] if args.key?(:service_account)
@@ -12792,55 +13180,6 @@ module Google
12792
13180
  end
12793
13181
  end
12794
13182
 
12795
- #
12796
- class InstanceGroupManagerPendingActionsSummary
12797
- include Google::Apis::Core::Hashable
12798
-
12799
- # [Deprecated] This field is deprecated and will be removed. Prefer using the
12800
- # status field instead. Please contact cloud-updater-feedback@google.com to
12801
- # leave feedback if your workload relies on this field. [Output Only] The number
12802
- # of instances in the managed instance group that are pending to be created.
12803
- # Corresponds to the JSON property `creating`
12804
- # @return [Fixnum]
12805
- attr_accessor :creating
12806
-
12807
- # [Deprecated] This field is deprecated and will be removed. Prefer using the
12808
- # status field instead. Please contact cloud-updater-feedback@google.com to
12809
- # leave feedback if your workload relies on this field. [Output Only] The number
12810
- # of instances in the managed instance group that are pending to be deleted.
12811
- # Corresponds to the JSON property `deleting`
12812
- # @return [Fixnum]
12813
- attr_accessor :deleting
12814
-
12815
- # [Deprecated] This field is deprecated and will be removed. Prefer using the
12816
- # status field instead. Please contact cloud-updater-feedback@google.com to
12817
- # leave feedback if your workload relies on this field. [Output Only] The number
12818
- # of instances in the managed instance group that are pending to be recreated.
12819
- # Corresponds to the JSON property `recreating`
12820
- # @return [Fixnum]
12821
- attr_accessor :recreating
12822
-
12823
- # [Deprecated] This field is deprecated and will be removed. Prefer using the
12824
- # status field instead. Please contact cloud-updater-feedback@google.com to
12825
- # leave feedback if your workload relies on this field. [Output Only] The number
12826
- # of instances in the managed instance group that are pending to be restarted.
12827
- # Corresponds to the JSON property `restarting`
12828
- # @return [Fixnum]
12829
- attr_accessor :restarting
12830
-
12831
- def initialize(**args)
12832
- update!(**args)
12833
- end
12834
-
12835
- # Update properties of this object
12836
- def update!(**args)
12837
- @creating = args[:creating] if args.key?(:creating)
12838
- @deleting = args[:deleting] if args.key?(:deleting)
12839
- @recreating = args[:recreating] if args.key?(:recreating)
12840
- @restarting = args[:restarting] if args.key?(:restarting)
12841
- end
12842
- end
12843
-
12844
13183
  #
12845
13184
  class InstanceGroupManagerStatus
12846
13185
  include Google::Apis::Core::Hashable
@@ -13048,7 +13387,11 @@ module Google
13048
13387
 
13049
13388
  # The URL of the instance template that is specified for this managed instance
13050
13389
  # group. The group uses this template to create new instances in the managed
13051
- # instance group until the `targetSize` for this version is reached.
13390
+ # instance group until the `targetSize` for this version is reached. The
13391
+ # templates for existing instances in the group do not change unless you run
13392
+ # recreateInstances, run applyUpdatesToInstances, or set the group's
13393
+ # updatePolicy.type to PROACTIVE; in those cases, existing instances are updated
13394
+ # until the `targetSize` for this version is reached.
13052
13395
  # Corresponds to the JSON property `instanceTemplate`
13053
13396
  # @return [String]
13054
13397
  attr_accessor :instance_template
@@ -13567,7 +13910,9 @@ module Google
13567
13910
 
13568
13911
  # The URL of the instance template that is specified for this managed instance
13569
13912
  # group. The group uses this template to create all new instances in the managed
13570
- # instance group.
13913
+ # instance group. The templates for existing instances in the group do not
13914
+ # change unless you run recreateInstances, run applyUpdatesToInstances, or set
13915
+ # the group's updatePolicy.type to PROACTIVE.
13571
13916
  # Corresponds to the JSON property `instanceTemplate`
13572
13917
  # @return [String]
13573
13918
  attr_accessor :instance_template
@@ -14305,6 +14650,15 @@ module Google
14305
14650
  class InstanceProperties
14306
14651
  include Google::Apis::Core::Hashable
14307
14652
 
14653
+ # Specifies options for controlling advanced machine features. Options that
14654
+ # would traditionally be configured in a BIOS belong here. Features that require
14655
+ # operating system support may have corresponding entries in the GuestOsFeatures
14656
+ # of an Image (e.g., whether or not the OS in the Image supports nested
14657
+ # virtualization being enabled or disabled).
14658
+ # Corresponds to the JSON property `advancedMachineFeatures`
14659
+ # @return [Google::Apis::ComputeBeta::AdvancedMachineFeatures]
14660
+ attr_accessor :advanced_machine_features
14661
+
14308
14662
  # Enables instances created based on these properties to send packets with
14309
14663
  # source IP addresses other than their own and receive packets with destination
14310
14664
  # IP addresses other than their own. If these instances will be used as an IP
@@ -14424,6 +14778,7 @@ module Google
14424
14778
 
14425
14779
  # Update properties of this object
14426
14780
  def update!(**args)
14781
+ @advanced_machine_features = args[:advanced_machine_features] if args.key?(:advanced_machine_features)
14427
14782
  @can_ip_forward = args[:can_ip_forward] if args.key?(:can_ip_forward)
14428
14783
  @confidential_instance_config = args[:confidential_instance_config] if args.key?(:confidential_instance_config)
14429
14784
  @description = args[:description] if args.key?(:description)
@@ -14722,6 +15077,11 @@ module Google
14722
15077
  class InstancesGetEffectiveFirewallsResponse
14723
15078
  include Google::Apis::Core::Hashable
14724
15079
 
15080
+ # Effective firewalls from firewall policies.
15081
+ # Corresponds to the JSON property `firewallPolicys`
15082
+ # @return [Array<Google::Apis::ComputeBeta::InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy>]
15083
+ attr_accessor :firewall_policys
15084
+
14725
15085
  # Effective firewalls on the instance.
14726
15086
  # Corresponds to the JSON property `firewalls`
14727
15087
  # @return [Array<Google::Apis::ComputeBeta::Firewall>]
@@ -14738,11 +15098,49 @@ module Google
14738
15098
 
14739
15099
  # Update properties of this object
14740
15100
  def update!(**args)
15101
+ @firewall_policys = args[:firewall_policys] if args.key?(:firewall_policys)
14741
15102
  @firewalls = args[:firewalls] if args.key?(:firewalls)
14742
15103
  @organization_firewalls = args[:organization_firewalls] if args.key?(:organization_firewalls)
14743
15104
  end
14744
15105
  end
14745
15106
 
15107
+ #
15108
+ class InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
15109
+ include Google::Apis::Core::Hashable
15110
+
15111
+ # [Output Only] The display name of the firewall policy.
15112
+ # Corresponds to the JSON property `displayName`
15113
+ # @return [String]
15114
+ attr_accessor :display_name
15115
+
15116
+ # [Output Only] The name of the firewall policy.
15117
+ # Corresponds to the JSON property `name`
15118
+ # @return [String]
15119
+ attr_accessor :name
15120
+
15121
+ # The rules that apply to the network.
15122
+ # Corresponds to the JSON property `rules`
15123
+ # @return [Array<Google::Apis::ComputeBeta::FirewallPolicyRule>]
15124
+ attr_accessor :rules
15125
+
15126
+ # [Output Only] The type of the firewall policy.
15127
+ # Corresponds to the JSON property `type`
15128
+ # @return [String]
15129
+ attr_accessor :type
15130
+
15131
+ def initialize(**args)
15132
+ update!(**args)
15133
+ end
15134
+
15135
+ # Update properties of this object
15136
+ def update!(**args)
15137
+ @display_name = args[:display_name] if args.key?(:display_name)
15138
+ @name = args[:name] if args.key?(:name)
15139
+ @rules = args[:rules] if args.key?(:rules)
15140
+ @type = args[:type] if args.key?(:type)
15141
+ end
15142
+ end
15143
+
14746
15144
  # A pruned SecurityPolicy containing ID and any applicable firewall rules.
14747
15145
  class InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy
14748
15146
  include Google::Apis::Core::Hashable
@@ -15381,6 +15779,11 @@ module Google
15381
15779
  # @return [String]
15382
15780
  attr_accessor :customer_router_ip_address
15383
15781
 
15782
+ # [Output Only] Dataplane version for this InterconnectAttachment.
15783
+ # Corresponds to the JSON property `dataplaneVersion`
15784
+ # @return [Fixnum]
15785
+ attr_accessor :dataplane_version
15786
+
15384
15787
  # An optional description of this resource.
15385
15788
  # Corresponds to the JSON property `description`
15386
15789
  # @return [String]
@@ -15444,6 +15847,13 @@ module Google
15444
15847
  # @return [Hash<String,String>]
15445
15848
  attr_accessor :labels
15446
15849
 
15850
+ # Maximum Transmission Unit (MTU), in bytes, of packets passing through this
15851
+ # interconnect attachment. Only 1440 and 1500 are allowed. If not specified, the
15852
+ # value will default to 1440.
15853
+ # Corresponds to the JSON property `mtu`
15854
+ # @return [Fixnum]
15855
+ attr_accessor :mtu
15856
+
15447
15857
  # Name of the resource. Provided by the client when the resource is created. The
15448
15858
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
15449
15859
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -15562,6 +15972,7 @@ module Google
15562
15972
  @cloud_router_ip_address = args[:cloud_router_ip_address] if args.key?(:cloud_router_ip_address)
15563
15973
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
15564
15974
  @customer_router_ip_address = args[:customer_router_ip_address] if args.key?(:customer_router_ip_address)
15975
+ @dataplane_version = args[:dataplane_version] if args.key?(:dataplane_version)
15565
15976
  @description = args[:description] if args.key?(:description)
15566
15977
  @edge_availability_domain = args[:edge_availability_domain] if args.key?(:edge_availability_domain)
15567
15978
  @google_reference_id = args[:google_reference_id] if args.key?(:google_reference_id)
@@ -15570,6 +15981,7 @@ module Google
15570
15981
  @kind = args[:kind] if args.key?(:kind)
15571
15982
  @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
15572
15983
  @labels = args[:labels] if args.key?(:labels)
15984
+ @mtu = args[:mtu] if args.key?(:mtu)
15573
15985
  @name = args[:name] if args.key?(:name)
15574
15986
  @operational_status = args[:operational_status] if args.key?(:operational_status)
15575
15987
  @pairing_key = args[:pairing_key] if args.key?(:pairing_key)
@@ -18502,8 +18914,9 @@ module Google
18502
18914
  # Represents a collection of network endpoints.
18503
18915
  # A network endpoint group (NEG) defines how a set of endpoints should be
18504
18916
  # reached, whether they are reachable, and where they are located. For more
18505
- # information about using NEGs, see Setting up internet NEGs, Setting up zonal
18506
- # NEGs, or Setting up serverless NEGs. (== resource_for `$api_version`.
18917
+ # information about using NEGs, see Setting up external HTTP(S) Load Balancing
18918
+ # with internet NEGs, Setting up zonal NEGs, or Setting up external HTTP(S)
18919
+ # Load Balancing with serverless NEGs. (== resource_for `$api_version`.
18507
18920
  # networkEndpointGroups ==) (== resource_for `$api_version`.
18508
18921
  # globalNetworkEndpointGroups ==) (== resource_for `$api_version`.
18509
18922
  # regionNetworkEndpointGroups ==)
@@ -18788,7 +19201,7 @@ module Google
18788
19201
  include Google::Apis::Core::Hashable
18789
19202
 
18790
19203
  # Optional serving service.
18791
- # The service name must be 1-63 characters long, and comply with RFC1035.
19204
+ # The service name is case-sensitive and must be 1-63 characters long.
18792
19205
  # Example value: "default", "my-service".
18793
19206
  # Corresponds to the JSON property `service`
18794
19207
  # @return [String]
@@ -18806,7 +19219,7 @@ module Google
18806
19219
  attr_accessor :url_mask
18807
19220
 
18808
19221
  # Optional serving version.
18809
- # The version must be 1-63 characters long, and comply with RFC1035.
19222
+ # The version name is case-sensitive and must be 1-100 characters long.
18810
19223
  # Example value: "v1", "v2".
18811
19224
  # Corresponds to the JSON property `version`
18812
19225
  # @return [String]
@@ -19445,6 +19858,11 @@ module Google
19445
19858
  # @return [String]
19446
19859
  attr_accessor :network_ip
19447
19860
 
19861
+ # The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.
19862
+ # Corresponds to the JSON property `nicType`
19863
+ # @return [String]
19864
+ attr_accessor :nic_type
19865
+
19448
19866
  # The URL of the Subnetwork resource for this instance. If the network resource
19449
19867
  # is in legacy mode, do not specify this field. If the network is in auto subnet
19450
19868
  # mode, specifying the subnetwork is optional. If the network is in custom
@@ -19472,6 +19890,7 @@ module Google
19472
19890
  @name = args[:name] if args.key?(:name)
19473
19891
  @network = args[:network] if args.key?(:network)
19474
19892
  @network_ip = args[:network_ip] if args.key?(:network_ip)
19893
+ @nic_type = args[:nic_type] if args.key?(:nic_type)
19475
19894
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
19476
19895
  end
19477
19896
  end
@@ -19778,6 +20197,11 @@ module Google
19778
20197
  class NetworksGetEffectiveFirewallsResponse
19779
20198
  include Google::Apis::Core::Hashable
19780
20199
 
20200
+ # Effective firewalls from firewall policy.
20201
+ # Corresponds to the JSON property `firewallPolicys`
20202
+ # @return [Array<Google::Apis::ComputeBeta::NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy>]
20203
+ attr_accessor :firewall_policys
20204
+
19781
20205
  # Effective firewalls on the network.
19782
20206
  # Corresponds to the JSON property `firewalls`
19783
20207
  # @return [Array<Google::Apis::ComputeBeta::Firewall>]
@@ -19794,11 +20218,49 @@ module Google
19794
20218
 
19795
20219
  # Update properties of this object
19796
20220
  def update!(**args)
20221
+ @firewall_policys = args[:firewall_policys] if args.key?(:firewall_policys)
19797
20222
  @firewalls = args[:firewalls] if args.key?(:firewalls)
19798
20223
  @organization_firewalls = args[:organization_firewalls] if args.key?(:organization_firewalls)
19799
20224
  end
19800
20225
  end
19801
20226
 
20227
+ #
20228
+ class NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy
20229
+ include Google::Apis::Core::Hashable
20230
+
20231
+ # [Output Only] The display name of the firewall policy.
20232
+ # Corresponds to the JSON property `displayName`
20233
+ # @return [String]
20234
+ attr_accessor :display_name
20235
+
20236
+ # [Output Only] The name of the firewall policy.
20237
+ # Corresponds to the JSON property `name`
20238
+ # @return [String]
20239
+ attr_accessor :name
20240
+
20241
+ # The rules that apply to the network.
20242
+ # Corresponds to the JSON property `rules`
20243
+ # @return [Array<Google::Apis::ComputeBeta::FirewallPolicyRule>]
20244
+ attr_accessor :rules
20245
+
20246
+ # [Output Only] The type of the firewall policy.
20247
+ # Corresponds to the JSON property `type`
20248
+ # @return [String]
20249
+ attr_accessor :type
20250
+
20251
+ def initialize(**args)
20252
+ update!(**args)
20253
+ end
20254
+
20255
+ # Update properties of this object
20256
+ def update!(**args)
20257
+ @display_name = args[:display_name] if args.key?(:display_name)
20258
+ @name = args[:name] if args.key?(:name)
20259
+ @rules = args[:rules] if args.key?(:rules)
20260
+ @type = args[:type] if args.key?(:type)
20261
+ end
20262
+ end
20263
+
19802
20264
  # A pruned SecurityPolicy containing ID and any applicable firewall rules.
19803
20265
  class NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy
19804
20266
  include Google::Apis::Core::Hashable
@@ -19916,6 +20378,12 @@ module Google
19916
20378
  # @return [String]
19917
20379
  attr_accessor :maintenance_policy
19918
20380
 
20381
+ # Time window specified for daily maintenance operations. GCE's internal
20382
+ # maintenance will be performed within this window.
20383
+ # Corresponds to the JSON property `maintenanceWindow`
20384
+ # @return [Google::Apis::ComputeBeta::NodeGroupMaintenanceWindow]
20385
+ attr_accessor :maintenance_window
20386
+
19919
20387
  # The name of the resource, provided by the client when initially creating the
19920
20388
  # resource. The resource name must be 1-63 characters long, and comply with
19921
20389
  # RFC1035. Specifically, the name must be 1-63 characters long and match the
@@ -19966,6 +20434,7 @@ module Google
19966
20434
  @id = args[:id] if args.key?(:id)
19967
20435
  @kind = args[:kind] if args.key?(:kind)
19968
20436
  @maintenance_policy = args[:maintenance_policy] if args.key?(:maintenance_policy)
20437
+ @maintenance_window = args[:maintenance_window] if args.key?(:maintenance_window)
19969
20438
  @name = args[:name] if args.key?(:name)
19970
20439
  @node_template = args[:node_template] if args.key?(:node_template)
19971
20440
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -20250,6 +20719,37 @@ module Google
20250
20719
  end
20251
20720
  end
20252
20721
 
20722
+ # Time window specified for daily maintenance operations. GCE's internal
20723
+ # maintenance will be performed within this window.
20724
+ class NodeGroupMaintenanceWindow
20725
+ include Google::Apis::Core::Hashable
20726
+
20727
+ # A Duration represents a fixed-length span of time represented as a count of
20728
+ # seconds and fractions of seconds at nanosecond resolution. It is independent
20729
+ # of any calendar and concepts like "day" or "month". Range is approximately 10,
20730
+ # 000 years.
20731
+ # Corresponds to the JSON property `maintenanceDuration`
20732
+ # @return [Google::Apis::ComputeBeta::Duration]
20733
+ attr_accessor :maintenance_duration
20734
+
20735
+ # Start time of the window. This must be in UTC format that resolves to one of
20736
+ # 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:
20737
+ # 00 are valid.
20738
+ # Corresponds to the JSON property `startTime`
20739
+ # @return [String]
20740
+ attr_accessor :start_time
20741
+
20742
+ def initialize(**args)
20743
+ update!(**args)
20744
+ end
20745
+
20746
+ # Update properties of this object
20747
+ def update!(**args)
20748
+ @maintenance_duration = args[:maintenance_duration] if args.key?(:maintenance_duration)
20749
+ @start_time = args[:start_time] if args.key?(:start_time)
20750
+ end
20751
+ end
20752
+
20253
20753
  #
20254
20754
  class NodeGroupNode
20255
20755
  include Google::Apis::Core::Hashable
@@ -22837,6 +23337,12 @@ module Google
22837
23337
  # @return [Array<String>]
22838
23338
  attr_accessor :cidr_ranges
22839
23339
 
23340
+ # Direction of traffic to mirror, either INGRESS, EGRESS, or BOTH. The default
23341
+ # is BOTH.
23342
+ # Corresponds to the JSON property `direction`
23343
+ # @return [String]
23344
+ attr_accessor :direction
23345
+
22840
23346
  def initialize(**args)
22841
23347
  update!(**args)
22842
23348
  end
@@ -22845,6 +23351,7 @@ module Google
22845
23351
  def update!(**args)
22846
23352
  @ip_protocols = args[:ip_protocols] if args.key?(:ip_protocols)
22847
23353
  @cidr_ranges = args[:cidr_ranges] if args.key?(:cidr_ranges)
23354
+ @direction = args[:direction] if args.key?(:direction)
22848
23355
  end
22849
23356
  end
22850
23357
 
@@ -26677,8 +27184,8 @@ module Google
26677
27184
  # @return [String]
26678
27185
  attr_accessor :description
26679
27186
 
26680
- # The destination range of outgoing packets that this route applies to. Only
26681
- # IPv4 is supported.
27187
+ # The destination range of outgoing packets that this route applies to. Both
27188
+ # IPv4 and IPv6 are supported.
26682
27189
  # Corresponds to the JSON property `destRange`
26683
27190
  # @return [String]
26684
27191
  attr_accessor :dest_range
@@ -26717,8 +27224,9 @@ module Google
26717
27224
  attr_accessor :next_hop_gateway
26718
27225
 
26719
27226
  # The URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should
26720
- # handle matching packets. You can only specify the forwarding rule as a partial
26721
- # or full URL. For example, the following are all valid URLs:
27227
+ # handle matching packets or the IP address of the forwarding Rule. For example,
27228
+ # the following are all valid URLs:
27229
+ # - 10.128.0.56
26722
27230
  # - https://www.googleapis.com/compute/v1/projects/project/regions/region/
26723
27231
  # forwardingRules/forwardingRule
26724
27232
  # - regions/region/forwardingRules/forwardingRule
@@ -27671,6 +28179,12 @@ module Google
27671
28179
  # @return [Array<String>]
27672
28180
  attr_accessor :drain_nat_ips
27673
28181
 
28182
+ #
28183
+ # Corresponds to the JSON property `enableEndpointIndependentMapping`
28184
+ # @return [Boolean]
28185
+ attr_accessor :enable_endpoint_independent_mapping
28186
+ alias_method :enable_endpoint_independent_mapping?, :enable_endpoint_independent_mapping
28187
+
27674
28188
  # Timeout (in seconds) for ICMP connections. Defaults to 30s if not set.
27675
28189
  # Corresponds to the JSON property `icmpIdleTimeoutSec`
27676
28190
  # @return [Fixnum]
@@ -27756,6 +28270,7 @@ module Google
27756
28270
  # Update properties of this object
27757
28271
  def update!(**args)
27758
28272
  @drain_nat_ips = args[:drain_nat_ips] if args.key?(:drain_nat_ips)
28273
+ @enable_endpoint_independent_mapping = args[:enable_endpoint_independent_mapping] if args.key?(:enable_endpoint_independent_mapping)
27759
28274
  @icmp_idle_timeout_sec = args[:icmp_idle_timeout_sec] if args.key?(:icmp_idle_timeout_sec)
27760
28275
  @log_config = args[:log_config] if args.key?(:log_config)
27761
28276
  @min_ports_per_vm = args[:min_ports_per_vm] if args.key?(:min_ports_per_vm)
@@ -28411,6 +28926,41 @@ module Google
28411
28926
  end
28412
28927
  end
28413
28928
 
28929
+ #
28930
+ class ScalingScheduleStatus
28931
+ include Google::Apis::Core::Hashable
28932
+
28933
+ # [Output Only] The last time the scaling schedule became active. Note: this is
28934
+ # a timestamp when a schedule actually became active, not when it was planned to
28935
+ # do so. The timestamp is in RFC3339 text format.
28936
+ # Corresponds to the JSON property `lastStartTime`
28937
+ # @return [String]
28938
+ attr_accessor :last_start_time
28939
+
28940
+ # [Output Only] The next time the scaling schedule is to become active. Note:
28941
+ # this is a timestamp when a schedule is planned to run, but the actual time
28942
+ # might be slightly different. The timestamp is in RFC3339 text format.
28943
+ # Corresponds to the JSON property `nextStartTime`
28944
+ # @return [String]
28945
+ attr_accessor :next_start_time
28946
+
28947
+ # [Output Only] The current state of a scaling schedule.
28948
+ # Corresponds to the JSON property `state`
28949
+ # @return [String]
28950
+ attr_accessor :state
28951
+
28952
+ def initialize(**args)
28953
+ update!(**args)
28954
+ end
28955
+
28956
+ # Update properties of this object
28957
+ def update!(**args)
28958
+ @last_start_time = args[:last_start_time] if args.key?(:last_start_time)
28959
+ @next_start_time = args[:next_start_time] if args.key?(:next_start_time)
28960
+ @state = args[:state] if args.key?(:state)
28961
+ end
28962
+ end
28963
+
28414
28964
  # Sets the scheduling options for an Instance. NextID: 13
28415
28965
  class Scheduling
28416
28966
  include Google::Apis::Core::Hashable
@@ -28426,6 +28976,12 @@ module Google
28426
28976
  attr_accessor :automatic_restart
28427
28977
  alias_method :automatic_restart?, :automatic_restart
28428
28978
 
28979
+ # An opaque location hint used to place the instance close to other resources.
28980
+ # This field is for use by internal tools that use the public API.
28981
+ # Corresponds to the JSON property `locationHint`
28982
+ # @return [String]
28983
+ attr_accessor :location_hint
28984
+
28429
28985
  # The minimum number of virtual CPUs this instance will consume when running on
28430
28986
  # a sole-tenant node.
28431
28987
  # Corresponds to the JSON property `minNodeCpus`
@@ -28462,6 +29018,7 @@ module Google
28462
29018
  # Update properties of this object
28463
29019
  def update!(**args)
28464
29020
  @automatic_restart = args[:automatic_restart] if args.key?(:automatic_restart)
29021
+ @location_hint = args[:location_hint] if args.key?(:location_hint)
28465
29022
  @min_node_cpus = args[:min_node_cpus] if args.key?(:min_node_cpus)
28466
29023
  @node_affinities = args[:node_affinities] if args.key?(:node_affinities)
28467
29024
  @on_host_maintenance = args[:on_host_maintenance] if args.key?(:on_host_maintenance)
@@ -28566,13 +29123,18 @@ module Google
28566
29123
  end
28567
29124
  end
28568
29125
 
28569
- # Represents a Cloud Armor Security Policy resource.
29126
+ # Represents a Google Cloud Armor security policy resource.
28570
29127
  # Only external backend services that use load balancers can reference a
28571
- # Security Policy. For more information, read Cloud Armor Security Policy
28572
- # Concepts. (== resource_for `$api_version`.securityPolicies ==)
29128
+ # security policy. For more information, see Google Cloud Armor security policy
29129
+ # overview. (== resource_for `$api_version`.securityPolicies ==)
28573
29130
  class SecurityPolicy
28574
29131
  include Google::Apis::Core::Hashable
28575
29132
 
29133
+ # Configuration options for Cloud Armor Adaptive Protection (CAAP).
29134
+ # Corresponds to the JSON property `adaptiveProtectionConfig`
29135
+ # @return [Google::Apis::ComputeBeta::SecurityPolicyAdaptiveProtectionConfig]
29136
+ attr_accessor :adaptive_protection_config
29137
+
28576
29138
  # A list of associations that belong to this policy.
28577
29139
  # Corresponds to the JSON property `associations`
28578
29140
  # @return [Array<Google::Apis::ComputeBeta::SecurityPolicyAssociation>]
@@ -28592,11 +29154,11 @@ module Google
28592
29154
  # User-provided name of the Organization security plicy. The name should be
28593
29155
  # unique in the organization in which the security policy is created. This
28594
29156
  # should only be used when SecurityPolicyType is FIREWALL. The name must be 1-63
28595
- # characters long, and comply with RFC1035. Specifically, the name must be 1-63
28596
- # characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
28597
- # which means the first character must be a lowercase letter, and all following
28598
- # characters must be a dash, lowercase letter, or digit, except the last
28599
- # character, which cannot be a dash.
29157
+ # characters long, and comply with https://www.ietf.org/rfc/rfc1035.txt.
29158
+ # Specifically, the name must be 1-63 characters long and match the regular
29159
+ # expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
29160
+ # be a lowercase letter, and all following characters must be a dash, lowercase
29161
+ # letter, or digit, except the last character, which cannot be a dash.
28600
29162
  # Corresponds to the JSON property `displayName`
28601
29163
  # @return [String]
28602
29164
  attr_accessor :display_name
@@ -28694,6 +29256,7 @@ module Google
28694
29256
 
28695
29257
  # Update properties of this object
28696
29258
  def update!(**args)
29259
+ @adaptive_protection_config = args[:adaptive_protection_config] if args.key?(:adaptive_protection_config)
28697
29260
  @associations = args[:associations] if args.key?(:associations)
28698
29261
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
28699
29262
  @description = args[:description] if args.key?(:description)
@@ -28713,6 +29276,52 @@ module Google
28713
29276
  end
28714
29277
  end
28715
29278
 
29279
+ # Configuration options for Cloud Armor Adaptive Protection (CAAP).
29280
+ class SecurityPolicyAdaptiveProtectionConfig
29281
+ include Google::Apis::Core::Hashable
29282
+
29283
+ # Configuration options for L7 DDoS detection.
29284
+ # Corresponds to the JSON property `layer7DdosDefenseConfig`
29285
+ # @return [Google::Apis::ComputeBeta::SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig]
29286
+ attr_accessor :layer7_ddos_defense_config
29287
+
29288
+ def initialize(**args)
29289
+ update!(**args)
29290
+ end
29291
+
29292
+ # Update properties of this object
29293
+ def update!(**args)
29294
+ @layer7_ddos_defense_config = args[:layer7_ddos_defense_config] if args.key?(:layer7_ddos_defense_config)
29295
+ end
29296
+ end
29297
+
29298
+ # Configuration options for L7 DDoS detection.
29299
+ class SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig
29300
+ include Google::Apis::Core::Hashable
29301
+
29302
+ # If set to true, enables CAAP for L7 DDoS detection.
29303
+ # Corresponds to the JSON property `enable`
29304
+ # @return [Boolean]
29305
+ attr_accessor :enable
29306
+ alias_method :enable?, :enable
29307
+
29308
+ # Rule visibility can be one of the following: STANDARD - opaque rules. (default)
29309
+ # PREMIUM - transparent rules.
29310
+ # Corresponds to the JSON property `ruleVisibility`
29311
+ # @return [String]
29312
+ attr_accessor :rule_visibility
29313
+
29314
+ def initialize(**args)
29315
+ update!(**args)
29316
+ end
29317
+
29318
+ # Update properties of this object
29319
+ def update!(**args)
29320
+ @enable = args[:enable] if args.key?(:enable)
29321
+ @rule_visibility = args[:rule_visibility] if args.key?(:rule_visibility)
29322
+ end
29323
+ end
29324
+
28716
29325
  #
28717
29326
  class SecurityPolicyAssociation
28718
29327
  include Google::Apis::Core::Hashable
@@ -28936,11 +29545,18 @@ module Google
28936
29545
  # An integer indicating the priority of a rule in the list. The priority must be
28937
29546
  # a positive value between 0 and 2147483647. Rules are evaluated from highest to
28938
29547
  # lowest priority where 0 is the highest priority and 2147483647 is the lowest
28939
- # prority.
29548
+ # priority.
28940
29549
  # Corresponds to the JSON property `priority`
28941
29550
  # @return [Fixnum]
28942
29551
  attr_accessor :priority
28943
29552
 
29553
+ # Identifier for the rule. This is only unique within the given security policy.
29554
+ # This can only be set during rule creation, if rule number is not specified it
29555
+ # will be generated by the server.
29556
+ # Corresponds to the JSON property `ruleNumber`
29557
+ # @return [Fixnum]
29558
+ attr_accessor :rule_number
29559
+
28944
29560
  # [Output Only] Calculation of the complexity of a single firewall security
28945
29561
  # policy rule.
28946
29562
  # Corresponds to the JSON property `ruleTupleCount`
@@ -28975,6 +29591,7 @@ module Google
28975
29591
  @match = args[:match] if args.key?(:match)
28976
29592
  @preview = args[:preview] if args.key?(:preview)
28977
29593
  @priority = args[:priority] if args.key?(:priority)
29594
+ @rule_number = args[:rule_number] if args.key?(:rule_number)
28978
29595
  @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
28979
29596
  @target_resources = args[:target_resources] if args.key?(:target_resources)
28980
29597
  @target_service_accounts = args[:target_service_accounts] if args.key?(:target_service_accounts)
@@ -30640,10 +31257,10 @@ module Google
30640
31257
  end
30641
31258
  end
30642
31259
 
30643
- # Represents a Cloud Armor Security Policy resource.
30644
- # Only external backend services used by HTTP or HTTPS load balancers can
30645
- # reference a Security Policy. For more information, read read Cloud Armor
30646
- # Security Policy Concepts. (== resource_for `$api_version`.sslPolicies ==)
31260
+ # Represents an SSL Policy resource.
31261
+ # Use SSL policies to control the SSL features, such as versions and cipher
31262
+ # suites, offered by an HTTPS or SSL Proxy load balancer. For more information,
31263
+ # read SSL Policy Concepts. (== resource_for `$api_version`.sslPolicies ==)
30647
31264
  class SslPolicy
30648
31265
  include Google::Apis::Core::Hashable
30649
31266
 
@@ -31062,12 +31679,14 @@ module Google
31062
31679
  # @return [String]
31063
31680
  attr_accessor :self_link
31064
31681
 
31065
- # [Output Only] The state of the subnetwork, which can be one of READY or
31066
- # DRAINING. A subnetwork that is READY is ready to be used. The state of
31067
- # DRAINING is only applicable to subnetworks that have the purpose set to
31682
+ # [Output Only] The state of the subnetwork, which can be one of the following
31683
+ # values: READY: Subnetwork is created and ready to use DRAINING: only
31684
+ # applicable to subnetworks that have the purpose set to
31068
31685
  # INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the load
31069
31686
  # balancer are being drained. A subnetwork that is draining cannot be used or
31070
- # modified until it reaches a status of READY.
31687
+ # modified until it reaches a status of READY CREATING: Subnetwork is
31688
+ # provisioning DELETING: Subnetwork is being deleted UPDATING: Subnetwork is
31689
+ # being updated
31071
31690
  # Corresponds to the JSON property `state`
31072
31691
  # @return [String]
31073
31692
  attr_accessor :state
@@ -32048,9 +32667,14 @@ module Google
32048
32667
  # @return [String]
32049
32668
  attr_accessor :name
32050
32669
 
32051
- # This field only applies when the loadBalancingScheme is INTERNAL_SELF_MANAGED.
32052
- # When set to true the Envoy binds on the IP address specified by the forwarding
32053
- # rule. Default is false.
32670
+ # This field only applies when the forwarding rule that references this target
32671
+ # proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED.
32672
+ # When this field is set to true, Envoy proxies set up inbound traffic
32673
+ # interception and bind to the IP address and port specified in the forwarding
32674
+ # rule. This is generally useful when using Traffic Director to configure Envoy
32675
+ # as a gateway or middle proxy (in other words, not a sidecar proxy). The Envoy
32676
+ # proxy listens for inbound requests and handles requests when it receives them.
32677
+ # The default is false.
32054
32678
  # Corresponds to the JSON property `proxyBind`
32055
32679
  # @return [Boolean]
32056
32680
  attr_accessor :proxy_bind
@@ -32549,9 +33173,14 @@ module Google
32549
33173
  # @return [String]
32550
33174
  attr_accessor :name
32551
33175
 
32552
- # This field only applies when the loadBalancingScheme is INTERNAL_SELF_MANAGED.
32553
- # When set to true the Envoy binds on the IP address specified by the forwarding
32554
- # rule. Default is false.
33176
+ # This field only applies when the forwarding rule that references this target
33177
+ # proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED.
33178
+ # When this field is set to true, Envoy proxies set up inbound traffic
33179
+ # interception and bind to the IP address and port specified in the forwarding
33180
+ # rule. This is generally useful when using Traffic Director to configure Envoy
33181
+ # as a gateway or middle proxy (in other words, not a sidecar proxy). The Envoy
33182
+ # proxy listens for inbound requests and handles requests when it receives them.
33183
+ # The default is false.
32555
33184
  # Corresponds to the JSON property `proxyBind`
32556
33185
  # @return [Boolean]
32557
33186
  attr_accessor :proxy_bind
@@ -33320,9 +33949,9 @@ module Google
33320
33949
  class TargetPool
33321
33950
  include Google::Apis::Core::Hashable
33322
33951
 
33323
- # This field is applicable only when the containing target pool is serving a
33324
- # forwarding rule as the primary pool, and its failoverRatio field is properly
33325
- # set to a value between [0, 1].
33952
+ # The server-defined URL for the resource. This field is applicable only when
33953
+ # the containing target pool is serving a forwarding rule as the primary pool,
33954
+ # and its failoverRatio field is properly set to a value between [0, 1].
33326
33955
  # backupPool and failoverRatio together define the fallback behavior of the
33327
33956
  # primary target pool: if the ratio of the healthy instances in the primary pool
33328
33957
  # is at or below failoverRatio, traffic arriving at the load-balanced IP will be
@@ -34248,6 +34877,19 @@ module Google
34248
34877
  # @return [String]
34249
34878
  attr_accessor :name
34250
34879
 
34880
+ # This field only applies when the forwarding rule that references this target
34881
+ # proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED.
34882
+ # When this field is set to true, Envoy proxies set up inbound traffic
34883
+ # interception and bind to the IP address and port specified in the forwarding
34884
+ # rule. This is generally useful when using Traffic Director to configure Envoy
34885
+ # as a gateway or middle proxy (in other words, not a sidecar proxy). The Envoy
34886
+ # proxy listens for inbound requests and handles requests when it receives them.
34887
+ # The default is false.
34888
+ # Corresponds to the JSON property `proxyBind`
34889
+ # @return [Boolean]
34890
+ attr_accessor :proxy_bind
34891
+ alias_method :proxy_bind?, :proxy_bind
34892
+
34251
34893
  # Specifies the type of proxy header to append before sending data to the
34252
34894
  # backend, either NONE or PROXY_V1. The default is NONE.
34253
34895
  # Corresponds to the JSON property `proxyHeader`
@@ -34275,6 +34917,7 @@ module Google
34275
34917
  @id = args[:id] if args.key?(:id)
34276
34918
  @kind = args[:kind] if args.key?(:kind)
34277
34919
  @name = args[:name] if args.key?(:name)
34920
+ @proxy_bind = args[:proxy_bind] if args.key?(:proxy_bind)
34278
34921
  @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
34279
34922
  @self_link = args[:self_link] if args.key?(:self_link)
34280
34923
  @service = args[:service] if args.key?(:service)