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

package v1alpha2

import (
	configv1alpha2 "github.com/openshift/api/config/v1alpha2"
)

// GathererConfigApplyConfiguration represents a declarative configuration of the GathererConfig type for use
// with apply.
//
// gathererConfig allows to configure specific gatherers
type GathererConfigApplyConfiguration struct {
	// name is the required name of a specific gatherer
	// It may not exceed 256 characters.
	// The format for a gatherer name is: {gatherer}/{function} where the function is optional.
	// Gatherer consists of a lowercase letters only that may include underscores (_).
	// Function consists of a lowercase letters only that may include underscores (_) and is separated from the gatherer by a forward slash (/).
	// The particular gatherers can be found at https://github.com/openshift/insights-operator/blob/master/docs/gathered-data.md.
	// Run the following command to get the names of last active gatherers:
	// "oc get insightsoperators.operator.openshift.io cluster -o json | jq '.status.gatherStatus.gatherers[].name'"
	Name *string `json:"name,omitempty"`
	// state is a required field that allows you to configure specific gatherer. Valid values are "Enabled" and "Disabled".
	// When set to Enabled the gatherer will run.
	// When set to Disabled the gatherer will not run.
	State *configv1alpha2.GathererState `json:"state,omitempty"`
}

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

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

// WithState sets the State 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 State field is set to the value of the last call.
func (b *GathererConfigApplyConfiguration) WithState(value configv1alpha2.GathererState) *GathererConfigApplyConfiguration {
	b.State = &value
	return b
}
