google-api-client 0.51.0 → 0.52.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (218) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/release-please.yml +23 -45
  3. data/CHANGELOG.md +100 -0
  4. data/README.md +2 -2
  5. data/generated/google/apis/admin_datatransfer_v1.rb +2 -2
  6. data/generated/google/apis/admin_datatransfer_v1/classes.rb +6 -16
  7. data/generated/google/apis/admin_datatransfer_v1/service.rb +3 -3
  8. data/generated/google/apis/admin_directory_v1.rb +2 -2
  9. data/generated/google/apis/admin_directory_v1/classes.rb +453 -321
  10. data/generated/google/apis/admin_directory_v1/representations.rb +15 -15
  11. data/generated/google/apis/admin_directory_v1/service.rb +323 -183
  12. data/generated/google/apis/admin_reports_v1.rb +2 -2
  13. data/generated/google/apis/admin_reports_v1/classes.rb +48 -43
  14. data/generated/google/apis/admin_reports_v1/service.rb +198 -179
  15. data/generated/google/apis/alertcenter_v1beta1.rb +1 -1
  16. data/generated/google/apis/analytics_v3/service.rb +1 -1
  17. data/generated/google/apis/analyticsadmin_v1alpha.rb +1 -1
  18. data/generated/google/apis/analyticsadmin_v1alpha/classes.rb +2 -2
  19. data/generated/google/apis/analyticsadmin_v1alpha/service.rb +5 -12
  20. data/generated/google/apis/analyticsdata_v1alpha.rb +1 -1
  21. data/generated/google/apis/analyticsdata_v1alpha/classes.rb +11 -11
  22. data/generated/google/apis/androidmanagement_v1.rb +1 -1
  23. data/generated/google/apis/apigateway_v1beta.rb +1 -1
  24. data/generated/google/apis/apigateway_v1beta/classes.rb +3 -9
  25. data/generated/google/apis/apigateway_v1beta/representations.rb +0 -1
  26. data/generated/google/apis/apigee_v1.rb +1 -1
  27. data/generated/google/apis/apigee_v1/classes.rb +71 -0
  28. data/generated/google/apis/apigee_v1/representations.rb +42 -0
  29. data/generated/google/apis/apigee_v1/service.rb +206 -0
  30. data/generated/google/apis/appengine_v1.rb +1 -1
  31. data/generated/google/apis/appengine_v1/classes.rb +7 -0
  32. data/generated/google/apis/appengine_v1/representations.rb +1 -0
  33. data/generated/google/apis/artifactregistry_v1beta1.rb +1 -1
  34. data/generated/google/apis/artifactregistry_v1beta1/classes.rb +2 -2
  35. data/generated/google/apis/artifactregistry_v1beta1/service.rb +4 -1
  36. data/generated/google/apis/artifactregistry_v1beta2.rb +1 -1
  37. data/generated/google/apis/artifactregistry_v1beta2/classes.rb +2 -2
  38. data/generated/google/apis/artifactregistry_v1beta2/service.rb +4 -1
  39. data/generated/google/apis/cloudasset_v1.rb +1 -1
  40. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  41. data/generated/google/apis/cloudbuild_v1alpha1.rb +1 -1
  42. data/generated/google/apis/cloudbuild_v1alpha2.rb +1 -1
  43. data/generated/google/apis/cloudfunctions_v1.rb +1 -1
  44. data/generated/google/apis/cloudfunctions_v1/classes.rb +6 -0
  45. data/generated/google/apis/cloudfunctions_v1/representations.rb +1 -0
  46. data/generated/google/apis/cloudidentity_v1.rb +1 -1
  47. data/generated/google/apis/cloudidentity_v1/classes.rb +240 -0
  48. data/generated/google/apis/cloudidentity_v1/representations.rb +125 -0
  49. data/generated/google/apis/cloudidentity_v1/service.rb +202 -2
  50. data/generated/google/apis/cloudidentity_v1beta1.rb +1 -1
  51. data/generated/google/apis/cloudidentity_v1beta1/service.rb +8 -2
  52. data/generated/google/apis/cloudkms_v1.rb +1 -1
  53. data/generated/google/apis/cloudkms_v1/classes.rb +0 -6
  54. data/generated/google/apis/cloudkms_v1/representations.rb +0 -1
  55. data/generated/google/apis/cloudscheduler_v1beta1.rb +1 -1
  56. data/generated/google/apis/cloudscheduler_v1beta1/classes.rb +19 -0
  57. data/generated/google/apis/cloudscheduler_v1beta1/representations.rb +2 -0
  58. data/generated/google/apis/cloudscheduler_v1beta1/service.rb +12 -2
  59. data/generated/google/apis/cloudtasks_v2beta2.rb +1 -1
  60. data/generated/google/apis/cloudtasks_v2beta2/classes.rb +59 -0
  61. data/generated/google/apis/cloudtasks_v2beta2/representations.rb +19 -0
  62. data/generated/google/apis/cloudtasks_v2beta3.rb +1 -1
  63. data/generated/google/apis/cloudtasks_v2beta3/classes.rb +102 -0
  64. data/generated/google/apis/cloudtasks_v2beta3/representations.rb +35 -0
  65. data/generated/google/apis/cloudtasks_v2beta3/service.rb +16 -2
  66. data/generated/google/apis/composer_v1beta1.rb +1 -1
  67. data/generated/google/apis/composer_v1beta1/classes.rb +64 -0
  68. data/generated/google/apis/composer_v1beta1/representations.rb +18 -0
  69. data/generated/google/apis/compute_alpha.rb +1 -1
  70. data/generated/google/apis/compute_alpha/classes.rb +1071 -341
  71. data/generated/google/apis/compute_alpha/representations.rb +248 -19
  72. data/generated/google/apis/compute_alpha/service.rb +291 -15
  73. data/generated/google/apis/compute_beta.rb +1 -1
  74. data/generated/google/apis/compute_beta/classes.rb +926 -283
  75. data/generated/google/apis/compute_beta/representations.rb +221 -18
  76. data/generated/google/apis/compute_beta/service.rb +24 -15
  77. data/generated/google/apis/compute_v1.rb +1 -1
  78. data/generated/google/apis/compute_v1/classes.rb +419 -158
  79. data/generated/google/apis/compute_v1/representations.rb +55 -0
  80. data/generated/google/apis/compute_v1/service.rb +9 -7
  81. data/generated/google/apis/container_v1.rb +1 -1
  82. data/generated/google/apis/container_v1/classes.rb +48 -9
  83. data/generated/google/apis/container_v1/representations.rb +17 -0
  84. data/generated/google/apis/container_v1/service.rb +4 -2
  85. data/generated/google/apis/container_v1beta1.rb +1 -1
  86. data/generated/google/apis/container_v1beta1/classes.rb +24 -13
  87. data/generated/google/apis/container_v1beta1/representations.rb +2 -0
  88. data/generated/google/apis/container_v1beta1/service.rb +6 -2
  89. data/generated/google/apis/content_v2_1.rb +1 -1
  90. data/generated/google/apis/content_v2_1/classes.rb +16 -7
  91. data/generated/google/apis/content_v2_1/representations.rb +1 -0
  92. data/generated/google/apis/datamigration_v1beta1.rb +1 -1
  93. data/generated/google/apis/datamigration_v1beta1/classes.rb +0 -6
  94. data/generated/google/apis/datamigration_v1beta1/representations.rb +0 -1
  95. data/generated/google/apis/deploymentmanager_alpha.rb +6 -5
  96. data/generated/google/apis/deploymentmanager_alpha/classes.rb +276 -644
  97. data/generated/google/apis/deploymentmanager_alpha/representations.rb +10 -143
  98. data/generated/google/apis/deploymentmanager_alpha/service.rb +247 -398
  99. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  100. data/generated/google/apis/deploymentmanager_v2/service.rb +5 -25
  101. data/generated/google/apis/deploymentmanager_v2beta.rb +1 -1
  102. data/generated/google/apis/deploymentmanager_v2beta/service.rb +8 -40
  103. data/generated/google/apis/dialogflow_v2.rb +1 -1
  104. data/generated/google/apis/dialogflow_v2/classes.rb +692 -0
  105. data/generated/google/apis/dialogflow_v2/representations.rb +326 -0
  106. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  107. data/generated/google/apis/dialogflow_v2beta1/classes.rb +692 -0
  108. data/generated/google/apis/dialogflow_v2beta1/representations.rb +326 -0
  109. data/generated/google/apis/{bigqueryreservation_v1alpha2.rb → dialogflow_v3.rb} +13 -12
  110. data/generated/google/apis/dialogflow_v3/classes.rb +8943 -0
  111. data/generated/google/apis/dialogflow_v3/representations.rb +3773 -0
  112. data/generated/google/apis/dialogflow_v3/service.rb +3006 -0
  113. data/generated/google/apis/dialogflow_v3beta1.rb +1 -1
  114. data/generated/google/apis/dialogflow_v3beta1/classes.rb +784 -0
  115. data/generated/google/apis/dialogflow_v3beta1/representations.rb +360 -0
  116. data/generated/google/apis/dialogflow_v3beta1/service.rb +173 -0
  117. data/generated/google/apis/dlp_v2.rb +1 -1
  118. data/generated/google/apis/dlp_v2/service.rb +294 -1
  119. data/generated/google/apis/dns_v1.rb +1 -1
  120. data/generated/google/apis/dns_v1/classes.rb +65 -0
  121. data/generated/google/apis/dns_v1/representations.rb +32 -0
  122. data/generated/google/apis/documentai_v1beta2.rb +1 -1
  123. data/generated/google/apis/documentai_v1beta2/classes.rb +220 -102
  124. data/generated/google/apis/documentai_v1beta2/representations.rb +105 -9
  125. data/generated/google/apis/documentai_v1beta3.rb +1 -1
  126. data/generated/google/apis/documentai_v1beta3/classes.rb +241 -117
  127. data/generated/google/apis/documentai_v1beta3/representations.rb +105 -9
  128. data/generated/google/apis/documentai_v1beta3/service.rb +81 -2
  129. data/generated/google/apis/eventarc_v1beta1.rb +1 -1
  130. data/generated/google/apis/eventarc_v1beta1/classes.rb +8 -9
  131. data/generated/google/apis/eventarc_v1beta1/service.rb +25 -5
  132. data/generated/google/apis/file_v1.rb +1 -1
  133. data/generated/google/apis/file_v1/classes.rb +61 -0
  134. data/generated/google/apis/file_v1/representations.rb +19 -0
  135. data/generated/google/apis/genomics_v2alpha1.rb +1 -1
  136. data/generated/google/apis/genomics_v2alpha1/classes.rb +11 -7
  137. data/generated/google/apis/healthcare_v1.rb +1 -1
  138. data/generated/google/apis/healthcare_v1/classes.rb +0 -6
  139. data/generated/google/apis/healthcare_v1/representations.rb +0 -1
  140. data/generated/google/apis/healthcare_v1/service.rb +13 -12
  141. data/generated/google/apis/healthcare_v1beta1.rb +1 -1
  142. data/generated/google/apis/healthcare_v1beta1/classes.rb +45 -19
  143. data/generated/google/apis/healthcare_v1beta1/representations.rb +3 -1
  144. data/generated/google/apis/healthcare_v1beta1/service.rb +37 -37
  145. data/generated/google/apis/iap_v1.rb +1 -1
  146. data/generated/google/apis/iap_v1/classes.rb +0 -6
  147. data/generated/google/apis/iap_v1/representations.rb +0 -1
  148. data/generated/google/apis/iap_v1beta1.rb +1 -1
  149. data/generated/google/apis/iap_v1beta1/classes.rb +0 -6
  150. data/generated/google/apis/iap_v1beta1/representations.rb +0 -1
  151. data/generated/google/apis/metastore_v1beta.rb +35 -0
  152. data/generated/google/apis/metastore_v1beta/classes.rb +1151 -0
  153. data/generated/google/apis/metastore_v1beta/representations.rb +479 -0
  154. data/generated/google/apis/metastore_v1beta/service.rb +800 -0
  155. data/generated/google/apis/ml_v1.rb +1 -1
  156. data/generated/google/apis/ml_v1/classes.rb +51 -18
  157. data/generated/google/apis/ml_v1/representations.rb +16 -0
  158. data/generated/google/apis/monitoring_v3.rb +1 -1
  159. data/generated/google/apis/monitoring_v3/classes.rb +8 -4
  160. data/generated/google/apis/privateca_v1beta1.rb +1 -1
  161. data/generated/google/apis/privateca_v1beta1/classes.rb +2 -1
  162. data/generated/google/apis/prod_tt_sasportal_v1alpha1.rb +1 -1
  163. data/generated/google/apis/prod_tt_sasportal_v1alpha1/classes.rb +37 -0
  164. data/generated/google/apis/prod_tt_sasportal_v1alpha1/representations.rb +18 -0
  165. data/generated/google/apis/recommender_v1beta1.rb +1 -1
  166. data/generated/google/apis/recommender_v1beta1/service.rb +317 -0
  167. data/generated/google/apis/redis_v1.rb +1 -1
  168. data/generated/google/apis/redis_v1/classes.rb +2 -2
  169. data/generated/google/apis/redis_v1beta1.rb +1 -1
  170. data/generated/google/apis/redis_v1beta1/classes.rb +2 -2
  171. data/generated/google/apis/safebrowsing_v4.rb +1 -1
  172. data/generated/google/apis/safebrowsing_v4/classes.rb +277 -277
  173. data/generated/google/apis/safebrowsing_v4/representations.rb +128 -128
  174. data/generated/google/apis/safebrowsing_v4/service.rb +44 -44
  175. data/generated/google/apis/searchconsole_v1.rb +1 -1
  176. data/generated/google/apis/searchconsole_v1/classes.rb +7 -0
  177. data/generated/google/apis/searchconsole_v1/representations.rb +1 -0
  178. data/generated/google/apis/serviceconsumermanagement_v1beta1.rb +1 -1
  179. data/generated/google/apis/serviceconsumermanagement_v1beta1/classes.rb +11 -10
  180. data/generated/google/apis/servicecontrol_v1.rb +3 -3
  181. data/generated/google/apis/servicecontrol_v1/service.rb +2 -2
  182. data/generated/google/apis/servicecontrol_v2.rb +3 -3
  183. data/generated/google/apis/servicecontrol_v2/service.rb +2 -2
  184. data/generated/google/apis/servicedirectory_v1.rb +35 -0
  185. data/generated/google/apis/servicedirectory_v1/classes.rb +721 -0
  186. data/generated/google/apis/servicedirectory_v1/representations.rb +304 -0
  187. data/generated/google/apis/servicedirectory_v1/service.rb +957 -0
  188. data/generated/google/apis/servicenetworking_v1.rb +1 -1
  189. data/generated/google/apis/servicenetworking_v1/classes.rb +1 -1
  190. data/generated/google/apis/servicenetworking_v1beta.rb +1 -1
  191. data/generated/google/apis/servicenetworking_v1beta/classes.rb +1 -1
  192. data/generated/google/apis/serviceusage_v1.rb +1 -1
  193. data/generated/google/apis/serviceusage_v1/classes.rb +11 -10
  194. data/generated/google/apis/serviceusage_v1beta1.rb +1 -1
  195. data/generated/google/apis/serviceusage_v1beta1/classes.rb +11 -10
  196. data/generated/google/apis/slides_v1.rb +1 -1
  197. data/generated/google/apis/slides_v1/classes.rb +9 -3
  198. data/generated/google/apis/speech_v1p1beta1.rb +1 -1
  199. data/generated/google/apis/speech_v1p1beta1/classes.rb +0 -22
  200. data/generated/google/apis/speech_v1p1beta1/representations.rb +0 -2
  201. data/generated/google/apis/testing_v1.rb +1 -1
  202. data/generated/google/apis/testing_v1/classes.rb +1 -1
  203. data/generated/google/apis/trafficdirector_v2.rb +2 -2
  204. data/generated/google/apis/trafficdirector_v2/service.rb +1 -1
  205. data/generated/google/apis/transcoder_v1beta1.rb +1 -1
  206. data/generated/google/apis/transcoder_v1beta1/classes.rb +12 -2
  207. data/generated/google/apis/transcoder_v1beta1/representations.rb +1 -0
  208. data/generated/google/apis/translate_v3.rb +1 -1
  209. data/generated/google/apis/translate_v3/classes.rb +1 -1
  210. data/generated/google/apis/translate_v3beta1.rb +1 -1
  211. data/generated/google/apis/translate_v3beta1/classes.rb +1 -1
  212. data/generated/google/apis/workflows_v1beta.rb +1 -1
  213. data/generated/google/apis/workflows_v1beta/classes.rb +4 -4
  214. data/lib/google/apis/version.rb +1 -1
  215. metadata +15 -7
  216. data/generated/google/apis/bigqueryreservation_v1alpha2/classes.rb +0 -426
  217. data/generated/google/apis/bigqueryreservation_v1alpha2/representations.rb +0 -195
  218. data/generated/google/apis/bigqueryreservation_v1alpha2/service.rb +0 -622
@@ -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)