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

package v1

// AWSEFSVolumeMetricsRecursiveWalkConfigApplyConfiguration represents a declarative configuration of the AWSEFSVolumeMetricsRecursiveWalkConfig type for use
// with apply.
//
// AWSEFSVolumeMetricsRecursiveWalkConfig defines options for volume metrics in the EFS CSI Driver.
type AWSEFSVolumeMetricsRecursiveWalkConfigApplyConfiguration struct {
	// refreshPeriodMinutes specifies the frequency, in minutes, at which volume metrics are refreshed.
	// When omitted, this means no opinion and the platform is left to choose a reasonable
	// default, which is subject to change over time. The current default is 240.
	// The valid range is from 1 to 43200 minutes (30 days).
	RefreshPeriodMinutes *int32 `json:"refreshPeriodMinutes,omitempty"`
	// fsRateLimit defines the rate limit, in goroutines per file system, for processing volume metrics.
	// When omitted, this means no opinion and the platform is left to choose a reasonable
	// default, which is subject to change over time. The current default is 5.
	// The valid range is from 1 to 100 goroutines.
	FSRateLimit *int32 `json:"fsRateLimit,omitempty"`
}

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

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

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