Class: Google::Apis::ComputeAlpha::AccessConfig

Inherits:
Object
  • Object
show all
Includes:
Google::Apis::Core::Hashable, Google::Apis::Core::JsonObjectSupport
Defined in:
lib/google/apis/compute_alpha/classes.rb,
lib/google/apis/compute_alpha/representations.rb,
lib/google/apis/compute_alpha/representations.rb

Overview

An access configuration attached to an instance's network interface. Only one access config per instance is supported.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ AccessConfig

Returns a new instance of AccessConfig.



710
711
712
# File 'lib/google/apis/compute_alpha/classes.rb', line 710

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

Instance Attribute Details

#external_ipv6String

Applies to ipv6AccessConfigs only. The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored inexternalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork. Corresponds to the JSON property externalIpv6

Returns:

  • (String)


623
624
625
# File 'lib/google/apis/compute_alpha/classes.rb', line 623

def external_ipv6
  @external_ipv6
end

#external_ipv6_prefix_lengthFixnum

Applies to ipv6AccessConfigs only. The prefix length of the external IPv6 range. Corresponds to the JSON property externalIpv6PrefixLength

Returns:

  • (Fixnum)


629
630
631
# File 'lib/google/apis/compute_alpha/classes.rb', line 629

def external_ipv6_prefix_length
  @external_ipv6_prefix_length
end

#kindString

Output only. [Output Only] Type of the resource. Alwayscompute#accessConfig for access configs. Corresponds to the JSON property kind

Returns:

  • (String)


635
636
637
# File 'lib/google/apis/compute_alpha/classes.rb', line 635

def kind
  @kind
end

#nameString

The name of this access configuration. In accessConfigs (IPv4), the default and recommended name is External NAT, but you can use any arbitrary string, such as My external IP orNetwork Access. In ipv6AccessConfigs, the recommend name is External IPv6. Corresponds to the JSON property name

Returns:

  • (String)


644
645
646
# File 'lib/google/apis/compute_alpha/classes.rb', line 644

def name
  @name
end

#nat_ipString

Applies to accessConfigs (IPv4) only. Anexternal IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance. Corresponds to the JSON property natIP

Returns:

  • (String)


654
655
656
# File 'lib/google/apis/compute_alpha/classes.rb', line 654

def nat_ip
  @nat_ip
end

#network_tierString

This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM,STANDARD. If an AccessConfig is specified without a valid external IP address, an ephemeral IP will be created with this networkTier. If an AccessConfig with a valid external IP address is specified, it must match that of the networkTier associated with the Address resource owning that IP. Corresponds to the JSON property networkTier

Returns:

  • (String)


665
666
667
# File 'lib/google/apis/compute_alpha/classes.rb', line 665

def network_tier
  @network_tier
end

#public_dns_nameString

Output only. [Output Only] The public DNS domain name for the instance. Corresponds to the JSON property publicDnsName

Returns:

  • (String)


670
671
672
# File 'lib/google/apis/compute_alpha/classes.rb', line 670

def public_dns_name
  @public_dns_name
end

#public_ptr_domain_nameString

The DNS domain name for the public PTR record. You can set this field only if the setPublicPtr field is enabled inaccessConfig. If this field is unspecified inipv6AccessConfig, a default PTR record will be created for first IP in associated external IPv6 range. Corresponds to the JSON property publicPtrDomainName

Returns:

  • (String)


679
680
681
# File 'lib/google/apis/compute_alpha/classes.rb', line 679

def public_ptr_domain_name
  @public_ptr_domain_name
end

#security_policyString

The resource URL for the security policy associated with this access config. Corresponds to the JSON property securityPolicy

Returns:

  • (String)


685
686
687
# File 'lib/google/apis/compute_alpha/classes.rb', line 685

def security_policy
  @security_policy
end

#set_public_dnsBoolean Also known as: set_public_dns?

Specifies whether a public DNS 'A' record should be created for the external IP address of this access configuration. Corresponds to the JSON property setPublicDns

Returns:

  • (Boolean)


691
692
693
# File 'lib/google/apis/compute_alpha/classes.rb', line 691

def set_public_dns
  @set_public_dns
end

#set_public_ptrBoolean Also known as: set_public_ptr?

Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name. This field is not used in ipv6AccessConfig. A default PTR record will be created if the VM has external IPv6 range associated. Corresponds to the JSON property setPublicPtr

Returns:

  • (Boolean)


700
701
702
# File 'lib/google/apis/compute_alpha/classes.rb', line 700

def set_public_ptr
  @set_public_ptr
end

#typeString

The type of configuration. In accessConfigs (IPv4), the default and only option is ONE_TO_ONE_NAT. Inipv6AccessConfigs, the default and only option isDIRECT_IPV6. Corresponds to the JSON property type

Returns:

  • (String)


708
709
710
# File 'lib/google/apis/compute_alpha/classes.rb', line 708

def type
  @type
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



715
716
717
718
719
720
721
722
723
724
725
726
727
728
# File 'lib/google/apis/compute_alpha/classes.rb', line 715

def update!(**args)
  @external_ipv6 = args[:external_ipv6] if args.key?(:external_ipv6)
  @external_ipv6_prefix_length = args[:external_ipv6_prefix_length] if args.key?(:external_ipv6_prefix_length)
  @kind = args[:kind] if args.key?(:kind)
  @name = args[:name] if args.key?(:name)
  @nat_ip = args[:nat_ip] if args.key?(:nat_ip)
  @network_tier = args[:network_tier] if args.key?(:network_tier)
  @public_dns_name = args[:public_dns_name] if args.key?(:public_dns_name)
  @public_ptr_domain_name = args[:public_ptr_domain_name] if args.key?(:public_ptr_domain_name)
  @security_policy = args[:security_policy] if args.key?(:security_policy)
  @set_public_dns = args[:set_public_dns] if args.key?(:set_public_dns)
  @set_public_ptr = args[:set_public_ptr] if args.key?(:set_public_ptr)
  @type = args[:type] if args.key?(:type)
end