google-cloud-network_connectivity-v1 1.6.0 → 1.7.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.
@@ -0,0 +1,397 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2025 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
+
20
+ module Google
21
+ module Cloud
22
+ module NetworkConnectivity
23
+ module V1
24
+ # The internal range resource for IPAM operations within a VPC network.
25
+ # Used to represent a private address range along with behavioral
26
+ # characteristics of that range (its usage and peering behavior).
27
+ # Networking resources can link to this range if they are created
28
+ # as belonging to it.
29
+ # @!attribute [rw] name
30
+ # @return [::String]
31
+ # Identifier. The name of an internal range.
32
+ # Format:
33
+ # projects/\\{project}/locations/\\{location}/internalRanges/\\{internal_range}
34
+ # See: https://google.aip.dev/122#fields-representing-resource-names
35
+ # @!attribute [rw] create_time
36
+ # @return [::Google::Protobuf::Timestamp]
37
+ # Time when the internal range was created.
38
+ # @!attribute [rw] update_time
39
+ # @return [::Google::Protobuf::Timestamp]
40
+ # Time when the internal range was updated.
41
+ # @!attribute [rw] labels
42
+ # @return [::Google::Protobuf::Map{::String => ::String}]
43
+ # User-defined labels.
44
+ # @!attribute [rw] description
45
+ # @return [::String]
46
+ # Optional. A description of this resource.
47
+ # @!attribute [rw] ip_cidr_range
48
+ # @return [::String]
49
+ # Optional. The IP range that this internal range defines.
50
+ # NOTE: IPv6 ranges are limited to usage=EXTERNAL_TO_VPC and
51
+ # peering=FOR_SELF.
52
+ # NOTE: For IPv6 Ranges this field is compulsory, i.e. the address range must
53
+ # be specified explicitly.
54
+ # @!attribute [rw] network
55
+ # @return [::String]
56
+ # Immutable. The URL or resource ID of the network in which to reserve the
57
+ # internal range. The network cannot be deleted if there are any reserved
58
+ # internal ranges referring to it. Legacy networks are not supported. For
59
+ # example:
60
+ # https://www.googleapis.com/compute/v1/projects/\\{project}/locations/global/networks/\\{network}
61
+ # projects/\\{project}/locations/global/networks/\\{network}
62
+ # \\{network}
63
+ # @!attribute [rw] usage
64
+ # @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange::Usage]
65
+ # Optional. The type of usage set for this InternalRange.
66
+ # @!attribute [rw] peering
67
+ # @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange::Peering]
68
+ # Optional. The type of peering set for this internal range.
69
+ # @!attribute [rw] prefix_length
70
+ # @return [::Integer]
71
+ # Optional. An alternate to ip_cidr_range. Can be set when trying to create
72
+ # an IPv4 reservation that automatically finds a free range of the given
73
+ # size. If both ip_cidr_range and prefix_length are set, there is an error if
74
+ # the range sizes do not match. Can also be used during updates to change the
75
+ # range size.
76
+ # NOTE: For IPv6 this field only works if ip_cidr_range is set as well, and
77
+ # both fields must match. In other words, with IPv6 this field only works as
78
+ # a redundant parameter.
79
+ # @!attribute [rw] target_cidr_range
80
+ # @return [::Array<::String>]
81
+ # Optional. Can be set to narrow down or pick a different address space while
82
+ # searching for a free range. If not set, defaults to the "10.0.0.0/8"
83
+ # address space. This can be used to search in other rfc-1918 address
84
+ # spaces like "172.16.0.0/12" and "192.168.0.0/16" or non-rfc-1918
85
+ # address spaces used in the VPC.
86
+ # @!attribute [r] users
87
+ # @return [::Array<::String>]
88
+ # Output only. The list of resources that refer to this internal range.
89
+ # Resources that use the internal range for their range allocation
90
+ # are referred to as users of the range. Other resources mark themselves
91
+ # as users while doing so by creating a reference to this internal range.
92
+ # Having a user, based on this reference, prevents deletion of the
93
+ # internal range referred to. Can be empty.
94
+ # @!attribute [rw] overlaps
95
+ # @return [::Array<::Google::Cloud::NetworkConnectivity::V1::InternalRange::Overlap>]
96
+ # Optional. Types of resources that are allowed to overlap with the current
97
+ # internal range.
98
+ # @!attribute [rw] migration
99
+ # @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange::Migration]
100
+ # Optional. Must be present if usage is set to FOR_MIGRATION.
101
+ # @!attribute [rw] immutable
102
+ # @return [::Boolean]
103
+ # Optional. Immutable ranges cannot have their fields modified, except for
104
+ # labels and description.
105
+ # @!attribute [rw] allocation_options
106
+ # @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange::AllocationOptions]
107
+ # Optional. Range auto-allocation options, may be set only when
108
+ # auto-allocation is selected by not setting ip_cidr_range (and setting
109
+ # prefix_length).
110
+ # @!attribute [rw] exclude_cidr_ranges
111
+ # @return [::Array<::String>]
112
+ # Optional. ExcludeCidrRanges flag. Specifies a set of CIDR blocks that
113
+ # allows exclusion of particular CIDR ranges from the auto-allocation
114
+ # process, without having to reserve these blocks
115
+ class InternalRange
116
+ include ::Google::Protobuf::MessageExts
117
+ extend ::Google::Protobuf::MessageExts::ClassMethods
118
+
119
+ # Specification for migration with source and target resource names.
120
+ # @!attribute [rw] source
121
+ # @return [::String]
122
+ # Immutable. Resource path as an URI of the source resource, for example a
123
+ # subnet. The project for the source resource should match the project for
124
+ # the InternalRange. An example:
125
+ # /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
126
+ # @!attribute [rw] target
127
+ # @return [::String]
128
+ # Immutable. Resource path of the target resource. The target project can
129
+ # be different, as in the cases when migrating to peer networks. For
130
+ # example:
131
+ # /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
132
+ class Migration
133
+ include ::Google::Protobuf::MessageExts
134
+ extend ::Google::Protobuf::MessageExts::ClassMethods
135
+ end
136
+
137
+ # Range auto-allocation options, to be optionally used when CIDR block is not
138
+ # explicitly set.
139
+ # @!attribute [rw] allocation_strategy
140
+ # @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange::AllocationStrategy]
141
+ # Optional. Allocation strategy Not setting this field when the allocation
142
+ # is requested means an implementation defined strategy is used.
143
+ # @!attribute [rw] first_available_ranges_lookup_size
144
+ # @return [::Integer]
145
+ # Optional. This field must be set only when allocation_strategy is set to
146
+ # RANDOM_FIRST_N_AVAILABLE.
147
+ # The value should be the maximum expected parallelism of range creation
148
+ # requests issued to the same space of peered netwroks.
149
+ class AllocationOptions
150
+ include ::Google::Protobuf::MessageExts
151
+ extend ::Google::Protobuf::MessageExts::ClassMethods
152
+ end
153
+
154
+ # @!attribute [rw] key
155
+ # @return [::String]
156
+ # @!attribute [rw] value
157
+ # @return [::String]
158
+ class LabelsEntry
159
+ include ::Google::Protobuf::MessageExts
160
+ extend ::Google::Protobuf::MessageExts::ClassMethods
161
+ end
162
+
163
+ # Possible usage of an internal range.
164
+ module Usage
165
+ # Unspecified usage is allowed in calls which identify the resource by
166
+ # other fields and do not need Usage set to complete. These are, i.e.:
167
+ # GetInternalRange and DeleteInternalRange.
168
+ # Usage needs to be specified explicitly in CreateInternalRange
169
+ # or UpdateInternalRange calls.
170
+ USAGE_UNSPECIFIED = 0
171
+
172
+ # A VPC resource can use the reserved CIDR block by associating it with the
173
+ # internal range resource if usage is set to FOR_VPC.
174
+ FOR_VPC = 1
175
+
176
+ # Ranges created with EXTERNAL_TO_VPC cannot be associated with VPC
177
+ # resources and are meant to block out address ranges for various use
178
+ # cases, like for example, usage on-prem, with dynamic route announcements
179
+ # via interconnect.
180
+ EXTERNAL_TO_VPC = 2
181
+
182
+ # Ranges created FOR_MIGRATION can be used to lock a CIDR range between a
183
+ # source and target subnet. If usage is set to FOR_MIGRATION, the peering
184
+ # value has to be set to FOR_SELF or default to FOR_SELF when unset.
185
+ FOR_MIGRATION = 3
186
+ end
187
+
188
+ # Peering type.
189
+ module Peering
190
+ # If Peering is left unspecified in CreateInternalRange or
191
+ # UpdateInternalRange, it will be defaulted to FOR_SELF.
192
+ PEERING_UNSPECIFIED = 0
193
+
194
+ # This is the default behavior and represents the case that this
195
+ # internal range is intended to be used in the VPC in which it is created
196
+ # and is accessible from its peers. This implies that peers or
197
+ # peers-of-peers cannot use this range.
198
+ FOR_SELF = 1
199
+
200
+ # This behavior can be set when the internal range is being reserved for
201
+ # usage by peers. This means that no resource within the VPC in which
202
+ # it is being created can use this to associate with a VPC resource, but
203
+ # one of the peers can. This represents donating a range for peers to
204
+ # use.
205
+ FOR_PEER = 2
206
+
207
+ # This behavior can be set when the internal range is being reserved for
208
+ # usage by the VPC in which it is created, but not shared with peers.
209
+ # In a sense, it is local to the VPC. This can be used to create internal
210
+ # ranges for various purposes like HTTP_INTERNAL_LOAD_BALANCER or for
211
+ # Interconnect routes that are not shared with peers. This also implies
212
+ # that peers cannot use this range in a way that is visible to this VPC,
213
+ # but can re-use this range as long as it is NOT_SHARED from the peer VPC,
214
+ # too.
215
+ NOT_SHARED = 3
216
+ end
217
+
218
+ # Overlap specifications.
219
+ module Overlap
220
+ # No overlap overrides.
221
+ OVERLAP_UNSPECIFIED = 0
222
+
223
+ # Allow creation of static routes more specific that the current
224
+ # internal range.
225
+ OVERLAP_ROUTE_RANGE = 1
226
+
227
+ # Allow creation of internal ranges that overlap with existing subnets.
228
+ OVERLAP_EXISTING_SUBNET_RANGE = 2
229
+ end
230
+
231
+ # Enumeration of range auto-allocation strategies
232
+ module AllocationStrategy
233
+ # Unspecified is the only valid option when the range is specified
234
+ # explicitly by ip_cidr_range field. Otherwise unspefified means using the
235
+ # default strategy.
236
+ ALLOCATION_STRATEGY_UNSPECIFIED = 0
237
+
238
+ # Random strategy, the legacy algorithm, used for backwards compatibility.
239
+ # This allocation strategy remains efficient in the case of concurrent
240
+ # allocation requests in the same peered network space and doesn't require
241
+ # providing the level of concurrency in an explicit parameter, but it is
242
+ # prone to fragmenting available address space.
243
+ RANDOM = 1
244
+
245
+ # Pick the first available address range. This strategy is deterministic
246
+ # and the result is easy to predict.
247
+ FIRST_AVAILABLE = 2
248
+
249
+ # Pick an arbitrary range out of the first N available ones. The N will be
250
+ # set in the first_available_ranges_lookup_size field. This strategy should
251
+ # be used when concurrent allocation requests are made in the same space of
252
+ # peered networks while the fragmentation of the addrress space is reduced.
253
+ RANDOM_FIRST_N_AVAILABLE = 3
254
+
255
+ # Pick the smallest but fitting available range. This deterministic
256
+ # strategy minimizes fragmentation of the address space.
257
+ FIRST_SMALLEST_FITTING = 4
258
+ end
259
+ end
260
+
261
+ # Request for InternalRangeService.ListInternalRanges
262
+ # @!attribute [rw] parent
263
+ # @return [::String]
264
+ # Required. The parent resource's name.
265
+ # @!attribute [rw] page_size
266
+ # @return [::Integer]
267
+ # The maximum number of results per page that should be returned.
268
+ # @!attribute [rw] page_token
269
+ # @return [::String]
270
+ # The page token.
271
+ # @!attribute [rw] filter
272
+ # @return [::String]
273
+ # A filter expression that filters the results listed in the response.
274
+ # @!attribute [rw] order_by
275
+ # @return [::String]
276
+ # Sort the results by a certain order.
277
+ class ListInternalRangesRequest
278
+ include ::Google::Protobuf::MessageExts
279
+ extend ::Google::Protobuf::MessageExts::ClassMethods
280
+ end
281
+
282
+ # Response for InternalRange.ListInternalRanges
283
+ # @!attribute [rw] internal_ranges
284
+ # @return [::Array<::Google::Cloud::NetworkConnectivity::V1::InternalRange>]
285
+ # Internal ranges to be returned.
286
+ # @!attribute [rw] next_page_token
287
+ # @return [::String]
288
+ # The next pagination token in the List response. It should be used as
289
+ # page_token for the following request. An empty value means no more result.
290
+ # @!attribute [rw] unreachable
291
+ # @return [::Array<::String>]
292
+ # Locations that could not be reached.
293
+ class ListInternalRangesResponse
294
+ include ::Google::Protobuf::MessageExts
295
+ extend ::Google::Protobuf::MessageExts::ClassMethods
296
+ end
297
+
298
+ # Request for InternalRangeService.GetInternalRange
299
+ # @!attribute [rw] name
300
+ # @return [::String]
301
+ # Required. Name of the InternalRange to get.
302
+ class GetInternalRangeRequest
303
+ include ::Google::Protobuf::MessageExts
304
+ extend ::Google::Protobuf::MessageExts::ClassMethods
305
+ end
306
+
307
+ # Request for InternalRangeService.CreateInternalRange
308
+ # @!attribute [rw] parent
309
+ # @return [::String]
310
+ # Required. The parent resource's name of the internal range.
311
+ # @!attribute [rw] internal_range_id
312
+ # @return [::String]
313
+ # Optional. Resource ID
314
+ # (i.e. 'foo' in '[...]/projects/p/locations/l/internalRanges/foo')
315
+ # See https://google.aip.dev/122#resource-id-segments
316
+ # Unique per location.
317
+ # @!attribute [rw] internal_range
318
+ # @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange]
319
+ # Required. Initial values for a new internal range
320
+ # @!attribute [rw] request_id
321
+ # @return [::String]
322
+ # Optional. An optional request ID to identify requests. Specify a unique
323
+ # request ID so that if you must retry your request, the server will know to
324
+ # ignore the request if it has already been completed. The server will
325
+ # guarantee that for at least 60 minutes since the first request.
326
+ #
327
+ # For example, consider a situation where you make an initial request and
328
+ # the request times out. If you make the request again with the same request
329
+ # ID, the server can check if original operation with the same request ID
330
+ # was received, and if so, will ignore the second request. This prevents
331
+ # clients from accidentally creating duplicate commitments.
332
+ #
333
+ # The request ID must be a valid UUID with the exception that zero UUID is
334
+ # not supported (00000000-0000-0000-0000-000000000000).
335
+ class CreateInternalRangeRequest
336
+ include ::Google::Protobuf::MessageExts
337
+ extend ::Google::Protobuf::MessageExts::ClassMethods
338
+ end
339
+
340
+ # Request for InternalRangeService.UpdateInternalRange
341
+ # @!attribute [rw] update_mask
342
+ # @return [::Google::Protobuf::FieldMask]
343
+ # Optional. Field mask is used to specify the fields to be overwritten in the
344
+ # InternalRange resource by the update.
345
+ # The fields specified in the update_mask are relative to the resource, not
346
+ # the full request. A field will be overwritten if it is in the mask. If the
347
+ # user does not provide a mask then all fields will be overwritten.
348
+ # @!attribute [rw] internal_range
349
+ # @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange]
350
+ # Required. New values to be patched into the resource.
351
+ # @!attribute [rw] request_id
352
+ # @return [::String]
353
+ # Optional. An optional request ID to identify requests. Specify a unique
354
+ # request ID so that if you must retry your request, the server will know to
355
+ # ignore the request if it has already been completed. The server will
356
+ # guarantee that for at least 60 minutes since the first request.
357
+ #
358
+ # For example, consider a situation where you make an initial request and
359
+ # the request times out. If you make the request again with the same request
360
+ # ID, the server can check if original operation with the same request ID
361
+ # was received, and if so, will ignore the second request. This prevents
362
+ # clients from accidentally creating duplicate commitments.
363
+ #
364
+ # The request ID must be a valid UUID with the exception that zero UUID is
365
+ # not supported (00000000-0000-0000-0000-000000000000).
366
+ class UpdateInternalRangeRequest
367
+ include ::Google::Protobuf::MessageExts
368
+ extend ::Google::Protobuf::MessageExts::ClassMethods
369
+ end
370
+
371
+ # Request for InternalRangeService.DeleteInternalRange
372
+ # @!attribute [rw] name
373
+ # @return [::String]
374
+ # Required. The name of the internal range to delete.
375
+ # @!attribute [rw] request_id
376
+ # @return [::String]
377
+ # Optional. An optional request ID to identify requests. Specify a unique
378
+ # request ID so that if you must retry your request, the server will know to
379
+ # ignore the request if it has already been completed. The server will
380
+ # guarantee that for at least 60 minutes after the first request.
381
+ #
382
+ # For example, consider a situation where you make an initial request and
383
+ # the request times out. If you make the request again with the same request
384
+ # ID, the server can check if original operation with the same request ID
385
+ # was received, and if so, will ignore the second request. This prevents
386
+ # clients from accidentally creating duplicate commitments.
387
+ #
388
+ # The request ID must be a valid UUID with the exception that zero UUID is
389
+ # not supported (00000000-0000-0000-0000-000000000000).
390
+ class DeleteInternalRangeRequest
391
+ include ::Google::Protobuf::MessageExts
392
+ extend ::Google::Protobuf::MessageExts::ClassMethods
393
+ end
394
+ end
395
+ end
396
+ end
397
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-network_connectivity-v1
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google LLC
@@ -92,6 +92,11 @@ files:
92
92
  - lib/google/cloud/network_connectivity/v1/hub_service/credentials.rb
93
93
  - lib/google/cloud/network_connectivity/v1/hub_service/operations.rb
94
94
  - lib/google/cloud/network_connectivity/v1/hub_service/paths.rb
95
+ - lib/google/cloud/network_connectivity/v1/internal_range_service.rb
96
+ - lib/google/cloud/network_connectivity/v1/internal_range_service/client.rb
97
+ - lib/google/cloud/network_connectivity/v1/internal_range_service/credentials.rb
98
+ - lib/google/cloud/network_connectivity/v1/internal_range_service/operations.rb
99
+ - lib/google/cloud/network_connectivity/v1/internal_range_service/paths.rb
95
100
  - lib/google/cloud/network_connectivity/v1/policy_based_routing_service.rb
96
101
  - lib/google/cloud/network_connectivity/v1/policy_based_routing_service/client.rb
97
102
  - lib/google/cloud/network_connectivity/v1/policy_based_routing_service/credentials.rb
@@ -103,6 +108,8 @@ files:
103
108
  - lib/google/cloud/networkconnectivity/v1/cross_network_automation_services_pb.rb
104
109
  - lib/google/cloud/networkconnectivity/v1/hub_pb.rb
105
110
  - lib/google/cloud/networkconnectivity/v1/hub_services_pb.rb
111
+ - lib/google/cloud/networkconnectivity/v1/internal_range_pb.rb
112
+ - lib/google/cloud/networkconnectivity/v1/internal_range_services_pb.rb
106
113
  - lib/google/cloud/networkconnectivity/v1/policy_based_routing_pb.rb
107
114
  - lib/google/cloud/networkconnectivity/v1/policy_based_routing_services_pb.rb
108
115
  - proto_docs/README.md
@@ -114,6 +121,7 @@ files:
114
121
  - proto_docs/google/cloud/networkconnectivity/v1/common.rb
115
122
  - proto_docs/google/cloud/networkconnectivity/v1/cross_network_automation.rb
116
123
  - proto_docs/google/cloud/networkconnectivity/v1/hub.rb
124
+ - proto_docs/google/cloud/networkconnectivity/v1/internal_range.rb
117
125
  - proto_docs/google/cloud/networkconnectivity/v1/policy_based_routing.rb
118
126
  - proto_docs/google/longrunning/operations.rb
119
127
  - proto_docs/google/protobuf/any.rb
@@ -142,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
142
150
  - !ruby/object:Gem::Version
143
151
  version: '0'
144
152
  requirements: []
145
- rubygems_version: 3.6.8
153
+ rubygems_version: 3.6.9
146
154
  specification_version: 4
147
155
  summary: This API enables connectivity with and between Google Cloud resources.
148
156
  test_files: []