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

package v1

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

// IngressControllerTuningOptionsApplyConfiguration represents a declarative configuration of the IngressControllerTuningOptions type for use
// with apply.
type IngressControllerTuningOptionsApplyConfiguration struct {
	HeaderBufferBytes           *int32           `json:"headerBufferBytes,omitempty"`
	HeaderBufferMaxRewriteBytes *int32           `json:"headerBufferMaxRewriteBytes,omitempty"`
	ThreadCount                 *int32           `json:"threadCount,omitempty"`
	ClientTimeout               *metav1.Duration `json:"clientTimeout,omitempty"`
	ClientFinTimeout            *metav1.Duration `json:"clientFinTimeout,omitempty"`
	ServerTimeout               *metav1.Duration `json:"serverTimeout,omitempty"`
	ServerFinTimeout            *metav1.Duration `json:"serverFinTimeout,omitempty"`
	TunnelTimeout               *metav1.Duration `json:"tunnelTimeout,omitempty"`
	ConnectTimeout              *metav1.Duration `json:"connectTimeout,omitempty"`
	HTTPKeepAliveTimeout        *metav1.Duration `json:"httpKeepAliveTimeout,omitempty"`
	TLSInspectDelay             *metav1.Duration `json:"tlsInspectDelay,omitempty"`
	HealthCheckInterval         *metav1.Duration `json:"healthCheckInterval,omitempty"`
	MaxConnections              *int32           `json:"maxConnections,omitempty"`
	ReloadInterval              *metav1.Duration `json:"reloadInterval,omitempty"`
}

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

// WithHeaderBufferBytes sets the HeaderBufferBytes 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 HeaderBufferBytes field is set to the value of the last call.
func (b *IngressControllerTuningOptionsApplyConfiguration) WithHeaderBufferBytes(value int32) *IngressControllerTuningOptionsApplyConfiguration {
	b.HeaderBufferBytes = &value
	return b
}

// WithHeaderBufferMaxRewriteBytes sets the HeaderBufferMaxRewriteBytes 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 HeaderBufferMaxRewriteBytes field is set to the value of the last call.
func (b *IngressControllerTuningOptionsApplyConfiguration) WithHeaderBufferMaxRewriteBytes(value int32) *IngressControllerTuningOptionsApplyConfiguration {
	b.HeaderBufferMaxRewriteBytes = &value
	return b
}

// WithThreadCount sets the ThreadCount 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 ThreadCount field is set to the value of the last call.
func (b *IngressControllerTuningOptionsApplyConfiguration) WithThreadCount(value int32) *IngressControllerTuningOptionsApplyConfiguration {
	b.ThreadCount = &value
	return b
}

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

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

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

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

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

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

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

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

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

// WithMaxConnections sets the MaxConnections 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 MaxConnections field is set to the value of the last call.
func (b *IngressControllerTuningOptionsApplyConfiguration) WithMaxConnections(value int32) *IngressControllerTuningOptionsApplyConfiguration {
	b.MaxConnections = &value
	return b
}

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