Class: Google::Apis::NetworkconnectivityV1::InternalRange

Inherits:
Object
  • Object
show all
Includes:
Core::Hashable, Core::JsonObjectSupport
Defined in:
lib/google/apis/networkconnectivity_v1/classes.rb,
lib/google/apis/networkconnectivity_v1/representations.rb,
lib/google/apis/networkconnectivity_v1/representations.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.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ InternalRange

Returns a new instance of InternalRange.



1723
1724
1725
# File 'lib/google/apis/networkconnectivity_v1/classes.rb', line 1723

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#allocation_optionsGoogle::Apis::NetworkconnectivityV1::AllocationOptions

Range auto-allocation options, to be optionally used when CIDR block is not explicitly set. Corresponds to the JSON property allocationOptions



1611
1612
1613
# File 'lib/google/apis/networkconnectivity_v1/classes.rb', line 1611

def allocation_options
  @allocation_options
end

#create_timeString

Output only. Time when the internal range was created. Corresponds to the JSON property createTime

Returns:

  • (String)


1616
1617
1618
# File 'lib/google/apis/networkconnectivity_v1/classes.rb', line 1616

def create_time
  @create_time
end

#descriptionString

Optional. A description of this resource. Corresponds to the JSON property description

Returns:

  • (String)


1621
1622
1623
# File 'lib/google/apis/networkconnectivity_v1/classes.rb', line 1621

def description
  @description
end

#exclude_cidr_rangesArray<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 Corresponds to the JSON property excludeCidrRanges

Returns:

  • (Array<String>)


1628
1629
1630
# File 'lib/google/apis/networkconnectivity_v1/classes.rb', line 1628

def exclude_cidr_ranges
  @exclude_cidr_ranges
end

#immutableBoolean Also known as: immutable?

Optional. Immutable ranges cannot have their fields modified, except for labels and description. Corresponds to the JSON property immutable

Returns:

  • (Boolean)


1634
1635
1636
# File 'lib/google/apis/networkconnectivity_v1/classes.rb', line 1634

def immutable
  @immutable
end

#ip_cidr_rangeString

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. Corresponds to the JSON property ipCidrRange

Returns:

  • (String)


1642
1643
1644
# File 'lib/google/apis/networkconnectivity_v1/classes.rb', line 1642

def ip_cidr_range
  @ip_cidr_range
end

#labelsHash<String,String>

User-defined labels. Corresponds to the JSON property labels

Returns:

  • (Hash<String,String>)


1647
1648
1649
# File 'lib/google/apis/networkconnectivity_v1/classes.rb', line 1647

def labels
  @labels
end

#migrationGoogle::Apis::NetworkconnectivityV1::Migration

Specification for migration with source and target resource names. Corresponds to the JSON property migration



1652
1653
1654
# File 'lib/google/apis/networkconnectivity_v1/classes.rb', line 1652

def migration
  @migration
end

#nameString

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 Corresponds to the JSON property name

Returns:

  • (String)


1659
1660
1661
# File 'lib/google/apis/networkconnectivity_v1/classes.rb', line 1659

def name
  @name
end

#networkString

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 Corresponds to the JSON property network

Returns:

  • (String)


1669
1670
1671
# File 'lib/google/apis/networkconnectivity_v1/classes.rb', line 1669

def network
  @network
end

#overlapsArray<String>

Optional. Types of resources that are allowed to overlap with the current internal range. Corresponds to the JSON property overlaps

Returns:

  • (Array<String>)


1675
1676
1677
# File 'lib/google/apis/networkconnectivity_v1/classes.rb', line 1675

def overlaps
  @overlaps
end

#peeringString

Optional. The type of peering set for this internal range. Corresponds to the JSON property peering

Returns:

  • (String)


1680
1681
1682
# File 'lib/google/apis/networkconnectivity_v1/classes.rb', line 1680

def peering
  @peering
end

#prefix_lengthFixnum

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. Corresponds to the JSON property prefixLength

Returns:

  • (Fixnum)


1691
1692
1693
# File 'lib/google/apis/networkconnectivity_v1/classes.rb', line 1691

def prefix_length
  @prefix_length
end

#target_cidr_rangeArray<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", "172.16. 0.0/12", "192.168.0.0/16"] address space (for auto-mode networks, the "10.0.0. 0/9" range is used instead of "10.0.0.0/8"). This can be used to target the 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. Corresponds to the JSON property targetCidrRange

Returns:

  • (Array<String>)


1701
1702
1703
# File 'lib/google/apis/networkconnectivity_v1/classes.rb', line 1701

def target_cidr_range
  @target_cidr_range
end

#update_timeString

Output only. Time when the internal range was updated. Corresponds to the JSON property updateTime

Returns:

  • (String)


1706
1707
1708
# File 'lib/google/apis/networkconnectivity_v1/classes.rb', line 1706

def update_time
  @update_time
end

#usageString

Optional. The type of usage set for this InternalRange. Corresponds to the JSON property usage

Returns:

  • (String)


1711
1712
1713
# File 'lib/google/apis/networkconnectivity_v1/classes.rb', line 1711

def usage
  @usage
end

#usersArray<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. Corresponds to the JSON property users

Returns:

  • (Array<String>)


1721
1722
1723
# File 'lib/google/apis/networkconnectivity_v1/classes.rb', line 1721

def users
  @users
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
# File 'lib/google/apis/networkconnectivity_v1/classes.rb', line 1728

def update!(**args)
  @allocation_options = args[:allocation_options] if args.key?(:allocation_options)
  @create_time = args[:create_time] if args.key?(:create_time)
  @description = args[:description] if args.key?(:description)
  @exclude_cidr_ranges = args[:exclude_cidr_ranges] if args.key?(:exclude_cidr_ranges)
  @immutable = args[:immutable] if args.key?(:immutable)
  @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range)
  @labels = args[:labels] if args.key?(:labels)
  @migration = args[:migration] if args.key?(:migration)
  @name = args[:name] if args.key?(:name)
  @network = args[:network] if args.key?(:network)
  @overlaps = args[:overlaps] if args.key?(:overlaps)
  @peering = args[:peering] if args.key?(:peering)
  @prefix_length = args[:prefix_length] if args.key?(:prefix_length)
  @target_cidr_range = args[:target_cidr_range] if args.key?(:target_cidr_range)
  @update_time = args[:update_time] if args.key?(:update_time)
  @usage = args[:usage] if args.key?(:usage)
  @users = args[:users] if args.key?(:users)
end