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

package v1beta1

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

// LastOperationApplyConfiguration represents a declarative configuration of the LastOperation type for use
// with apply.
//
// LastOperation represents the detail of the last performed operation on the MachineObject.
type LastOperationApplyConfiguration struct {
	// description is the human-readable description of the last operation.
	Description *string `json:"description,omitempty"`
	// lastUpdated is the timestamp at which LastOperation API was last-updated.
	LastUpdated *v1.Time `json:"lastUpdated,omitempty"`
	// state is the current status of the last performed operation.
	// E.g. Processing, Failed, Successful etc
	State *string `json:"state,omitempty"`
	// type is the type of operation which was last performed.
	// E.g. Create, Delete, Update etc
	Type *string `json:"type,omitempty"`
}

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

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

// WithLastUpdated sets the LastUpdated 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 LastUpdated field is set to the value of the last call.
func (b *LastOperationApplyConfiguration) WithLastUpdated(value v1.Time) *LastOperationApplyConfiguration {
	b.LastUpdated = &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 *LastOperationApplyConfiguration) WithState(value string) *LastOperationApplyConfiguration {
	b.State = &value
	return b
}

// 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 *LastOperationApplyConfiguration) WithType(value string) *LastOperationApplyConfiguration {
	b.Type = &value
	return b
}
