google-cloud-compute-v1 3.4.0 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. checksums.yaml +4 -4
  2. data/lib/google/cloud/compute/v1/accelerator_types/rest/client.rb +181 -14
  3. data/lib/google/cloud/compute/v1/addresses/rest/client.rb +237 -20
  4. data/lib/google/cloud/compute/v1/advice/credentials.rb +52 -0
  5. data/lib/google/cloud/compute/v1/advice/rest/client.rb +431 -0
  6. data/lib/google/cloud/compute/v1/advice/rest/service_stub.rb +144 -0
  7. data/lib/google/cloud/compute/v1/advice/rest.rb +51 -0
  8. data/lib/google/cloud/compute/v1/advice.rb +47 -0
  9. data/lib/google/cloud/compute/v1/autoscalers/rest/client.rb +334 -21
  10. data/lib/google/cloud/compute/v1/autoscalers/rest/service_stub.rb +64 -0
  11. data/lib/google/cloud/compute/v1/backend_buckets/rest/client.rb +573 -23
  12. data/lib/google/cloud/compute/v1/backend_buckets/rest/service_stub.rb +122 -0
  13. data/lib/google/cloud/compute/v1/backend_services/rest/client.rb +499 -40
  14. data/lib/google/cloud/compute/v1/backend_services/rest/service_stub.rb +62 -0
  15. data/lib/google/cloud/compute/v1/compute_pb.rb +357 -25
  16. data/lib/google/cloud/compute/v1/cross_site_networks/credentials.rb +52 -0
  17. data/lib/google/cloud/compute/v1/cross_site_networks/rest/client.rb +975 -0
  18. data/lib/google/cloud/compute/v1/cross_site_networks/rest/service_stub.rb +391 -0
  19. data/lib/google/cloud/compute/v1/cross_site_networks/rest.rb +51 -0
  20. data/lib/google/cloud/compute/v1/cross_site_networks.rb +47 -0
  21. data/lib/google/cloud/compute/v1/disk_types/rest/client.rb +181 -14
  22. data/lib/google/cloud/compute/v1/disks/rest/client.rb +508 -42
  23. data/lib/google/cloud/compute/v1/disks/rest/service_stub.rb +64 -0
  24. data/lib/google/cloud/compute/v1/external_vpn_gateways/rest/client.rb +118 -11
  25. data/lib/google/cloud/compute/v1/firewall_policies/rest/client.rb +240 -25
  26. data/lib/google/cloud/compute/v1/firewalls/rest/client.rb +238 -13
  27. data/lib/google/cloud/compute/v1/firewalls/rest/service_stub.rb +63 -0
  28. data/lib/google/cloud/compute/v1/forwarding_rules/rest/client.rb +258 -23
  29. data/lib/google/cloud/compute/v1/future_reservations/credentials.rb +52 -0
  30. data/lib/google/cloud/compute/v1/future_reservations/rest/client.rb +1287 -0
  31. data/lib/google/cloud/compute/v1/future_reservations/rest/service_stub.rb +520 -0
  32. data/lib/google/cloud/compute/v1/future_reservations/rest.rb +51 -0
  33. data/lib/google/cloud/compute/v1/future_reservations.rb +47 -0
  34. data/lib/google/cloud/compute/v1/global_addresses/rest/client.rb +126 -10
  35. data/lib/google/cloud/compute/v1/global_forwarding_rules/rest/client.rb +151 -15
  36. data/lib/google/cloud/compute/v1/global_network_endpoint_groups/rest/client.rb +246 -21
  37. data/lib/google/cloud/compute/v1/global_operations/rest/client.rb +203 -18
  38. data/lib/google/cloud/compute/v1/global_organization_operations/rest/client.rb +91 -9
  39. data/lib/google/cloud/compute/v1/global_public_delegated_prefixes/rest/client.rb +128 -10
  40. data/lib/google/cloud/compute/v1/health_checks/rest/client.rb +333 -21
  41. data/lib/google/cloud/compute/v1/health_checks/rest/service_stub.rb +63 -0
  42. data/lib/google/cloud/compute/v1/image_family_views/rest/client.rb +2 -1
  43. data/lib/google/cloud/compute/v1/images/rest/client.rb +161 -18
  44. data/lib/google/cloud/compute/v1/instance_group_manager_resize_requests/rest/client.rb +159 -24
  45. data/lib/google/cloud/compute/v1/instance_group_managers/rest/client.rb +920 -95
  46. data/lib/google/cloud/compute/v1/instance_groups/rest/client.rb +380 -40
  47. data/lib/google/cloud/compute/v1/instance_settings_service/rest/client.rb +13 -1
  48. data/lib/google/cloud/compute/v1/instance_templates/rest/client.rb +220 -20
  49. data/lib/google/cloud/compute/v1/instances/rest/client.rb +939 -104
  50. data/lib/google/cloud/compute/v1/instant_snapshot_groups/credentials.rb +52 -0
  51. data/lib/google/cloud/compute/v1/instant_snapshot_groups/rest/client.rb +1145 -0
  52. data/lib/google/cloud/compute/v1/instant_snapshot_groups/rest/service_stub.rb +523 -0
  53. data/lib/google/cloud/compute/v1/instant_snapshot_groups/rest.rb +51 -0
  54. data/lib/google/cloud/compute/v1/instant_snapshot_groups.rb +47 -0
  55. data/lib/google/cloud/compute/v1/instant_snapshots/rest/client.rb +235 -21
  56. data/lib/google/cloud/compute/v1/interconnect_attachment_groups/rest/client.rb +139 -14
  57. data/lib/google/cloud/compute/v1/interconnect_attachments/rest/client.rb +242 -21
  58. data/lib/google/cloud/compute/v1/interconnect_groups/rest/client.rb +139 -14
  59. data/lib/google/cloud/compute/v1/interconnect_locations/rest/client.rb +87 -7
  60. data/lib/google/cloud/compute/v1/interconnect_remote_locations/rest/client.rb +87 -7
  61. data/lib/google/cloud/compute/v1/interconnects/rest/client.rb +145 -14
  62. data/lib/google/cloud/compute/v1/license_codes/rest/client.rb +9 -2
  63. data/lib/google/cloud/compute/v1/licenses/rest/client.rb +161 -16
  64. data/lib/google/cloud/compute/v1/machine_images/rest/client.rb +124 -13
  65. data/lib/google/cloud/compute/v1/machine_types/rest/client.rb +181 -14
  66. data/lib/google/cloud/compute/v1/network_attachments/rest/client.rb +232 -20
  67. data/lib/google/cloud/compute/v1/network_edge_security_services/rest/client.rb +138 -12
  68. data/lib/google/cloud/compute/v1/network_endpoint_groups/rest/client.rb +361 -37
  69. data/lib/google/cloud/compute/v1/network_firewall_policies/rest/client.rb +354 -33
  70. data/lib/google/cloud/compute/v1/network_profiles/rest/client.rb +85 -6
  71. data/lib/google/cloud/compute/v1/networks/rest/client.rb +281 -23
  72. data/lib/google/cloud/compute/v1/node_groups/rest/client.rb +381 -32
  73. data/lib/google/cloud/compute/v1/node_templates/rest/client.rb +213 -19
  74. data/lib/google/cloud/compute/v1/node_types/rest/client.rb +181 -14
  75. data/lib/google/cloud/compute/v1/organization_security_policies/credentials.rb +52 -0
  76. data/lib/google/cloud/compute/v1/organization_security_policies/rest/client.rb +2259 -0
  77. data/lib/google/cloud/compute/v1/organization_security_policies/rest/service_stub.rb +1054 -0
  78. data/lib/google/cloud/compute/v1/organization_security_policies/rest.rb +51 -0
  79. data/lib/google/cloud/compute/v1/organization_security_policies.rb +47 -0
  80. data/lib/google/cloud/compute/v1/packet_mirrorings/rest/client.rb +226 -19
  81. data/lib/google/cloud/compute/v1/preview_features/credentials.rb +52 -0
  82. data/lib/google/cloud/compute/v1/preview_features/rest/client.rb +739 -0
  83. data/lib/google/cloud/compute/v1/preview_features/rest/service_stub.rb +267 -0
  84. data/lib/google/cloud/compute/v1/preview_features/rest.rb +51 -0
  85. data/lib/google/cloud/compute/v1/preview_features.rb +47 -0
  86. data/lib/google/cloud/compute/v1/projects/rest/client.rb +346 -30
  87. data/lib/google/cloud/compute/v1/public_advertised_prefixes/rest/client.rb +154 -12
  88. data/lib/google/cloud/compute/v1/public_delegated_prefixes/rest/client.rb +255 -22
  89. data/lib/google/cloud/compute/v1/region_autoscalers/rest/client.rb +238 -13
  90. data/lib/google/cloud/compute/v1/region_autoscalers/rest/service_stub.rb +64 -0
  91. data/lib/google/cloud/compute/v1/region_backend_buckets/credentials.rb +52 -0
  92. data/lib/google/cloud/compute/v1/region_backend_buckets/rest/client.rb +1450 -0
  93. data/lib/google/cloud/compute/v1/region_backend_buckets/rest/service_stub.rb +649 -0
  94. data/lib/google/cloud/compute/v1/region_backend_buckets/rest.rb +51 -0
  95. data/lib/google/cloud/compute/v1/region_backend_buckets.rb +47 -0
  96. data/lib/google/cloud/compute/v1/region_backend_services/rest/client.rb +260 -26
  97. data/lib/google/cloud/compute/v1/region_commitments/rest/client.rb +212 -18
  98. data/lib/google/cloud/compute/v1/region_composite_health_checks/credentials.rb +52 -0
  99. data/lib/google/cloud/compute/v1/region_composite_health_checks/rest/client.rb +1363 -0
  100. data/lib/google/cloud/compute/v1/region_composite_health_checks/rest/service_stub.rb +584 -0
  101. data/lib/google/cloud/compute/v1/region_composite_health_checks/rest.rb +51 -0
  102. data/lib/google/cloud/compute/v1/region_composite_health_checks.rb +47 -0
  103. data/lib/google/cloud/compute/v1/region_disk_types/rest/client.rb +83 -5
  104. data/lib/google/cloud/compute/v1/region_disks/rest/client.rb +387 -29
  105. data/lib/google/cloud/compute/v1/region_disks/rest/service_stub.rb +64 -0
  106. data/lib/google/cloud/compute/v1/region_health_aggregation_policies/credentials.rb +52 -0
  107. data/lib/google/cloud/compute/v1/region_health_aggregation_policies/rest/client.rb +1268 -0
  108. data/lib/google/cloud/compute/v1/region_health_aggregation_policies/rest/service_stub.rb +521 -0
  109. data/lib/google/cloud/compute/v1/region_health_aggregation_policies/rest.rb +51 -0
  110. data/lib/google/cloud/compute/v1/region_health_aggregation_policies.rb +47 -0
  111. data/lib/google/cloud/compute/v1/region_health_check_services/rest/client.rb +427 -17
  112. data/lib/google/cloud/compute/v1/region_health_check_services/rest/service_stub.rb +125 -0
  113. data/lib/google/cloud/compute/v1/region_health_checks/rest/client.rb +238 -13
  114. data/lib/google/cloud/compute/v1/region_health_checks/rest/service_stub.rb +64 -0
  115. data/lib/google/cloud/compute/v1/region_health_sources/credentials.rb +52 -0
  116. data/lib/google/cloud/compute/v1/region_health_sources/rest/client.rb +1363 -0
  117. data/lib/google/cloud/compute/v1/region_health_sources/rest/service_stub.rb +584 -0
  118. data/lib/google/cloud/compute/v1/region_health_sources/rest.rb +51 -0
  119. data/lib/google/cloud/compute/v1/region_health_sources.rb +47 -0
  120. data/lib/google/cloud/compute/v1/region_instance_group_manager_resize_requests/credentials.rb +52 -0
  121. data/lib/google/cloud/compute/v1/region_instance_group_manager_resize_requests/rest/client.rb +1002 -0
  122. data/lib/google/cloud/compute/v1/region_instance_group_manager_resize_requests/rest/service_stub.rb +400 -0
  123. data/lib/google/cloud/compute/v1/region_instance_group_manager_resize_requests/rest.rb +51 -0
  124. data/lib/google/cloud/compute/v1/region_instance_group_manager_resize_requests.rb +47 -0
  125. data/lib/google/cloud/compute/v1/region_instance_group_managers/rest/client.rb +750 -64
  126. data/lib/google/cloud/compute/v1/region_instance_groups/rest/client.rb +187 -14
  127. data/lib/google/cloud/compute/v1/region_instance_templates/rest/client.rb +115 -10
  128. data/lib/google/cloud/compute/v1/region_instances/rest/client.rb +15 -2
  129. data/lib/google/cloud/compute/v1/region_instant_snapshot_groups/credentials.rb +52 -0
  130. data/lib/google/cloud/compute/v1/region_instant_snapshot_groups/rest/client.rb +1146 -0
  131. data/lib/google/cloud/compute/v1/region_instant_snapshot_groups/rest/service_stub.rb +523 -0
  132. data/lib/google/cloud/compute/v1/region_instant_snapshot_groups/rest.rb +51 -0
  133. data/lib/google/cloud/compute/v1/region_instant_snapshot_groups.rb +47 -0
  134. data/lib/google/cloud/compute/v1/region_instant_snapshots/rest/client.rb +139 -13
  135. data/lib/google/cloud/compute/v1/region_network_endpoint_groups/rest/client.rb +264 -28
  136. data/lib/google/cloud/compute/v1/region_network_firewall_policies/rest/client.rb +213 -20
  137. data/lib/google/cloud/compute/v1/region_notification_endpoints/rest/client.rb +399 -11
  138. data/lib/google/cloud/compute/v1/region_notification_endpoints/rest/service_stub.rb +125 -0
  139. data/lib/google/cloud/compute/v1/region_operations/rest/client.rb +107 -10
  140. data/lib/google/cloud/compute/v1/region_security_policies/rest/client.rb +149 -14
  141. data/lib/google/cloud/compute/v1/region_snapshot_settings/credentials.rb +52 -0
  142. data/lib/google/cloud/compute/v1/region_snapshot_settings/rest/client.rb +561 -0
  143. data/lib/google/cloud/compute/v1/region_snapshot_settings/rest/service_stub.rb +206 -0
  144. data/lib/google/cloud/compute/v1/region_snapshot_settings/rest.rb +51 -0
  145. data/lib/google/cloud/compute/v1/region_snapshot_settings.rb +47 -0
  146. data/lib/google/cloud/compute/v1/region_snapshots/credentials.rb +52 -0
  147. data/lib/google/cloud/compute/v1/region_snapshots/rest/client.rb +1388 -0
  148. data/lib/google/cloud/compute/v1/region_snapshots/rest/service_stub.rb +651 -0
  149. data/lib/google/cloud/compute/v1/region_snapshots/rest.rb +51 -0
  150. data/lib/google/cloud/compute/v1/region_snapshots.rb +47 -0
  151. data/lib/google/cloud/compute/v1/region_ssl_certificates/rest/client.rb +116 -10
  152. data/lib/google/cloud/compute/v1/region_ssl_policies/rest/client.rb +220 -20
  153. data/lib/google/cloud/compute/v1/region_target_http_proxies/rest/client.rb +126 -10
  154. data/lib/google/cloud/compute/v1/region_target_https_proxies/rest/client.rb +158 -14
  155. data/lib/google/cloud/compute/v1/region_target_tcp_proxies/rest/client.rb +113 -9
  156. data/lib/google/cloud/compute/v1/region_url_maps/rest/client.rb +104 -14
  157. data/lib/google/cloud/compute/v1/region_zones/rest/client.rb +85 -6
  158. data/lib/google/cloud/compute/v1/regions/rest/client.rb +120 -7
  159. data/lib/google/cloud/compute/v1/reservation_blocks/rest/client.rb +396 -11
  160. data/lib/google/cloud/compute/v1/reservation_blocks/rest/service_stub.rb +194 -0
  161. data/lib/google/cloud/compute/v1/reservation_slots/credentials.rb +52 -0
  162. data/lib/google/cloud/compute/v1/reservation_slots/rest/client.rb +863 -0
  163. data/lib/google/cloud/compute/v1/reservation_slots/rest/service_stub.rb +338 -0
  164. data/lib/google/cloud/compute/v1/reservation_slots/rest.rb +51 -0
  165. data/lib/google/cloud/compute/v1/reservation_slots.rb +47 -0
  166. data/lib/google/cloud/compute/v1/reservation_sub_blocks/rest/client.rb +642 -12
  167. data/lib/google/cloud/compute/v1/reservation_sub_blocks/rest/service_stub.rb +327 -3
  168. data/lib/google/cloud/compute/v1/reservations/rest/client.rb +257 -24
  169. data/lib/google/cloud/compute/v1/resource_policies/rest/client.rb +224 -19
  170. data/lib/google/cloud/compute/v1/rest.rb +17 -0
  171. data/lib/google/cloud/compute/v1/routers/rest/client.rb +555 -50
  172. data/lib/google/cloud/compute/v1/routes/rest/client.rb +202 -8
  173. data/lib/google/cloud/compute/v1/routes/rest/service_stub.rb +63 -0
  174. data/lib/google/cloud/compute/v1/security_policies/rest/client.rb +316 -26
  175. data/lib/google/cloud/compute/v1/service_attachments/rest/client.rb +231 -21
  176. data/lib/google/cloud/compute/v1/snapshot_settings_service/rest/client.rb +13 -1
  177. data/lib/google/cloud/compute/v1/snapshots/rest/client.rb +245 -13
  178. data/lib/google/cloud/compute/v1/snapshots/rest/service_stub.rb +63 -0
  179. data/lib/google/cloud/compute/v1/ssl_certificates/rest/client.rb +210 -17
  180. data/lib/google/cloud/compute/v1/ssl_policies/rest/client.rb +315 -27
  181. data/lib/google/cloud/compute/v1/storage_pool_types/rest/client.rb +181 -14
  182. data/lib/google/cloud/compute/v1/storage_pools/rest/client.rb +321 -28
  183. data/lib/google/cloud/compute/v1/subnetworks/rest/client.rb +378 -34
  184. data/lib/google/cloud/compute/v1/target_grpc_proxies/rest/client.rb +128 -10
  185. data/lib/google/cloud/compute/v1/target_http_proxies/rest/client.rb +240 -20
  186. data/lib/google/cloud/compute/v1/target_https_proxies/rest/client.rb +306 -30
  187. data/lib/google/cloud/compute/v1/target_instances/rest/client.rb +227 -20
  188. data/lib/google/cloud/compute/v1/target_pools/rest/client.rb +294 -26
  189. data/lib/google/cloud/compute/v1/target_ssl_proxies/rest/client.rb +281 -19
  190. data/lib/google/cloud/compute/v1/target_ssl_proxies/rest/service_stub.rb +63 -0
  191. data/lib/google/cloud/compute/v1/target_tcp_proxies/rest/client.rb +329 -20
  192. data/lib/google/cloud/compute/v1/target_tcp_proxies/rest/service_stub.rb +63 -0
  193. data/lib/google/cloud/compute/v1/target_vpn_gateways/rest/client.rb +224 -19
  194. data/lib/google/cloud/compute/v1/url_maps/rest/client.rb +354 -24
  195. data/lib/google/cloud/compute/v1/url_maps/rest/service_stub.rb +63 -0
  196. data/lib/google/cloud/compute/v1/version.rb +1 -1
  197. data/lib/google/cloud/compute/v1/vpn_gateways/rest/client.rb +224 -19
  198. data/lib/google/cloud/compute/v1/vpn_tunnels/rest/client.rb +224 -19
  199. data/lib/google/cloud/compute/v1/wire_groups/credentials.rb +52 -0
  200. data/lib/google/cloud/compute/v1/wire_groups/rest/client.rb +980 -0
  201. data/lib/google/cloud/compute/v1/wire_groups/rest/service_stub.rb +396 -0
  202. data/lib/google/cloud/compute/v1/wire_groups/rest.rb +51 -0
  203. data/lib/google/cloud/compute/v1/wire_groups.rb +47 -0
  204. data/lib/google/cloud/compute/v1/zone_operations/rest/client.rb +106 -10
  205. data/lib/google/cloud/compute/v1/zone_vm_extension_policies/credentials.rb +52 -0
  206. data/lib/google/cloud/compute/v1/zone_vm_extension_policies/rest/client.rb +975 -0
  207. data/lib/google/cloud/compute/v1/zone_vm_extension_policies/rest/service_stub.rb +396 -0
  208. data/lib/google/cloud/compute/v1/zone_vm_extension_policies/rest.rb +51 -0
  209. data/lib/google/cloud/compute/v1/zone_vm_extension_policies.rb +47 -0
  210. data/lib/google/cloud/compute/v1/zones/rest/client.rb +83 -5
  211. data/lib/google/cloud/compute/v1.rb +17 -0
  212. data/proto_docs/google/api/client.rb +149 -29
  213. data/proto_docs/google/cloud/compute/v1/compute.rb +47064 -5503
  214. metadata +87 -2
@@ -207,7 +207,8 @@ module Google
207
207
  # the default parameter values, pass an empty Hash as a request object (see above).
208
208
  #
209
209
  # @param operation [::String]
210
- # Name of the Operations resource to delete, or its unique numeric identifier.
210
+ # Name of the Operations resource to delete, or its unique numeric
211
+ # identifier.
211
212
  # @param project [::String]
212
213
  # Project ID for this request.
213
214
  # @param region [::String]
@@ -289,7 +290,8 @@ module Google
289
290
  # the default parameter values, pass an empty Hash as a request object (see above).
290
291
  #
291
292
  # @param operation [::String]
292
- # Name of the Operations resource to return, or its unique numeric identifier.
293
+ # Name of the Operations resource to return, or its unique numeric
294
+ # identifier.
293
295
  # @param project [::String]
294
296
  # Project ID for this request.
295
297
  # @param region [::String]
@@ -353,7 +355,8 @@ module Google
353
355
  end
354
356
 
355
357
  ##
356
- # Retrieves a list of Operation resources contained within the specified region.
358
+ # Retrieves a list of Operation resources contained within
359
+ # the specified region.
357
360
  #
358
361
  # @overload list(request, options = nil)
359
362
  # Pass arguments to `list` via a request object, either of type
@@ -371,19 +374,97 @@ module Google
371
374
  # the default parameter values, pass an empty Hash as a request object (see above).
372
375
  #
373
376
  # @param filter [::String]
374
- # A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.
377
+ # A filter expression that filters resources listed in the response. Most
378
+ # Compute resources support two types of filter expressions:
379
+ # expressions that support regular expressions and expressions that follow
380
+ # API improvement proposal AIP-160.
381
+ # These two types of filter expressions cannot be mixed in one request.
382
+ #
383
+ # If you want to use AIP-160, your expression must specify the field name, an
384
+ # operator, and the value that you want to use for filtering. The value
385
+ # must be a string, a number, or a boolean. The operator
386
+ # must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`.
387
+ #
388
+ # For example, if you are filtering Compute Engine instances, you can
389
+ # exclude instances named `example-instance` by specifying
390
+ # `name != example-instance`.
391
+ #
392
+ # The `:*` comparison can be used to test whether a key has been defined.
393
+ # For example, to find all objects with `owner` label use:
394
+ # ```
395
+ # labels.owner:*
396
+ # ```
397
+ #
398
+ # You can also filter nested fields. For example, you could specify
399
+ # `scheduling.automaticRestart = false` to include instances only
400
+ # if they are not scheduled for automatic restarts. You can use filtering
401
+ # on nested fields to filter based onresource labels.
402
+ #
403
+ # To filter on multiple expressions, provide each separate expression within
404
+ # parentheses. For example:
405
+ # ```
406
+ # (scheduling.automaticRestart = true)
407
+ # (cpuPlatform = "Intel Skylake")
408
+ # ```
409
+ # By default, each expression is an `AND` expression. However, you
410
+ # can include `AND` and `OR` expressions explicitly.
411
+ # For example:
412
+ # ```
413
+ # (cpuPlatform = "Intel Skylake") OR
414
+ # (cpuPlatform = "Intel Broadwell") AND
415
+ # (scheduling.automaticRestart = true)
416
+ # ```
417
+ #
418
+ # If you want to use a regular expression, use the `eq` (equal) or `ne`
419
+ # (not equal) operator against a single un-parenthesized expression with or
420
+ # without quotes or against multiple parenthesized expressions. Examples:
421
+ #
422
+ # `fieldname eq unquoted literal`
423
+ # `fieldname eq 'single quoted literal'`
424
+ # `fieldname eq "double quoted literal"`
425
+ # `(fieldname1 eq literal) (fieldname2 ne "literal")`
426
+ #
427
+ # The literal value is interpreted as a regular expression using GoogleRE2 library syntax.
428
+ # The literal value must match the entire field.
429
+ #
430
+ # For example, to filter for instances that do not end with name "instance",
431
+ # you would use `name ne .*instance`.
432
+ #
433
+ # You cannot combine constraints on multiple fields using regular
434
+ # expressions.
375
435
  # @param max_results [::Integer]
376
- # The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)
436
+ # The maximum number of results per page that should be returned.
437
+ # If the number of available results is larger than `maxResults`,
438
+ # Compute Engine returns a `nextPageToken` that can be used to get
439
+ # the next page of results in subsequent list requests. Acceptable values are
440
+ # `0` to `500`, inclusive. (Default: `500`)
377
441
  # @param order_by [::String]
378
- # Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy="creationTimestamp desc"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.
442
+ # Sorts list results by a certain order. By default, results
443
+ # are returned in alphanumerical order based on the resource name.
444
+ #
445
+ # You can also sort results in descending order based on the creation
446
+ # timestamp using `orderBy="creationTimestamp desc"`. This sorts
447
+ # results based on the `creationTimestamp` field in
448
+ # reverse chronological order (newest result first). Use this to sort
449
+ # resources like operations so that the newest operation is returned first.
450
+ #
451
+ # Currently, only sorting by `name` or
452
+ # `creationTimestamp desc` is supported.
379
453
  # @param page_token [::String]
380
- # Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.
454
+ # Specifies a page token to use. Set `pageToken` to the
455
+ # `nextPageToken` returned by a previous list request to get
456
+ # the next page of results.
381
457
  # @param project [::String]
382
458
  # Project ID for this request.
383
459
  # @param region [::String]
384
460
  # Name of the region for this request.
385
461
  # @param return_partial_success [::Boolean]
386
- # Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
462
+ # Opt-in for partial success behavior which provides partial results in case
463
+ # of failure. The default value is false.
464
+ #
465
+ # For example, when partial success behavior is enabled, aggregatedList for a
466
+ # single zone scope either returns all resources in the zone or no resources,
467
+ # with an error code.
387
468
  # @yield [result, operation] Access the result along with the TransportOperation object
388
469
  # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Compute::V1::Operation>]
389
470
  # @yieldparam operation [::Gapic::Rest::TransportOperation]
@@ -445,7 +526,22 @@ module Google
445
526
  end
446
527
 
447
528
  ##
448
- # Waits for the specified Operation resource to return as `DONE` or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method differs from the `GET` method in that it waits for no more than the default deadline (2 minutes) and then returns the current state of the operation, which might be `DONE` or still in progress. This method is called on a best-effort basis. Specifically: - In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. - If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not `DONE`.
529
+ # Waits for the specified Operation resource to return as `DONE`
530
+ # or for the request to approach the 2 minute deadline, and retrieves the
531
+ # specified Operation resource. This method differs from the
532
+ # `GET` method in that it waits for no more than the default
533
+ # deadline (2 minutes) and then returns the current state of the operation,
534
+ # which might be `DONE` or still in progress.
535
+ #
536
+ # This method is called on a best-effort basis. Specifically:
537
+ #
538
+ #
539
+ # - In uncommon cases, when the server is overloaded, the request might
540
+ # return before the default deadline is reached, or might return after zero
541
+ # seconds.
542
+ # - If the default deadline is reached, there is no guarantee that the
543
+ # operation is actually done when the method returns. Be prepared to retry
544
+ # if the operation is not `DONE`.
449
545
  #
450
546
  # @overload wait(request, options = nil)
451
547
  # Pass arguments to `wait` via a request object, either of type
@@ -463,7 +559,8 @@ module Google
463
559
  # the default parameter values, pass an empty Hash as a request object (see above).
464
560
  #
465
561
  # @param operation [::String]
466
- # Name of the Operations resource to return, or its unique numeric identifier.
562
+ # Name of the Operations resource to return, or its unique numeric
563
+ # identifier.
467
564
  # @param project [::String]
468
565
  # Project ID for this request.
469
566
  # @param region [::String]
@@ -337,7 +337,19 @@ module Google
337
337
  # @param region [::String]
338
338
  # Name of the region scoping this request.
339
339
  # @param request_id [::String]
340
- # An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
340
+ # An optional request ID to identify requests. Specify a unique request ID so
341
+ # that if you must retry your request, the server will know to ignore the
342
+ # request if it has already been completed.
343
+ #
344
+ # For example, consider a situation where you make an initial request and
345
+ # the request times out. If you make the request again with the same
346
+ # request ID, the server can check if original operation with the same
347
+ # request ID was received, and if so, will ignore the second request. This
348
+ # prevents clients from accidentally creating duplicate commitments.
349
+ #
350
+ # The request ID must be
351
+ # a valid UUID with the exception that zero UUID is not supported
352
+ # (00000000-0000-0000-0000-000000000000).
341
353
  # @param security_policy [::String]
342
354
  # Name of the security policy to delete.
343
355
  # @yield [result, operation] Access the result along with the TransportOperation object
@@ -575,7 +587,8 @@ module Google
575
587
  end
576
588
 
577
589
  ##
578
- # Creates a new policy in the specified project using the data included in the request.
590
+ # Creates a new policy in the specified project using the data included in
591
+ # the request.
579
592
  #
580
593
  # @overload insert(request, options = nil)
581
594
  # Pass arguments to `insert` via a request object, either of type
@@ -597,7 +610,19 @@ module Google
597
610
  # @param region [::String]
598
611
  # Name of the region scoping this request.
599
612
  # @param request_id [::String]
600
- # An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
613
+ # An optional request ID to identify requests. Specify a unique request ID so
614
+ # that if you must retry your request, the server will know to ignore the
615
+ # request if it has already been completed.
616
+ #
617
+ # For example, consider a situation where you make an initial request and
618
+ # the request times out. If you make the request again with the same
619
+ # request ID, the server can check if original operation with the same
620
+ # request ID was received, and if so, will ignore the second request. This
621
+ # prevents clients from accidentally creating duplicate commitments.
622
+ #
623
+ # The request ID must be
624
+ # a valid UUID with the exception that zero UUID is not supported
625
+ # (00000000-0000-0000-0000-000000000000).
601
626
  # @param security_policy_resource [::Google::Cloud::Compute::V1::SecurityPolicy, ::Hash]
602
627
  # The body resource for this request
603
628
  # @param validate_only [::Boolean]
@@ -671,7 +696,8 @@ module Google
671
696
  end
672
697
 
673
698
  ##
674
- # List all the policies that have been configured for the specified project and region.
699
+ # List all the policies that have been configured for the specified project
700
+ # and region.
675
701
  #
676
702
  # @overload list(request, options = nil)
677
703
  # Pass arguments to `list` via a request object, either of type
@@ -689,19 +715,97 @@ module Google
689
715
  # the default parameter values, pass an empty Hash as a request object (see above).
690
716
  #
691
717
  # @param filter [::String]
692
- # A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted literal"` `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name "instance", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.
718
+ # A filter expression that filters resources listed in the response. Most
719
+ # Compute resources support two types of filter expressions:
720
+ # expressions that support regular expressions and expressions that follow
721
+ # API improvement proposal AIP-160.
722
+ # These two types of filter expressions cannot be mixed in one request.
723
+ #
724
+ # If you want to use AIP-160, your expression must specify the field name, an
725
+ # operator, and the value that you want to use for filtering. The value
726
+ # must be a string, a number, or a boolean. The operator
727
+ # must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`.
728
+ #
729
+ # For example, if you are filtering Compute Engine instances, you can
730
+ # exclude instances named `example-instance` by specifying
731
+ # `name != example-instance`.
732
+ #
733
+ # The `:*` comparison can be used to test whether a key has been defined.
734
+ # For example, to find all objects with `owner` label use:
735
+ # ```
736
+ # labels.owner:*
737
+ # ```
738
+ #
739
+ # You can also filter nested fields. For example, you could specify
740
+ # `scheduling.automaticRestart = false` to include instances only
741
+ # if they are not scheduled for automatic restarts. You can use filtering
742
+ # on nested fields to filter based onresource labels.
743
+ #
744
+ # To filter on multiple expressions, provide each separate expression within
745
+ # parentheses. For example:
746
+ # ```
747
+ # (scheduling.automaticRestart = true)
748
+ # (cpuPlatform = "Intel Skylake")
749
+ # ```
750
+ # By default, each expression is an `AND` expression. However, you
751
+ # can include `AND` and `OR` expressions explicitly.
752
+ # For example:
753
+ # ```
754
+ # (cpuPlatform = "Intel Skylake") OR
755
+ # (cpuPlatform = "Intel Broadwell") AND
756
+ # (scheduling.automaticRestart = true)
757
+ # ```
758
+ #
759
+ # If you want to use a regular expression, use the `eq` (equal) or `ne`
760
+ # (not equal) operator against a single un-parenthesized expression with or
761
+ # without quotes or against multiple parenthesized expressions. Examples:
762
+ #
763
+ # `fieldname eq unquoted literal`
764
+ # `fieldname eq 'single quoted literal'`
765
+ # `fieldname eq "double quoted literal"`
766
+ # `(fieldname1 eq literal) (fieldname2 ne "literal")`
767
+ #
768
+ # The literal value is interpreted as a regular expression using GoogleRE2 library syntax.
769
+ # The literal value must match the entire field.
770
+ #
771
+ # For example, to filter for instances that do not end with name "instance",
772
+ # you would use `name ne .*instance`.
773
+ #
774
+ # You cannot combine constraints on multiple fields using regular
775
+ # expressions.
693
776
  # @param max_results [::Integer]
694
- # The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)
777
+ # The maximum number of results per page that should be returned.
778
+ # If the number of available results is larger than `maxResults`,
779
+ # Compute Engine returns a `nextPageToken` that can be used to get
780
+ # the next page of results in subsequent list requests. Acceptable values are
781
+ # `0` to `500`, inclusive. (Default: `500`)
695
782
  # @param order_by [::String]
696
- # Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy="creationTimestamp desc"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.
783
+ # Sorts list results by a certain order. By default, results
784
+ # are returned in alphanumerical order based on the resource name.
785
+ #
786
+ # You can also sort results in descending order based on the creation
787
+ # timestamp using `orderBy="creationTimestamp desc"`. This sorts
788
+ # results based on the `creationTimestamp` field in
789
+ # reverse chronological order (newest result first). Use this to sort
790
+ # resources like operations so that the newest operation is returned first.
791
+ #
792
+ # Currently, only sorting by `name` or
793
+ # `creationTimestamp desc` is supported.
697
794
  # @param page_token [::String]
698
- # Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.
795
+ # Specifies a page token to use. Set `pageToken` to the
796
+ # `nextPageToken` returned by a previous list request to get
797
+ # the next page of results.
699
798
  # @param project [::String]
700
799
  # Project ID for this request.
701
800
  # @param region [::String]
702
801
  # Name of the region scoping this request.
703
802
  # @param return_partial_success [::Boolean]
704
- # Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
803
+ # Opt-in for partial success behavior which provides partial results in case
804
+ # of failure. The default value is false.
805
+ #
806
+ # For example, when partial success behavior is enabled, aggregatedList for a
807
+ # single zone scope either returns all resources in the zone or no resources,
808
+ # with an error code.
705
809
  # @yield [result, operation] Access the result along with the TransportOperation object
706
810
  # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Compute::V1::SecurityPolicy>]
707
811
  # @yieldparam operation [::Gapic::Rest::TransportOperation]
@@ -763,7 +867,11 @@ module Google
763
867
  end
764
868
 
765
869
  ##
766
- # Patches the specified policy with the data included in the request. To clear fields in the policy, leave the fields empty and specify them in the updateMask. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead.
870
+ # Patches the specified policy with the data included in the request. To
871
+ # clear fields in the policy, leave the fields empty and specify them in the
872
+ # updateMask. This cannot be used to be update the rules in the policy.
873
+ # Please use the per rule methods like addRule, patchRule, and removeRule
874
+ # instead.
767
875
  #
768
876
  # @overload patch(request, options = nil)
769
877
  # Pass arguments to `patch` via a request object, either of type
@@ -785,7 +893,19 @@ module Google
785
893
  # @param region [::String]
786
894
  # Name of the region scoping this request.
787
895
  # @param request_id [::String]
788
- # An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
896
+ # An optional request ID to identify requests. Specify a unique request ID so
897
+ # that if you must retry your request, the server will know to ignore the
898
+ # request if it has already been completed.
899
+ #
900
+ # For example, consider a situation where you make an initial request and
901
+ # the request times out. If you make the request again with the same
902
+ # request ID, the server can check if original operation with the same
903
+ # request ID was received, and if so, will ignore the second request. This
904
+ # prevents clients from accidentally creating duplicate commitments.
905
+ #
906
+ # The request ID must be
907
+ # a valid UUID with the exception that zero UUID is not supported
908
+ # (00000000-0000-0000-0000-000000000000).
789
909
  # @param security_policy [::String]
790
910
  # Name of the security policy to update.
791
911
  # @param security_policy_resource [::Google::Cloud::Compute::V1::SecurityPolicy, ::Hash]
@@ -861,7 +981,8 @@ module Google
861
981
  end
862
982
 
863
983
  ##
864
- # Patches a rule at the specified priority. To clear fields in the rule, leave the fields empty and specify them in the updateMask.
984
+ # Patches a rule at the specified priority. To clear fields in the rule,
985
+ # leave the fields empty and specify them in the updateMask.
865
986
  #
866
987
  # @overload patch_rule(request, options = nil)
867
988
  # Pass arguments to `patch_rule` via a request object, either of type
@@ -1055,7 +1176,9 @@ module Google
1055
1176
  end
1056
1177
 
1057
1178
  ##
1058
- # Sets the labels on a security policy. To learn more about labels, read the Labeling Resources documentation.
1179
+ # Sets the labels on a security policy. To learn more about labels,
1180
+ # read the Labeling Resources
1181
+ # documentation.
1059
1182
  #
1060
1183
  # @overload set_labels(request, options = nil)
1061
1184
  # Pass arguments to `set_labels` via a request object, either of type
@@ -1079,7 +1202,19 @@ module Google
1079
1202
  # @param region_set_labels_request_resource [::Google::Cloud::Compute::V1::RegionSetLabelsRequest, ::Hash]
1080
1203
  # The body resource for this request
1081
1204
  # @param request_id [::String]
1082
- # An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
1205
+ # An optional request ID to identify requests. Specify a unique request ID so
1206
+ # that if you must retry your request, the server will know to ignore the
1207
+ # request if it has already been completed.
1208
+ #
1209
+ # For example, consider a situation where you make an initial request and
1210
+ # the request times out. If you make the request again with the same
1211
+ # request ID, the server can check if original operation with the same
1212
+ # request ID was received, and if so, will ignore the second request. This
1213
+ # prevents clients from accidentally creating duplicate commitments.
1214
+ #
1215
+ # The request ID must be
1216
+ # a valid UUID with the exception that zero UUID is not supported
1217
+ # (00000000-0000-0000-0000-000000000000).
1083
1218
  # @param resource [::String]
1084
1219
  # Name or id of the resource for this request.
1085
1220
  # @yield [result, operation] Access the result along with the TransportOperation object
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2026 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+ require "googleauth"
20
+
21
+ module Google
22
+ module Cloud
23
+ module Compute
24
+ module V1
25
+ module RegionSnapshotSettings
26
+ # Credentials for the RegionSnapshotSettings API.
27
+ class Credentials < ::Google::Auth::Credentials
28
+ self.scope = [
29
+ "https://www.googleapis.com/auth/compute",
30
+ "https://www.googleapis.com/auth/cloud-platform"
31
+ ]
32
+ self.env_vars = [
33
+ "COMPUTE_CREDENTIALS",
34
+ "COMPUTE_KEYFILE",
35
+ "GOOGLE_CLOUD_CREDENTIALS",
36
+ "GOOGLE_CLOUD_KEYFILE",
37
+ "GCLOUD_KEYFILE",
38
+ "COMPUTE_CREDENTIALS_JSON",
39
+ "COMPUTE_KEYFILE_JSON",
40
+ "GOOGLE_CLOUD_CREDENTIALS_JSON",
41
+ "GOOGLE_CLOUD_KEYFILE_JSON",
42
+ "GCLOUD_KEYFILE_JSON"
43
+ ]
44
+ self.paths = [
45
+ "~/.config/google_cloud/application_default_credentials.json"
46
+ ]
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end