REST Resource: projects.locations.internalRanges

Resource: InternalRange

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

JSON representation
{
  "name": string,
  "createTime": string,
  "updateTime": string,
  "labels": {
    string: string,
    ...
  },
  "description": string,
  "ipCidrRange": string,
  "network": string,
  "usage": enum (Usage),
  "peering": enum (Peering),
  "prefixLength": integer,
  "targetCidrRange": [
    string
  ],
  "users": [
    string
  ],
  "overlaps": [
    enum (Overlap)
  ]
}
Fields
name

string

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

createTime

string (Timestamp format)

Time when the internal range was created.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Time when the internal range was updated.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

labels

map (key: string, value: string)

User-defined labels.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

description

string

A description of this resource.

ipCidrRange

string

IP range that this internal range defines.

network

string

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}

usage

enum (Usage)

The type of usage set for this internal range.

peering

enum (Peering)

The type of peering set for this internal range.

prefixLength

integer

An alternative to ipCidrRange. Can be set when trying to create a reservation that automatically finds a free range of the given size. If both ipCidrRange and prefixLength are set, there is an error if the range sizes do not match. Can also be used during updates to change the range size.

targetCidrRange[]

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.

users[]

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 that is referred to. Can be empty.

overlaps[]

enum (Overlap)

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

Usage

Possible usage of an internal range.

Enums
USAGE_UNSPECIFIED 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.: internalRanges.get and internalRanges.delete. Usage needs to be specified explicitly in internalRanges.create or internalRanges.patch calls.
FOR_VPC A VPC resource can use the reserved CIDR block by associating it with the internal range resource if usage is set to FOR_VPC.
EXTERNAL_TO_VPC Ranges created with EXTERNAL_TO_VPC cannot be associated with VPC resources and are meant to block out address ranges for various use cases such as usage on-premises, with dynamic route announcements via Interconnect.

Peering

Peering type.

Enums
PEERING_UNSPECIFIED If Peering is left unspecified in internalRanges.create or internalRanges.patch, it will be defaulted to FOR_SELF.
FOR_SELF 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_PEER This behavior can be set when the internal range is being reserved for usage by the 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.
NOT_SHARED 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 the 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.

Overlap

Overlap specifications.

Enums
OVERLAP_UNSPECIFIED No overlap overrides.
OVERLAP_ROUTE_RANGE Allow creation of static routes more specific than the current internal range.
OVERLAP_EXISTING_SUBNET_RANGE Allow creation of internal ranges that overlap with existing subnets.

Methods

create

Creates a new internal range in a given project and location.

delete

Deletes a single internal range.

get

Gets details of a single internal range.

list

Lists internal ranges in a given project and location.

patch

Updates the parameters of a single internal range.