Class: Google::Cloud::NetworkConnectivity::V1::InternalRange

Inherits:
Object
  • Object
show all
Extended by:
Protobuf::MessageExts::ClassMethods
Includes:
Protobuf::MessageExts
Defined in:
proto_docs/google/cloud/networkconnectivity/v1/internal_range.rb

Overview

The internal range resource for IPAM operations within a VPC network. Used to represent a private address range along with behavioral characteristics of that range (its usage and peering behavior). Networking resources can link to this range if they are created as belonging to it.

Defined Under Namespace

Modules: AllocationStrategy, Overlap, Peering, Usage Classes: AllocationOptions, LabelsEntry, Migration

Instance Attribute Summary collapse

Instance Attribute Details

#allocation_options::Google::Cloud::NetworkConnectivity::V1::InternalRange::AllocationOptions

Returns Optional. Range auto-allocation options, may be set only when auto-allocation is selected by not setting ip_cidr_range (and setting prefix_length).

Returns:



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
# File 'proto_docs/google/cloud/networkconnectivity/v1/internal_range.rb', line 115

class InternalRange
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specification for migration with source and target resource names.
  # @!attribute [rw] source
  #   @return [::String]
  #     Immutable. Resource path as an URI of the source resource, for example a
  #     subnet. The project for the source resource should match the project for
  #     the InternalRange. An example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  # @!attribute [rw] target
  #   @return [::String]
  #     Immutable. Resource path of the target resource. The target project can
  #     be different, as in the cases when migrating to peer networks. For
  #     example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  class Migration
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Range auto-allocation options, to be optionally used when CIDR block is not
  # explicitly set.
  # @!attribute [rw] allocation_strategy
  #   @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange::AllocationStrategy]
  #     Optional. Allocation strategy Not setting this field when the allocation
  #     is requested means an implementation defined strategy is used.
  # @!attribute [rw] first_available_ranges_lookup_size
  #   @return [::Integer]
  #     Optional. This field must be set only when allocation_strategy is set to
  #     RANDOM_FIRST_N_AVAILABLE.
  #     The value should be the maximum expected parallelism of range creation
  #     requests issued to the same space of peered netwroks.
  class AllocationOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Possible usage of an internal range.
  module Usage
    # Unspecified usage is allowed in calls which identify the resource by
    # other fields and do not need Usage set to complete. These are, i.e.:
    # GetInternalRange and DeleteInternalRange.
    # Usage needs to be specified explicitly in CreateInternalRange
    # or UpdateInternalRange calls.
    USAGE_UNSPECIFIED = 0

    # A VPC resource can use the reserved CIDR block by associating it with the
    # internal range resource if usage is set to FOR_VPC.
    FOR_VPC = 1

    # Ranges created with EXTERNAL_TO_VPC cannot be associated with VPC
    # resources and are meant to block out address ranges for various use
    # cases, like for example, usage on-prem, with dynamic route announcements
    # via interconnect.
    EXTERNAL_TO_VPC = 2

    # Ranges created FOR_MIGRATION can be used to lock a CIDR range between a
    # source and target subnet. If usage is set to FOR_MIGRATION, the peering
    # value has to be set to FOR_SELF or default to FOR_SELF when unset.
    FOR_MIGRATION = 3
  end

  # Peering type.
  module Peering
    # If Peering is left unspecified in CreateInternalRange or
    # UpdateInternalRange, it will be defaulted to FOR_SELF.
    PEERING_UNSPECIFIED = 0

    # This is the default behavior and represents the case that this
    # internal range is intended to be used in the VPC in which it is created
    # and is accessible from its peers. This implies that peers or
    # peers-of-peers cannot use this range.
    FOR_SELF = 1

    # This behavior can be set when the internal range is being reserved for
    # usage by peers. This means that no resource within the VPC in which
    # it is being created can use this to associate with a VPC resource, but
    # one of the peers can. This represents donating a range for peers to
    # use.
    FOR_PEER = 2

    # This behavior can be set when the internal range is being reserved for
    # usage by the VPC in which it is created, but not shared with peers.
    # In a sense, it is local to the VPC. This can be used to create internal
    # ranges for various purposes like HTTP_INTERNAL_LOAD_BALANCER or for
    # Interconnect routes that are not shared with peers. This also implies
    # that peers cannot use this range in a way that is visible to this VPC,
    # but can re-use this range as long as it is NOT_SHARED from the peer VPC,
    # too.
    NOT_SHARED = 3
  end

  # Overlap specifications.
  module Overlap
    # No overlap overrides.
    OVERLAP_UNSPECIFIED = 0

    # Allow creation of static routes more specific that the current
    # internal range.
    OVERLAP_ROUTE_RANGE = 1

    # Allow creation of internal ranges that overlap with existing subnets.
    OVERLAP_EXISTING_SUBNET_RANGE = 2
  end

  # Enumeration of range auto-allocation strategies
  module AllocationStrategy
    # Unspecified is the only valid option when the range is specified
    # explicitly by ip_cidr_range field. Otherwise unspefified means using the
    # default strategy.
    ALLOCATION_STRATEGY_UNSPECIFIED = 0

    # Random strategy, the legacy algorithm, used for backwards compatibility.
    # This allocation strategy remains efficient in the case of concurrent
    # allocation requests in the same peered network space and doesn't require
    # providing the level of concurrency in an explicit parameter, but it is
    # prone to fragmenting available address space.
    RANDOM = 1

    # Pick the first available address range. This strategy is deterministic
    # and the result is easy to predict.
    FIRST_AVAILABLE = 2

    # Pick an arbitrary range out of the first N available ones. The N will be
    # set in the first_available_ranges_lookup_size field. This strategy should
    # be used when concurrent allocation requests are made in the same space of
    # peered networks while the fragmentation of the addrress space is reduced.
    RANDOM_FIRST_N_AVAILABLE = 3

    # Pick the smallest but fitting available range. This deterministic
    # strategy minimizes fragmentation of the address space.
    FIRST_SMALLEST_FITTING = 4
  end
end

#create_time::Google::Protobuf::Timestamp

Returns Time when the internal range was created.

Returns:



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
# File 'proto_docs/google/cloud/networkconnectivity/v1/internal_range.rb', line 115

class InternalRange
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specification for migration with source and target resource names.
  # @!attribute [rw] source
  #   @return [::String]
  #     Immutable. Resource path as an URI of the source resource, for example a
  #     subnet. The project for the source resource should match the project for
  #     the InternalRange. An example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  # @!attribute [rw] target
  #   @return [::String]
  #     Immutable. Resource path of the target resource. The target project can
  #     be different, as in the cases when migrating to peer networks. For
  #     example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  class Migration
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Range auto-allocation options, to be optionally used when CIDR block is not
  # explicitly set.
  # @!attribute [rw] allocation_strategy
  #   @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange::AllocationStrategy]
  #     Optional. Allocation strategy Not setting this field when the allocation
  #     is requested means an implementation defined strategy is used.
  # @!attribute [rw] first_available_ranges_lookup_size
  #   @return [::Integer]
  #     Optional. This field must be set only when allocation_strategy is set to
  #     RANDOM_FIRST_N_AVAILABLE.
  #     The value should be the maximum expected parallelism of range creation
  #     requests issued to the same space of peered netwroks.
  class AllocationOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Possible usage of an internal range.
  module Usage
    # Unspecified usage is allowed in calls which identify the resource by
    # other fields and do not need Usage set to complete. These are, i.e.:
    # GetInternalRange and DeleteInternalRange.
    # Usage needs to be specified explicitly in CreateInternalRange
    # or UpdateInternalRange calls.
    USAGE_UNSPECIFIED = 0

    # A VPC resource can use the reserved CIDR block by associating it with the
    # internal range resource if usage is set to FOR_VPC.
    FOR_VPC = 1

    # Ranges created with EXTERNAL_TO_VPC cannot be associated with VPC
    # resources and are meant to block out address ranges for various use
    # cases, like for example, usage on-prem, with dynamic route announcements
    # via interconnect.
    EXTERNAL_TO_VPC = 2

    # Ranges created FOR_MIGRATION can be used to lock a CIDR range between a
    # source and target subnet. If usage is set to FOR_MIGRATION, the peering
    # value has to be set to FOR_SELF or default to FOR_SELF when unset.
    FOR_MIGRATION = 3
  end

  # Peering type.
  module Peering
    # If Peering is left unspecified in CreateInternalRange or
    # UpdateInternalRange, it will be defaulted to FOR_SELF.
    PEERING_UNSPECIFIED = 0

    # This is the default behavior and represents the case that this
    # internal range is intended to be used in the VPC in which it is created
    # and is accessible from its peers. This implies that peers or
    # peers-of-peers cannot use this range.
    FOR_SELF = 1

    # This behavior can be set when the internal range is being reserved for
    # usage by peers. This means that no resource within the VPC in which
    # it is being created can use this to associate with a VPC resource, but
    # one of the peers can. This represents donating a range for peers to
    # use.
    FOR_PEER = 2

    # This behavior can be set when the internal range is being reserved for
    # usage by the VPC in which it is created, but not shared with peers.
    # In a sense, it is local to the VPC. This can be used to create internal
    # ranges for various purposes like HTTP_INTERNAL_LOAD_BALANCER or for
    # Interconnect routes that are not shared with peers. This also implies
    # that peers cannot use this range in a way that is visible to this VPC,
    # but can re-use this range as long as it is NOT_SHARED from the peer VPC,
    # too.
    NOT_SHARED = 3
  end

  # Overlap specifications.
  module Overlap
    # No overlap overrides.
    OVERLAP_UNSPECIFIED = 0

    # Allow creation of static routes more specific that the current
    # internal range.
    OVERLAP_ROUTE_RANGE = 1

    # Allow creation of internal ranges that overlap with existing subnets.
    OVERLAP_EXISTING_SUBNET_RANGE = 2
  end

  # Enumeration of range auto-allocation strategies
  module AllocationStrategy
    # Unspecified is the only valid option when the range is specified
    # explicitly by ip_cidr_range field. Otherwise unspefified means using the
    # default strategy.
    ALLOCATION_STRATEGY_UNSPECIFIED = 0

    # Random strategy, the legacy algorithm, used for backwards compatibility.
    # This allocation strategy remains efficient in the case of concurrent
    # allocation requests in the same peered network space and doesn't require
    # providing the level of concurrency in an explicit parameter, but it is
    # prone to fragmenting available address space.
    RANDOM = 1

    # Pick the first available address range. This strategy is deterministic
    # and the result is easy to predict.
    FIRST_AVAILABLE = 2

    # Pick an arbitrary range out of the first N available ones. The N will be
    # set in the first_available_ranges_lookup_size field. This strategy should
    # be used when concurrent allocation requests are made in the same space of
    # peered networks while the fragmentation of the addrress space is reduced.
    RANDOM_FIRST_N_AVAILABLE = 3

    # Pick the smallest but fitting available range. This deterministic
    # strategy minimizes fragmentation of the address space.
    FIRST_SMALLEST_FITTING = 4
  end
end

#description::String

Returns Optional. A description of this resource.

Returns:

  • (::String)

    Optional. A description of this resource.



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
# File 'proto_docs/google/cloud/networkconnectivity/v1/internal_range.rb', line 115

class InternalRange
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specification for migration with source and target resource names.
  # @!attribute [rw] source
  #   @return [::String]
  #     Immutable. Resource path as an URI of the source resource, for example a
  #     subnet. The project for the source resource should match the project for
  #     the InternalRange. An example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  # @!attribute [rw] target
  #   @return [::String]
  #     Immutable. Resource path of the target resource. The target project can
  #     be different, as in the cases when migrating to peer networks. For
  #     example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  class Migration
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Range auto-allocation options, to be optionally used when CIDR block is not
  # explicitly set.
  # @!attribute [rw] allocation_strategy
  #   @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange::AllocationStrategy]
  #     Optional. Allocation strategy Not setting this field when the allocation
  #     is requested means an implementation defined strategy is used.
  # @!attribute [rw] first_available_ranges_lookup_size
  #   @return [::Integer]
  #     Optional. This field must be set only when allocation_strategy is set to
  #     RANDOM_FIRST_N_AVAILABLE.
  #     The value should be the maximum expected parallelism of range creation
  #     requests issued to the same space of peered netwroks.
  class AllocationOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Possible usage of an internal range.
  module Usage
    # Unspecified usage is allowed in calls which identify the resource by
    # other fields and do not need Usage set to complete. These are, i.e.:
    # GetInternalRange and DeleteInternalRange.
    # Usage needs to be specified explicitly in CreateInternalRange
    # or UpdateInternalRange calls.
    USAGE_UNSPECIFIED = 0

    # A VPC resource can use the reserved CIDR block by associating it with the
    # internal range resource if usage is set to FOR_VPC.
    FOR_VPC = 1

    # Ranges created with EXTERNAL_TO_VPC cannot be associated with VPC
    # resources and are meant to block out address ranges for various use
    # cases, like for example, usage on-prem, with dynamic route announcements
    # via interconnect.
    EXTERNAL_TO_VPC = 2

    # Ranges created FOR_MIGRATION can be used to lock a CIDR range between a
    # source and target subnet. If usage is set to FOR_MIGRATION, the peering
    # value has to be set to FOR_SELF or default to FOR_SELF when unset.
    FOR_MIGRATION = 3
  end

  # Peering type.
  module Peering
    # If Peering is left unspecified in CreateInternalRange or
    # UpdateInternalRange, it will be defaulted to FOR_SELF.
    PEERING_UNSPECIFIED = 0

    # This is the default behavior and represents the case that this
    # internal range is intended to be used in the VPC in which it is created
    # and is accessible from its peers. This implies that peers or
    # peers-of-peers cannot use this range.
    FOR_SELF = 1

    # This behavior can be set when the internal range is being reserved for
    # usage by peers. This means that no resource within the VPC in which
    # it is being created can use this to associate with a VPC resource, but
    # one of the peers can. This represents donating a range for peers to
    # use.
    FOR_PEER = 2

    # This behavior can be set when the internal range is being reserved for
    # usage by the VPC in which it is created, but not shared with peers.
    # In a sense, it is local to the VPC. This can be used to create internal
    # ranges for various purposes like HTTP_INTERNAL_LOAD_BALANCER or for
    # Interconnect routes that are not shared with peers. This also implies
    # that peers cannot use this range in a way that is visible to this VPC,
    # but can re-use this range as long as it is NOT_SHARED from the peer VPC,
    # too.
    NOT_SHARED = 3
  end

  # Overlap specifications.
  module Overlap
    # No overlap overrides.
    OVERLAP_UNSPECIFIED = 0

    # Allow creation of static routes more specific that the current
    # internal range.
    OVERLAP_ROUTE_RANGE = 1

    # Allow creation of internal ranges that overlap with existing subnets.
    OVERLAP_EXISTING_SUBNET_RANGE = 2
  end

  # Enumeration of range auto-allocation strategies
  module AllocationStrategy
    # Unspecified is the only valid option when the range is specified
    # explicitly by ip_cidr_range field. Otherwise unspefified means using the
    # default strategy.
    ALLOCATION_STRATEGY_UNSPECIFIED = 0

    # Random strategy, the legacy algorithm, used for backwards compatibility.
    # This allocation strategy remains efficient in the case of concurrent
    # allocation requests in the same peered network space and doesn't require
    # providing the level of concurrency in an explicit parameter, but it is
    # prone to fragmenting available address space.
    RANDOM = 1

    # Pick the first available address range. This strategy is deterministic
    # and the result is easy to predict.
    FIRST_AVAILABLE = 2

    # Pick an arbitrary range out of the first N available ones. The N will be
    # set in the first_available_ranges_lookup_size field. This strategy should
    # be used when concurrent allocation requests are made in the same space of
    # peered networks while the fragmentation of the addrress space is reduced.
    RANDOM_FIRST_N_AVAILABLE = 3

    # Pick the smallest but fitting available range. This deterministic
    # strategy minimizes fragmentation of the address space.
    FIRST_SMALLEST_FITTING = 4
  end
end

#exclude_cidr_ranges::Array<::String>

Returns Optional. ExcludeCidrRanges flag. Specifies a set of CIDR blocks that allows exclusion of particular CIDR ranges from the auto-allocation process, without having to reserve these blocks.

Returns:

  • (::Array<::String>)

    Optional. ExcludeCidrRanges flag. Specifies a set of CIDR blocks that allows exclusion of particular CIDR ranges from the auto-allocation process, without having to reserve these blocks



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
# File 'proto_docs/google/cloud/networkconnectivity/v1/internal_range.rb', line 115

class InternalRange
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specification for migration with source and target resource names.
  # @!attribute [rw] source
  #   @return [::String]
  #     Immutable. Resource path as an URI of the source resource, for example a
  #     subnet. The project for the source resource should match the project for
  #     the InternalRange. An example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  # @!attribute [rw] target
  #   @return [::String]
  #     Immutable. Resource path of the target resource. The target project can
  #     be different, as in the cases when migrating to peer networks. For
  #     example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  class Migration
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Range auto-allocation options, to be optionally used when CIDR block is not
  # explicitly set.
  # @!attribute [rw] allocation_strategy
  #   @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange::AllocationStrategy]
  #     Optional. Allocation strategy Not setting this field when the allocation
  #     is requested means an implementation defined strategy is used.
  # @!attribute [rw] first_available_ranges_lookup_size
  #   @return [::Integer]
  #     Optional. This field must be set only when allocation_strategy is set to
  #     RANDOM_FIRST_N_AVAILABLE.
  #     The value should be the maximum expected parallelism of range creation
  #     requests issued to the same space of peered netwroks.
  class AllocationOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Possible usage of an internal range.
  module Usage
    # Unspecified usage is allowed in calls which identify the resource by
    # other fields and do not need Usage set to complete. These are, i.e.:
    # GetInternalRange and DeleteInternalRange.
    # Usage needs to be specified explicitly in CreateInternalRange
    # or UpdateInternalRange calls.
    USAGE_UNSPECIFIED = 0

    # A VPC resource can use the reserved CIDR block by associating it with the
    # internal range resource if usage is set to FOR_VPC.
    FOR_VPC = 1

    # Ranges created with EXTERNAL_TO_VPC cannot be associated with VPC
    # resources and are meant to block out address ranges for various use
    # cases, like for example, usage on-prem, with dynamic route announcements
    # via interconnect.
    EXTERNAL_TO_VPC = 2

    # Ranges created FOR_MIGRATION can be used to lock a CIDR range between a
    # source and target subnet. If usage is set to FOR_MIGRATION, the peering
    # value has to be set to FOR_SELF or default to FOR_SELF when unset.
    FOR_MIGRATION = 3
  end

  # Peering type.
  module Peering
    # If Peering is left unspecified in CreateInternalRange or
    # UpdateInternalRange, it will be defaulted to FOR_SELF.
    PEERING_UNSPECIFIED = 0

    # This is the default behavior and represents the case that this
    # internal range is intended to be used in the VPC in which it is created
    # and is accessible from its peers. This implies that peers or
    # peers-of-peers cannot use this range.
    FOR_SELF = 1

    # This behavior can be set when the internal range is being reserved for
    # usage by peers. This means that no resource within the VPC in which
    # it is being created can use this to associate with a VPC resource, but
    # one of the peers can. This represents donating a range for peers to
    # use.
    FOR_PEER = 2

    # This behavior can be set when the internal range is being reserved for
    # usage by the VPC in which it is created, but not shared with peers.
    # In a sense, it is local to the VPC. This can be used to create internal
    # ranges for various purposes like HTTP_INTERNAL_LOAD_BALANCER or for
    # Interconnect routes that are not shared with peers. This also implies
    # that peers cannot use this range in a way that is visible to this VPC,
    # but can re-use this range as long as it is NOT_SHARED from the peer VPC,
    # too.
    NOT_SHARED = 3
  end

  # Overlap specifications.
  module Overlap
    # No overlap overrides.
    OVERLAP_UNSPECIFIED = 0

    # Allow creation of static routes more specific that the current
    # internal range.
    OVERLAP_ROUTE_RANGE = 1

    # Allow creation of internal ranges that overlap with existing subnets.
    OVERLAP_EXISTING_SUBNET_RANGE = 2
  end

  # Enumeration of range auto-allocation strategies
  module AllocationStrategy
    # Unspecified is the only valid option when the range is specified
    # explicitly by ip_cidr_range field. Otherwise unspefified means using the
    # default strategy.
    ALLOCATION_STRATEGY_UNSPECIFIED = 0

    # Random strategy, the legacy algorithm, used for backwards compatibility.
    # This allocation strategy remains efficient in the case of concurrent
    # allocation requests in the same peered network space and doesn't require
    # providing the level of concurrency in an explicit parameter, but it is
    # prone to fragmenting available address space.
    RANDOM = 1

    # Pick the first available address range. This strategy is deterministic
    # and the result is easy to predict.
    FIRST_AVAILABLE = 2

    # Pick an arbitrary range out of the first N available ones. The N will be
    # set in the first_available_ranges_lookup_size field. This strategy should
    # be used when concurrent allocation requests are made in the same space of
    # peered networks while the fragmentation of the addrress space is reduced.
    RANDOM_FIRST_N_AVAILABLE = 3

    # Pick the smallest but fitting available range. This deterministic
    # strategy minimizes fragmentation of the address space.
    FIRST_SMALLEST_FITTING = 4
  end
end

#immutable::Boolean

Returns Optional. Immutable ranges cannot have their fields modified, except for labels and description.

Returns:

  • (::Boolean)

    Optional. Immutable ranges cannot have their fields modified, except for labels and description.



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
# File 'proto_docs/google/cloud/networkconnectivity/v1/internal_range.rb', line 115

class InternalRange
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specification for migration with source and target resource names.
  # @!attribute [rw] source
  #   @return [::String]
  #     Immutable. Resource path as an URI of the source resource, for example a
  #     subnet. The project for the source resource should match the project for
  #     the InternalRange. An example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  # @!attribute [rw] target
  #   @return [::String]
  #     Immutable. Resource path of the target resource. The target project can
  #     be different, as in the cases when migrating to peer networks. For
  #     example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  class Migration
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Range auto-allocation options, to be optionally used when CIDR block is not
  # explicitly set.
  # @!attribute [rw] allocation_strategy
  #   @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange::AllocationStrategy]
  #     Optional. Allocation strategy Not setting this field when the allocation
  #     is requested means an implementation defined strategy is used.
  # @!attribute [rw] first_available_ranges_lookup_size
  #   @return [::Integer]
  #     Optional. This field must be set only when allocation_strategy is set to
  #     RANDOM_FIRST_N_AVAILABLE.
  #     The value should be the maximum expected parallelism of range creation
  #     requests issued to the same space of peered netwroks.
  class AllocationOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Possible usage of an internal range.
  module Usage
    # Unspecified usage is allowed in calls which identify the resource by
    # other fields and do not need Usage set to complete. These are, i.e.:
    # GetInternalRange and DeleteInternalRange.
    # Usage needs to be specified explicitly in CreateInternalRange
    # or UpdateInternalRange calls.
    USAGE_UNSPECIFIED = 0

    # A VPC resource can use the reserved CIDR block by associating it with the
    # internal range resource if usage is set to FOR_VPC.
    FOR_VPC = 1

    # Ranges created with EXTERNAL_TO_VPC cannot be associated with VPC
    # resources and are meant to block out address ranges for various use
    # cases, like for example, usage on-prem, with dynamic route announcements
    # via interconnect.
    EXTERNAL_TO_VPC = 2

    # Ranges created FOR_MIGRATION can be used to lock a CIDR range between a
    # source and target subnet. If usage is set to FOR_MIGRATION, the peering
    # value has to be set to FOR_SELF or default to FOR_SELF when unset.
    FOR_MIGRATION = 3
  end

  # Peering type.
  module Peering
    # If Peering is left unspecified in CreateInternalRange or
    # UpdateInternalRange, it will be defaulted to FOR_SELF.
    PEERING_UNSPECIFIED = 0

    # This is the default behavior and represents the case that this
    # internal range is intended to be used in the VPC in which it is created
    # and is accessible from its peers. This implies that peers or
    # peers-of-peers cannot use this range.
    FOR_SELF = 1

    # This behavior can be set when the internal range is being reserved for
    # usage by peers. This means that no resource within the VPC in which
    # it is being created can use this to associate with a VPC resource, but
    # one of the peers can. This represents donating a range for peers to
    # use.
    FOR_PEER = 2

    # This behavior can be set when the internal range is being reserved for
    # usage by the VPC in which it is created, but not shared with peers.
    # In a sense, it is local to the VPC. This can be used to create internal
    # ranges for various purposes like HTTP_INTERNAL_LOAD_BALANCER or for
    # Interconnect routes that are not shared with peers. This also implies
    # that peers cannot use this range in a way that is visible to this VPC,
    # but can re-use this range as long as it is NOT_SHARED from the peer VPC,
    # too.
    NOT_SHARED = 3
  end

  # Overlap specifications.
  module Overlap
    # No overlap overrides.
    OVERLAP_UNSPECIFIED = 0

    # Allow creation of static routes more specific that the current
    # internal range.
    OVERLAP_ROUTE_RANGE = 1

    # Allow creation of internal ranges that overlap with existing subnets.
    OVERLAP_EXISTING_SUBNET_RANGE = 2
  end

  # Enumeration of range auto-allocation strategies
  module AllocationStrategy
    # Unspecified is the only valid option when the range is specified
    # explicitly by ip_cidr_range field. Otherwise unspefified means using the
    # default strategy.
    ALLOCATION_STRATEGY_UNSPECIFIED = 0

    # Random strategy, the legacy algorithm, used for backwards compatibility.
    # This allocation strategy remains efficient in the case of concurrent
    # allocation requests in the same peered network space and doesn't require
    # providing the level of concurrency in an explicit parameter, but it is
    # prone to fragmenting available address space.
    RANDOM = 1

    # Pick the first available address range. This strategy is deterministic
    # and the result is easy to predict.
    FIRST_AVAILABLE = 2

    # Pick an arbitrary range out of the first N available ones. The N will be
    # set in the first_available_ranges_lookup_size field. This strategy should
    # be used when concurrent allocation requests are made in the same space of
    # peered networks while the fragmentation of the addrress space is reduced.
    RANDOM_FIRST_N_AVAILABLE = 3

    # Pick the smallest but fitting available range. This deterministic
    # strategy minimizes fragmentation of the address space.
    FIRST_SMALLEST_FITTING = 4
  end
end

#ip_cidr_range::String

Returns Optional. The IP range that this internal range defines. NOTE: IPv6 ranges are limited to usage=EXTERNAL_TO_VPC and peering=FOR_SELF. NOTE: For IPv6 Ranges this field is compulsory, i.e. the address range must be specified explicitly.

Returns:

  • (::String)

    Optional. The IP range that this internal range defines. NOTE: IPv6 ranges are limited to usage=EXTERNAL_TO_VPC and peering=FOR_SELF. NOTE: For IPv6 Ranges this field is compulsory, i.e. the address range must be specified explicitly.



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
# File 'proto_docs/google/cloud/networkconnectivity/v1/internal_range.rb', line 115

class InternalRange
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specification for migration with source and target resource names.
  # @!attribute [rw] source
  #   @return [::String]
  #     Immutable. Resource path as an URI of the source resource, for example a
  #     subnet. The project for the source resource should match the project for
  #     the InternalRange. An example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  # @!attribute [rw] target
  #   @return [::String]
  #     Immutable. Resource path of the target resource. The target project can
  #     be different, as in the cases when migrating to peer networks. For
  #     example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  class Migration
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Range auto-allocation options, to be optionally used when CIDR block is not
  # explicitly set.
  # @!attribute [rw] allocation_strategy
  #   @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange::AllocationStrategy]
  #     Optional. Allocation strategy Not setting this field when the allocation
  #     is requested means an implementation defined strategy is used.
  # @!attribute [rw] first_available_ranges_lookup_size
  #   @return [::Integer]
  #     Optional. This field must be set only when allocation_strategy is set to
  #     RANDOM_FIRST_N_AVAILABLE.
  #     The value should be the maximum expected parallelism of range creation
  #     requests issued to the same space of peered netwroks.
  class AllocationOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Possible usage of an internal range.
  module Usage
    # Unspecified usage is allowed in calls which identify the resource by
    # other fields and do not need Usage set to complete. These are, i.e.:
    # GetInternalRange and DeleteInternalRange.
    # Usage needs to be specified explicitly in CreateInternalRange
    # or UpdateInternalRange calls.
    USAGE_UNSPECIFIED = 0

    # A VPC resource can use the reserved CIDR block by associating it with the
    # internal range resource if usage is set to FOR_VPC.
    FOR_VPC = 1

    # Ranges created with EXTERNAL_TO_VPC cannot be associated with VPC
    # resources and are meant to block out address ranges for various use
    # cases, like for example, usage on-prem, with dynamic route announcements
    # via interconnect.
    EXTERNAL_TO_VPC = 2

    # Ranges created FOR_MIGRATION can be used to lock a CIDR range between a
    # source and target subnet. If usage is set to FOR_MIGRATION, the peering
    # value has to be set to FOR_SELF or default to FOR_SELF when unset.
    FOR_MIGRATION = 3
  end

  # Peering type.
  module Peering
    # If Peering is left unspecified in CreateInternalRange or
    # UpdateInternalRange, it will be defaulted to FOR_SELF.
    PEERING_UNSPECIFIED = 0

    # This is the default behavior and represents the case that this
    # internal range is intended to be used in the VPC in which it is created
    # and is accessible from its peers. This implies that peers or
    # peers-of-peers cannot use this range.
    FOR_SELF = 1

    # This behavior can be set when the internal range is being reserved for
    # usage by peers. This means that no resource within the VPC in which
    # it is being created can use this to associate with a VPC resource, but
    # one of the peers can. This represents donating a range for peers to
    # use.
    FOR_PEER = 2

    # This behavior can be set when the internal range is being reserved for
    # usage by the VPC in which it is created, but not shared with peers.
    # In a sense, it is local to the VPC. This can be used to create internal
    # ranges for various purposes like HTTP_INTERNAL_LOAD_BALANCER or for
    # Interconnect routes that are not shared with peers. This also implies
    # that peers cannot use this range in a way that is visible to this VPC,
    # but can re-use this range as long as it is NOT_SHARED from the peer VPC,
    # too.
    NOT_SHARED = 3
  end

  # Overlap specifications.
  module Overlap
    # No overlap overrides.
    OVERLAP_UNSPECIFIED = 0

    # Allow creation of static routes more specific that the current
    # internal range.
    OVERLAP_ROUTE_RANGE = 1

    # Allow creation of internal ranges that overlap with existing subnets.
    OVERLAP_EXISTING_SUBNET_RANGE = 2
  end

  # Enumeration of range auto-allocation strategies
  module AllocationStrategy
    # Unspecified is the only valid option when the range is specified
    # explicitly by ip_cidr_range field. Otherwise unspefified means using the
    # default strategy.
    ALLOCATION_STRATEGY_UNSPECIFIED = 0

    # Random strategy, the legacy algorithm, used for backwards compatibility.
    # This allocation strategy remains efficient in the case of concurrent
    # allocation requests in the same peered network space and doesn't require
    # providing the level of concurrency in an explicit parameter, but it is
    # prone to fragmenting available address space.
    RANDOM = 1

    # Pick the first available address range. This strategy is deterministic
    # and the result is easy to predict.
    FIRST_AVAILABLE = 2

    # Pick an arbitrary range out of the first N available ones. The N will be
    # set in the first_available_ranges_lookup_size field. This strategy should
    # be used when concurrent allocation requests are made in the same space of
    # peered networks while the fragmentation of the addrress space is reduced.
    RANDOM_FIRST_N_AVAILABLE = 3

    # Pick the smallest but fitting available range. This deterministic
    # strategy minimizes fragmentation of the address space.
    FIRST_SMALLEST_FITTING = 4
  end
end

#labels::Google::Protobuf::Map{::String => ::String}

Returns User-defined labels.

Returns:

  • (::Google::Protobuf::Map{::String => ::String})

    User-defined labels.



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
# File 'proto_docs/google/cloud/networkconnectivity/v1/internal_range.rb', line 115

class InternalRange
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specification for migration with source and target resource names.
  # @!attribute [rw] source
  #   @return [::String]
  #     Immutable. Resource path as an URI of the source resource, for example a
  #     subnet. The project for the source resource should match the project for
  #     the InternalRange. An example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  # @!attribute [rw] target
  #   @return [::String]
  #     Immutable. Resource path of the target resource. The target project can
  #     be different, as in the cases when migrating to peer networks. For
  #     example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  class Migration
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Range auto-allocation options, to be optionally used when CIDR block is not
  # explicitly set.
  # @!attribute [rw] allocation_strategy
  #   @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange::AllocationStrategy]
  #     Optional. Allocation strategy Not setting this field when the allocation
  #     is requested means an implementation defined strategy is used.
  # @!attribute [rw] first_available_ranges_lookup_size
  #   @return [::Integer]
  #     Optional. This field must be set only when allocation_strategy is set to
  #     RANDOM_FIRST_N_AVAILABLE.
  #     The value should be the maximum expected parallelism of range creation
  #     requests issued to the same space of peered netwroks.
  class AllocationOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Possible usage of an internal range.
  module Usage
    # Unspecified usage is allowed in calls which identify the resource by
    # other fields and do not need Usage set to complete. These are, i.e.:
    # GetInternalRange and DeleteInternalRange.
    # Usage needs to be specified explicitly in CreateInternalRange
    # or UpdateInternalRange calls.
    USAGE_UNSPECIFIED = 0

    # A VPC resource can use the reserved CIDR block by associating it with the
    # internal range resource if usage is set to FOR_VPC.
    FOR_VPC = 1

    # Ranges created with EXTERNAL_TO_VPC cannot be associated with VPC
    # resources and are meant to block out address ranges for various use
    # cases, like for example, usage on-prem, with dynamic route announcements
    # via interconnect.
    EXTERNAL_TO_VPC = 2

    # Ranges created FOR_MIGRATION can be used to lock a CIDR range between a
    # source and target subnet. If usage is set to FOR_MIGRATION, the peering
    # value has to be set to FOR_SELF or default to FOR_SELF when unset.
    FOR_MIGRATION = 3
  end

  # Peering type.
  module Peering
    # If Peering is left unspecified in CreateInternalRange or
    # UpdateInternalRange, it will be defaulted to FOR_SELF.
    PEERING_UNSPECIFIED = 0

    # This is the default behavior and represents the case that this
    # internal range is intended to be used in the VPC in which it is created
    # and is accessible from its peers. This implies that peers or
    # peers-of-peers cannot use this range.
    FOR_SELF = 1

    # This behavior can be set when the internal range is being reserved for
    # usage by peers. This means that no resource within the VPC in which
    # it is being created can use this to associate with a VPC resource, but
    # one of the peers can. This represents donating a range for peers to
    # use.
    FOR_PEER = 2

    # This behavior can be set when the internal range is being reserved for
    # usage by the VPC in which it is created, but not shared with peers.
    # In a sense, it is local to the VPC. This can be used to create internal
    # ranges for various purposes like HTTP_INTERNAL_LOAD_BALANCER or for
    # Interconnect routes that are not shared with peers. This also implies
    # that peers cannot use this range in a way that is visible to this VPC,
    # but can re-use this range as long as it is NOT_SHARED from the peer VPC,
    # too.
    NOT_SHARED = 3
  end

  # Overlap specifications.
  module Overlap
    # No overlap overrides.
    OVERLAP_UNSPECIFIED = 0

    # Allow creation of static routes more specific that the current
    # internal range.
    OVERLAP_ROUTE_RANGE = 1

    # Allow creation of internal ranges that overlap with existing subnets.
    OVERLAP_EXISTING_SUBNET_RANGE = 2
  end

  # Enumeration of range auto-allocation strategies
  module AllocationStrategy
    # Unspecified is the only valid option when the range is specified
    # explicitly by ip_cidr_range field. Otherwise unspefified means using the
    # default strategy.
    ALLOCATION_STRATEGY_UNSPECIFIED = 0

    # Random strategy, the legacy algorithm, used for backwards compatibility.
    # This allocation strategy remains efficient in the case of concurrent
    # allocation requests in the same peered network space and doesn't require
    # providing the level of concurrency in an explicit parameter, but it is
    # prone to fragmenting available address space.
    RANDOM = 1

    # Pick the first available address range. This strategy is deterministic
    # and the result is easy to predict.
    FIRST_AVAILABLE = 2

    # Pick an arbitrary range out of the first N available ones. The N will be
    # set in the first_available_ranges_lookup_size field. This strategy should
    # be used when concurrent allocation requests are made in the same space of
    # peered networks while the fragmentation of the addrress space is reduced.
    RANDOM_FIRST_N_AVAILABLE = 3

    # Pick the smallest but fitting available range. This deterministic
    # strategy minimizes fragmentation of the address space.
    FIRST_SMALLEST_FITTING = 4
  end
end

#migration::Google::Cloud::NetworkConnectivity::V1::InternalRange::Migration

Returns Optional. Must be present if usage is set to FOR_MIGRATION.

Returns:



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
# File 'proto_docs/google/cloud/networkconnectivity/v1/internal_range.rb', line 115

class InternalRange
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specification for migration with source and target resource names.
  # @!attribute [rw] source
  #   @return [::String]
  #     Immutable. Resource path as an URI of the source resource, for example a
  #     subnet. The project for the source resource should match the project for
  #     the InternalRange. An example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  # @!attribute [rw] target
  #   @return [::String]
  #     Immutable. Resource path of the target resource. The target project can
  #     be different, as in the cases when migrating to peer networks. For
  #     example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  class Migration
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Range auto-allocation options, to be optionally used when CIDR block is not
  # explicitly set.
  # @!attribute [rw] allocation_strategy
  #   @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange::AllocationStrategy]
  #     Optional. Allocation strategy Not setting this field when the allocation
  #     is requested means an implementation defined strategy is used.
  # @!attribute [rw] first_available_ranges_lookup_size
  #   @return [::Integer]
  #     Optional. This field must be set only when allocation_strategy is set to
  #     RANDOM_FIRST_N_AVAILABLE.
  #     The value should be the maximum expected parallelism of range creation
  #     requests issued to the same space of peered netwroks.
  class AllocationOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Possible usage of an internal range.
  module Usage
    # Unspecified usage is allowed in calls which identify the resource by
    # other fields and do not need Usage set to complete. These are, i.e.:
    # GetInternalRange and DeleteInternalRange.
    # Usage needs to be specified explicitly in CreateInternalRange
    # or UpdateInternalRange calls.
    USAGE_UNSPECIFIED = 0

    # A VPC resource can use the reserved CIDR block by associating it with the
    # internal range resource if usage is set to FOR_VPC.
    FOR_VPC = 1

    # Ranges created with EXTERNAL_TO_VPC cannot be associated with VPC
    # resources and are meant to block out address ranges for various use
    # cases, like for example, usage on-prem, with dynamic route announcements
    # via interconnect.
    EXTERNAL_TO_VPC = 2

    # Ranges created FOR_MIGRATION can be used to lock a CIDR range between a
    # source and target subnet. If usage is set to FOR_MIGRATION, the peering
    # value has to be set to FOR_SELF or default to FOR_SELF when unset.
    FOR_MIGRATION = 3
  end

  # Peering type.
  module Peering
    # If Peering is left unspecified in CreateInternalRange or
    # UpdateInternalRange, it will be defaulted to FOR_SELF.
    PEERING_UNSPECIFIED = 0

    # This is the default behavior and represents the case that this
    # internal range is intended to be used in the VPC in which it is created
    # and is accessible from its peers. This implies that peers or
    # peers-of-peers cannot use this range.
    FOR_SELF = 1

    # This behavior can be set when the internal range is being reserved for
    # usage by peers. This means that no resource within the VPC in which
    # it is being created can use this to associate with a VPC resource, but
    # one of the peers can. This represents donating a range for peers to
    # use.
    FOR_PEER = 2

    # This behavior can be set when the internal range is being reserved for
    # usage by the VPC in which it is created, but not shared with peers.
    # In a sense, it is local to the VPC. This can be used to create internal
    # ranges for various purposes like HTTP_INTERNAL_LOAD_BALANCER or for
    # Interconnect routes that are not shared with peers. This also implies
    # that peers cannot use this range in a way that is visible to this VPC,
    # but can re-use this range as long as it is NOT_SHARED from the peer VPC,
    # too.
    NOT_SHARED = 3
  end

  # Overlap specifications.
  module Overlap
    # No overlap overrides.
    OVERLAP_UNSPECIFIED = 0

    # Allow creation of static routes more specific that the current
    # internal range.
    OVERLAP_ROUTE_RANGE = 1

    # Allow creation of internal ranges that overlap with existing subnets.
    OVERLAP_EXISTING_SUBNET_RANGE = 2
  end

  # Enumeration of range auto-allocation strategies
  module AllocationStrategy
    # Unspecified is the only valid option when the range is specified
    # explicitly by ip_cidr_range field. Otherwise unspefified means using the
    # default strategy.
    ALLOCATION_STRATEGY_UNSPECIFIED = 0

    # Random strategy, the legacy algorithm, used for backwards compatibility.
    # This allocation strategy remains efficient in the case of concurrent
    # allocation requests in the same peered network space and doesn't require
    # providing the level of concurrency in an explicit parameter, but it is
    # prone to fragmenting available address space.
    RANDOM = 1

    # Pick the first available address range. This strategy is deterministic
    # and the result is easy to predict.
    FIRST_AVAILABLE = 2

    # Pick an arbitrary range out of the first N available ones. The N will be
    # set in the first_available_ranges_lookup_size field. This strategy should
    # be used when concurrent allocation requests are made in the same space of
    # peered networks while the fragmentation of the addrress space is reduced.
    RANDOM_FIRST_N_AVAILABLE = 3

    # Pick the smallest but fitting available range. This deterministic
    # strategy minimizes fragmentation of the address space.
    FIRST_SMALLEST_FITTING = 4
  end
end

#name::String

Returns Identifier. The name of an internal range. Format: projects/{project}/locations/{location}/internalRanges/{internal_range} See: https://google.aip.dev/122#fields-representing-resource-names.

Returns:



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
# File 'proto_docs/google/cloud/networkconnectivity/v1/internal_range.rb', line 115

class InternalRange
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specification for migration with source and target resource names.
  # @!attribute [rw] source
  #   @return [::String]
  #     Immutable. Resource path as an URI of the source resource, for example a
  #     subnet. The project for the source resource should match the project for
  #     the InternalRange. An example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  # @!attribute [rw] target
  #   @return [::String]
  #     Immutable. Resource path of the target resource. The target project can
  #     be different, as in the cases when migrating to peer networks. For
  #     example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  class Migration
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Range auto-allocation options, to be optionally used when CIDR block is not
  # explicitly set.
  # @!attribute [rw] allocation_strategy
  #   @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange::AllocationStrategy]
  #     Optional. Allocation strategy Not setting this field when the allocation
  #     is requested means an implementation defined strategy is used.
  # @!attribute [rw] first_available_ranges_lookup_size
  #   @return [::Integer]
  #     Optional. This field must be set only when allocation_strategy is set to
  #     RANDOM_FIRST_N_AVAILABLE.
  #     The value should be the maximum expected parallelism of range creation
  #     requests issued to the same space of peered netwroks.
  class AllocationOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Possible usage of an internal range.
  module Usage
    # Unspecified usage is allowed in calls which identify the resource by
    # other fields and do not need Usage set to complete. These are, i.e.:
    # GetInternalRange and DeleteInternalRange.
    # Usage needs to be specified explicitly in CreateInternalRange
    # or UpdateInternalRange calls.
    USAGE_UNSPECIFIED = 0

    # A VPC resource can use the reserved CIDR block by associating it with the
    # internal range resource if usage is set to FOR_VPC.
    FOR_VPC = 1

    # Ranges created with EXTERNAL_TO_VPC cannot be associated with VPC
    # resources and are meant to block out address ranges for various use
    # cases, like for example, usage on-prem, with dynamic route announcements
    # via interconnect.
    EXTERNAL_TO_VPC = 2

    # Ranges created FOR_MIGRATION can be used to lock a CIDR range between a
    # source and target subnet. If usage is set to FOR_MIGRATION, the peering
    # value has to be set to FOR_SELF or default to FOR_SELF when unset.
    FOR_MIGRATION = 3
  end

  # Peering type.
  module Peering
    # If Peering is left unspecified in CreateInternalRange or
    # UpdateInternalRange, it will be defaulted to FOR_SELF.
    PEERING_UNSPECIFIED = 0

    # This is the default behavior and represents the case that this
    # internal range is intended to be used in the VPC in which it is created
    # and is accessible from its peers. This implies that peers or
    # peers-of-peers cannot use this range.
    FOR_SELF = 1

    # This behavior can be set when the internal range is being reserved for
    # usage by peers. This means that no resource within the VPC in which
    # it is being created can use this to associate with a VPC resource, but
    # one of the peers can. This represents donating a range for peers to
    # use.
    FOR_PEER = 2

    # This behavior can be set when the internal range is being reserved for
    # usage by the VPC in which it is created, but not shared with peers.
    # In a sense, it is local to the VPC. This can be used to create internal
    # ranges for various purposes like HTTP_INTERNAL_LOAD_BALANCER or for
    # Interconnect routes that are not shared with peers. This also implies
    # that peers cannot use this range in a way that is visible to this VPC,
    # but can re-use this range as long as it is NOT_SHARED from the peer VPC,
    # too.
    NOT_SHARED = 3
  end

  # Overlap specifications.
  module Overlap
    # No overlap overrides.
    OVERLAP_UNSPECIFIED = 0

    # Allow creation of static routes more specific that the current
    # internal range.
    OVERLAP_ROUTE_RANGE = 1

    # Allow creation of internal ranges that overlap with existing subnets.
    OVERLAP_EXISTING_SUBNET_RANGE = 2
  end

  # Enumeration of range auto-allocation strategies
  module AllocationStrategy
    # Unspecified is the only valid option when the range is specified
    # explicitly by ip_cidr_range field. Otherwise unspefified means using the
    # default strategy.
    ALLOCATION_STRATEGY_UNSPECIFIED = 0

    # Random strategy, the legacy algorithm, used for backwards compatibility.
    # This allocation strategy remains efficient in the case of concurrent
    # allocation requests in the same peered network space and doesn't require
    # providing the level of concurrency in an explicit parameter, but it is
    # prone to fragmenting available address space.
    RANDOM = 1

    # Pick the first available address range. This strategy is deterministic
    # and the result is easy to predict.
    FIRST_AVAILABLE = 2

    # Pick an arbitrary range out of the first N available ones. The N will be
    # set in the first_available_ranges_lookup_size field. This strategy should
    # be used when concurrent allocation requests are made in the same space of
    # peered networks while the fragmentation of the addrress space is reduced.
    RANDOM_FIRST_N_AVAILABLE = 3

    # Pick the smallest but fitting available range. This deterministic
    # strategy minimizes fragmentation of the address space.
    FIRST_SMALLEST_FITTING = 4
  end
end

#network::String

Returns Immutable. The URL or resource ID of the network in which to reserve the internal range. The network cannot be deleted if there are any reserved internal ranges referring to it. Legacy networks are not supported. For example: https://www.googleapis.com/compute/v1/projects/\{project}/locations/global/networks/\{network} projects/{project}/locations/global/networks/{network} {network}.

Returns:



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
# File 'proto_docs/google/cloud/networkconnectivity/v1/internal_range.rb', line 115

class InternalRange
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specification for migration with source and target resource names.
  # @!attribute [rw] source
  #   @return [::String]
  #     Immutable. Resource path as an URI of the source resource, for example a
  #     subnet. The project for the source resource should match the project for
  #     the InternalRange. An example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  # @!attribute [rw] target
  #   @return [::String]
  #     Immutable. Resource path of the target resource. The target project can
  #     be different, as in the cases when migrating to peer networks. For
  #     example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  class Migration
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Range auto-allocation options, to be optionally used when CIDR block is not
  # explicitly set.
  # @!attribute [rw] allocation_strategy
  #   @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange::AllocationStrategy]
  #     Optional. Allocation strategy Not setting this field when the allocation
  #     is requested means an implementation defined strategy is used.
  # @!attribute [rw] first_available_ranges_lookup_size
  #   @return [::Integer]
  #     Optional. This field must be set only when allocation_strategy is set to
  #     RANDOM_FIRST_N_AVAILABLE.
  #     The value should be the maximum expected parallelism of range creation
  #     requests issued to the same space of peered netwroks.
  class AllocationOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Possible usage of an internal range.
  module Usage
    # Unspecified usage is allowed in calls which identify the resource by
    # other fields and do not need Usage set to complete. These are, i.e.:
    # GetInternalRange and DeleteInternalRange.
    # Usage needs to be specified explicitly in CreateInternalRange
    # or UpdateInternalRange calls.
    USAGE_UNSPECIFIED = 0

    # A VPC resource can use the reserved CIDR block by associating it with the
    # internal range resource if usage is set to FOR_VPC.
    FOR_VPC = 1

    # Ranges created with EXTERNAL_TO_VPC cannot be associated with VPC
    # resources and are meant to block out address ranges for various use
    # cases, like for example, usage on-prem, with dynamic route announcements
    # via interconnect.
    EXTERNAL_TO_VPC = 2

    # Ranges created FOR_MIGRATION can be used to lock a CIDR range between a
    # source and target subnet. If usage is set to FOR_MIGRATION, the peering
    # value has to be set to FOR_SELF or default to FOR_SELF when unset.
    FOR_MIGRATION = 3
  end

  # Peering type.
  module Peering
    # If Peering is left unspecified in CreateInternalRange or
    # UpdateInternalRange, it will be defaulted to FOR_SELF.
    PEERING_UNSPECIFIED = 0

    # This is the default behavior and represents the case that this
    # internal range is intended to be used in the VPC in which it is created
    # and is accessible from its peers. This implies that peers or
    # peers-of-peers cannot use this range.
    FOR_SELF = 1

    # This behavior can be set when the internal range is being reserved for
    # usage by peers. This means that no resource within the VPC in which
    # it is being created can use this to associate with a VPC resource, but
    # one of the peers can. This represents donating a range for peers to
    # use.
    FOR_PEER = 2

    # This behavior can be set when the internal range is being reserved for
    # usage by the VPC in which it is created, but not shared with peers.
    # In a sense, it is local to the VPC. This can be used to create internal
    # ranges for various purposes like HTTP_INTERNAL_LOAD_BALANCER or for
    # Interconnect routes that are not shared with peers. This also implies
    # that peers cannot use this range in a way that is visible to this VPC,
    # but can re-use this range as long as it is NOT_SHARED from the peer VPC,
    # too.
    NOT_SHARED = 3
  end

  # Overlap specifications.
  module Overlap
    # No overlap overrides.
    OVERLAP_UNSPECIFIED = 0

    # Allow creation of static routes more specific that the current
    # internal range.
    OVERLAP_ROUTE_RANGE = 1

    # Allow creation of internal ranges that overlap with existing subnets.
    OVERLAP_EXISTING_SUBNET_RANGE = 2
  end

  # Enumeration of range auto-allocation strategies
  module AllocationStrategy
    # Unspecified is the only valid option when the range is specified
    # explicitly by ip_cidr_range field. Otherwise unspefified means using the
    # default strategy.
    ALLOCATION_STRATEGY_UNSPECIFIED = 0

    # Random strategy, the legacy algorithm, used for backwards compatibility.
    # This allocation strategy remains efficient in the case of concurrent
    # allocation requests in the same peered network space and doesn't require
    # providing the level of concurrency in an explicit parameter, but it is
    # prone to fragmenting available address space.
    RANDOM = 1

    # Pick the first available address range. This strategy is deterministic
    # and the result is easy to predict.
    FIRST_AVAILABLE = 2

    # Pick an arbitrary range out of the first N available ones. The N will be
    # set in the first_available_ranges_lookup_size field. This strategy should
    # be used when concurrent allocation requests are made in the same space of
    # peered networks while the fragmentation of the addrress space is reduced.
    RANDOM_FIRST_N_AVAILABLE = 3

    # Pick the smallest but fitting available range. This deterministic
    # strategy minimizes fragmentation of the address space.
    FIRST_SMALLEST_FITTING = 4
  end
end

#overlaps::Array<::Google::Cloud::NetworkConnectivity::V1::InternalRange::Overlap>

Returns Optional. Types of resources that are allowed to overlap with the current internal range.

Returns:



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
# File 'proto_docs/google/cloud/networkconnectivity/v1/internal_range.rb', line 115

class InternalRange
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specification for migration with source and target resource names.
  # @!attribute [rw] source
  #   @return [::String]
  #     Immutable. Resource path as an URI of the source resource, for example a
  #     subnet. The project for the source resource should match the project for
  #     the InternalRange. An example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  # @!attribute [rw] target
  #   @return [::String]
  #     Immutable. Resource path of the target resource. The target project can
  #     be different, as in the cases when migrating to peer networks. For
  #     example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  class Migration
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Range auto-allocation options, to be optionally used when CIDR block is not
  # explicitly set.
  # @!attribute [rw] allocation_strategy
  #   @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange::AllocationStrategy]
  #     Optional. Allocation strategy Not setting this field when the allocation
  #     is requested means an implementation defined strategy is used.
  # @!attribute [rw] first_available_ranges_lookup_size
  #   @return [::Integer]
  #     Optional. This field must be set only when allocation_strategy is set to
  #     RANDOM_FIRST_N_AVAILABLE.
  #     The value should be the maximum expected parallelism of range creation
  #     requests issued to the same space of peered netwroks.
  class AllocationOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Possible usage of an internal range.
  module Usage
    # Unspecified usage is allowed in calls which identify the resource by
    # other fields and do not need Usage set to complete. These are, i.e.:
    # GetInternalRange and DeleteInternalRange.
    # Usage needs to be specified explicitly in CreateInternalRange
    # or UpdateInternalRange calls.
    USAGE_UNSPECIFIED = 0

    # A VPC resource can use the reserved CIDR block by associating it with the
    # internal range resource if usage is set to FOR_VPC.
    FOR_VPC = 1

    # Ranges created with EXTERNAL_TO_VPC cannot be associated with VPC
    # resources and are meant to block out address ranges for various use
    # cases, like for example, usage on-prem, with dynamic route announcements
    # via interconnect.
    EXTERNAL_TO_VPC = 2

    # Ranges created FOR_MIGRATION can be used to lock a CIDR range between a
    # source and target subnet. If usage is set to FOR_MIGRATION, the peering
    # value has to be set to FOR_SELF or default to FOR_SELF when unset.
    FOR_MIGRATION = 3
  end

  # Peering type.
  module Peering
    # If Peering is left unspecified in CreateInternalRange or
    # UpdateInternalRange, it will be defaulted to FOR_SELF.
    PEERING_UNSPECIFIED = 0

    # This is the default behavior and represents the case that this
    # internal range is intended to be used in the VPC in which it is created
    # and is accessible from its peers. This implies that peers or
    # peers-of-peers cannot use this range.
    FOR_SELF = 1

    # This behavior can be set when the internal range is being reserved for
    # usage by peers. This means that no resource within the VPC in which
    # it is being created can use this to associate with a VPC resource, but
    # one of the peers can. This represents donating a range for peers to
    # use.
    FOR_PEER = 2

    # This behavior can be set when the internal range is being reserved for
    # usage by the VPC in which it is created, but not shared with peers.
    # In a sense, it is local to the VPC. This can be used to create internal
    # ranges for various purposes like HTTP_INTERNAL_LOAD_BALANCER or for
    # Interconnect routes that are not shared with peers. This also implies
    # that peers cannot use this range in a way that is visible to this VPC,
    # but can re-use this range as long as it is NOT_SHARED from the peer VPC,
    # too.
    NOT_SHARED = 3
  end

  # Overlap specifications.
  module Overlap
    # No overlap overrides.
    OVERLAP_UNSPECIFIED = 0

    # Allow creation of static routes more specific that the current
    # internal range.
    OVERLAP_ROUTE_RANGE = 1

    # Allow creation of internal ranges that overlap with existing subnets.
    OVERLAP_EXISTING_SUBNET_RANGE = 2
  end

  # Enumeration of range auto-allocation strategies
  module AllocationStrategy
    # Unspecified is the only valid option when the range is specified
    # explicitly by ip_cidr_range field. Otherwise unspefified means using the
    # default strategy.
    ALLOCATION_STRATEGY_UNSPECIFIED = 0

    # Random strategy, the legacy algorithm, used for backwards compatibility.
    # This allocation strategy remains efficient in the case of concurrent
    # allocation requests in the same peered network space and doesn't require
    # providing the level of concurrency in an explicit parameter, but it is
    # prone to fragmenting available address space.
    RANDOM = 1

    # Pick the first available address range. This strategy is deterministic
    # and the result is easy to predict.
    FIRST_AVAILABLE = 2

    # Pick an arbitrary range out of the first N available ones. The N will be
    # set in the first_available_ranges_lookup_size field. This strategy should
    # be used when concurrent allocation requests are made in the same space of
    # peered networks while the fragmentation of the addrress space is reduced.
    RANDOM_FIRST_N_AVAILABLE = 3

    # Pick the smallest but fitting available range. This deterministic
    # strategy minimizes fragmentation of the address space.
    FIRST_SMALLEST_FITTING = 4
  end
end

#peering::Google::Cloud::NetworkConnectivity::V1::InternalRange::Peering

Returns Optional. The type of peering set for this internal range.

Returns:



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
# File 'proto_docs/google/cloud/networkconnectivity/v1/internal_range.rb', line 115

class InternalRange
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specification for migration with source and target resource names.
  # @!attribute [rw] source
  #   @return [::String]
  #     Immutable. Resource path as an URI of the source resource, for example a
  #     subnet. The project for the source resource should match the project for
  #     the InternalRange. An example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  # @!attribute [rw] target
  #   @return [::String]
  #     Immutable. Resource path of the target resource. The target project can
  #     be different, as in the cases when migrating to peer networks. For
  #     example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  class Migration
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Range auto-allocation options, to be optionally used when CIDR block is not
  # explicitly set.
  # @!attribute [rw] allocation_strategy
  #   @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange::AllocationStrategy]
  #     Optional. Allocation strategy Not setting this field when the allocation
  #     is requested means an implementation defined strategy is used.
  # @!attribute [rw] first_available_ranges_lookup_size
  #   @return [::Integer]
  #     Optional. This field must be set only when allocation_strategy is set to
  #     RANDOM_FIRST_N_AVAILABLE.
  #     The value should be the maximum expected parallelism of range creation
  #     requests issued to the same space of peered netwroks.
  class AllocationOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Possible usage of an internal range.
  module Usage
    # Unspecified usage is allowed in calls which identify the resource by
    # other fields and do not need Usage set to complete. These are, i.e.:
    # GetInternalRange and DeleteInternalRange.
    # Usage needs to be specified explicitly in CreateInternalRange
    # or UpdateInternalRange calls.
    USAGE_UNSPECIFIED = 0

    # A VPC resource can use the reserved CIDR block by associating it with the
    # internal range resource if usage is set to FOR_VPC.
    FOR_VPC = 1

    # Ranges created with EXTERNAL_TO_VPC cannot be associated with VPC
    # resources and are meant to block out address ranges for various use
    # cases, like for example, usage on-prem, with dynamic route announcements
    # via interconnect.
    EXTERNAL_TO_VPC = 2

    # Ranges created FOR_MIGRATION can be used to lock a CIDR range between a
    # source and target subnet. If usage is set to FOR_MIGRATION, the peering
    # value has to be set to FOR_SELF or default to FOR_SELF when unset.
    FOR_MIGRATION = 3
  end

  # Peering type.
  module Peering
    # If Peering is left unspecified in CreateInternalRange or
    # UpdateInternalRange, it will be defaulted to FOR_SELF.
    PEERING_UNSPECIFIED = 0

    # This is the default behavior and represents the case that this
    # internal range is intended to be used in the VPC in which it is created
    # and is accessible from its peers. This implies that peers or
    # peers-of-peers cannot use this range.
    FOR_SELF = 1

    # This behavior can be set when the internal range is being reserved for
    # usage by peers. This means that no resource within the VPC in which
    # it is being created can use this to associate with a VPC resource, but
    # one of the peers can. This represents donating a range for peers to
    # use.
    FOR_PEER = 2

    # This behavior can be set when the internal range is being reserved for
    # usage by the VPC in which it is created, but not shared with peers.
    # In a sense, it is local to the VPC. This can be used to create internal
    # ranges for various purposes like HTTP_INTERNAL_LOAD_BALANCER or for
    # Interconnect routes that are not shared with peers. This also implies
    # that peers cannot use this range in a way that is visible to this VPC,
    # but can re-use this range as long as it is NOT_SHARED from the peer VPC,
    # too.
    NOT_SHARED = 3
  end

  # Overlap specifications.
  module Overlap
    # No overlap overrides.
    OVERLAP_UNSPECIFIED = 0

    # Allow creation of static routes more specific that the current
    # internal range.
    OVERLAP_ROUTE_RANGE = 1

    # Allow creation of internal ranges that overlap with existing subnets.
    OVERLAP_EXISTING_SUBNET_RANGE = 2
  end

  # Enumeration of range auto-allocation strategies
  module AllocationStrategy
    # Unspecified is the only valid option when the range is specified
    # explicitly by ip_cidr_range field. Otherwise unspefified means using the
    # default strategy.
    ALLOCATION_STRATEGY_UNSPECIFIED = 0

    # Random strategy, the legacy algorithm, used for backwards compatibility.
    # This allocation strategy remains efficient in the case of concurrent
    # allocation requests in the same peered network space and doesn't require
    # providing the level of concurrency in an explicit parameter, but it is
    # prone to fragmenting available address space.
    RANDOM = 1

    # Pick the first available address range. This strategy is deterministic
    # and the result is easy to predict.
    FIRST_AVAILABLE = 2

    # Pick an arbitrary range out of the first N available ones. The N will be
    # set in the first_available_ranges_lookup_size field. This strategy should
    # be used when concurrent allocation requests are made in the same space of
    # peered networks while the fragmentation of the addrress space is reduced.
    RANDOM_FIRST_N_AVAILABLE = 3

    # Pick the smallest but fitting available range. This deterministic
    # strategy minimizes fragmentation of the address space.
    FIRST_SMALLEST_FITTING = 4
  end
end

#prefix_length::Integer

Returns Optional. An alternate to ip_cidr_range. Can be set when trying to create an IPv4 reservation that automatically finds a free range of the given size. If both ip_cidr_range and prefix_length are set, there is an error if the range sizes do not match. Can also be used during updates to change the range size. NOTE: For IPv6 this field only works if ip_cidr_range is set as well, and both fields must match. In other words, with IPv6 this field only works as a redundant parameter.

Returns:

  • (::Integer)

    Optional. An alternate to ip_cidr_range. Can be set when trying to create an IPv4 reservation that automatically finds a free range of the given size. If both ip_cidr_range and prefix_length are set, there is an error if the range sizes do not match. Can also be used during updates to change the range size. NOTE: For IPv6 this field only works if ip_cidr_range is set as well, and both fields must match. In other words, with IPv6 this field only works as a redundant parameter.



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
# File 'proto_docs/google/cloud/networkconnectivity/v1/internal_range.rb', line 115

class InternalRange
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specification for migration with source and target resource names.
  # @!attribute [rw] source
  #   @return [::String]
  #     Immutable. Resource path as an URI of the source resource, for example a
  #     subnet. The project for the source resource should match the project for
  #     the InternalRange. An example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  # @!attribute [rw] target
  #   @return [::String]
  #     Immutable. Resource path of the target resource. The target project can
  #     be different, as in the cases when migrating to peer networks. For
  #     example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  class Migration
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Range auto-allocation options, to be optionally used when CIDR block is not
  # explicitly set.
  # @!attribute [rw] allocation_strategy
  #   @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange::AllocationStrategy]
  #     Optional. Allocation strategy Not setting this field when the allocation
  #     is requested means an implementation defined strategy is used.
  # @!attribute [rw] first_available_ranges_lookup_size
  #   @return [::Integer]
  #     Optional. This field must be set only when allocation_strategy is set to
  #     RANDOM_FIRST_N_AVAILABLE.
  #     The value should be the maximum expected parallelism of range creation
  #     requests issued to the same space of peered netwroks.
  class AllocationOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Possible usage of an internal range.
  module Usage
    # Unspecified usage is allowed in calls which identify the resource by
    # other fields and do not need Usage set to complete. These are, i.e.:
    # GetInternalRange and DeleteInternalRange.
    # Usage needs to be specified explicitly in CreateInternalRange
    # or UpdateInternalRange calls.
    USAGE_UNSPECIFIED = 0

    # A VPC resource can use the reserved CIDR block by associating it with the
    # internal range resource if usage is set to FOR_VPC.
    FOR_VPC = 1

    # Ranges created with EXTERNAL_TO_VPC cannot be associated with VPC
    # resources and are meant to block out address ranges for various use
    # cases, like for example, usage on-prem, with dynamic route announcements
    # via interconnect.
    EXTERNAL_TO_VPC = 2

    # Ranges created FOR_MIGRATION can be used to lock a CIDR range between a
    # source and target subnet. If usage is set to FOR_MIGRATION, the peering
    # value has to be set to FOR_SELF or default to FOR_SELF when unset.
    FOR_MIGRATION = 3
  end

  # Peering type.
  module Peering
    # If Peering is left unspecified in CreateInternalRange or
    # UpdateInternalRange, it will be defaulted to FOR_SELF.
    PEERING_UNSPECIFIED = 0

    # This is the default behavior and represents the case that this
    # internal range is intended to be used in the VPC in which it is created
    # and is accessible from its peers. This implies that peers or
    # peers-of-peers cannot use this range.
    FOR_SELF = 1

    # This behavior can be set when the internal range is being reserved for
    # usage by peers. This means that no resource within the VPC in which
    # it is being created can use this to associate with a VPC resource, but
    # one of the peers can. This represents donating a range for peers to
    # use.
    FOR_PEER = 2

    # This behavior can be set when the internal range is being reserved for
    # usage by the VPC in which it is created, but not shared with peers.
    # In a sense, it is local to the VPC. This can be used to create internal
    # ranges for various purposes like HTTP_INTERNAL_LOAD_BALANCER or for
    # Interconnect routes that are not shared with peers. This also implies
    # that peers cannot use this range in a way that is visible to this VPC,
    # but can re-use this range as long as it is NOT_SHARED from the peer VPC,
    # too.
    NOT_SHARED = 3
  end

  # Overlap specifications.
  module Overlap
    # No overlap overrides.
    OVERLAP_UNSPECIFIED = 0

    # Allow creation of static routes more specific that the current
    # internal range.
    OVERLAP_ROUTE_RANGE = 1

    # Allow creation of internal ranges that overlap with existing subnets.
    OVERLAP_EXISTING_SUBNET_RANGE = 2
  end

  # Enumeration of range auto-allocation strategies
  module AllocationStrategy
    # Unspecified is the only valid option when the range is specified
    # explicitly by ip_cidr_range field. Otherwise unspefified means using the
    # default strategy.
    ALLOCATION_STRATEGY_UNSPECIFIED = 0

    # Random strategy, the legacy algorithm, used for backwards compatibility.
    # This allocation strategy remains efficient in the case of concurrent
    # allocation requests in the same peered network space and doesn't require
    # providing the level of concurrency in an explicit parameter, but it is
    # prone to fragmenting available address space.
    RANDOM = 1

    # Pick the first available address range. This strategy is deterministic
    # and the result is easy to predict.
    FIRST_AVAILABLE = 2

    # Pick an arbitrary range out of the first N available ones. The N will be
    # set in the first_available_ranges_lookup_size field. This strategy should
    # be used when concurrent allocation requests are made in the same space of
    # peered networks while the fragmentation of the addrress space is reduced.
    RANDOM_FIRST_N_AVAILABLE = 3

    # Pick the smallest but fitting available range. This deterministic
    # strategy minimizes fragmentation of the address space.
    FIRST_SMALLEST_FITTING = 4
  end
end

#target_cidr_range::Array<::String>

Returns Optional. Can be set to narrow down or pick a different address space while searching for a free range. If not set, defaults to the "10.0.0.0/8" address space. This can be used to search in other rfc-1918 address spaces like "172.16.0.0/12" and "192.168.0.0/16" or non-rfc-1918 address spaces used in the VPC.

Returns:

  • (::Array<::String>)

    Optional. Can be set to narrow down or pick a different address space while searching for a free range. If not set, defaults to the "10.0.0.0/8" address space. This can be used to search in other rfc-1918 address spaces like "172.16.0.0/12" and "192.168.0.0/16" or non-rfc-1918 address spaces used in the VPC.



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
# File 'proto_docs/google/cloud/networkconnectivity/v1/internal_range.rb', line 115

class InternalRange
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specification for migration with source and target resource names.
  # @!attribute [rw] source
  #   @return [::String]
  #     Immutable. Resource path as an URI of the source resource, for example a
  #     subnet. The project for the source resource should match the project for
  #     the InternalRange. An example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  # @!attribute [rw] target
  #   @return [::String]
  #     Immutable. Resource path of the target resource. The target project can
  #     be different, as in the cases when migrating to peer networks. For
  #     example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  class Migration
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Range auto-allocation options, to be optionally used when CIDR block is not
  # explicitly set.
  # @!attribute [rw] allocation_strategy
  #   @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange::AllocationStrategy]
  #     Optional. Allocation strategy Not setting this field when the allocation
  #     is requested means an implementation defined strategy is used.
  # @!attribute [rw] first_available_ranges_lookup_size
  #   @return [::Integer]
  #     Optional. This field must be set only when allocation_strategy is set to
  #     RANDOM_FIRST_N_AVAILABLE.
  #     The value should be the maximum expected parallelism of range creation
  #     requests issued to the same space of peered netwroks.
  class AllocationOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Possible usage of an internal range.
  module Usage
    # Unspecified usage is allowed in calls which identify the resource by
    # other fields and do not need Usage set to complete. These are, i.e.:
    # GetInternalRange and DeleteInternalRange.
    # Usage needs to be specified explicitly in CreateInternalRange
    # or UpdateInternalRange calls.
    USAGE_UNSPECIFIED = 0

    # A VPC resource can use the reserved CIDR block by associating it with the
    # internal range resource if usage is set to FOR_VPC.
    FOR_VPC = 1

    # Ranges created with EXTERNAL_TO_VPC cannot be associated with VPC
    # resources and are meant to block out address ranges for various use
    # cases, like for example, usage on-prem, with dynamic route announcements
    # via interconnect.
    EXTERNAL_TO_VPC = 2

    # Ranges created FOR_MIGRATION can be used to lock a CIDR range between a
    # source and target subnet. If usage is set to FOR_MIGRATION, the peering
    # value has to be set to FOR_SELF or default to FOR_SELF when unset.
    FOR_MIGRATION = 3
  end

  # Peering type.
  module Peering
    # If Peering is left unspecified in CreateInternalRange or
    # UpdateInternalRange, it will be defaulted to FOR_SELF.
    PEERING_UNSPECIFIED = 0

    # This is the default behavior and represents the case that this
    # internal range is intended to be used in the VPC in which it is created
    # and is accessible from its peers. This implies that peers or
    # peers-of-peers cannot use this range.
    FOR_SELF = 1

    # This behavior can be set when the internal range is being reserved for
    # usage by peers. This means that no resource within the VPC in which
    # it is being created can use this to associate with a VPC resource, but
    # one of the peers can. This represents donating a range for peers to
    # use.
    FOR_PEER = 2

    # This behavior can be set when the internal range is being reserved for
    # usage by the VPC in which it is created, but not shared with peers.
    # In a sense, it is local to the VPC. This can be used to create internal
    # ranges for various purposes like HTTP_INTERNAL_LOAD_BALANCER or for
    # Interconnect routes that are not shared with peers. This also implies
    # that peers cannot use this range in a way that is visible to this VPC,
    # but can re-use this range as long as it is NOT_SHARED from the peer VPC,
    # too.
    NOT_SHARED = 3
  end

  # Overlap specifications.
  module Overlap
    # No overlap overrides.
    OVERLAP_UNSPECIFIED = 0

    # Allow creation of static routes more specific that the current
    # internal range.
    OVERLAP_ROUTE_RANGE = 1

    # Allow creation of internal ranges that overlap with existing subnets.
    OVERLAP_EXISTING_SUBNET_RANGE = 2
  end

  # Enumeration of range auto-allocation strategies
  module AllocationStrategy
    # Unspecified is the only valid option when the range is specified
    # explicitly by ip_cidr_range field. Otherwise unspefified means using the
    # default strategy.
    ALLOCATION_STRATEGY_UNSPECIFIED = 0

    # Random strategy, the legacy algorithm, used for backwards compatibility.
    # This allocation strategy remains efficient in the case of concurrent
    # allocation requests in the same peered network space and doesn't require
    # providing the level of concurrency in an explicit parameter, but it is
    # prone to fragmenting available address space.
    RANDOM = 1

    # Pick the first available address range. This strategy is deterministic
    # and the result is easy to predict.
    FIRST_AVAILABLE = 2

    # Pick an arbitrary range out of the first N available ones. The N will be
    # set in the first_available_ranges_lookup_size field. This strategy should
    # be used when concurrent allocation requests are made in the same space of
    # peered networks while the fragmentation of the addrress space is reduced.
    RANDOM_FIRST_N_AVAILABLE = 3

    # Pick the smallest but fitting available range. This deterministic
    # strategy minimizes fragmentation of the address space.
    FIRST_SMALLEST_FITTING = 4
  end
end

#update_time::Google::Protobuf::Timestamp

Returns Time when the internal range was updated.

Returns:



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
# File 'proto_docs/google/cloud/networkconnectivity/v1/internal_range.rb', line 115

class InternalRange
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specification for migration with source and target resource names.
  # @!attribute [rw] source
  #   @return [::String]
  #     Immutable. Resource path as an URI of the source resource, for example a
  #     subnet. The project for the source resource should match the project for
  #     the InternalRange. An example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  # @!attribute [rw] target
  #   @return [::String]
  #     Immutable. Resource path of the target resource. The target project can
  #     be different, as in the cases when migrating to peer networks. For
  #     example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  class Migration
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Range auto-allocation options, to be optionally used when CIDR block is not
  # explicitly set.
  # @!attribute [rw] allocation_strategy
  #   @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange::AllocationStrategy]
  #     Optional. Allocation strategy Not setting this field when the allocation
  #     is requested means an implementation defined strategy is used.
  # @!attribute [rw] first_available_ranges_lookup_size
  #   @return [::Integer]
  #     Optional. This field must be set only when allocation_strategy is set to
  #     RANDOM_FIRST_N_AVAILABLE.
  #     The value should be the maximum expected parallelism of range creation
  #     requests issued to the same space of peered netwroks.
  class AllocationOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Possible usage of an internal range.
  module Usage
    # Unspecified usage is allowed in calls which identify the resource by
    # other fields and do not need Usage set to complete. These are, i.e.:
    # GetInternalRange and DeleteInternalRange.
    # Usage needs to be specified explicitly in CreateInternalRange
    # or UpdateInternalRange calls.
    USAGE_UNSPECIFIED = 0

    # A VPC resource can use the reserved CIDR block by associating it with the
    # internal range resource if usage is set to FOR_VPC.
    FOR_VPC = 1

    # Ranges created with EXTERNAL_TO_VPC cannot be associated with VPC
    # resources and are meant to block out address ranges for various use
    # cases, like for example, usage on-prem, with dynamic route announcements
    # via interconnect.
    EXTERNAL_TO_VPC = 2

    # Ranges created FOR_MIGRATION can be used to lock a CIDR range between a
    # source and target subnet. If usage is set to FOR_MIGRATION, the peering
    # value has to be set to FOR_SELF or default to FOR_SELF when unset.
    FOR_MIGRATION = 3
  end

  # Peering type.
  module Peering
    # If Peering is left unspecified in CreateInternalRange or
    # UpdateInternalRange, it will be defaulted to FOR_SELF.
    PEERING_UNSPECIFIED = 0

    # This is the default behavior and represents the case that this
    # internal range is intended to be used in the VPC in which it is created
    # and is accessible from its peers. This implies that peers or
    # peers-of-peers cannot use this range.
    FOR_SELF = 1

    # This behavior can be set when the internal range is being reserved for
    # usage by peers. This means that no resource within the VPC in which
    # it is being created can use this to associate with a VPC resource, but
    # one of the peers can. This represents donating a range for peers to
    # use.
    FOR_PEER = 2

    # This behavior can be set when the internal range is being reserved for
    # usage by the VPC in which it is created, but not shared with peers.
    # In a sense, it is local to the VPC. This can be used to create internal
    # ranges for various purposes like HTTP_INTERNAL_LOAD_BALANCER or for
    # Interconnect routes that are not shared with peers. This also implies
    # that peers cannot use this range in a way that is visible to this VPC,
    # but can re-use this range as long as it is NOT_SHARED from the peer VPC,
    # too.
    NOT_SHARED = 3
  end

  # Overlap specifications.
  module Overlap
    # No overlap overrides.
    OVERLAP_UNSPECIFIED = 0

    # Allow creation of static routes more specific that the current
    # internal range.
    OVERLAP_ROUTE_RANGE = 1

    # Allow creation of internal ranges that overlap with existing subnets.
    OVERLAP_EXISTING_SUBNET_RANGE = 2
  end

  # Enumeration of range auto-allocation strategies
  module AllocationStrategy
    # Unspecified is the only valid option when the range is specified
    # explicitly by ip_cidr_range field. Otherwise unspefified means using the
    # default strategy.
    ALLOCATION_STRATEGY_UNSPECIFIED = 0

    # Random strategy, the legacy algorithm, used for backwards compatibility.
    # This allocation strategy remains efficient in the case of concurrent
    # allocation requests in the same peered network space and doesn't require
    # providing the level of concurrency in an explicit parameter, but it is
    # prone to fragmenting available address space.
    RANDOM = 1

    # Pick the first available address range. This strategy is deterministic
    # and the result is easy to predict.
    FIRST_AVAILABLE = 2

    # Pick an arbitrary range out of the first N available ones. The N will be
    # set in the first_available_ranges_lookup_size field. This strategy should
    # be used when concurrent allocation requests are made in the same space of
    # peered networks while the fragmentation of the addrress space is reduced.
    RANDOM_FIRST_N_AVAILABLE = 3

    # Pick the smallest but fitting available range. This deterministic
    # strategy minimizes fragmentation of the address space.
    FIRST_SMALLEST_FITTING = 4
  end
end

#usage::Google::Cloud::NetworkConnectivity::V1::InternalRange::Usage

Returns Optional. The type of usage set for this InternalRange.

Returns:



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
# File 'proto_docs/google/cloud/networkconnectivity/v1/internal_range.rb', line 115

class InternalRange
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specification for migration with source and target resource names.
  # @!attribute [rw] source
  #   @return [::String]
  #     Immutable. Resource path as an URI of the source resource, for example a
  #     subnet. The project for the source resource should match the project for
  #     the InternalRange. An example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  # @!attribute [rw] target
  #   @return [::String]
  #     Immutable. Resource path of the target resource. The target project can
  #     be different, as in the cases when migrating to peer networks. For
  #     example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  class Migration
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Range auto-allocation options, to be optionally used when CIDR block is not
  # explicitly set.
  # @!attribute [rw] allocation_strategy
  #   @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange::AllocationStrategy]
  #     Optional. Allocation strategy Not setting this field when the allocation
  #     is requested means an implementation defined strategy is used.
  # @!attribute [rw] first_available_ranges_lookup_size
  #   @return [::Integer]
  #     Optional. This field must be set only when allocation_strategy is set to
  #     RANDOM_FIRST_N_AVAILABLE.
  #     The value should be the maximum expected parallelism of range creation
  #     requests issued to the same space of peered netwroks.
  class AllocationOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Possible usage of an internal range.
  module Usage
    # Unspecified usage is allowed in calls which identify the resource by
    # other fields and do not need Usage set to complete. These are, i.e.:
    # GetInternalRange and DeleteInternalRange.
    # Usage needs to be specified explicitly in CreateInternalRange
    # or UpdateInternalRange calls.
    USAGE_UNSPECIFIED = 0

    # A VPC resource can use the reserved CIDR block by associating it with the
    # internal range resource if usage is set to FOR_VPC.
    FOR_VPC = 1

    # Ranges created with EXTERNAL_TO_VPC cannot be associated with VPC
    # resources and are meant to block out address ranges for various use
    # cases, like for example, usage on-prem, with dynamic route announcements
    # via interconnect.
    EXTERNAL_TO_VPC = 2

    # Ranges created FOR_MIGRATION can be used to lock a CIDR range between a
    # source and target subnet. If usage is set to FOR_MIGRATION, the peering
    # value has to be set to FOR_SELF or default to FOR_SELF when unset.
    FOR_MIGRATION = 3
  end

  # Peering type.
  module Peering
    # If Peering is left unspecified in CreateInternalRange or
    # UpdateInternalRange, it will be defaulted to FOR_SELF.
    PEERING_UNSPECIFIED = 0

    # This is the default behavior and represents the case that this
    # internal range is intended to be used in the VPC in which it is created
    # and is accessible from its peers. This implies that peers or
    # peers-of-peers cannot use this range.
    FOR_SELF = 1

    # This behavior can be set when the internal range is being reserved for
    # usage by peers. This means that no resource within the VPC in which
    # it is being created can use this to associate with a VPC resource, but
    # one of the peers can. This represents donating a range for peers to
    # use.
    FOR_PEER = 2

    # This behavior can be set when the internal range is being reserved for
    # usage by the VPC in which it is created, but not shared with peers.
    # In a sense, it is local to the VPC. This can be used to create internal
    # ranges for various purposes like HTTP_INTERNAL_LOAD_BALANCER or for
    # Interconnect routes that are not shared with peers. This also implies
    # that peers cannot use this range in a way that is visible to this VPC,
    # but can re-use this range as long as it is NOT_SHARED from the peer VPC,
    # too.
    NOT_SHARED = 3
  end

  # Overlap specifications.
  module Overlap
    # No overlap overrides.
    OVERLAP_UNSPECIFIED = 0

    # Allow creation of static routes more specific that the current
    # internal range.
    OVERLAP_ROUTE_RANGE = 1

    # Allow creation of internal ranges that overlap with existing subnets.
    OVERLAP_EXISTING_SUBNET_RANGE = 2
  end

  # Enumeration of range auto-allocation strategies
  module AllocationStrategy
    # Unspecified is the only valid option when the range is specified
    # explicitly by ip_cidr_range field. Otherwise unspefified means using the
    # default strategy.
    ALLOCATION_STRATEGY_UNSPECIFIED = 0

    # Random strategy, the legacy algorithm, used for backwards compatibility.
    # This allocation strategy remains efficient in the case of concurrent
    # allocation requests in the same peered network space and doesn't require
    # providing the level of concurrency in an explicit parameter, but it is
    # prone to fragmenting available address space.
    RANDOM = 1

    # Pick the first available address range. This strategy is deterministic
    # and the result is easy to predict.
    FIRST_AVAILABLE = 2

    # Pick an arbitrary range out of the first N available ones. The N will be
    # set in the first_available_ranges_lookup_size field. This strategy should
    # be used when concurrent allocation requests are made in the same space of
    # peered networks while the fragmentation of the addrress space is reduced.
    RANDOM_FIRST_N_AVAILABLE = 3

    # Pick the smallest but fitting available range. This deterministic
    # strategy minimizes fragmentation of the address space.
    FIRST_SMALLEST_FITTING = 4
  end
end

#users::Array<::String> (readonly)

Returns Output only. The list of resources that refer to this internal range. Resources that use the internal range for their range allocation are referred to as users of the range. Other resources mark themselves as users while doing so by creating a reference to this internal range. Having a user, based on this reference, prevents deletion of the internal range referred to. Can be empty.

Returns:

  • (::Array<::String>)

    Output only. The list of resources that refer to this internal range. Resources that use the internal range for their range allocation are referred to as users of the range. Other resources mark themselves as users while doing so by creating a reference to this internal range. Having a user, based on this reference, prevents deletion of the internal range referred to. Can be empty.



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
# File 'proto_docs/google/cloud/networkconnectivity/v1/internal_range.rb', line 115

class InternalRange
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Specification for migration with source and target resource names.
  # @!attribute [rw] source
  #   @return [::String]
  #     Immutable. Resource path as an URI of the source resource, for example a
  #     subnet. The project for the source resource should match the project for
  #     the InternalRange. An example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  # @!attribute [rw] target
  #   @return [::String]
  #     Immutable. Resource path of the target resource. The target project can
  #     be different, as in the cases when migrating to peer networks. For
  #     example:
  #       /projects/\\{project}/regions/\\{region}/subnetworks/\\{subnet}
  class Migration
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Range auto-allocation options, to be optionally used when CIDR block is not
  # explicitly set.
  # @!attribute [rw] allocation_strategy
  #   @return [::Google::Cloud::NetworkConnectivity::V1::InternalRange::AllocationStrategy]
  #     Optional. Allocation strategy Not setting this field when the allocation
  #     is requested means an implementation defined strategy is used.
  # @!attribute [rw] first_available_ranges_lookup_size
  #   @return [::Integer]
  #     Optional. This field must be set only when allocation_strategy is set to
  #     RANDOM_FIRST_N_AVAILABLE.
  #     The value should be the maximum expected parallelism of range creation
  #     requests issued to the same space of peered netwroks.
  class AllocationOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Possible usage of an internal range.
  module Usage
    # Unspecified usage is allowed in calls which identify the resource by
    # other fields and do not need Usage set to complete. These are, i.e.:
    # GetInternalRange and DeleteInternalRange.
    # Usage needs to be specified explicitly in CreateInternalRange
    # or UpdateInternalRange calls.
    USAGE_UNSPECIFIED = 0

    # A VPC resource can use the reserved CIDR block by associating it with the
    # internal range resource if usage is set to FOR_VPC.
    FOR_VPC = 1

    # Ranges created with EXTERNAL_TO_VPC cannot be associated with VPC
    # resources and are meant to block out address ranges for various use
    # cases, like for example, usage on-prem, with dynamic route announcements
    # via interconnect.
    EXTERNAL_TO_VPC = 2

    # Ranges created FOR_MIGRATION can be used to lock a CIDR range between a
    # source and target subnet. If usage is set to FOR_MIGRATION, the peering
    # value has to be set to FOR_SELF or default to FOR_SELF when unset.
    FOR_MIGRATION = 3
  end

  # Peering type.
  module Peering
    # If Peering is left unspecified in CreateInternalRange or
    # UpdateInternalRange, it will be defaulted to FOR_SELF.
    PEERING_UNSPECIFIED = 0

    # This is the default behavior and represents the case that this
    # internal range is intended to be used in the VPC in which it is created
    # and is accessible from its peers. This implies that peers or
    # peers-of-peers cannot use this range.
    FOR_SELF = 1

    # This behavior can be set when the internal range is being reserved for
    # usage by peers. This means that no resource within the VPC in which
    # it is being created can use this to associate with a VPC resource, but
    # one of the peers can. This represents donating a range for peers to
    # use.
    FOR_PEER = 2

    # This behavior can be set when the internal range is being reserved for
    # usage by the VPC in which it is created, but not shared with peers.
    # In a sense, it is local to the VPC. This can be used to create internal
    # ranges for various purposes like HTTP_INTERNAL_LOAD_BALANCER or for
    # Interconnect routes that are not shared with peers. This also implies
    # that peers cannot use this range in a way that is visible to this VPC,
    # but can re-use this range as long as it is NOT_SHARED from the peer VPC,
    # too.
    NOT_SHARED = 3
  end

  # Overlap specifications.
  module Overlap
    # No overlap overrides.
    OVERLAP_UNSPECIFIED = 0

    # Allow creation of static routes more specific that the current
    # internal range.
    OVERLAP_ROUTE_RANGE = 1

    # Allow creation of internal ranges that overlap with existing subnets.
    OVERLAP_EXISTING_SUBNET_RANGE = 2
  end

  # Enumeration of range auto-allocation strategies
  module AllocationStrategy
    # Unspecified is the only valid option when the range is specified
    # explicitly by ip_cidr_range field. Otherwise unspefified means using the
    # default strategy.
    ALLOCATION_STRATEGY_UNSPECIFIED = 0

    # Random strategy, the legacy algorithm, used for backwards compatibility.
    # This allocation strategy remains efficient in the case of concurrent
    # allocation requests in the same peered network space and doesn't require
    # providing the level of concurrency in an explicit parameter, but it is
    # prone to fragmenting available address space.
    RANDOM = 1

    # Pick the first available address range. This strategy is deterministic
    # and the result is easy to predict.
    FIRST_AVAILABLE = 2

    # Pick an arbitrary range out of the first N available ones. The N will be
    # set in the first_available_ranges_lookup_size field. This strategy should
    # be used when concurrent allocation requests are made in the same space of
    # peered networks while the fragmentation of the addrress space is reduced.
    RANDOM_FIRST_N_AVAILABLE = 3

    # Pick the smallest but fitting available range. This deterministic
    # strategy minimizes fragmentation of the address space.
    FIRST_SMALLEST_FITTING = 4
  end
end