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

package v1

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

// ProviderLoadBalancerParametersApplyConfiguration represents an declarative configuration of the ProviderLoadBalancerParameters type for use
// with apply.
type ProviderLoadBalancerParametersApplyConfiguration struct {
	Type *v1.LoadBalancerProviderType                 `json:"type,omitempty"`
	AWS  *AWSLoadBalancerParametersApplyConfiguration `json:"aws,omitempty"`
	GCP  *GCPLoadBalancerParametersApplyConfiguration `json:"gcp,omitempty"`
}

// ProviderLoadBalancerParametersApplyConfiguration constructs an declarative configuration of the ProviderLoadBalancerParameters type for use with
// apply.
func ProviderLoadBalancerParameters() *ProviderLoadBalancerParametersApplyConfiguration {
	return &ProviderLoadBalancerParametersApplyConfiguration{}
}

// WithType sets the Type 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 Type field is set to the value of the last call.
func (b *ProviderLoadBalancerParametersApplyConfiguration) WithType(value v1.LoadBalancerProviderType) *ProviderLoadBalancerParametersApplyConfiguration {
	b.Type = &value
	return b
}

// WithAWS sets the AWS 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 AWS field is set to the value of the last call.
func (b *ProviderLoadBalancerParametersApplyConfiguration) WithAWS(value *AWSLoadBalancerParametersApplyConfiguration) *ProviderLoadBalancerParametersApplyConfiguration {
	b.AWS = value
	return b
}

// WithGCP sets the GCP 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 GCP field is set to the value of the last call.
func (b *ProviderLoadBalancerParametersApplyConfiguration) WithGCP(value *GCPLoadBalancerParametersApplyConfiguration) *ProviderLoadBalancerParametersApplyConfiguration {
	b.GCP = value
	return b
}
