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

package v1alpha1

import (
	v1alpha1 "github.com/openshift/api/config/v1alpha1"
)

// RetentionPolicyApplyConfiguration represents an declarative configuration of the RetentionPolicy type for use
// with apply.
type RetentionPolicyApplyConfiguration struct {
	RetentionType   *v1alpha1.RetentionType                  `json:"retentionType,omitempty"`
	RetentionNumber *RetentionNumberConfigApplyConfiguration `json:"retentionNumber,omitempty"`
	RetentionSize   *RetentionSizeConfigApplyConfiguration   `json:"retentionSize,omitempty"`
}

// RetentionPolicyApplyConfiguration constructs an declarative configuration of the RetentionPolicy type for use with
// apply.
func RetentionPolicy() *RetentionPolicyApplyConfiguration {
	return &RetentionPolicyApplyConfiguration{}
}

// WithRetentionType sets the RetentionType 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 RetentionType field is set to the value of the last call.
func (b *RetentionPolicyApplyConfiguration) WithRetentionType(value v1alpha1.RetentionType) *RetentionPolicyApplyConfiguration {
	b.RetentionType = &value
	return b
}

// WithRetentionNumber sets the RetentionNumber 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 RetentionNumber field is set to the value of the last call.
func (b *RetentionPolicyApplyConfiguration) WithRetentionNumber(value *RetentionNumberConfigApplyConfiguration) *RetentionPolicyApplyConfiguration {
	b.RetentionNumber = value
	return b
}

// WithRetentionSize sets the RetentionSize 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 RetentionSize field is set to the value of the last call.
func (b *RetentionPolicyApplyConfiguration) WithRetentionSize(value *RetentionSizeConfigApplyConfiguration) *RetentionPolicyApplyConfiguration {
	b.RetentionSize = value
	return b
}
