@@ -75,6 +75,87 @@ def update!(**args)
7575 end
7676 end
7777
78+ # BareMetalAdminBgpLbConfig represents configuration parameters for a Border
79+ # Gateway Protocol (BGP) load balancer.
80+ class BareMetalAdminBgpLbConfig
81+ include Google ::Apis ::Core ::Hashable
82+
83+ # Required. AddressPools is a list of non-overlapping IP pools used by load
84+ # balancer typed services. All addresses must be routable to load balancer nodes.
85+ # IngressVIP must be included in the pools.
86+ # Corresponds to the JSON property `addressPools`
87+ # @return [Array<Google::Apis::GkeonpremV1::BareMetalAdminLoadBalancerAddressPool>]
88+ attr_accessor :address_pools
89+
90+ # Required. BGP autonomous system number (ASN) of the cluster. This field can be
91+ # updated after cluster creation.
92+ # Corresponds to the JSON property `asn`
93+ # @return [Fixnum]
94+ attr_accessor :asn
95+
96+ # Required. The list of BGP peers that the cluster will connect to. At least one
97+ # peer must be configured for each control plane node. Control plane nodes will
98+ # connect to these peers to advertise the control plane VIP. The Services load
99+ # balancer also uses these peers by default. This field can be updated after
100+ # cluster creation.
101+ # Corresponds to the JSON property `bgpPeerConfigs`
102+ # @return [Array<Google::Apis::GkeonpremV1::BareMetalAdminBgpPeerConfig>]
103+ attr_accessor :bgp_peer_configs
104+
105+ # Specifies the load balancer's node pool configuration.
106+ # Corresponds to the JSON property `loadBalancerNodePoolConfig`
107+ # @return [Google::Apis::GkeonpremV1::BareMetalAdminLoadBalancerNodePoolConfig]
108+ attr_accessor :load_balancer_node_pool_config
109+
110+ def initialize ( **args )
111+ update! ( **args )
112+ end
113+
114+ # Update properties of this object
115+ def update! ( **args )
116+ @address_pools = args [ :address_pools ] if args . key? ( :address_pools )
117+ @asn = args [ :asn ] if args . key? ( :asn )
118+ @bgp_peer_configs = args [ :bgp_peer_configs ] if args . key? ( :bgp_peer_configs )
119+ @load_balancer_node_pool_config = args [ :load_balancer_node_pool_config ] if args . key? ( :load_balancer_node_pool_config )
120+ end
121+ end
122+
123+ # BareMetalAdminBgpPeerConfig represents configuration parameters for a Border
124+ # Gateway Protocol (BGP) peer.
125+ class BareMetalAdminBgpPeerConfig
126+ include Google ::Apis ::Core ::Hashable
127+
128+ # Required. BGP autonomous system number (ASN) for the network that contains the
129+ # external peer device.
130+ # Corresponds to the JSON property `asn`
131+ # @return [Fixnum]
132+ attr_accessor :asn
133+
134+ # The IP address of the control plane node that connects to the external peer.
135+ # If you don't specify any control plane nodes, all control plane nodes can
136+ # connect to the external peer. If you specify one or more IP addresses, only
137+ # the nodes specified participate in peering sessions.
138+ # Corresponds to the JSON property `controlPlaneNodes`
139+ # @return [Array<String>]
140+ attr_accessor :control_plane_nodes
141+
142+ # Required. The IP address of the external peer device.
143+ # Corresponds to the JSON property `ipAddress`
144+ # @return [String]
145+ attr_accessor :ip_address
146+
147+ def initialize ( **args )
148+ update! ( **args )
149+ end
150+
151+ # Update properties of this object
152+ def update! ( **args )
153+ @asn = args [ :asn ] if args . key? ( :asn )
154+ @control_plane_nodes = args [ :control_plane_nodes ] if args . key? ( :control_plane_nodes )
155+ @ip_address = args [ :ip_address ] if args . key? ( :ip_address )
156+ end
157+ end
158+
78159 # Resource that represents a bare metal admin cluster.
79160 class BareMetalAdminCluster
80161 include Google ::Apis ::Core ::Hashable
@@ -435,10 +516,57 @@ def update!(**args)
435516 end
436517 end
437518
519+ # Represents an IP pool used by the load balancer.
520+ class BareMetalAdminLoadBalancerAddressPool
521+ include Google ::Apis ::Core ::Hashable
522+
523+ # Required. The addresses that are part of this pool. Each address must be
524+ # either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).
525+ # Corresponds to the JSON property `addresses`
526+ # @return [Array<String>]
527+ attr_accessor :addresses
528+
529+ # If true, avoid using IPs ending in .0 or .255. This avoids buggy consumer
530+ # devices mistakenly dropping IPv4 traffic for those special IP addresses.
531+ # Corresponds to the JSON property `avoidBuggyIps`
532+ # @return [Boolean]
533+ attr_accessor :avoid_buggy_ips
534+ alias_method :avoid_buggy_ips? , :avoid_buggy_ips
535+
536+ # If true, prevent IP addresses from being automatically assigned.
537+ # Corresponds to the JSON property `manualAssign`
538+ # @return [Boolean]
539+ attr_accessor :manual_assign
540+ alias_method :manual_assign? , :manual_assign
541+
542+ # Required. The name of the address pool.
543+ # Corresponds to the JSON property `pool`
544+ # @return [String]
545+ attr_accessor :pool
546+
547+ def initialize ( **args )
548+ update! ( **args )
549+ end
550+
551+ # Update properties of this object
552+ def update! ( **args )
553+ @addresses = args [ :addresses ] if args . key? ( :addresses )
554+ @avoid_buggy_ips = args [ :avoid_buggy_ips ] if args . key? ( :avoid_buggy_ips )
555+ @manual_assign = args [ :manual_assign ] if args . key? ( :manual_assign )
556+ @pool = args [ :pool ] if args . key? ( :pool )
557+ end
558+ end
559+
438560 # BareMetalAdminLoadBalancerConfig specifies the load balancer configuration.
439561 class BareMetalAdminLoadBalancerConfig
440562 include Google ::Apis ::Core ::Hashable
441563
564+ # BareMetalAdminBgpLbConfig represents configuration parameters for a Border
565+ # Gateway Protocol (BGP) load balancer.
566+ # Corresponds to the JSON property `bgpLbConfig`
567+ # @return [Google::Apis::GkeonpremV1::BareMetalAdminBgpLbConfig]
568+ attr_accessor :bgp_lb_config
569+
442570 # BareMetalAdminManualLbConfig represents configuration parameters for a manual
443571 # load balancer.
444572 # Corresponds to the JSON property `manualLbConfig`
@@ -461,12 +589,33 @@ def initialize(**args)
461589
462590 # Update properties of this object
463591 def update! ( **args )
592+ @bgp_lb_config = args [ :bgp_lb_config ] if args . key? ( :bgp_lb_config )
464593 @manual_lb_config = args [ :manual_lb_config ] if args . key? ( :manual_lb_config )
465594 @port_config = args [ :port_config ] if args . key? ( :port_config )
466595 @vip_config = args [ :vip_config ] if args . key? ( :vip_config )
467596 end
468597 end
469598
599+ # Specifies the load balancer's node pool configuration.
600+ class BareMetalAdminLoadBalancerNodePoolConfig
601+ include Google ::Apis ::Core ::Hashable
602+
603+ # BareMetalNodePoolConfig describes the configuration of all nodes within a
604+ # given bare metal node pool.
605+ # Corresponds to the JSON property `nodePoolConfig`
606+ # @return [Google::Apis::GkeonpremV1::BareMetalNodePoolConfig]
607+ attr_accessor :node_pool_config
608+
609+ def initialize ( **args )
610+ update! ( **args )
611+ end
612+
613+ # Update properties of this object
614+ def update! ( **args )
615+ @node_pool_config = args [ :node_pool_config ] if args . key? ( :node_pool_config )
616+ end
617+ end
618+
470619 # BareMetalAdminMachineDrainStatus represents the status of bare metal node
471620 # machines that are undergoing drain operations.
472621 class BareMetalAdminMachineDrainStatus
@@ -558,23 +707,59 @@ def update!(**args)
558707 end
559708 end
560709
710+ # Specifies the multiple networking interfaces cluster configuration.
711+ class BareMetalAdminMultipleNetworkInterfacesConfig
712+ include Google ::Apis ::Core ::Hashable
713+
714+ # Whether to enable multiple network interfaces for your pods. When set
715+ # network_config.advanced_networking is automatically set to true.
716+ # Corresponds to the JSON property `enabled`
717+ # @return [Boolean]
718+ attr_accessor :enabled
719+ alias_method :enabled? , :enabled
720+
721+ def initialize ( **args )
722+ update! ( **args )
723+ end
724+
725+ # Update properties of this object
726+ def update! ( **args )
727+ @enabled = args [ :enabled ] if args . key? ( :enabled )
728+ end
729+ end
730+
561731 # BareMetalAdminNetworkConfig specifies the cluster network configuration.
562732 class BareMetalAdminNetworkConfig
563733 include Google ::Apis ::Core ::Hashable
564734
735+ # Enables the use of advanced Anthos networking features, such as Bundled Load
736+ # Balancing with BGP or the egress NAT gateway. Setting configuration for
737+ # advanced networking features will automatically set this flag.
738+ # Corresponds to the JSON property `advancedNetworking`
739+ # @return [Boolean]
740+ attr_accessor :advanced_networking
741+ alias_method :advanced_networking? , :advanced_networking
742+
565743 # BareMetalAdminIslandModeCidrConfig specifies the cluster CIDR configuration
566744 # while running in island mode.
567745 # Corresponds to the JSON property `islandModeCidr`
568746 # @return [Google::Apis::GkeonpremV1::BareMetalAdminIslandModeCidrConfig]
569747 attr_accessor :island_mode_cidr
570748
749+ # Specifies the multiple networking interfaces cluster configuration.
750+ # Corresponds to the JSON property `multipleNetworkInterfacesConfig`
751+ # @return [Google::Apis::GkeonpremV1::BareMetalAdminMultipleNetworkInterfacesConfig]
752+ attr_accessor :multiple_network_interfaces_config
753+
571754 def initialize ( **args )
572755 update! ( **args )
573756 end
574757
575758 # Update properties of this object
576759 def update! ( **args )
760+ @advanced_networking = args [ :advanced_networking ] if args . key? ( :advanced_networking )
577761 @island_mode_cidr = args [ :island_mode_cidr ] if args . key? ( :island_mode_cidr )
762+ @multiple_network_interfaces_config = args [ :multiple_network_interfaces_config ] if args . key? ( :multiple_network_interfaces_config )
578763 end
579764 end
580765
0 commit comments