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

package v1alpha1

// EtcdBackupSpecApplyConfiguration represents a declarative configuration of the EtcdBackupSpec type for use
// with apply.
type EtcdBackupSpecApplyConfiguration struct {
	Schedule        *string                            `json:"schedule,omitempty"`
	TimeZone        *string                            `json:"timeZone,omitempty"`
	RetentionPolicy *RetentionPolicyApplyConfiguration `json:"retentionPolicy,omitempty"`
	PVCName         *string                            `json:"pvcName,omitempty"`
}

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

// WithSchedule sets the Schedule 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 Schedule field is set to the value of the last call.
func (b *EtcdBackupSpecApplyConfiguration) WithSchedule(value string) *EtcdBackupSpecApplyConfiguration {
	b.Schedule = &value
	return b
}

// WithTimeZone sets the TimeZone 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 TimeZone field is set to the value of the last call.
func (b *EtcdBackupSpecApplyConfiguration) WithTimeZone(value string) *EtcdBackupSpecApplyConfiguration {
	b.TimeZone = &value
	return b
}

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

// WithPVCName sets the PVCName 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 PVCName field is set to the value of the last call.
func (b *EtcdBackupSpecApplyConfiguration) WithPVCName(value string) *EtcdBackupSpecApplyConfiguration {
	b.PVCName = &value
	return b
}
