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

package v1

// DeploymentConfigStatusApplyConfiguration represents a declarative configuration of the DeploymentConfigStatus type for use
// with apply.
//
// DeploymentConfigStatus represents the current deployment state.
type DeploymentConfigStatusApplyConfiguration struct {
	// latestVersion is used to determine whether the current deployment associated with a deployment
	// config is out of sync.
	LatestVersion *int64 `json:"latestVersion,omitempty"`
	// observedGeneration is the most recent generation observed by the deployment config controller.
	ObservedGeneration *int64 `json:"observedGeneration,omitempty"`
	// replicas is the total number of pods targeted by this deployment config.
	Replicas *int32 `json:"replicas,omitempty"`
	// updatedReplicas is the total number of non-terminated pods targeted by this deployment config
	// that have the desired template spec.
	UpdatedReplicas *int32 `json:"updatedReplicas,omitempty"`
	// availableReplicas is the total number of available pods targeted by this deployment config.
	AvailableReplicas *int32 `json:"availableReplicas,omitempty"`
	// unavailableReplicas is the total number of unavailable pods targeted by this deployment config.
	UnavailableReplicas *int32 `json:"unavailableReplicas,omitempty"`
	// details are the reasons for the update to this deployment config.
	// This could be based on a change made by the user or caused by an automatic trigger
	Details *DeploymentDetailsApplyConfiguration `json:"details,omitempty"`
	// conditions represents the latest available observations of a deployment config's current state.
	Conditions []DeploymentConditionApplyConfiguration `json:"conditions,omitempty"`
	// Total number of ready pods targeted by this deployment.
	ReadyReplicas *int32 `json:"readyReplicas,omitempty"`
}

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

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

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

// WithReplicas sets the Replicas 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 Replicas field is set to the value of the last call.
func (b *DeploymentConfigStatusApplyConfiguration) WithReplicas(value int32) *DeploymentConfigStatusApplyConfiguration {
	b.Replicas = &value
	return b
}

// WithUpdatedReplicas sets the UpdatedReplicas 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 UpdatedReplicas field is set to the value of the last call.
func (b *DeploymentConfigStatusApplyConfiguration) WithUpdatedReplicas(value int32) *DeploymentConfigStatusApplyConfiguration {
	b.UpdatedReplicas = &value
	return b
}

// WithAvailableReplicas sets the AvailableReplicas 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 AvailableReplicas field is set to the value of the last call.
func (b *DeploymentConfigStatusApplyConfiguration) WithAvailableReplicas(value int32) *DeploymentConfigStatusApplyConfiguration {
	b.AvailableReplicas = &value
	return b
}

// WithUnavailableReplicas sets the UnavailableReplicas 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 UnavailableReplicas field is set to the value of the last call.
func (b *DeploymentConfigStatusApplyConfiguration) WithUnavailableReplicas(value int32) *DeploymentConfigStatusApplyConfiguration {
	b.UnavailableReplicas = &value
	return b
}

// WithDetails sets the Details 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 Details field is set to the value of the last call.
func (b *DeploymentConfigStatusApplyConfiguration) WithDetails(value *DeploymentDetailsApplyConfiguration) *DeploymentConfigStatusApplyConfiguration {
	b.Details = value
	return b
}

// WithConditions adds the given value to the Conditions field in the declarative configuration
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
// If called multiple times, values provided by each call will be appended to the Conditions field.
func (b *DeploymentConfigStatusApplyConfiguration) WithConditions(values ...*DeploymentConditionApplyConfiguration) *DeploymentConfigStatusApplyConfiguration {
	for i := range values {
		if values[i] == nil {
			panic("nil value passed to WithConditions")
		}
		b.Conditions = append(b.Conditions, *values[i])
	}
	return b
}

// WithReadyReplicas sets the ReadyReplicas 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 ReadyReplicas field is set to the value of the last call.
func (b *DeploymentConfigStatusApplyConfiguration) WithReadyReplicas(value int32) *DeploymentConfigStatusApplyConfiguration {
	b.ReadyReplicas = &value
	return b
}
