// Copyright (c) 2026 Tigera, Inc. All rights reserved.

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

package v3

import (
	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

// PolicyControllerConfigApplyConfiguration represents a declarative configuration of the PolicyControllerConfig type for use
// with apply.
//
// PolicyControllerConfig configures the network policy controller, which syncs Kubernetes policies
// to Calico policies (only used for etcdv3 datastore).
type PolicyControllerConfigApplyConfiguration struct {
	// ReconcilerPeriod is the period to perform reconciliation with the Calico datastore. [Default: 5m]
	ReconcilerPeriod *v1.Duration `json:"reconcilerPeriod,omitempty"`
}

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

// WithReconcilerPeriod sets the ReconcilerPeriod 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 ReconcilerPeriod field is set to the value of the last call.
func (b *PolicyControllerConfigApplyConfiguration) WithReconcilerPeriod(value v1.Duration) *PolicyControllerConfigApplyConfiguration {
	b.ReconcilerPeriod = &value
	return b
}
