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

package v1

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

// GatherStatusApplyConfiguration represents a declarative configuration of the GatherStatus type for use
// with apply.
type GatherStatusApplyConfiguration struct {
	LastGatherTime     *metav1.Time                       `json:"lastGatherTime,omitempty"`
	LastGatherDuration *metav1.Duration                   `json:"lastGatherDuration,omitempty"`
	Gatherers          []GathererStatusApplyConfiguration `json:"gatherers,omitempty"`
}

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

// WithLastGatherTime sets the LastGatherTime 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 LastGatherTime field is set to the value of the last call.
func (b *GatherStatusApplyConfiguration) WithLastGatherTime(value metav1.Time) *GatherStatusApplyConfiguration {
	b.LastGatherTime = &value
	return b
}

// WithLastGatherDuration sets the LastGatherDuration 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 LastGatherDuration field is set to the value of the last call.
func (b *GatherStatusApplyConfiguration) WithLastGatherDuration(value metav1.Duration) *GatherStatusApplyConfiguration {
	b.LastGatherDuration = &value
	return b
}

// WithGatherers adds the given value to the Gatherers 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 Gatherers field.
func (b *GatherStatusApplyConfiguration) WithGatherers(values ...*GathererStatusApplyConfiguration) *GatherStatusApplyConfiguration {
	for i := range values {
		if values[i] == nil {
			panic("nil value passed to WithGatherers")
		}
		b.Gatherers = append(b.Gatherers, *values[i])
	}
	return b
}
