/*
Daytona Toolbox API

Daytona Toolbox API

API version: v0.0.0-dev
*/

// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

package toolbox

import (
	"encoding/json"
)

// checks if the ProcessStatus type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &ProcessStatus{}

// ProcessStatus struct for ProcessStatus
type ProcessStatus struct {
	AutoRestart *bool `json:"autoRestart,omitempty"`
	Pid *int32 `json:"pid,omitempty"`
	Priority *int32 `json:"priority,omitempty"`
	Running *bool `json:"running,omitempty"`
}

// NewProcessStatus instantiates a new ProcessStatus object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewProcessStatus() *ProcessStatus {
	this := ProcessStatus{}
	return &this
}

// NewProcessStatusWithDefaults instantiates a new ProcessStatus object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewProcessStatusWithDefaults() *ProcessStatus {
	this := ProcessStatus{}
	return &this
}

// GetAutoRestart returns the AutoRestart field value if set, zero value otherwise.
func (o *ProcessStatus) GetAutoRestart() bool {
	if o == nil || IsNil(o.AutoRestart) {
		var ret bool
		return ret
	}
	return *o.AutoRestart
}

// GetAutoRestartOk returns a tuple with the AutoRestart field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *ProcessStatus) GetAutoRestartOk() (*bool, bool) {
	if o == nil || IsNil(o.AutoRestart) {
		return nil, false
	}
	return o.AutoRestart, true
}

// HasAutoRestart returns a boolean if a field has been set.
func (o *ProcessStatus) HasAutoRestart() bool {
	if o != nil && !IsNil(o.AutoRestart) {
		return true
	}

	return false
}

// SetAutoRestart gets a reference to the given bool and assigns it to the AutoRestart field.
func (o *ProcessStatus) SetAutoRestart(v bool) {
	o.AutoRestart = &v
}

// GetPid returns the Pid field value if set, zero value otherwise.
func (o *ProcessStatus) GetPid() int32 {
	if o == nil || IsNil(o.Pid) {
		var ret int32
		return ret
	}
	return *o.Pid
}

// GetPidOk returns a tuple with the Pid field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *ProcessStatus) GetPidOk() (*int32, bool) {
	if o == nil || IsNil(o.Pid) {
		return nil, false
	}
	return o.Pid, true
}

// HasPid returns a boolean if a field has been set.
func (o *ProcessStatus) HasPid() bool {
	if o != nil && !IsNil(o.Pid) {
		return true
	}

	return false
}

// SetPid gets a reference to the given int32 and assigns it to the Pid field.
func (o *ProcessStatus) SetPid(v int32) {
	o.Pid = &v
}

// GetPriority returns the Priority field value if set, zero value otherwise.
func (o *ProcessStatus) GetPriority() int32 {
	if o == nil || IsNil(o.Priority) {
		var ret int32
		return ret
	}
	return *o.Priority
}

// GetPriorityOk returns a tuple with the Priority field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *ProcessStatus) GetPriorityOk() (*int32, bool) {
	if o == nil || IsNil(o.Priority) {
		return nil, false
	}
	return o.Priority, true
}

// HasPriority returns a boolean if a field has been set.
func (o *ProcessStatus) HasPriority() bool {
	if o != nil && !IsNil(o.Priority) {
		return true
	}

	return false
}

// SetPriority gets a reference to the given int32 and assigns it to the Priority field.
func (o *ProcessStatus) SetPriority(v int32) {
	o.Priority = &v
}

// GetRunning returns the Running field value if set, zero value otherwise.
func (o *ProcessStatus) GetRunning() bool {
	if o == nil || IsNil(o.Running) {
		var ret bool
		return ret
	}
	return *o.Running
}

// GetRunningOk returns a tuple with the Running field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *ProcessStatus) GetRunningOk() (*bool, bool) {
	if o == nil || IsNil(o.Running) {
		return nil, false
	}
	return o.Running, true
}

// HasRunning returns a boolean if a field has been set.
func (o *ProcessStatus) HasRunning() bool {
	if o != nil && !IsNil(o.Running) {
		return true
	}

	return false
}

// SetRunning gets a reference to the given bool and assigns it to the Running field.
func (o *ProcessStatus) SetRunning(v bool) {
	o.Running = &v
}

func (o ProcessStatus) MarshalJSON() ([]byte, error) {
	toSerialize,err := o.ToMap()
	if err != nil {
		return []byte{}, err
	}
	return json.Marshal(toSerialize)
}

func (o ProcessStatus) ToMap() (map[string]interface{}, error) {
	toSerialize := map[string]interface{}{}
	if !IsNil(o.AutoRestart) {
		toSerialize["autoRestart"] = o.AutoRestart
	}
	if !IsNil(o.Pid) {
		toSerialize["pid"] = o.Pid
	}
	if !IsNil(o.Priority) {
		toSerialize["priority"] = o.Priority
	}
	if !IsNil(o.Running) {
		toSerialize["running"] = o.Running
	}
	return toSerialize, nil
}

type NullableProcessStatus struct {
	value *ProcessStatus
	isSet bool
}

func (v NullableProcessStatus) Get() *ProcessStatus {
	return v.value
}

func (v *NullableProcessStatus) Set(val *ProcessStatus) {
	v.value = val
	v.isSet = true
}

func (v NullableProcessStatus) IsSet() bool {
	return v.isSet
}

func (v *NullableProcessStatus) Unset() {
	v.value = nil
	v.isSet = false
}

func NewNullableProcessStatus(val *ProcessStatus) *NullableProcessStatus {
	return &NullableProcessStatus{value: val, isSet: true}
}

func (v NullableProcessStatus) MarshalJSON() ([]byte, error) {
	return json.Marshal(v.value)
}

func (v *NullableProcessStatus) UnmarshalJSON(src []byte) error {
	v.isSet = true
	return json.Unmarshal(src, &v.value)
}


