// SPDX-License-Identifier: AGPL-3.0-only

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

package v0alpha1

import (
	provisioningv0alpha1 "github.com/grafana/grafana/pkg/apis/provisioning/v0alpha1"
)

// SyncOptionsApplyConfiguration represents a declarative configuration of the SyncOptions type for use
// with apply.
type SyncOptionsApplyConfiguration struct {
	Enabled         *bool                                `json:"enabled,omitempty"`
	Target          *provisioningv0alpha1.SyncTargetType `json:"target,omitempty"`
	IntervalSeconds *int64                               `json:"intervalSeconds,omitempty"`
}

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

// WithEnabled sets the Enabled 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 Enabled field is set to the value of the last call.
func (b *SyncOptionsApplyConfiguration) WithEnabled(value bool) *SyncOptionsApplyConfiguration {
	b.Enabled = &value
	return b
}

// WithTarget sets the Target 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 Target field is set to the value of the last call.
func (b *SyncOptionsApplyConfiguration) WithTarget(value provisioningv0alpha1.SyncTargetType) *SyncOptionsApplyConfiguration {
	b.Target = &value
	return b
}

// WithIntervalSeconds sets the IntervalSeconds 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 IntervalSeconds field is set to the value of the last call.
func (b *SyncOptionsApplyConfiguration) WithIntervalSeconds(value int64) *SyncOptionsApplyConfiguration {
	b.IntervalSeconds = &value
	return b
}
