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

package v1

import (
	configv1 "github.com/openshift/api/config/v1"
)

// NetworkObservabilitySpecApplyConfiguration represents a declarative configuration of the NetworkObservabilitySpec type for use
// with apply.
//
// NetworkObservabilitySpec defines the configuration for network observability installation
type NetworkObservabilitySpecApplyConfiguration struct {
	// installationPolicy controls whether network observability is installed during cluster deployment.
	// Valid values are "InstallAndEnable" and "NoAction".
	// When set to "InstallAndEnable", ensure that network observability will be installed and enabled on the cluster. If already installed, no action taken, but if it gets uninstalled, it will install it again.
	// When set to "NoAction", nothing will be done regarding Network observability.
	InstallationPolicy *configv1.NetworkObservabilityInstallationPolicy `json:"installationPolicy,omitempty"`
}

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

// WithInstallationPolicy sets the InstallationPolicy 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 InstallationPolicy field is set to the value of the last call.
func (b *NetworkObservabilitySpecApplyConfiguration) WithInstallationPolicy(value configv1.NetworkObservabilityInstallationPolicy) *NetworkObservabilitySpecApplyConfiguration {
	b.InstallationPolicy = &value
	return b
}
