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

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

package v3

import (
	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

// CalicoNodeStatusStatusApplyConfiguration represents a declarative configuration of the CalicoNodeStatusStatus type for use
// with apply.
//
// CalicoNodeStatusStatus defines the observed state of CalicoNodeStatus.
// No validation needed for status since it is updated by Calico.
type CalicoNodeStatusStatusApplyConfiguration struct {
	// LastUpdated is a timestamp representing the server time when CalicoNodeStatus object
	// last updated. It is represented in RFC3339 form and is in UTC.
	LastUpdated *v1.Time `json:"lastUpdated,omitempty"`
	// Agent holds agent status on the node.
	Agent *CalicoNodeAgentStatusApplyConfiguration `json:"agent,omitempty"`
	// BGP holds node BGP status.
	BGP *CalicoNodeBGPStatusApplyConfiguration `json:"bgp,omitempty"`
	// Routes reports routes known to the Calico BGP daemon on the node.
	Routes *CalicoNodeBGPRouteStatusApplyConfiguration `json:"routes,omitempty"`
}

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

// WithLastUpdated sets the LastUpdated field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the LastUpdated field is set to the value of the last call.
func (b *CalicoNodeStatusStatusApplyConfiguration) WithLastUpdated(value v1.Time) *CalicoNodeStatusStatusApplyConfiguration {
	b.LastUpdated = &value
	return b
}

// WithAgent sets the Agent field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the Agent field is set to the value of the last call.
func (b *CalicoNodeStatusStatusApplyConfiguration) WithAgent(value *CalicoNodeAgentStatusApplyConfiguration) *CalicoNodeStatusStatusApplyConfiguration {
	b.Agent = value
	return b
}

// WithBGP sets the BGP field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the BGP field is set to the value of the last call.
func (b *CalicoNodeStatusStatusApplyConfiguration) WithBGP(value *CalicoNodeBGPStatusApplyConfiguration) *CalicoNodeStatusStatusApplyConfiguration {
	b.BGP = value
	return b
}

// WithRoutes sets the Routes field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the Routes field is set to the value of the last call.
func (b *CalicoNodeStatusStatusApplyConfiguration) WithRoutes(value *CalicoNodeBGPRouteStatusApplyConfiguration) *CalicoNodeStatusStatusApplyConfiguration {
	b.Routes = value
	return b
}
