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

package v1

import (
	operatorv1 "github.com/openshift/api/operator/v1"
)

// IrreconcilableValidationOverridesApplyConfiguration represents a declarative configuration of the IrreconcilableValidationOverrides type for use
// with apply.
//
// IrreconcilableValidationOverrides holds the irreconcilable validations overrides to be applied on each rendered
// MachineConfig generation.
type IrreconcilableValidationOverridesApplyConfiguration struct {
	// storage can be used to allow making irreconcilable changes to the selected sections under the
	// `spec.config.storage` field of MachineConfig CRs
	// It must have at least one item, may not exceed 3 items and must not contain duplicates.
	// Allowed element values are "Disks", "FileSystems", "Raid" and omitted.
	// When contains "Disks" changes to the `spec.config.storage.disks` section of MachineConfig CRs are allowed.
	// When contains "FileSystems" changes to the `spec.config.storage.filesystems` section of MachineConfig CRs are allowed.
	// When contains "Raid" changes to the `spec.config.storage.raid` section of MachineConfig CRs are allowed.
	// When omitted changes to the `spec.config.storage` section are forbidden.
	Storage []operatorv1.IrreconcilableValidationOverridesStorage `json:"storage,omitempty"`
}

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

// WithStorage adds the given value to the Storage 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 Storage field.
func (b *IrreconcilableValidationOverridesApplyConfiguration) WithStorage(values ...operatorv1.IrreconcilableValidationOverridesStorage) *IrreconcilableValidationOverridesApplyConfiguration {
	for i := range values {
		b.Storage = append(b.Storage, values[i])
	}
	return b
}
