google-api-client 0.31.0 → 0.32.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (295) hide show
  1. checksums.yaml +4 -4
  2. data/.kokoro/continuous/linux.cfg +11 -1
  3. data/.kokoro/continuous/osx.cfg +5 -0
  4. data/.kokoro/continuous/windows.cfg +10 -0
  5. data/.kokoro/presubmit/linux.cfg +11 -1
  6. data/.kokoro/presubmit/osx.cfg +5 -0
  7. data/.kokoro/presubmit/windows.cfg +10 -0
  8. data/CHANGELOG.md +107 -0
  9. data/generated/google/apis/androidmanagement_v1.rb +1 -1
  10. data/generated/google/apis/androidmanagement_v1/classes.rb +12 -1
  11. data/generated/google/apis/androidmanagement_v1/representations.rb +1 -0
  12. data/generated/google/apis/bigquery_v2.rb +1 -1
  13. data/generated/google/apis/bigquery_v2/classes.rb +241 -0
  14. data/generated/google/apis/bigquery_v2/representations.rb +115 -0
  15. data/generated/google/apis/bigqueryconnection_v1beta1.rb +1 -1
  16. data/generated/google/apis/bigqueryconnection_v1beta1/classes.rb +62 -29
  17. data/generated/google/apis/bigquerydatatransfer_v1.rb +1 -1
  18. data/generated/google/apis/bigquerydatatransfer_v1/classes.rb +2 -2
  19. data/generated/google/apis/bigquerydatatransfer_v1/service.rb +30 -26
  20. data/generated/google/apis/bigqueryreservation_v1.rb +1 -1
  21. data/generated/google/apis/bigqueryreservation_v1/classes.rb +7 -7
  22. data/generated/google/apis/bigqueryreservation_v1/representations.rb +3 -3
  23. data/generated/google/apis/bigqueryreservation_v1alpha2.rb +1 -1
  24. data/generated/google/apis/bigqueryreservation_v1alpha2/classes.rb +0 -175
  25. data/generated/google/apis/bigqueryreservation_v1alpha2/representations.rb +0 -65
  26. data/generated/google/apis/bigqueryreservation_v1alpha2/service.rb +0 -140
  27. data/generated/google/apis/bigqueryreservation_v1beta1.rb +37 -0
  28. data/generated/google/apis/bigqueryreservation_v1beta1/classes.rb +497 -0
  29. data/generated/google/apis/bigqueryreservation_v1beta1/representations.rb +236 -0
  30. data/generated/google/apis/bigqueryreservation_v1beta1/service.rb +713 -0
  31. data/generated/google/apis/binaryauthorization_v1.rb +1 -1
  32. data/generated/google/apis/binaryauthorization_v1/classes.rb +307 -0
  33. data/generated/google/apis/binaryauthorization_v1/representations.rb +88 -0
  34. data/generated/google/apis/binaryauthorization_v1/service.rb +230 -0
  35. data/generated/google/apis/binaryauthorization_v1beta1.rb +1 -1
  36. data/generated/google/apis/binaryauthorization_v1beta1/classes.rb +62 -29
  37. data/generated/google/apis/blogger_v3.rb +1 -1
  38. data/generated/google/apis/blogger_v3/service.rb +6 -6
  39. data/generated/google/apis/calendar_v3.rb +1 -1
  40. data/generated/google/apis/calendar_v3/classes.rb +1 -0
  41. data/generated/google/apis/cloudasset_v1.rb +1 -1
  42. data/generated/google/apis/cloudasset_v1/classes.rb +72 -29
  43. data/generated/google/apis/cloudasset_v1/representations.rb +1 -0
  44. data/generated/google/apis/cloudasset_v1/service.rb +1 -1
  45. data/generated/google/apis/cloudasset_v1beta1.rb +1 -1
  46. data/generated/google/apis/cloudasset_v1beta1/classes.rb +62 -29
  47. data/generated/google/apis/cloudasset_v1beta1/service.rb +2 -2
  48. data/generated/google/apis/cloudfunctions_v1.rb +1 -1
  49. data/generated/google/apis/cloudfunctions_v1/classes.rb +7 -2
  50. data/generated/google/apis/cloudfunctions_v1/service.rb +10 -7
  51. data/generated/google/apis/cloudfunctions_v1beta2.rb +1 -1
  52. data/generated/google/apis/cloudfunctions_v1beta2/classes.rb +1 -1
  53. data/generated/google/apis/cloudfunctions_v1beta2/service.rb +7 -6
  54. data/generated/google/apis/cloudidentity_v1.rb +4 -1
  55. data/generated/google/apis/cloudidentity_v1beta1.rb +4 -1
  56. data/generated/google/apis/cloudiot_v1.rb +1 -1
  57. data/generated/google/apis/cloudiot_v1/classes.rb +68 -35
  58. data/generated/google/apis/cloudiot_v1/service.rb +18 -17
  59. data/generated/google/apis/cloudkms_v1.rb +1 -1
  60. data/generated/google/apis/cloudkms_v1/classes.rb +77 -35
  61. data/generated/google/apis/cloudkms_v1/service.rb +33 -27
  62. data/generated/google/apis/cloudprivatecatalogproducer_v1beta1.rb +1 -1
  63. data/generated/google/apis/cloudprivatecatalogproducer_v1beta1/classes.rb +62 -29
  64. data/generated/google/apis/cloudsearch_v1.rb +1 -1
  65. data/generated/google/apis/cloudsearch_v1/classes.rb +354 -0
  66. data/generated/google/apis/cloudsearch_v1/representations.rb +196 -0
  67. data/generated/google/apis/cloudsearch_v1/service.rb +314 -2
  68. data/generated/google/apis/cloudtasks_v2beta3.rb +1 -1
  69. data/generated/google/apis/cloudtasks_v2beta3/classes.rb +62 -29
  70. data/generated/google/apis/cloudtrace_v1.rb +1 -1
  71. data/generated/google/apis/cloudtrace_v1/classes.rb +1 -1
  72. data/generated/google/apis/cloudtrace_v1/service.rb +10 -10
  73. data/generated/google/apis/cloudtrace_v2.rb +1 -1
  74. data/generated/google/apis/cloudtrace_v2/classes.rb +3 -3
  75. data/generated/google/apis/commentanalyzer_v1alpha1.rb +1 -1
  76. data/generated/google/apis/commentanalyzer_v1alpha1/classes.rb +7 -10
  77. data/generated/google/apis/compute_alpha.rb +1 -1
  78. data/generated/google/apis/compute_alpha/classes.rb +38 -42
  79. data/generated/google/apis/compute_alpha/representations.rb +5 -16
  80. data/generated/google/apis/compute_beta.rb +1 -1
  81. data/generated/google/apis/compute_beta/classes.rb +10 -5
  82. data/generated/google/apis/compute_v1.rb +1 -1
  83. data/generated/google/apis/compute_v1/classes.rb +1327 -4
  84. data/generated/google/apis/compute_v1/representations.rb +439 -0
  85. data/generated/google/apis/container_v1.rb +1 -1
  86. data/generated/google/apis/container_v1/classes.rb +111 -0
  87. data/generated/google/apis/container_v1/representations.rb +51 -0
  88. data/generated/google/apis/containeranalysis_v1alpha1.rb +1 -1
  89. data/generated/google/apis/containeranalysis_v1alpha1/classes.rb +76 -30
  90. data/generated/google/apis/containeranalysis_v1alpha1/representations.rb +1 -0
  91. data/generated/google/apis/containeranalysis_v1beta1.rb +1 -1
  92. data/generated/google/apis/containeranalysis_v1beta1/classes.rb +70 -30
  93. data/generated/google/apis/content_v2.rb +1 -1
  94. data/generated/google/apis/content_v2/service.rb +0 -226
  95. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  96. data/generated/google/apis/dataflow_v1b3/classes.rb +42 -0
  97. data/generated/google/apis/dataflow_v1b3/representations.rb +4 -0
  98. data/generated/google/apis/dataproc_v1.rb +1 -1
  99. data/generated/google/apis/dataproc_v1/classes.rb +324 -38
  100. data/generated/google/apis/dataproc_v1/representations.rb +97 -0
  101. data/generated/google/apis/dataproc_v1/service.rb +613 -1
  102. data/generated/google/apis/dataproc_v1beta2.rb +1 -1
  103. data/generated/google/apis/dataproc_v1beta2/classes.rb +100 -54
  104. data/generated/google/apis/dataproc_v1beta2/service.rb +29 -22
  105. data/generated/google/apis/dialogflow_v2.rb +1 -1
  106. data/generated/google/apis/dialogflow_v2/classes.rb +363 -167
  107. data/generated/google/apis/dialogflow_v2/representations.rb +160 -49
  108. data/generated/google/apis/dialogflow_v2/service.rb +1 -1
  109. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  110. data/generated/google/apis/dialogflow_v2beta1/classes.rb +433 -178
  111. data/generated/google/apis/dialogflow_v2beta1/representations.rb +199 -59
  112. data/generated/google/apis/dialogflow_v2beta1/service.rb +39 -0
  113. data/generated/google/apis/dlp_v2.rb +1 -1
  114. data/generated/google/apis/dlp_v2/classes.rb +3 -4
  115. data/generated/google/apis/doubleclickbidmanager_v1.rb +1 -1
  116. data/generated/google/apis/drive_v2.rb +1 -1
  117. data/generated/google/apis/drive_v2/classes.rb +2 -2
  118. data/generated/google/apis/drive_v3.rb +1 -1
  119. data/generated/google/apis/drive_v3/classes.rb +2 -2
  120. data/generated/google/apis/fcm_v1.rb +1 -1
  121. data/generated/google/apis/fcm_v1/classes.rb +9 -4
  122. data/generated/google/apis/file_v1.rb +1 -1
  123. data/generated/google/apis/file_v1/classes.rb +8 -0
  124. data/generated/google/apis/file_v1/representations.rb +1 -0
  125. data/generated/google/apis/file_v1/service.rb +2 -0
  126. data/generated/google/apis/file_v1beta1.rb +1 -1
  127. data/generated/google/apis/file_v1beta1/classes.rb +8 -0
  128. data/generated/google/apis/file_v1beta1/representations.rb +1 -0
  129. data/generated/google/apis/file_v1beta1/service.rb +2 -0
  130. data/generated/google/apis/firebase_v1beta1.rb +1 -1
  131. data/generated/google/apis/firebase_v1beta1/classes.rb +41 -4
  132. data/generated/google/apis/firebase_v1beta1/representations.rb +2 -0
  133. data/generated/google/apis/firebase_v1beta1/service.rb +22 -14
  134. data/generated/google/apis/fitness_v1.rb +19 -19
  135. data/generated/google/apis/healthcare_v1beta1.rb +1 -1
  136. data/generated/google/apis/healthcare_v1beta1/classes.rb +136 -100
  137. data/generated/google/apis/healthcare_v1beta1/representations.rb +1 -1
  138. data/generated/google/apis/healthcare_v1beta1/service.rb +124 -119
  139. data/generated/google/apis/iam_v1.rb +1 -1
  140. data/generated/google/apis/iam_v1/classes.rb +87 -41
  141. data/generated/google/apis/iap_v1.rb +1 -1
  142. data/generated/google/apis/iap_v1/classes.rb +62 -29
  143. data/generated/google/apis/iap_v1beta1.rb +1 -1
  144. data/generated/google/apis/iap_v1beta1/classes.rb +62 -29
  145. data/generated/google/apis/ml_v1.rb +1 -1
  146. data/generated/google/apis/ml_v1/classes.rb +114 -49
  147. data/generated/google/apis/ml_v1/representations.rb +2 -0
  148. data/generated/google/apis/ml_v1/service.rb +12 -6
  149. data/generated/google/apis/monitoring_v3.rb +1 -1
  150. data/generated/google/apis/monitoring_v3/classes.rb +14 -10
  151. data/generated/google/apis/monitoring_v3/representations.rb +1 -0
  152. data/generated/google/apis/oslogin_v1.rb +1 -1
  153. data/generated/google/apis/oslogin_v1/classes.rb +12 -0
  154. data/generated/google/apis/oslogin_v1/representations.rb +2 -0
  155. data/generated/google/apis/oslogin_v1alpha.rb +1 -1
  156. data/generated/google/apis/oslogin_v1alpha/classes.rb +12 -0
  157. data/generated/google/apis/oslogin_v1alpha/representations.rb +2 -0
  158. data/generated/google/apis/oslogin_v1beta.rb +1 -1
  159. data/generated/google/apis/oslogin_v1beta/classes.rb +12 -0
  160. data/generated/google/apis/oslogin_v1beta/representations.rb +2 -0
  161. data/generated/google/apis/policytroubleshooter_v1beta.rb +34 -0
  162. data/generated/google/apis/policytroubleshooter_v1beta/classes.rb +621 -0
  163. data/generated/google/apis/policytroubleshooter_v1beta/representations.rb +203 -0
  164. data/generated/google/apis/policytroubleshooter_v1beta/service.rb +91 -0
  165. data/generated/google/apis/proximitybeacon_v1beta1.rb +1 -1
  166. data/generated/google/apis/proximitybeacon_v1beta1/classes.rb +7 -4
  167. data/generated/google/apis/proximitybeacon_v1beta1/service.rb +60 -58
  168. data/generated/google/apis/recommender_v1beta1.rb +34 -0
  169. data/generated/google/apis/recommender_v1beta1/classes.rb +502 -0
  170. data/generated/google/apis/recommender_v1beta1/representations.rb +232 -0
  171. data/generated/google/apis/recommender_v1beta1/service.rb +262 -0
  172. data/generated/google/apis/remotebuildexecution_v1.rb +1 -1
  173. data/generated/google/apis/remotebuildexecution_v1/classes.rb +49 -1100
  174. data/generated/google/apis/remotebuildexecution_v1/representations.rb +1 -276
  175. data/generated/google/apis/remotebuildexecution_v1/service.rb +0 -77
  176. data/generated/google/apis/remotebuildexecution_v1alpha.rb +1 -1
  177. data/generated/google/apis/remotebuildexecution_v1alpha/classes.rb +12 -990
  178. data/generated/google/apis/remotebuildexecution_v1alpha/representations.rb +1 -245
  179. data/generated/google/apis/remotebuildexecution_v2.rb +1 -1
  180. data/generated/google/apis/remotebuildexecution_v2/classes.rb +12 -990
  181. data/generated/google/apis/remotebuildexecution_v2/representations.rb +1 -245
  182. data/generated/google/apis/run_v1.rb +1 -1
  183. data/generated/google/apis/run_v1/classes.rb +3553 -33
  184. data/generated/google/apis/run_v1/representations.rb +1186 -4
  185. data/generated/google/apis/run_v1/service.rb +2509 -23
  186. data/generated/google/apis/run_v1alpha1.rb +1 -1
  187. data/generated/google/apis/run_v1alpha1/classes.rb +103 -140
  188. data/generated/google/apis/run_v1alpha1/representations.rb +5 -43
  189. data/generated/google/apis/run_v1beta1.rb +35 -0
  190. data/generated/google/apis/run_v1beta1/classes.rb +1209 -0
  191. data/generated/google/apis/run_v1beta1/representations.rb +421 -0
  192. data/generated/google/apis/run_v1beta1/service.rb +172 -0
  193. data/generated/google/apis/runtimeconfig_v1beta1.rb +1 -1
  194. data/generated/google/apis/runtimeconfig_v1beta1/classes.rb +62 -29
  195. data/generated/google/apis/safebrowsing_v4.rb +5 -2
  196. data/generated/google/apis/safebrowsing_v4/service.rb +4 -1
  197. data/generated/google/apis/securitycenter_v1.rb +1 -1
  198. data/generated/google/apis/securitycenter_v1/classes.rb +70 -35
  199. data/generated/google/apis/securitycenter_v1/service.rb +13 -12
  200. data/generated/google/apis/securitycenter_v1beta1.rb +1 -1
  201. data/generated/google/apis/securitycenter_v1beta1/classes.rb +71 -35
  202. data/generated/google/apis/securitycenter_v1beta1/service.rb +13 -12
  203. data/generated/google/apis/servicebroker_v1.rb +1 -1
  204. data/generated/google/apis/servicebroker_v1/classes.rb +62 -29
  205. data/generated/google/apis/servicebroker_v1alpha1.rb +1 -1
  206. data/generated/google/apis/servicebroker_v1alpha1/classes.rb +62 -29
  207. data/generated/google/apis/servicebroker_v1beta1.rb +1 -1
  208. data/generated/google/apis/servicebroker_v1beta1/classes.rb +62 -29
  209. data/generated/google/apis/serviceconsumermanagement_v1.rb +1 -1
  210. data/generated/google/apis/serviceconsumermanagement_v1/classes.rb +11 -2
  211. data/generated/google/apis/serviceconsumermanagement_v1/representations.rb +1 -0
  212. data/generated/google/apis/servicemanagement_v1.rb +1 -1
  213. data/generated/google/apis/servicemanagement_v1/classes.rb +63 -33
  214. data/generated/google/apis/servicenetworking_v1.rb +1 -1
  215. data/generated/google/apis/servicenetworking_v1/classes.rb +11 -2
  216. data/generated/google/apis/servicenetworking_v1/representations.rb +1 -0
  217. data/generated/google/apis/servicenetworking_v1beta.rb +1 -1
  218. data/generated/google/apis/servicenetworking_v1beta/classes.rb +11 -2
  219. data/generated/google/apis/servicenetworking_v1beta/representations.rb +1 -0
  220. data/generated/google/apis/serviceusage_v1.rb +1 -1
  221. data/generated/google/apis/serviceusage_v1/classes.rb +11 -2
  222. data/generated/google/apis/serviceusage_v1/representations.rb +1 -0
  223. data/generated/google/apis/serviceusage_v1beta1.rb +1 -1
  224. data/generated/google/apis/serviceusage_v1beta1/classes.rb +11 -2
  225. data/generated/google/apis/serviceusage_v1beta1/representations.rb +1 -0
  226. data/generated/google/apis/spanner_v1.rb +1 -1
  227. data/generated/google/apis/spanner_v1/classes.rb +78 -2
  228. data/generated/google/apis/spanner_v1/representations.rb +44 -0
  229. data/generated/google/apis/spanner_v1/service.rb +35 -0
  230. data/generated/google/apis/speech_v1.rb +1 -1
  231. data/generated/google/apis/speech_v1/classes.rb +73 -19
  232. data/generated/google/apis/speech_v1/representations.rb +18 -0
  233. data/generated/google/apis/speech_v1p1beta1.rb +1 -1
  234. data/generated/google/apis/speech_v1p1beta1/classes.rb +31 -35
  235. data/generated/google/apis/speech_v2beta.rb +1 -1
  236. data/generated/google/apis/speech_v2beta/classes.rb +6 -6
  237. data/generated/google/apis/speech_v2beta/representations.rb +2 -2
  238. data/generated/google/apis/storage_v1.rb +1 -1
  239. data/generated/google/apis/storage_v1/classes.rb +1 -1
  240. data/generated/google/apis/storage_v1/representations.rb +2 -1
  241. data/generated/google/apis/storage_v1beta1.rb +1 -1
  242. data/generated/google/apis/storage_v1beta2.rb +1 -1
  243. data/generated/google/apis/streetviewpublish_v1.rb +1 -1
  244. data/generated/google/apis/streetviewpublish_v1/classes.rb +1 -1
  245. data/generated/google/apis/streetviewpublish_v1/service.rb +9 -5
  246. data/generated/google/apis/testing_v1.rb +1 -1
  247. data/generated/google/apis/testing_v1/classes.rb +42 -0
  248. data/generated/google/apis/testing_v1/representations.rb +18 -0
  249. data/generated/google/apis/texttospeech_v1.rb +1 -1
  250. data/generated/google/apis/texttospeech_v1/classes.rb +6 -5
  251. data/generated/google/apis/texttospeech_v1/service.rb +1 -1
  252. data/generated/google/apis/texttospeech_v1beta1.rb +1 -1
  253. data/generated/google/apis/texttospeech_v1beta1/classes.rb +6 -5
  254. data/generated/google/apis/texttospeech_v1beta1/service.rb +1 -1
  255. data/generated/google/apis/toolresults_v1beta3.rb +1 -1
  256. data/generated/google/apis/toolresults_v1beta3/classes.rb +1 -1
  257. data/generated/google/apis/translate_v3beta1.rb +1 -1
  258. data/generated/google/apis/translate_v3beta1/classes.rb +22 -16
  259. data/generated/google/apis/translate_v3beta1/service.rb +31 -31
  260. data/generated/google/apis/videointelligence_v1.rb +1 -1
  261. data/generated/google/apis/videointelligence_v1/classes.rb +45 -10
  262. data/generated/google/apis/videointelligence_v1beta2.rb +1 -1
  263. data/generated/google/apis/videointelligence_v1beta2/classes.rb +45 -10
  264. data/generated/google/apis/videointelligence_v1p1beta1.rb +1 -1
  265. data/generated/google/apis/videointelligence_v1p1beta1/classes.rb +45 -10
  266. data/generated/google/apis/videointelligence_v1p2beta1.rb +1 -1
  267. data/generated/google/apis/videointelligence_v1p2beta1/classes.rb +45 -10
  268. data/generated/google/apis/videointelligence_v1p3beta1.rb +1 -1
  269. data/generated/google/apis/videointelligence_v1p3beta1/classes.rb +45 -10
  270. data/generated/google/apis/vision_v1.rb +1 -1
  271. data/generated/google/apis/vision_v1/classes.rb +6 -156
  272. data/generated/google/apis/vision_v1/representations.rb +0 -44
  273. data/generated/google/apis/vision_v1p1beta1.rb +1 -1
  274. data/generated/google/apis/vision_v1p1beta1/classes.rb +6 -156
  275. data/generated/google/apis/vision_v1p1beta1/representations.rb +0 -44
  276. data/generated/google/apis/vision_v1p2beta1.rb +1 -1
  277. data/generated/google/apis/vision_v1p2beta1/classes.rb +6 -156
  278. data/generated/google/apis/vision_v1p2beta1/representations.rb +0 -44
  279. data/generated/google/apis/websecurityscanner_v1.rb +1 -1
  280. data/generated/google/apis/websecurityscanner_v1alpha.rb +1 -1
  281. data/generated/google/apis/websecurityscanner_v1alpha/classes.rb +21 -31
  282. data/generated/google/apis/websecurityscanner_v1alpha/service.rb +1 -1
  283. data/generated/google/apis/websecurityscanner_v1beta.rb +1 -1
  284. data/generated/google/apis/websecurityscanner_v1beta/classes.rb +30 -42
  285. data/generated/google/apis/websecurityscanner_v1beta/service.rb +1 -1
  286. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  287. data/generated/google/apis/youtube_partner_v1/classes.rb +0 -83
  288. data/generated/google/apis/youtube_partner_v1/representations.rb +0 -35
  289. data/generated/google/apis/youtube_partner_v1/service.rb +0 -100
  290. data/lib/google/apis/version.rb +1 -1
  291. metadata +18 -6
  292. data/generated/google/apis/dfareporting_v3_1.rb +0 -40
  293. data/generated/google/apis/dfareporting_v3_1/classes.rb +0 -11998
  294. data/generated/google/apis/dfareporting_v3_1/representations.rb +0 -4313
  295. data/generated/google/apis/dfareporting_v3_1/service.rb +0 -8688
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://developers.google.com/compute/docs/reference/latest/
26
26
  module ComputeV1
27
27
  VERSION = 'V1'
28
- REVISION = '20190825'
28
+ REVISION = '20190905'
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'
@@ -1445,8 +1445,7 @@ module Google
1445
1445
  # @return [Array<String>]
1446
1446
  attr_accessor :exempted_members
1447
1447
 
1448
- # Specifies whether principals can be exempted for the same LogType in lower-
1449
- # level resource policies. If true, any lower-level exemptions will be ignored.
1448
+ #
1450
1449
  # Corresponds to the JSON property `ignoreChildExemptions`
1451
1450
  # @return [Boolean]
1452
1451
  attr_accessor :ignore_child_exemptions
@@ -2515,11 +2514,21 @@ module Google
2515
2514
  # @return [Google::Apis::ComputeV1::BackendServiceCdnPolicy]
2516
2515
  attr_accessor :cdn_policy
2517
2516
 
2517
+ # Settings controlling the volume of connections to a backend service.
2518
+ # Corresponds to the JSON property `circuitBreakers`
2519
+ # @return [Google::Apis::ComputeV1::CircuitBreakers]
2520
+ attr_accessor :circuit_breakers
2521
+
2518
2522
  # Message containing connection draining configuration.
2519
2523
  # Corresponds to the JSON property `connectionDraining`
2520
2524
  # @return [Google::Apis::ComputeV1::ConnectionDraining]
2521
2525
  attr_accessor :connection_draining
2522
2526
 
2527
+ # This message defines settings for a consistent hash style load balancer.
2528
+ # Corresponds to the JSON property `consistentHash`
2529
+ # @return [Google::Apis::ComputeV1::ConsistentHashLoadBalancerSettings]
2530
+ attr_accessor :consistent_hash
2531
+
2523
2532
  # [Output Only] Creation timestamp in RFC3339 text format.
2524
2533
  # Corresponds to the JSON property `creationTimestamp`
2525
2534
  # @return [String]
@@ -2590,6 +2599,33 @@ module Google
2590
2599
  # @return [String]
2591
2600
  attr_accessor :load_balancing_scheme
2592
2601
 
2602
+ # The load balancing algorithm used within the scope of the locality. The
2603
+ # possible values are:
2604
+ # - ROUND_ROBIN: This is a simple policy in which each healthy backend is
2605
+ # selected in round robin order. This is the default.
2606
+ # - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and
2607
+ # picks the host which has fewer active requests.
2608
+ # - RING_HASH: The ring/modulo hash load balancer implements consistent hashing
2609
+ # to backends. The algorithm has the property that the addition/removal of a
2610
+ # host from a set of N hosts only affects 1/N of the requests.
2611
+ # - RANDOM: The load balancer selects a random healthy host.
2612
+ # - ORIGINAL_DESTINATION: Backend host is selected based on the client
2613
+ # connection metadata, i.e., connections are opened to the same address as the
2614
+ # destination address of the incoming connection before the connection was
2615
+ # redirected to the load balancer.
2616
+ # - MAGLEV: used as a drop in replacement for the ring hash load balancer.
2617
+ # Maglev is not as stable as ring hash but has faster table lookup build times
2618
+ # and host selection times. For more information about Maglev, refer to https://
2619
+ # ai.google/research/pubs/pub44824
2620
+ # This field is applicable to either:
2621
+ # - A regional backend service with the service_protocol set to HTTP, HTTPS, or
2622
+ # HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
2623
+ # - A global backend service with the load_balancing_scheme set to
2624
+ # INTERNAL_SELF_MANAGED.
2625
+ # Corresponds to the JSON property `localityLbPolicy`
2626
+ # @return [String]
2627
+ attr_accessor :locality_lb_policy
2628
+
2593
2629
  # Name of the resource. Provided by the client when the resource is created. The
2594
2630
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
2595
2631
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -2600,6 +2636,11 @@ module Google
2600
2636
  # @return [String]
2601
2637
  attr_accessor :name
2602
2638
 
2639
+ # Settings controlling eviction of unhealthy hosts from the load balancing pool.
2640
+ # Corresponds to the JSON property `outlierDetection`
2641
+ # @return [Google::Apis::ComputeV1::OutlierDetection]
2642
+ attr_accessor :outlier_detection
2643
+
2603
2644
  # Deprecated in favor of portName. The TCP port to connect on the backend. The
2604
2645
  # default value is 80.
2605
2646
  # This cannot be used if the loadBalancingScheme is INTERNAL (Internal TCP/UDP
@@ -2675,7 +2716,9 @@ module Google
2675
2716
  @affinity_cookie_ttl_sec = args[:affinity_cookie_ttl_sec] if args.key?(:affinity_cookie_ttl_sec)
2676
2717
  @backends = args[:backends] if args.key?(:backends)
2677
2718
  @cdn_policy = args[:cdn_policy] if args.key?(:cdn_policy)
2719
+ @circuit_breakers = args[:circuit_breakers] if args.key?(:circuit_breakers)
2678
2720
  @connection_draining = args[:connection_draining] if args.key?(:connection_draining)
2721
+ @consistent_hash = args[:consistent_hash] if args.key?(:consistent_hash)
2679
2722
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
2680
2723
  @custom_request_headers = args[:custom_request_headers] if args.key?(:custom_request_headers)
2681
2724
  @description = args[:description] if args.key?(:description)
@@ -2686,7 +2729,9 @@ module Google
2686
2729
  @id = args[:id] if args.key?(:id)
2687
2730
  @kind = args[:kind] if args.key?(:kind)
2688
2731
  @load_balancing_scheme = args[:load_balancing_scheme] if args.key?(:load_balancing_scheme)
2732
+ @locality_lb_policy = args[:locality_lb_policy] if args.key?(:locality_lb_policy)
2689
2733
  @name = args[:name] if args.key?(:name)
2734
+ @outlier_detection = args[:outlier_detection] if args.key?(:outlier_detection)
2690
2735
  @port = args[:port] if args.key?(:port)
2691
2736
  @port_name = args[:port_name] if args.key?(:port_name)
2692
2737
  @protocol = args[:protocol] if args.key?(:protocol)
@@ -3275,6 +3320,55 @@ module Google
3275
3320
  end
3276
3321
  end
3277
3322
 
3323
+ # Settings controlling the volume of connections to a backend service.
3324
+ class CircuitBreakers
3325
+ include Google::Apis::Core::Hashable
3326
+
3327
+ # The maximum number of connections to the backend cluster. If not specified,
3328
+ # the default is 1024.
3329
+ # Corresponds to the JSON property `maxConnections`
3330
+ # @return [Fixnum]
3331
+ attr_accessor :max_connections
3332
+
3333
+ # The maximum number of pending requests allowed to the backend cluster. If not
3334
+ # specified, the default is 1024.
3335
+ # Corresponds to the JSON property `maxPendingRequests`
3336
+ # @return [Fixnum]
3337
+ attr_accessor :max_pending_requests
3338
+
3339
+ # The maximum number of parallel requests that allowed to the backend cluster.
3340
+ # If not specified, the default is 1024.
3341
+ # Corresponds to the JSON property `maxRequests`
3342
+ # @return [Fixnum]
3343
+ attr_accessor :max_requests
3344
+
3345
+ # Maximum requests for a single backend connection. This parameter is respected
3346
+ # by both the HTTP/1.1 and HTTP/2 implementations. If not specified, there is no
3347
+ # limit. Setting this parameter to 1 will effectively disable keep alive.
3348
+ # Corresponds to the JSON property `maxRequestsPerConnection`
3349
+ # @return [Fixnum]
3350
+ attr_accessor :max_requests_per_connection
3351
+
3352
+ # The maximum number of parallel retries allowed to the backend cluster. If not
3353
+ # specified, the default is 3.
3354
+ # Corresponds to the JSON property `maxRetries`
3355
+ # @return [Fixnum]
3356
+ attr_accessor :max_retries
3357
+
3358
+ def initialize(**args)
3359
+ update!(**args)
3360
+ end
3361
+
3362
+ # Update properties of this object
3363
+ def update!(**args)
3364
+ @max_connections = args[:max_connections] if args.key?(:max_connections)
3365
+ @max_pending_requests = args[:max_pending_requests] if args.key?(:max_pending_requests)
3366
+ @max_requests = args[:max_requests] if args.key?(:max_requests)
3367
+ @max_requests_per_connection = args[:max_requests_per_connection] if args.key?(:max_requests_per_connection)
3368
+ @max_retries = args[:max_retries] if args.key?(:max_retries)
3369
+ end
3370
+ end
3371
+
3278
3372
  # Represents a regional Commitment resource.
3279
3373
  # Creating a commitment resource means that you are purchasing a committed use
3280
3374
  # contract with an explicit start and end time. You can create commitments based
@@ -3781,6 +3875,150 @@ module Google
3781
3875
  end
3782
3876
  end
3783
3877
 
3878
+ # This message defines settings for a consistent hash style load balancer.
3879
+ class ConsistentHashLoadBalancerSettings
3880
+ include Google::Apis::Core::Hashable
3881
+
3882
+ # The information about the HTTP Cookie on which the hash function is based for
3883
+ # load balancing policies that use a consistent hash.
3884
+ # Corresponds to the JSON property `httpCookie`
3885
+ # @return [Google::Apis::ComputeV1::ConsistentHashLoadBalancerSettingsHttpCookie]
3886
+ attr_accessor :http_cookie
3887
+
3888
+ # The hash based on the value of the specified header field. This field is
3889
+ # applicable if the sessionAffinity is set to HEADER_FIELD.
3890
+ # Corresponds to the JSON property `httpHeaderName`
3891
+ # @return [String]
3892
+ attr_accessor :http_header_name
3893
+
3894
+ # The minimum number of virtual nodes to use for the hash ring. Defaults to 1024.
3895
+ # Larger ring sizes result in more granular load distributions. If the number
3896
+ # of hosts in the load balancing pool is larger than the ring size, each host
3897
+ # will be assigned a single virtual node.
3898
+ # Corresponds to the JSON property `minimumRingSize`
3899
+ # @return [Fixnum]
3900
+ attr_accessor :minimum_ring_size
3901
+
3902
+ def initialize(**args)
3903
+ update!(**args)
3904
+ end
3905
+
3906
+ # Update properties of this object
3907
+ def update!(**args)
3908
+ @http_cookie = args[:http_cookie] if args.key?(:http_cookie)
3909
+ @http_header_name = args[:http_header_name] if args.key?(:http_header_name)
3910
+ @minimum_ring_size = args[:minimum_ring_size] if args.key?(:minimum_ring_size)
3911
+ end
3912
+ end
3913
+
3914
+ # The information about the HTTP Cookie on which the hash function is based for
3915
+ # load balancing policies that use a consistent hash.
3916
+ class ConsistentHashLoadBalancerSettingsHttpCookie
3917
+ include Google::Apis::Core::Hashable
3918
+
3919
+ # Name of the cookie.
3920
+ # Corresponds to the JSON property `name`
3921
+ # @return [String]
3922
+ attr_accessor :name
3923
+
3924
+ # Path to set for the cookie.
3925
+ # Corresponds to the JSON property `path`
3926
+ # @return [String]
3927
+ attr_accessor :path
3928
+
3929
+ # A Duration represents a fixed-length span of time represented as a count of
3930
+ # seconds and fractions of seconds at nanosecond resolution. It is independent
3931
+ # of any calendar and concepts like "day" or "month". Range is approximately 10,
3932
+ # 000 years.
3933
+ # Corresponds to the JSON property `ttl`
3934
+ # @return [Google::Apis::ComputeV1::Duration]
3935
+ attr_accessor :ttl
3936
+
3937
+ def initialize(**args)
3938
+ update!(**args)
3939
+ end
3940
+
3941
+ # Update properties of this object
3942
+ def update!(**args)
3943
+ @name = args[:name] if args.key?(:name)
3944
+ @path = args[:path] if args.key?(:path)
3945
+ @ttl = args[:ttl] if args.key?(:ttl)
3946
+ end
3947
+ end
3948
+
3949
+ # The specification for allowing client side cross-origin requests. Please see
3950
+ # W3C Recommendation for Cross Origin Resource Sharing
3951
+ class CorsPolicy
3952
+ include Google::Apis::Core::Hashable
3953
+
3954
+ # In response to a preflight request, setting this to true indicates that the
3955
+ # actual request can include user credentials. This translates to the Access-
3956
+ # Control-Allow-Credentials header.
3957
+ # Default is false.
3958
+ # Corresponds to the JSON property `allowCredentials`
3959
+ # @return [Boolean]
3960
+ attr_accessor :allow_credentials
3961
+ alias_method :allow_credentials?, :allow_credentials
3962
+
3963
+ # Specifies the content for the Access-Control-Allow-Headers header.
3964
+ # Corresponds to the JSON property `allowHeaders`
3965
+ # @return [Array<String>]
3966
+ attr_accessor :allow_headers
3967
+
3968
+ # Specifies the content for the Access-Control-Allow-Methods header.
3969
+ # Corresponds to the JSON property `allowMethods`
3970
+ # @return [Array<String>]
3971
+ attr_accessor :allow_methods
3972
+
3973
+ # Specifies the regualar expression patterns that match allowed origins. For
3974
+ # regular expression grammar please see en.cppreference.com/w/cpp/regex/
3975
+ # ecmascript
3976
+ # An origin is allowed if it matches either allow_origins or allow_origin_regex.
3977
+ # Corresponds to the JSON property `allowOriginRegexes`
3978
+ # @return [Array<String>]
3979
+ attr_accessor :allow_origin_regexes
3980
+
3981
+ # Specifies the list of origins that will be allowed to do CORS requests.
3982
+ # An origin is allowed if it matches either allow_origins or allow_origin_regex.
3983
+ # Corresponds to the JSON property `allowOrigins`
3984
+ # @return [Array<String>]
3985
+ attr_accessor :allow_origins
3986
+
3987
+ # If true, specifies the CORS policy is disabled. The default value of false,
3988
+ # which indicates that the CORS policy is in effect.
3989
+ # Corresponds to the JSON property `disabled`
3990
+ # @return [Boolean]
3991
+ attr_accessor :disabled
3992
+ alias_method :disabled?, :disabled
3993
+
3994
+ # Specifies the content for the Access-Control-Expose-Headers header.
3995
+ # Corresponds to the JSON property `exposeHeaders`
3996
+ # @return [Array<String>]
3997
+ attr_accessor :expose_headers
3998
+
3999
+ # Specifies how long the results of a preflight request can be cached. This
4000
+ # translates to the content for the Access-Control-Max-Age header.
4001
+ # Corresponds to the JSON property `maxAge`
4002
+ # @return [Fixnum]
4003
+ attr_accessor :max_age
4004
+
4005
+ def initialize(**args)
4006
+ update!(**args)
4007
+ end
4008
+
4009
+ # Update properties of this object
4010
+ def update!(**args)
4011
+ @allow_credentials = args[:allow_credentials] if args.key?(:allow_credentials)
4012
+ @allow_headers = args[:allow_headers] if args.key?(:allow_headers)
4013
+ @allow_methods = args[:allow_methods] if args.key?(:allow_methods)
4014
+ @allow_origin_regexes = args[:allow_origin_regexes] if args.key?(:allow_origin_regexes)
4015
+ @allow_origins = args[:allow_origins] if args.key?(:allow_origins)
4016
+ @disabled = args[:disabled] if args.key?(:disabled)
4017
+ @expose_headers = args[:expose_headers] if args.key?(:expose_headers)
4018
+ @max_age = args[:max_age] if args.key?(:max_age)
4019
+ end
4020
+ end
4021
+
3784
4022
  # Represents a customer-supplied encryption key
3785
4023
  class CustomerEncryptionKey
3786
4024
  include Google::Apis::Core::Hashable
@@ -5108,6 +5346,38 @@ module Google
5108
5346
  end
5109
5347
  end
5110
5348
 
5349
+ # A Duration represents a fixed-length span of time represented as a count of
5350
+ # seconds and fractions of seconds at nanosecond resolution. It is independent
5351
+ # of any calendar and concepts like "day" or "month". Range is approximately 10,
5352
+ # 000 years.
5353
+ class Duration
5354
+ include Google::Apis::Core::Hashable
5355
+
5356
+ # Span of time that's a fraction of a second at nanosecond resolution. Durations
5357
+ # less than one second are represented with a 0 `seconds` field and a positive `
5358
+ # nanos` field. Must be from 0 to 999,999,999 inclusive.
5359
+ # Corresponds to the JSON property `nanos`
5360
+ # @return [Fixnum]
5361
+ attr_accessor :nanos
5362
+
5363
+ # Span of time at a resolution of a second. Must be from 0 to 315,576,000,000
5364
+ # inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24
5365
+ # hr/day * 365.25 days/year * 10000 years
5366
+ # Corresponds to the JSON property `seconds`
5367
+ # @return [Fixnum]
5368
+ attr_accessor :seconds
5369
+
5370
+ def initialize(**args)
5371
+ update!(**args)
5372
+ end
5373
+
5374
+ # Update properties of this object
5375
+ def update!(**args)
5376
+ @nanos = args[:nanos] if args.key?(:nanos)
5377
+ @seconds = args[:seconds] if args.key?(:seconds)
5378
+ end
5379
+ end
5380
+
5111
5381
  # Represents an expression text. Example:
5112
5382
  # title: "User account presence" description: "Determines whether the request
5113
5383
  # has a user account" expression: "size(request.user) > 0"
@@ -5951,6 +6221,23 @@ module Google
5951
6221
  # @return [String]
5952
6222
  attr_accessor :load_balancing_scheme
5953
6223
 
6224
+ # Opaque filter criteria used by Loadbalancer to restrict routing configuration
6225
+ # to a limited set xDS compliant clients. In their xDS requests to Loadbalancer,
6226
+ # xDS clients present node metadata. If a match takes place, the relevant
6227
+ # routing configuration is made available to those proxies.
6228
+ # For each metadataFilter in this list, if its filterMatchCriteria is set to
6229
+ # MATCH_ANY, at least one of the filterLabels must match the corresponding label
6230
+ # provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then
6231
+ # all of its filterLabels must match with corresponding labels in the provided
6232
+ # metadata.
6233
+ # metadataFilters specified here can be overridden by those specified in the
6234
+ # UrlMap that this ForwardingRule references.
6235
+ # metadataFilters only applies to Loadbalancers that have their
6236
+ # loadBalancingScheme set to INTERNAL_SELF_MANAGED.
6237
+ # Corresponds to the JSON property `metadataFilters`
6238
+ # @return [Array<Google::Apis::ComputeV1::MetadataFilter>]
6239
+ attr_accessor :metadata_filters
6240
+
5954
6241
  # Name of the resource; provided by the client when the resource is created. The
5955
6242
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
5956
6243
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -6085,6 +6372,7 @@ module Google
6085
6372
  @ip_version = args[:ip_version] if args.key?(:ip_version)
6086
6373
  @kind = args[:kind] if args.key?(:kind)
6087
6374
  @load_balancing_scheme = args[:load_balancing_scheme] if args.key?(:load_balancing_scheme)
6375
+ @metadata_filters = args[:metadata_filters] if args.key?(:metadata_filters)
6088
6376
  @name = args[:name] if args.key?(:name)
6089
6377
  @network = args[:network] if args.key?(:network)
6090
6378
  @network_tier = args[:network_tier] if args.key?(:network_tier)
@@ -7483,6 +7771,258 @@ module Google
7483
7771
  end
7484
7772
  end
7485
7773
 
7774
+ # Specification for how requests are aborted as part of fault injection.
7775
+ class HttpFaultAbort
7776
+ include Google::Apis::Core::Hashable
7777
+
7778
+ # The HTTP status code used to abort the request.
7779
+ # The value must be between 200 and 599 inclusive.
7780
+ # Corresponds to the JSON property `httpStatus`
7781
+ # @return [Fixnum]
7782
+ attr_accessor :http_status
7783
+
7784
+ # The percentage of traffic (connections/operations/requests) which will be
7785
+ # aborted as part of fault injection.
7786
+ # The value must be between 0.0 and 100.0 inclusive.
7787
+ # Corresponds to the JSON property `percentage`
7788
+ # @return [Float]
7789
+ attr_accessor :percentage
7790
+
7791
+ def initialize(**args)
7792
+ update!(**args)
7793
+ end
7794
+
7795
+ # Update properties of this object
7796
+ def update!(**args)
7797
+ @http_status = args[:http_status] if args.key?(:http_status)
7798
+ @percentage = args[:percentage] if args.key?(:percentage)
7799
+ end
7800
+ end
7801
+
7802
+ # Specifies the delay introduced by Loadbalancer before forwarding the request
7803
+ # to the backend service as part of fault injection.
7804
+ class HttpFaultDelay
7805
+ include Google::Apis::Core::Hashable
7806
+
7807
+ # A Duration represents a fixed-length span of time represented as a count of
7808
+ # seconds and fractions of seconds at nanosecond resolution. It is independent
7809
+ # of any calendar and concepts like "day" or "month". Range is approximately 10,
7810
+ # 000 years.
7811
+ # Corresponds to the JSON property `fixedDelay`
7812
+ # @return [Google::Apis::ComputeV1::Duration]
7813
+ attr_accessor :fixed_delay
7814
+
7815
+ # The percentage of traffic (connections/operations/requests) on which delay
7816
+ # will be introduced as part of fault injection.
7817
+ # The value must be between 0.0 and 100.0 inclusive.
7818
+ # Corresponds to the JSON property `percentage`
7819
+ # @return [Float]
7820
+ attr_accessor :percentage
7821
+
7822
+ def initialize(**args)
7823
+ update!(**args)
7824
+ end
7825
+
7826
+ # Update properties of this object
7827
+ def update!(**args)
7828
+ @fixed_delay = args[:fixed_delay] if args.key?(:fixed_delay)
7829
+ @percentage = args[:percentage] if args.key?(:percentage)
7830
+ end
7831
+ end
7832
+
7833
+ # The specification for fault injection introduced into traffic to test the
7834
+ # resiliency of clients to backend service failure. As part of fault injection,
7835
+ # when clients send requests to a backend service, delays can be introduced by
7836
+ # Loadbalancer on a percentage of requests before sending those request to the
7837
+ # backend service. Similarly requests from clients can be aborted by the
7838
+ # Loadbalancer for a percentage of requests.
7839
+ class HttpFaultInjection
7840
+ include Google::Apis::Core::Hashable
7841
+
7842
+ # Specification for how requests are aborted as part of fault injection.
7843
+ # Corresponds to the JSON property `abort`
7844
+ # @return [Google::Apis::ComputeV1::HttpFaultAbort]
7845
+ attr_accessor :abort
7846
+
7847
+ # Specifies the delay introduced by Loadbalancer before forwarding the request
7848
+ # to the backend service as part of fault injection.
7849
+ # Corresponds to the JSON property `delay`
7850
+ # @return [Google::Apis::ComputeV1::HttpFaultDelay]
7851
+ attr_accessor :delay
7852
+
7853
+ def initialize(**args)
7854
+ update!(**args)
7855
+ end
7856
+
7857
+ # Update properties of this object
7858
+ def update!(**args)
7859
+ @abort = args[:abort] if args.key?(:abort)
7860
+ @delay = args[:delay] if args.key?(:delay)
7861
+ end
7862
+ end
7863
+
7864
+ # The request and response header transformations that take effect before the
7865
+ # request is passed along to the selected backendService.
7866
+ class HttpHeaderAction
7867
+ include Google::Apis::Core::Hashable
7868
+
7869
+ # Headers to add to a matching request prior to forwarding the request to the
7870
+ # backendService.
7871
+ # Corresponds to the JSON property `requestHeadersToAdd`
7872
+ # @return [Array<Google::Apis::ComputeV1::HttpHeaderOption>]
7873
+ attr_accessor :request_headers_to_add
7874
+
7875
+ # A list of header names for headers that need to be removed from the request
7876
+ # prior to forwarding the request to the backendService.
7877
+ # Corresponds to the JSON property `requestHeadersToRemove`
7878
+ # @return [Array<String>]
7879
+ attr_accessor :request_headers_to_remove
7880
+
7881
+ # Headers to add the response prior to sending the response back to the client.
7882
+ # Corresponds to the JSON property `responseHeadersToAdd`
7883
+ # @return [Array<Google::Apis::ComputeV1::HttpHeaderOption>]
7884
+ attr_accessor :response_headers_to_add
7885
+
7886
+ # A list of header names for headers that need to be removed from the response
7887
+ # prior to sending the response back to the client.
7888
+ # Corresponds to the JSON property `responseHeadersToRemove`
7889
+ # @return [Array<String>]
7890
+ attr_accessor :response_headers_to_remove
7891
+
7892
+ def initialize(**args)
7893
+ update!(**args)
7894
+ end
7895
+
7896
+ # Update properties of this object
7897
+ def update!(**args)
7898
+ @request_headers_to_add = args[:request_headers_to_add] if args.key?(:request_headers_to_add)
7899
+ @request_headers_to_remove = args[:request_headers_to_remove] if args.key?(:request_headers_to_remove)
7900
+ @response_headers_to_add = args[:response_headers_to_add] if args.key?(:response_headers_to_add)
7901
+ @response_headers_to_remove = args[:response_headers_to_remove] if args.key?(:response_headers_to_remove)
7902
+ end
7903
+ end
7904
+
7905
+ # matchRule criteria for request header matches.
7906
+ class HttpHeaderMatch
7907
+ include Google::Apis::Core::Hashable
7908
+
7909
+ # The value should exactly match contents of exactMatch.
7910
+ # Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or
7911
+ # rangeMatch must be set.
7912
+ # Corresponds to the JSON property `exactMatch`
7913
+ # @return [String]
7914
+ attr_accessor :exact_match
7915
+
7916
+ # The name of the HTTP header to match.
7917
+ # For matching against the HTTP request's authority, use a headerMatch with the
7918
+ # header name ":authority".
7919
+ # For matching a request's method, use the headerName ":method".
7920
+ # Corresponds to the JSON property `headerName`
7921
+ # @return [String]
7922
+ attr_accessor :header_name
7923
+
7924
+ # If set to false, the headerMatch is considered a match if the match criteria
7925
+ # above are met. If set to true, the headerMatch is considered a match if the
7926
+ # match criteria above are NOT met.
7927
+ # The default setting is false.
7928
+ # Corresponds to the JSON property `invertMatch`
7929
+ # @return [Boolean]
7930
+ attr_accessor :invert_match
7931
+ alias_method :invert_match?, :invert_match
7932
+
7933
+ # The value of the header must start with the contents of prefixMatch.
7934
+ # Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or
7935
+ # rangeMatch must be set.
7936
+ # Corresponds to the JSON property `prefixMatch`
7937
+ # @return [String]
7938
+ attr_accessor :prefix_match
7939
+
7940
+ # A header with the contents of headerName must exist. The match takes place
7941
+ # whether or not the request's header has a value or not.
7942
+ # Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or
7943
+ # rangeMatch must be set.
7944
+ # Corresponds to the JSON property `presentMatch`
7945
+ # @return [Boolean]
7946
+ attr_accessor :present_match
7947
+ alias_method :present_match?, :present_match
7948
+
7949
+ # HttpRouteRuleMatch criteria for field values that must stay within the
7950
+ # specified integer range.
7951
+ # Corresponds to the JSON property `rangeMatch`
7952
+ # @return [Google::Apis::ComputeV1::Int64RangeMatch]
7953
+ attr_accessor :range_match
7954
+
7955
+ # The value of the header must match the regualar expression specified in
7956
+ # regexMatch. For regular expression grammar, please see: en.cppreference.com/w/
7957
+ # cpp/regex/ecmascript
7958
+ # For matching against a port specified in the HTTP request, use a headerMatch
7959
+ # with headerName set to PORT and a regular expression that satisfies the
7960
+ # RFC2616 Host header's port specifier.
7961
+ # Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or
7962
+ # rangeMatch must be set.
7963
+ # Corresponds to the JSON property `regexMatch`
7964
+ # @return [String]
7965
+ attr_accessor :regex_match
7966
+
7967
+ # The value of the header must end with the contents of suffixMatch.
7968
+ # Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or
7969
+ # rangeMatch must be set.
7970
+ # Corresponds to the JSON property `suffixMatch`
7971
+ # @return [String]
7972
+ attr_accessor :suffix_match
7973
+
7974
+ def initialize(**args)
7975
+ update!(**args)
7976
+ end
7977
+
7978
+ # Update properties of this object
7979
+ def update!(**args)
7980
+ @exact_match = args[:exact_match] if args.key?(:exact_match)
7981
+ @header_name = args[:header_name] if args.key?(:header_name)
7982
+ @invert_match = args[:invert_match] if args.key?(:invert_match)
7983
+ @prefix_match = args[:prefix_match] if args.key?(:prefix_match)
7984
+ @present_match = args[:present_match] if args.key?(:present_match)
7985
+ @range_match = args[:range_match] if args.key?(:range_match)
7986
+ @regex_match = args[:regex_match] if args.key?(:regex_match)
7987
+ @suffix_match = args[:suffix_match] if args.key?(:suffix_match)
7988
+ end
7989
+ end
7990
+
7991
+ # Specification determining how headers are added to requests or responses.
7992
+ class HttpHeaderOption
7993
+ include Google::Apis::Core::Hashable
7994
+
7995
+ # The name of the header.
7996
+ # Corresponds to the JSON property `headerName`
7997
+ # @return [String]
7998
+ attr_accessor :header_name
7999
+
8000
+ # The value of the header to add.
8001
+ # Corresponds to the JSON property `headerValue`
8002
+ # @return [String]
8003
+ attr_accessor :header_value
8004
+
8005
+ # If false, headerValue is appended to any values that already exist for the
8006
+ # header. If true, headerValue is set for the header, discarding any values that
8007
+ # were set for that header.
8008
+ # The default value is false.
8009
+ # Corresponds to the JSON property `replace`
8010
+ # @return [Boolean]
8011
+ attr_accessor :replace
8012
+ alias_method :replace?, :replace
8013
+
8014
+ def initialize(**args)
8015
+ update!(**args)
8016
+ end
8017
+
8018
+ # Update properties of this object
8019
+ def update!(**args)
8020
+ @header_name = args[:header_name] if args.key?(:header_name)
8021
+ @header_value = args[:header_value] if args.key?(:header_value)
8022
+ @replace = args[:replace] if args.key?(:replace)
8023
+ end
8024
+ end
8025
+
7486
8026
  # Represents a legacy HTTP Health Check resource.
7487
8027
  # Legacy health checks are required by network load balancers. For more
7488
8028
  # information, read Health Check Concepts.
@@ -7708,6 +8248,400 @@ module Google
7708
8248
  end
7709
8249
  end
7710
8250
 
8251
+ # HttpRouteRuleMatch criteria for a request's query parameter.
8252
+ class HttpQueryParameterMatch
8253
+ include Google::Apis::Core::Hashable
8254
+
8255
+ # The queryParameterMatch matches if the value of the parameter exactly matches
8256
+ # the contents of exactMatch.
8257
+ # Only one of presentMatch, exactMatch and regexMatch must be set.
8258
+ # Corresponds to the JSON property `exactMatch`
8259
+ # @return [String]
8260
+ attr_accessor :exact_match
8261
+
8262
+ # The name of the query parameter to match. The query parameter must exist in
8263
+ # the request, in the absence of which the request match fails.
8264
+ # Corresponds to the JSON property `name`
8265
+ # @return [String]
8266
+ attr_accessor :name
8267
+
8268
+ # Specifies that the queryParameterMatch matches if the request contains the
8269
+ # query parameter, irrespective of whether the parameter has a value or not.
8270
+ # Only one of presentMatch, exactMatch and regexMatch must be set.
8271
+ # Corresponds to the JSON property `presentMatch`
8272
+ # @return [Boolean]
8273
+ attr_accessor :present_match
8274
+ alias_method :present_match?, :present_match
8275
+
8276
+ # The queryParameterMatch matches if the value of the parameter matches the
8277
+ # regular expression specified by regexMatch. For the regular expression grammar,
8278
+ # please see en.cppreference.com/w/cpp/regex/ecmascript
8279
+ # Only one of presentMatch, exactMatch and regexMatch must be set.
8280
+ # Corresponds to the JSON property `regexMatch`
8281
+ # @return [String]
8282
+ attr_accessor :regex_match
8283
+
8284
+ def initialize(**args)
8285
+ update!(**args)
8286
+ end
8287
+
8288
+ # Update properties of this object
8289
+ def update!(**args)
8290
+ @exact_match = args[:exact_match] if args.key?(:exact_match)
8291
+ @name = args[:name] if args.key?(:name)
8292
+ @present_match = args[:present_match] if args.key?(:present_match)
8293
+ @regex_match = args[:regex_match] if args.key?(:regex_match)
8294
+ end
8295
+ end
8296
+
8297
+ # Specifies settings for an HTTP redirect.
8298
+ class HttpRedirectAction
8299
+ include Google::Apis::Core::Hashable
8300
+
8301
+ # The host that will be used in the redirect response instead of the one that
8302
+ # was supplied in the request.
8303
+ # The value must be between 1 and 255 characters.
8304
+ # Corresponds to the JSON property `hostRedirect`
8305
+ # @return [String]
8306
+ attr_accessor :host_redirect
8307
+
8308
+ # If set to true, the URL scheme in the redirected request is set to https. If
8309
+ # set to false, the URL scheme of the redirected request will remain the same as
8310
+ # that of the request.
8311
+ # This must only be set for UrlMaps used in TargetHttpProxys. Setting this true
8312
+ # for TargetHttpsProxy is not permitted.
8313
+ # The default is set to false.
8314
+ # Corresponds to the JSON property `httpsRedirect`
8315
+ # @return [Boolean]
8316
+ attr_accessor :https_redirect
8317
+ alias_method :https_redirect?, :https_redirect
8318
+
8319
+ # The path that will be used in the redirect response instead of the one that
8320
+ # was supplied in the request.
8321
+ # Only one of pathRedirect or prefixRedirect must be specified.
8322
+ # The value must be between 1 and 1024 characters.
8323
+ # Corresponds to the JSON property `pathRedirect`
8324
+ # @return [String]
8325
+ attr_accessor :path_redirect
8326
+
8327
+ # The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,
8328
+ # retaining the remaining portion of the URL before redirecting the request.
8329
+ # Corresponds to the JSON property `prefixRedirect`
8330
+ # @return [String]
8331
+ attr_accessor :prefix_redirect
8332
+
8333
+ # The HTTP Status code to use for this RedirectAction.
8334
+ # Supported values are:
8335
+ # - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.
8336
+ #
8337
+ # - FOUND, which corresponds to 302.
8338
+ # - SEE_OTHER which corresponds to 303.
8339
+ # - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request
8340
+ # method will be retained.
8341
+ # - PERMANENT_REDIRECT, which corresponds to 308. In this case, the request
8342
+ # method will be retained.
8343
+ # Corresponds to the JSON property `redirectResponseCode`
8344
+ # @return [String]
8345
+ attr_accessor :redirect_response_code
8346
+
8347
+ # If set to true, any accompanying query portion of the original URL is removed
8348
+ # prior to redirecting the request. If set to false, the query portion of the
8349
+ # original URL is retained.
8350
+ # The default is set to false.
8351
+ # Corresponds to the JSON property `stripQuery`
8352
+ # @return [Boolean]
8353
+ attr_accessor :strip_query
8354
+ alias_method :strip_query?, :strip_query
8355
+
8356
+ def initialize(**args)
8357
+ update!(**args)
8358
+ end
8359
+
8360
+ # Update properties of this object
8361
+ def update!(**args)
8362
+ @host_redirect = args[:host_redirect] if args.key?(:host_redirect)
8363
+ @https_redirect = args[:https_redirect] if args.key?(:https_redirect)
8364
+ @path_redirect = args[:path_redirect] if args.key?(:path_redirect)
8365
+ @prefix_redirect = args[:prefix_redirect] if args.key?(:prefix_redirect)
8366
+ @redirect_response_code = args[:redirect_response_code] if args.key?(:redirect_response_code)
8367
+ @strip_query = args[:strip_query] if args.key?(:strip_query)
8368
+ end
8369
+ end
8370
+
8371
+ # The retry policy associates with HttpRouteRule
8372
+ class HttpRetryPolicy
8373
+ include Google::Apis::Core::Hashable
8374
+
8375
+ # Specifies the allowed number retries. This number must be > 0.
8376
+ # Corresponds to the JSON property `numRetries`
8377
+ # @return [Fixnum]
8378
+ attr_accessor :num_retries
8379
+
8380
+ # A Duration represents a fixed-length span of time represented as a count of
8381
+ # seconds and fractions of seconds at nanosecond resolution. It is independent
8382
+ # of any calendar and concepts like "day" or "month". Range is approximately 10,
8383
+ # 000 years.
8384
+ # Corresponds to the JSON property `perTryTimeout`
8385
+ # @return [Google::Apis::ComputeV1::Duration]
8386
+ attr_accessor :per_try_timeout
8387
+
8388
+ # Specfies one or more conditions when this retry rule applies. Valid values are:
8389
+ #
8390
+ # - 5xx: Loadbalancer will attempt a retry if the backend service responds with
8391
+ # any 5xx response code, or if the backend service does not respond at all,
8392
+ # example: disconnects, reset, read timeout, connection failure, and refused
8393
+ # streams.
8394
+ # - gateway-error: Similar to 5xx, but only applies to response codes 502, 503
8395
+ # or 504.
8396
+ # -
8397
+ # - connect-failure: Loadbalancer will retry on failures connecting to backend
8398
+ # services, for example due to connection timeouts.
8399
+ # - retriable-4xx: Loadbalancer will retry for retriable 4xx response codes.
8400
+ # Currently the only retriable error supported is 409.
8401
+ # - refused-stream:Loadbalancer will retry if the backend service resets the
8402
+ # stream with a REFUSED_STREAM error code. This reset type indicates that it is
8403
+ # safe to retry.
8404
+ # - cancelledLoadbalancer will retry if the gRPC status code in the response
8405
+ # header is set to cancelled
8406
+ # - deadline-exceeded: Loadbalancer will retry if the gRPC status code in the
8407
+ # response header is set to deadline-exceeded
8408
+ # - resource-exhausted: Loadbalancer will retry if the gRPC status code in the
8409
+ # response header is set to resource-exhausted
8410
+ # - unavailable: Loadbalancer will retry if the gRPC status code in the response
8411
+ # header is set to unavailable
8412
+ # Corresponds to the JSON property `retryConditions`
8413
+ # @return [Array<String>]
8414
+ attr_accessor :retry_conditions
8415
+
8416
+ def initialize(**args)
8417
+ update!(**args)
8418
+ end
8419
+
8420
+ # Update properties of this object
8421
+ def update!(**args)
8422
+ @num_retries = args[:num_retries] if args.key?(:num_retries)
8423
+ @per_try_timeout = args[:per_try_timeout] if args.key?(:per_try_timeout)
8424
+ @retry_conditions = args[:retry_conditions] if args.key?(:retry_conditions)
8425
+ end
8426
+ end
8427
+
8428
+ #
8429
+ class HttpRouteAction
8430
+ include Google::Apis::Core::Hashable
8431
+
8432
+ # The specification for allowing client side cross-origin requests. Please see
8433
+ # W3C Recommendation for Cross Origin Resource Sharing
8434
+ # Corresponds to the JSON property `corsPolicy`
8435
+ # @return [Google::Apis::ComputeV1::CorsPolicy]
8436
+ attr_accessor :cors_policy
8437
+
8438
+ # The specification for fault injection introduced into traffic to test the
8439
+ # resiliency of clients to backend service failure. As part of fault injection,
8440
+ # when clients send requests to a backend service, delays can be introduced by
8441
+ # Loadbalancer on a percentage of requests before sending those request to the
8442
+ # backend service. Similarly requests from clients can be aborted by the
8443
+ # Loadbalancer for a percentage of requests.
8444
+ # Corresponds to the JSON property `faultInjectionPolicy`
8445
+ # @return [Google::Apis::ComputeV1::HttpFaultInjection]
8446
+ attr_accessor :fault_injection_policy
8447
+
8448
+ # A policy that specifies how requests intended for the route's backends are
8449
+ # shadowed to a separate mirrored backend service. Loadbalancer does not wait
8450
+ # for responses from the shadow service. Prior to sending traffic to the shadow
8451
+ # service, the host / authority header is suffixed with -shadow.
8452
+ # Corresponds to the JSON property `requestMirrorPolicy`
8453
+ # @return [Google::Apis::ComputeV1::RequestMirrorPolicy]
8454
+ attr_accessor :request_mirror_policy
8455
+
8456
+ # The retry policy associates with HttpRouteRule
8457
+ # Corresponds to the JSON property `retryPolicy`
8458
+ # @return [Google::Apis::ComputeV1::HttpRetryPolicy]
8459
+ attr_accessor :retry_policy
8460
+
8461
+ # A Duration represents a fixed-length span of time represented as a count of
8462
+ # seconds and fractions of seconds at nanosecond resolution. It is independent
8463
+ # of any calendar and concepts like "day" or "month". Range is approximately 10,
8464
+ # 000 years.
8465
+ # Corresponds to the JSON property `timeout`
8466
+ # @return [Google::Apis::ComputeV1::Duration]
8467
+ attr_accessor :timeout
8468
+
8469
+ # The spec for modifying the path before sending the request to the matched
8470
+ # backend service.
8471
+ # Corresponds to the JSON property `urlRewrite`
8472
+ # @return [Google::Apis::ComputeV1::UrlRewrite]
8473
+ attr_accessor :url_rewrite
8474
+
8475
+ # A list of weighted backend services to send traffic to when a route match
8476
+ # occurs. The weights determine the fraction of traffic that flows to their
8477
+ # corresponding backend service. If all traffic needs to go to a single backend
8478
+ # service, there must be one weightedBackendService with weight set to a non 0
8479
+ # number.
8480
+ # Once a backendService is identified and before forwarding the request to the
8481
+ # backend service, advanced routing actions like Url rewrites and header
8482
+ # transformations are applied depending on additional settings specified in this
8483
+ # HttpRouteAction.
8484
+ # Corresponds to the JSON property `weightedBackendServices`
8485
+ # @return [Array<Google::Apis::ComputeV1::WeightedBackendService>]
8486
+ attr_accessor :weighted_backend_services
8487
+
8488
+ def initialize(**args)
8489
+ update!(**args)
8490
+ end
8491
+
8492
+ # Update properties of this object
8493
+ def update!(**args)
8494
+ @cors_policy = args[:cors_policy] if args.key?(:cors_policy)
8495
+ @fault_injection_policy = args[:fault_injection_policy] if args.key?(:fault_injection_policy)
8496
+ @request_mirror_policy = args[:request_mirror_policy] if args.key?(:request_mirror_policy)
8497
+ @retry_policy = args[:retry_policy] if args.key?(:retry_policy)
8498
+ @timeout = args[:timeout] if args.key?(:timeout)
8499
+ @url_rewrite = args[:url_rewrite] if args.key?(:url_rewrite)
8500
+ @weighted_backend_services = args[:weighted_backend_services] if args.key?(:weighted_backend_services)
8501
+ end
8502
+ end
8503
+
8504
+ # An HttpRouteRule specifies how to match an HTTP request and the corresponding
8505
+ # routing action that load balancing proxies will perform.
8506
+ class HttpRouteRule
8507
+ include Google::Apis::Core::Hashable
8508
+
8509
+ # The request and response header transformations that take effect before the
8510
+ # request is passed along to the selected backendService.
8511
+ # Corresponds to the JSON property `headerAction`
8512
+ # @return [Google::Apis::ComputeV1::HttpHeaderAction]
8513
+ attr_accessor :header_action
8514
+
8515
+ #
8516
+ # Corresponds to the JSON property `matchRules`
8517
+ # @return [Array<Google::Apis::ComputeV1::HttpRouteRuleMatch>]
8518
+ attr_accessor :match_rules
8519
+
8520
+ # In response to a matching matchRule, the load balancer performs advanced
8521
+ # routing actions like URL rewrites, header transformations, etc. prior to
8522
+ # forwarding the request to the selected backend. If routeAction specifies any
8523
+ # weightedBackendServices, service must not be set. Conversely if service is set,
8524
+ # routeAction cannot contain any weightedBackendServices.
8525
+ # Only one of routeAction or urlRedirect must be set.
8526
+ # Corresponds to the JSON property `routeAction`
8527
+ # @return [Google::Apis::ComputeV1::HttpRouteAction]
8528
+ attr_accessor :route_action
8529
+
8530
+ # The full or partial URL of the backend service resource to which traffic is
8531
+ # directed if this rule is matched. If routeAction is additionally specified,
8532
+ # advanced routing actions like URL Rewrites, etc. take effect prior to sending
8533
+ # the request to the backend. However, if service is specified, routeAction
8534
+ # cannot contain any weightedBackendService s. Conversely, if routeAction
8535
+ # specifies any weightedBackendServices, service must not be specified.
8536
+ # Only one of urlRedirect, service or routeAction.weightedBackendService must be
8537
+ # set.
8538
+ # Corresponds to the JSON property `service`
8539
+ # @return [String]
8540
+ attr_accessor :service
8541
+
8542
+ # Specifies settings for an HTTP redirect.
8543
+ # Corresponds to the JSON property `urlRedirect`
8544
+ # @return [Google::Apis::ComputeV1::HttpRedirectAction]
8545
+ attr_accessor :url_redirect
8546
+
8547
+ def initialize(**args)
8548
+ update!(**args)
8549
+ end
8550
+
8551
+ # Update properties of this object
8552
+ def update!(**args)
8553
+ @header_action = args[:header_action] if args.key?(:header_action)
8554
+ @match_rules = args[:match_rules] if args.key?(:match_rules)
8555
+ @route_action = args[:route_action] if args.key?(:route_action)
8556
+ @service = args[:service] if args.key?(:service)
8557
+ @url_redirect = args[:url_redirect] if args.key?(:url_redirect)
8558
+ end
8559
+ end
8560
+
8561
+ # HttpRouteRuleMatch specifies a set of criteria for matching requests to an
8562
+ # HttpRouteRule. All specified criteria must be satisfied for a match to occur.
8563
+ class HttpRouteRuleMatch
8564
+ include Google::Apis::Core::Hashable
8565
+
8566
+ # For satifying the matchRule condition, the path of the request must exactly
8567
+ # match the value specified in fullPathMatch after removing any query parameters
8568
+ # and anchor that may be part of the original URL.
8569
+ # FullPathMatch must be between 1 and 1024 characters.
8570
+ # Only one of prefixMatch, fullPathMatch or regexMatch must be specified.
8571
+ # Corresponds to the JSON property `fullPathMatch`
8572
+ # @return [String]
8573
+ attr_accessor :full_path_match
8574
+
8575
+ # Specifies a list of header match criteria, all of which must match
8576
+ # corresponding headers in the request.
8577
+ # Corresponds to the JSON property `headerMatches`
8578
+ # @return [Array<Google::Apis::ComputeV1::HttpHeaderMatch>]
8579
+ attr_accessor :header_matches
8580
+
8581
+ # Specifies that prefixMatch and fullPathMatch matches are case sensitive.
8582
+ # The default value is false.
8583
+ # caseSensitive must not be used with regexMatch.
8584
+ # Corresponds to the JSON property `ignoreCase`
8585
+ # @return [Boolean]
8586
+ attr_accessor :ignore_case
8587
+ alias_method :ignore_case?, :ignore_case
8588
+
8589
+ # Opaque filter criteria used by Loadbalancer to restrict routing configuration
8590
+ # to a limited set xDS compliant clients. In their xDS requests to Loadbalancer,
8591
+ # xDS clients present node metadata. If a match takes place, the relevant
8592
+ # routing configuration is made available to those proxies.
8593
+ # For each metadataFilter in this list, if its filterMatchCriteria is set to
8594
+ # MATCH_ANY, at least one of the filterLabels must match the corresponding label
8595
+ # provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then
8596
+ # all of its filterLabels must match with corresponding labels in the provided
8597
+ # metadata.
8598
+ # metadataFilters specified here can be overrides those specified in
8599
+ # ForwardingRule that refers to this UrlMap.
8600
+ # metadataFilters only applies to Loadbalancers that have their
8601
+ # loadBalancingScheme set to INTERNAL_SELF_MANAGED.
8602
+ # Corresponds to the JSON property `metadataFilters`
8603
+ # @return [Array<Google::Apis::ComputeV1::MetadataFilter>]
8604
+ attr_accessor :metadata_filters
8605
+
8606
+ # For satifying the matchRule condition, the request's path must begin with the
8607
+ # specified prefixMatch. prefixMatch must begin with a /.
8608
+ # The value must be between 1 and 1024 characters.
8609
+ # Only one of prefixMatch, fullPathMatch or regexMatch must be specified.
8610
+ # Corresponds to the JSON property `prefixMatch`
8611
+ # @return [String]
8612
+ attr_accessor :prefix_match
8613
+
8614
+ # Specifies a list of query parameter match criteria, all of which must match
8615
+ # corresponding query parameters in the request.
8616
+ # Corresponds to the JSON property `queryParameterMatches`
8617
+ # @return [Array<Google::Apis::ComputeV1::HttpQueryParameterMatch>]
8618
+ attr_accessor :query_parameter_matches
8619
+
8620
+ # For satifying the matchRule condition, the path of the request must satisfy
8621
+ # the regular expression specified in regexMatch after removing any query
8622
+ # parameters and anchor supplied with the original URL. For regular expression
8623
+ # grammar please see en.cppreference.com/w/cpp/regex/ecmascript
8624
+ # Only one of prefixMatch, fullPathMatch or regexMatch must be specified.
8625
+ # Corresponds to the JSON property `regexMatch`
8626
+ # @return [String]
8627
+ attr_accessor :regex_match
8628
+
8629
+ def initialize(**args)
8630
+ update!(**args)
8631
+ end
8632
+
8633
+ # Update properties of this object
8634
+ def update!(**args)
8635
+ @full_path_match = args[:full_path_match] if args.key?(:full_path_match)
8636
+ @header_matches = args[:header_matches] if args.key?(:header_matches)
8637
+ @ignore_case = args[:ignore_case] if args.key?(:ignore_case)
8638
+ @metadata_filters = args[:metadata_filters] if args.key?(:metadata_filters)
8639
+ @prefix_match = args[:prefix_match] if args.key?(:prefix_match)
8640
+ @query_parameter_matches = args[:query_parameter_matches] if args.key?(:query_parameter_matches)
8641
+ @regex_match = args[:regex_match] if args.key?(:regex_match)
8642
+ end
8643
+ end
8644
+
7711
8645
  # Represents a legacy HTTPS Health Check resource.
7712
8646
  # Legacy health checks are required by network load balancers. For more
7713
8647
  # information, read Health Check Concepts.
@@ -11048,6 +11982,32 @@ module Google
11048
11982
  end
11049
11983
  end
11050
11984
 
11985
+ # HttpRouteRuleMatch criteria for field values that must stay within the
11986
+ # specified integer range.
11987
+ class Int64RangeMatch
11988
+ include Google::Apis::Core::Hashable
11989
+
11990
+ # The end of the range (exclusive) in signed long integer format.
11991
+ # Corresponds to the JSON property `rangeEnd`
11992
+ # @return [Fixnum]
11993
+ attr_accessor :range_end
11994
+
11995
+ # The start of the range (inclusive) in signed long integer format.
11996
+ # Corresponds to the JSON property `rangeStart`
11997
+ # @return [Fixnum]
11998
+ attr_accessor :range_start
11999
+
12000
+ def initialize(**args)
12001
+ update!(**args)
12002
+ end
12003
+
12004
+ # Update properties of this object
12005
+ def update!(**args)
12006
+ @range_end = args[:range_end] if args.key?(:range_end)
12007
+ @range_start = args[:range_start] if args.key?(:range_start)
12008
+ end
12009
+ end
12010
+
11051
12011
  # Represents an Interconnect resource.
11052
12012
  # An Interconnect resource is a dedicated connection between the GCP network and
11053
12013
  # your on-premises network. For more information, read the Dedicated
@@ -13728,6 +14688,82 @@ module Google
13728
14688
  end
13729
14689
  end
13730
14690
 
14691
+ # Opaque filter criteria used by loadbalancers to restrict routing configuration
14692
+ # to a limited set of loadbalancing proxies. Proxies and sidecars involved in
14693
+ # loadbalancing would typically present metadata to the loadbalancers which need
14694
+ # to match criteria specified here. If a match takes place, the relevant routing
14695
+ # configuration is made available to those proxies.
14696
+ # For each metadataFilter in this list, if its filterMatchCriteria is set to
14697
+ # MATCH_ANY, at least one of the filterLabels must match the corresponding label
14698
+ # provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then
14699
+ # all of its filterLabels must match with corresponding labels in the provided
14700
+ # metadata.
14701
+ # An example for using metadataFilters would be: if loadbalancing involves
14702
+ # Envoys, they will only receive routing configuration when values in
14703
+ # metadataFilters match values supplied in <a href="https://www.envoyproxy.io/
14704
+ # docs/envoy/latest/api-v2/api/v2/core/base.proto#envoy-api-msg-core-node" Node
14705
+ # metadata of their XDS requests to loadbalancers.
14706
+ class MetadataFilter
14707
+ include Google::Apis::Core::Hashable
14708
+
14709
+ # The list of label value pairs that must match labels in the provided metadata
14710
+ # based on filterMatchCriteria
14711
+ # This list must not be empty and can have at the most 64 entries.
14712
+ # Corresponds to the JSON property `filterLabels`
14713
+ # @return [Array<Google::Apis::ComputeV1::MetadataFilterLabelMatch>]
14714
+ attr_accessor :filter_labels
14715
+
14716
+ # Specifies how individual filterLabel matches within the list of filterLabels
14717
+ # contribute towards the overall metadataFilter match.
14718
+ # Supported values are:
14719
+ # - MATCH_ANY: At least one of the filterLabels must have a matching label in
14720
+ # the provided metadata.
14721
+ # - MATCH_ALL: All filterLabels must have matching labels in the provided
14722
+ # metadata.
14723
+ # Corresponds to the JSON property `filterMatchCriteria`
14724
+ # @return [String]
14725
+ attr_accessor :filter_match_criteria
14726
+
14727
+ def initialize(**args)
14728
+ update!(**args)
14729
+ end
14730
+
14731
+ # Update properties of this object
14732
+ def update!(**args)
14733
+ @filter_labels = args[:filter_labels] if args.key?(:filter_labels)
14734
+ @filter_match_criteria = args[:filter_match_criteria] if args.key?(:filter_match_criteria)
14735
+ end
14736
+ end
14737
+
14738
+ # MetadataFilter label name value pairs that are expected to match corresponding
14739
+ # labels presented as metadata to the loadbalancer.
14740
+ class MetadataFilterLabelMatch
14741
+ include Google::Apis::Core::Hashable
14742
+
14743
+ # Name of metadata label.
14744
+ # The name can have a maximum length of 1024 characters and must be at least 1
14745
+ # character long.
14746
+ # Corresponds to the JSON property `name`
14747
+ # @return [String]
14748
+ attr_accessor :name
14749
+
14750
+ # The value of the label must match the specified value.
14751
+ # value can have a maximum length of 1024 characters.
14752
+ # Corresponds to the JSON property `value`
14753
+ # @return [String]
14754
+ attr_accessor :value
14755
+
14756
+ def initialize(**args)
14757
+ update!(**args)
14758
+ end
14759
+
14760
+ # Update properties of this object
14761
+ def update!(**args)
14762
+ @name = args[:name] if args.key?(:name)
14763
+ @value = args[:value] if args.key?(:value)
14764
+ end
14765
+ end
14766
+
13731
14767
  # The named port. For example: .
13732
14768
  class NamedPort
13733
14769
  include Google::Apis::Core::Hashable
@@ -17079,12 +18115,131 @@ module Google
17079
18115
  end
17080
18116
  end
17081
18117
 
18118
+ # Settings controlling eviction of unhealthy hosts from the load balancing pool.
18119
+ class OutlierDetection
18120
+ include Google::Apis::Core::Hashable
18121
+
18122
+ # A Duration represents a fixed-length span of time represented as a count of
18123
+ # seconds and fractions of seconds at nanosecond resolution. It is independent
18124
+ # of any calendar and concepts like "day" or "month". Range is approximately 10,
18125
+ # 000 years.
18126
+ # Corresponds to the JSON property `baseEjectionTime`
18127
+ # @return [Google::Apis::ComputeV1::Duration]
18128
+ attr_accessor :base_ejection_time
18129
+
18130
+ # Number of errors before a host is ejected from the connection pool. When the
18131
+ # backend host is accessed over HTTP, a 5xx return code qualifies as an error.
18132
+ # Defaults to 5.
18133
+ # Corresponds to the JSON property `consecutiveErrors`
18134
+ # @return [Fixnum]
18135
+ attr_accessor :consecutive_errors
18136
+
18137
+ # The number of consecutive gateway failures (502, 503, 504 status or connection
18138
+ # errors that are mapped to one of those status codes) before a consecutive
18139
+ # gateway failure ejection occurs. Defaults to 5.
18140
+ # Corresponds to the JSON property `consecutiveGatewayFailure`
18141
+ # @return [Fixnum]
18142
+ attr_accessor :consecutive_gateway_failure
18143
+
18144
+ # The percentage chance that a host will be actually ejected when an outlier
18145
+ # status is detected through consecutive 5xx. This setting can be used to
18146
+ # disable ejection or to ramp it up slowly. Defaults to 100.
18147
+ # Corresponds to the JSON property `enforcingConsecutiveErrors`
18148
+ # @return [Fixnum]
18149
+ attr_accessor :enforcing_consecutive_errors
18150
+
18151
+ # The percentage chance that a host will be actually ejected when an outlier
18152
+ # status is detected through consecutive gateway failures. This setting can be
18153
+ # used to disable ejection or to ramp it up slowly. Defaults to 0.
18154
+ # Corresponds to the JSON property `enforcingConsecutiveGatewayFailure`
18155
+ # @return [Fixnum]
18156
+ attr_accessor :enforcing_consecutive_gateway_failure
18157
+
18158
+ # The percentage chance that a host will be actually ejected when an outlier
18159
+ # status is detected through success rate statistics. This setting can be used
18160
+ # to disable ejection or to ramp it up slowly. Defaults to 100.
18161
+ # Corresponds to the JSON property `enforcingSuccessRate`
18162
+ # @return [Fixnum]
18163
+ attr_accessor :enforcing_success_rate
18164
+
18165
+ # A Duration represents a fixed-length span of time represented as a count of
18166
+ # seconds and fractions of seconds at nanosecond resolution. It is independent
18167
+ # of any calendar and concepts like "day" or "month". Range is approximately 10,
18168
+ # 000 years.
18169
+ # Corresponds to the JSON property `interval`
18170
+ # @return [Google::Apis::ComputeV1::Duration]
18171
+ attr_accessor :interval
18172
+
18173
+ # Maximum percentage of hosts in the load balancing pool for the backend service
18174
+ # that can be ejected. Defaults to 10%.
18175
+ # Corresponds to the JSON property `maxEjectionPercent`
18176
+ # @return [Fixnum]
18177
+ attr_accessor :max_ejection_percent
18178
+
18179
+ # The number of hosts in a cluster that must have enough request volume to
18180
+ # detect success rate outliers. If the number of hosts is less than this setting,
18181
+ # outlier detection via success rate statistics is not performed for any host
18182
+ # in the cluster. Defaults to 5.
18183
+ # Corresponds to the JSON property `successRateMinimumHosts`
18184
+ # @return [Fixnum]
18185
+ attr_accessor :success_rate_minimum_hosts
18186
+
18187
+ # The minimum number of total requests that must be collected in one interval (
18188
+ # as defined by the interval duration above) to include this host in success
18189
+ # rate based outlier detection. If the volume is lower than this setting,
18190
+ # outlier detection via success rate statistics is not performed for that host.
18191
+ # Defaults to 100.
18192
+ # Corresponds to the JSON property `successRateRequestVolume`
18193
+ # @return [Fixnum]
18194
+ attr_accessor :success_rate_request_volume
18195
+
18196
+ # This factor is used to determine the ejection threshold for success rate
18197
+ # outlier ejection. The ejection threshold is the difference between the mean
18198
+ # success rate, and the product of this factor and the standard deviation of the
18199
+ # mean success rate: mean - (stdev * success_rate_stdev_factor). This factor is
18200
+ # divided by a thousand to get a double. That is, if the desired factor is 1.9,
18201
+ # the runtime value should be 1900. Defaults to 1900.
18202
+ # Corresponds to the JSON property `successRateStdevFactor`
18203
+ # @return [Fixnum]
18204
+ attr_accessor :success_rate_stdev_factor
18205
+
18206
+ def initialize(**args)
18207
+ update!(**args)
18208
+ end
18209
+
18210
+ # Update properties of this object
18211
+ def update!(**args)
18212
+ @base_ejection_time = args[:base_ejection_time] if args.key?(:base_ejection_time)
18213
+ @consecutive_errors = args[:consecutive_errors] if args.key?(:consecutive_errors)
18214
+ @consecutive_gateway_failure = args[:consecutive_gateway_failure] if args.key?(:consecutive_gateway_failure)
18215
+ @enforcing_consecutive_errors = args[:enforcing_consecutive_errors] if args.key?(:enforcing_consecutive_errors)
18216
+ @enforcing_consecutive_gateway_failure = args[:enforcing_consecutive_gateway_failure] if args.key?(:enforcing_consecutive_gateway_failure)
18217
+ @enforcing_success_rate = args[:enforcing_success_rate] if args.key?(:enforcing_success_rate)
18218
+ @interval = args[:interval] if args.key?(:interval)
18219
+ @max_ejection_percent = args[:max_ejection_percent] if args.key?(:max_ejection_percent)
18220
+ @success_rate_minimum_hosts = args[:success_rate_minimum_hosts] if args.key?(:success_rate_minimum_hosts)
18221
+ @success_rate_request_volume = args[:success_rate_request_volume] if args.key?(:success_rate_request_volume)
18222
+ @success_rate_stdev_factor = args[:success_rate_stdev_factor] if args.key?(:success_rate_stdev_factor)
18223
+ end
18224
+ end
18225
+
17082
18226
  # A matcher for the path portion of the URL. The BackendService from the longest-
17083
18227
  # matched rule will serve the URL. If no rule was matched, the default service
17084
18228
  # will be used.
17085
18229
  class PathMatcher
17086
18230
  include Google::Apis::Core::Hashable
17087
18231
 
18232
+ # defaultRouteAction takes effect when none of the pathRules or routeRules
18233
+ # match. The load balancer performs advanced routing actions like URL rewrites,
18234
+ # header transformations, etc. prior to forwarding the request to the selected
18235
+ # backend. If defaultRouteAction specifies any weightedBackendServices,
18236
+ # defaultService must not be set. Conversely if defaultService is set,
18237
+ # defaultRouteAction cannot contain any weightedBackendServices.
18238
+ # Only one of defaultRouteAction or defaultUrlRedirect must be set.
18239
+ # Corresponds to the JSON property `defaultRouteAction`
18240
+ # @return [Google::Apis::ComputeV1::HttpRouteAction]
18241
+ attr_accessor :default_route_action
18242
+
17088
18243
  # The full or partial URL to the BackendService resource. This will be used if
17089
18244
  # none of the pathRules or routeRules defined by this PathMatcher are matched.
17090
18245
  # For example, the following are all valid URLs to a BackendService resource:
@@ -17107,12 +18262,23 @@ module Google
17107
18262
  # @return [String]
17108
18263
  attr_accessor :default_service
17109
18264
 
18265
+ # Specifies settings for an HTTP redirect.
18266
+ # Corresponds to the JSON property `defaultUrlRedirect`
18267
+ # @return [Google::Apis::ComputeV1::HttpRedirectAction]
18268
+ attr_accessor :default_url_redirect
18269
+
17110
18270
  # An optional description of this resource. Provide this property when you
17111
18271
  # create the resource.
17112
18272
  # Corresponds to the JSON property `description`
17113
18273
  # @return [String]
17114
18274
  attr_accessor :description
17115
18275
 
18276
+ # The request and response header transformations that take effect before the
18277
+ # request is passed along to the selected backendService.
18278
+ # Corresponds to the JSON property `headerAction`
18279
+ # @return [Google::Apis::ComputeV1::HttpHeaderAction]
18280
+ attr_accessor :header_action
18281
+
17116
18282
  # The name to which this PathMatcher is referred by the HostRule.
17117
18283
  # Corresponds to the JSON property `name`
17118
18284
  # @return [String]
@@ -17124,21 +18290,35 @@ module Google
17124
18290
  # first basis.
17125
18291
  # For example: a pathRule with a path /a/b/c/* will match before /a/b/*
17126
18292
  # irrespective of the order in which those paths appear in this list.
17127
- # Only one of pathRules or routeRules must be set.
18293
+ # Within a given pathMatcher, only one of pathRules or routeRules must be set.
17128
18294
  # Corresponds to the JSON property `pathRules`
17129
18295
  # @return [Array<Google::Apis::ComputeV1::PathRule>]
17130
18296
  attr_accessor :path_rules
17131
18297
 
18298
+ # The list of ordered HTTP route rules. Use this list instead of pathRules when
18299
+ # advanced route matching and routing actions are desired. The order of
18300
+ # specifying routeRules matters: the first rule that matches will cause its
18301
+ # specified routing action to take effect.
18302
+ # Within a given pathMatcher, only one of pathRules or routeRules must be set.
18303
+ # routeRules are not supported in UrlMaps intended for External Load balancers.
18304
+ # Corresponds to the JSON property `routeRules`
18305
+ # @return [Array<Google::Apis::ComputeV1::HttpRouteRule>]
18306
+ attr_accessor :route_rules
18307
+
17132
18308
  def initialize(**args)
17133
18309
  update!(**args)
17134
18310
  end
17135
18311
 
17136
18312
  # Update properties of this object
17137
18313
  def update!(**args)
18314
+ @default_route_action = args[:default_route_action] if args.key?(:default_route_action)
17138
18315
  @default_service = args[:default_service] if args.key?(:default_service)
18316
+ @default_url_redirect = args[:default_url_redirect] if args.key?(:default_url_redirect)
17139
18317
  @description = args[:description] if args.key?(:description)
18318
+ @header_action = args[:header_action] if args.key?(:header_action)
17140
18319
  @name = args[:name] if args.key?(:name)
17141
18320
  @path_rules = args[:path_rules] if args.key?(:path_rules)
18321
+ @route_rules = args[:route_rules] if args.key?(:route_rules)
17142
18322
  end
17143
18323
  end
17144
18324
 
@@ -17155,6 +18335,16 @@ module Google
17155
18335
  # @return [Array<String>]
17156
18336
  attr_accessor :paths
17157
18337
 
18338
+ # In response to a matching path, the load balancer performs advanced routing
18339
+ # actions like URL rewrites, header transformations, etc. prior to forwarding
18340
+ # the request to the selected backend. If routeAction specifies any
18341
+ # weightedBackendServices, service must not be set. Conversely if service is set,
18342
+ # routeAction cannot contain any weightedBackendServices.
18343
+ # Only one of routeAction or urlRedirect must be set.
18344
+ # Corresponds to the JSON property `routeAction`
18345
+ # @return [Google::Apis::ComputeV1::HttpRouteAction]
18346
+ attr_accessor :route_action
18347
+
17158
18348
  # The full or partial URL of the backend service resource to which traffic is
17159
18349
  # directed if this rule is matched. If routeAction is additionally specified,
17160
18350
  # advanced routing actions like URL Rewrites, etc. take effect prior to sending
@@ -17167,6 +18357,11 @@ module Google
17167
18357
  # @return [String]
17168
18358
  attr_accessor :service
17169
18359
 
18360
+ # Specifies settings for an HTTP redirect.
18361
+ # Corresponds to the JSON property `urlRedirect`
18362
+ # @return [Google::Apis::ComputeV1::HttpRedirectAction]
18363
+ attr_accessor :url_redirect
18364
+
17170
18365
  def initialize(**args)
17171
18366
  update!(**args)
17172
18367
  end
@@ -17174,7 +18369,9 @@ module Google
17174
18369
  # Update properties of this object
17175
18370
  def update!(**args)
17176
18371
  @paths = args[:paths] if args.key?(:paths)
18372
+ @route_action = args[:route_action] if args.key?(:route_action)
17177
18373
  @service = args[:service] if args.key?(:service)
18374
+ @url_redirect = args[:url_redirect] if args.key?(:url_redirect)
17178
18375
  end
17179
18376
  end
17180
18377
 
@@ -17240,7 +18437,12 @@ module Google
17240
18437
  # @return [Array<Google::Apis::ComputeV1::Rule>]
17241
18438
  attr_accessor :rules
17242
18439
 
17243
- # Deprecated.
18440
+ # Specifies the format of the policy.
18441
+ # Valid values are 0, 1, and 3. Requests specifying an invalid value will be
18442
+ # rejected.
18443
+ # Policies with any conditional bindings must specify version 3. Policies
18444
+ # without any conditional bindings may specify any valid value or leave the
18445
+ # field unset.
17244
18446
  # Corresponds to the JSON property `version`
17245
18447
  # @return [Fixnum]
17246
18448
  attr_accessor :version
@@ -18706,6 +19908,28 @@ module Google
18706
19908
  end
18707
19909
  end
18708
19910
 
19911
+ # A policy that specifies how requests intended for the route's backends are
19912
+ # shadowed to a separate mirrored backend service. Loadbalancer does not wait
19913
+ # for responses from the shadow service. Prior to sending traffic to the shadow
19914
+ # service, the host / authority header is suffixed with -shadow.
19915
+ class RequestMirrorPolicy
19916
+ include Google::Apis::Core::Hashable
19917
+
19918
+ # The full or partial URL to the BackendService resource being mirrored to.
19919
+ # Corresponds to the JSON property `backendService`
19920
+ # @return [String]
19921
+ attr_accessor :backend_service
19922
+
19923
+ def initialize(**args)
19924
+ update!(**args)
19925
+ end
19926
+
19927
+ # Update properties of this object
19928
+ def update!(**args)
19929
+ @backend_service = args[:backend_service] if args.key?(:backend_service)
19930
+ end
19931
+ end
19932
+
18709
19933
  # Represents a reservation resource. A reservation ensures that capacity is held
18710
19934
  # in a specific zone even if the reserved VMs are not running. For more
18711
19935
  # information, read Reserving zonal resources. (== resource_for beta.
@@ -26618,6 +27842,17 @@ module Google
26618
27842
  # @return [String]
26619
27843
  attr_accessor :creation_timestamp
26620
27844
 
27845
+ # defaultRouteAction takes effect when none of the hostRules match. The load
27846
+ # balancer performs advanced routing actions like URL rewrites, header
27847
+ # transformations, etc. prior to forwarding the request to the selected backend.
27848
+ # If defaultRouteAction specifies any weightedBackendServices, defaultService
27849
+ # must not be set. Conversely if defaultService is set, defaultRouteAction
27850
+ # cannot contain any weightedBackendServices.
27851
+ # Only one of defaultRouteAction or defaultUrlRedirect must be set.
27852
+ # Corresponds to the JSON property `defaultRouteAction`
27853
+ # @return [Google::Apis::ComputeV1::HttpRouteAction]
27854
+ attr_accessor :default_route_action
27855
+
26621
27856
  # The full or partial URL of the defaultService resource to which traffic is
26622
27857
  # directed if none of the hostRules match. If defaultRouteAction is additionally
26623
27858
  # specified, advanced routing actions like URL Rewrites, etc. take effect prior
@@ -26631,6 +27866,11 @@ module Google
26631
27866
  # @return [String]
26632
27867
  attr_accessor :default_service
26633
27868
 
27869
+ # Specifies settings for an HTTP redirect.
27870
+ # Corresponds to the JSON property `defaultUrlRedirect`
27871
+ # @return [Google::Apis::ComputeV1::HttpRedirectAction]
27872
+ attr_accessor :default_url_redirect
27873
+
26634
27874
  # An optional description of this resource. Provide this property when you
26635
27875
  # create the resource.
26636
27876
  # Corresponds to the JSON property `description`
@@ -26648,6 +27888,12 @@ module Google
26648
27888
  # @return [String]
26649
27889
  attr_accessor :fingerprint
26650
27890
 
27891
+ # The request and response header transformations that take effect before the
27892
+ # request is passed along to the selected backendService.
27893
+ # Corresponds to the JSON property `headerAction`
27894
+ # @return [Google::Apis::ComputeV1::HttpHeaderAction]
27895
+ attr_accessor :header_action
27896
+
26651
27897
  # The list of HostRules to use against the URL.
26652
27898
  # Corresponds to the JSON property `hostRules`
26653
27899
  # @return [Array<Google::Apis::ComputeV1::HostRule>]
@@ -26705,9 +27951,12 @@ module Google
26705
27951
  # Update properties of this object
26706
27952
  def update!(**args)
26707
27953
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
27954
+ @default_route_action = args[:default_route_action] if args.key?(:default_route_action)
26708
27955
  @default_service = args[:default_service] if args.key?(:default_service)
27956
+ @default_url_redirect = args[:default_url_redirect] if args.key?(:default_url_redirect)
26709
27957
  @description = args[:description] if args.key?(:description)
26710
27958
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
27959
+ @header_action = args[:header_action] if args.key?(:header_action)
26711
27960
  @host_rules = args[:host_rules] if args.key?(:host_rules)
26712
27961
  @id = args[:id] if args.key?(:id)
26713
27962
  @kind = args[:kind] if args.key?(:kind)
@@ -27185,6 +28434,36 @@ module Google
27185
28434
  end
27186
28435
  end
27187
28436
 
28437
+ # The spec for modifying the path before sending the request to the matched
28438
+ # backend service.
28439
+ class UrlRewrite
28440
+ include Google::Apis::Core::Hashable
28441
+
28442
+ # Prior to forwarding the request to the selected service, the request's host
28443
+ # header is replaced with contents of hostRewrite.
28444
+ # The value must be between 1 and 255 characters.
28445
+ # Corresponds to the JSON property `hostRewrite`
28446
+ # @return [String]
28447
+ attr_accessor :host_rewrite
28448
+
28449
+ # Prior to forwarding the request to the selected backend service, the matching
28450
+ # portion of the request's path is replaced by pathPrefixRewrite.
28451
+ # The value must be between 1 and 1024 characters.
28452
+ # Corresponds to the JSON property `pathPrefixRewrite`
28453
+ # @return [String]
28454
+ attr_accessor :path_prefix_rewrite
28455
+
28456
+ def initialize(**args)
28457
+ update!(**args)
28458
+ end
28459
+
28460
+ # Update properties of this object
28461
+ def update!(**args)
28462
+ @host_rewrite = args[:host_rewrite] if args.key?(:host_rewrite)
28463
+ @path_prefix_rewrite = args[:path_prefix_rewrite] if args.key?(:path_prefix_rewrite)
28464
+ end
28465
+ end
28466
+
27188
28467
  # Subnetwork which the current user has compute.subnetworks.use permission on.
27189
28468
  class UsableSubnetwork
27190
28469
  include Google::Apis::Core::Hashable
@@ -28685,6 +29964,50 @@ module Google
28685
29964
  end
28686
29965
  end
28687
29966
 
29967
+ # In contrast to a single BackendService in HttpRouteAction to which all
29968
+ # matching traffic is directed to, WeightedBackendService allows traffic to be
29969
+ # split across multiple BackendServices. The volume of traffic for each
29970
+ # BackendService is proportional to the weight specified in each
29971
+ # WeightedBackendService
29972
+ class WeightedBackendService
29973
+ include Google::Apis::Core::Hashable
29974
+
29975
+ # The full or partial URL to the default BackendService resource. Before
29976
+ # forwarding the request to backendService, the loadbalancer applies any
29977
+ # relevant headerActions specified as part of this backendServiceWeight.
29978
+ # Corresponds to the JSON property `backendService`
29979
+ # @return [String]
29980
+ attr_accessor :backend_service
29981
+
29982
+ # The request and response header transformations that take effect before the
29983
+ # request is passed along to the selected backendService.
29984
+ # Corresponds to the JSON property `headerAction`
29985
+ # @return [Google::Apis::ComputeV1::HttpHeaderAction]
29986
+ attr_accessor :header_action
29987
+
29988
+ # Specifies the fraction of traffic sent to backendService, computed as weight /
29989
+ # (sum of all weightedBackendService weights in routeAction) .
29990
+ # The selection of a backend service is determined only for new traffic. Once a
29991
+ # user's request has been directed to a backendService, subsequent requests will
29992
+ # be sent to the same backendService as determined by the BackendService's
29993
+ # session affinity policy.
29994
+ # The value must be between 0 and 1000
29995
+ # Corresponds to the JSON property `weight`
29996
+ # @return [Fixnum]
29997
+ attr_accessor :weight
29998
+
29999
+ def initialize(**args)
30000
+ update!(**args)
30001
+ end
30002
+
30003
+ # Update properties of this object
30004
+ def update!(**args)
30005
+ @backend_service = args[:backend_service] if args.key?(:backend_service)
30006
+ @header_action = args[:header_action] if args.key?(:header_action)
30007
+ @weight = args[:weight] if args.key?(:weight)
30008
+ end
30009
+ end
30010
+
28688
30011
  #
28689
30012
  class XpnHostList
28690
30013
  include Google::Apis::Core::Hashable