// Copyright (c) 2026 Tigera, Inc. All rights reserved.

// Code generated by applyconfiguration-gen. DO NOT EDIT.

package v3

// CalicoNodeBGPRouteStatusApplyConfiguration represents a declarative configuration of the CalicoNodeBGPRouteStatus type for use
// with apply.
//
// CalicoNodeBGPRouteStatus defines the observed state of routes status on the node.
type CalicoNodeBGPRouteStatusApplyConfiguration struct {
	// RoutesV4 represents IPv4 routes on the node.
	RoutesV4 []CalicoNodeRouteApplyConfiguration `json:"routesV4,omitempty"`
	// RoutesV6 represents IPv6 routes on the node.
	RoutesV6 []CalicoNodeRouteApplyConfiguration `json:"routesV6,omitempty"`
}

// CalicoNodeBGPRouteStatusApplyConfiguration constructs a declarative configuration of the CalicoNodeBGPRouteStatus type for use with
// apply.
func CalicoNodeBGPRouteStatus() *CalicoNodeBGPRouteStatusApplyConfiguration {
	return &CalicoNodeBGPRouteStatusApplyConfiguration{}
}

// WithRoutesV4 adds the given value to the RoutesV4 field in the declarative configuration
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
// If called multiple times, values provided by each call will be appended to the RoutesV4 field.
func (b *CalicoNodeBGPRouteStatusApplyConfiguration) WithRoutesV4(values ...*CalicoNodeRouteApplyConfiguration) *CalicoNodeBGPRouteStatusApplyConfiguration {
	for i := range values {
		if values[i] == nil {
			panic("nil value passed to WithRoutesV4")
		}
		b.RoutesV4 = append(b.RoutesV4, *values[i])
	}
	return b
}

// WithRoutesV6 adds the given value to the RoutesV6 field in the declarative configuration
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
// If called multiple times, values provided by each call will be appended to the RoutesV6 field.
func (b *CalicoNodeBGPRouteStatusApplyConfiguration) WithRoutesV6(values ...*CalicoNodeRouteApplyConfiguration) *CalicoNodeBGPRouteStatusApplyConfiguration {
	for i := range values {
		if values[i] == nil {
			panic("nil value passed to WithRoutesV6")
		}
		b.RoutesV6 = append(b.RoutesV6, *values[i])
	}
	return b
}
