/*
AutoGlue API

API for managing K3s clusters across cloud providers

API version: 1.0
*/

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

package autoglue

import (
	"encoding/json"
)

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

// DtoPageJob struct for DtoPageJob
type DtoPageJob struct {
	Items    []DtoJob `json:"items,omitempty"`
	Page     *int32   `json:"page,omitempty"`
	PageSize *int32   `json:"page_size,omitempty"`
	Total    *int32   `json:"total,omitempty"`
}

// NewDtoPageJob instantiates a new DtoPageJob 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 NewDtoPageJob() *DtoPageJob {
	this := DtoPageJob{}
	return &this
}

// NewDtoPageJobWithDefaults instantiates a new DtoPageJob 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 NewDtoPageJobWithDefaults() *DtoPageJob {
	this := DtoPageJob{}
	return &this
}

// GetItems returns the Items field value if set, zero value otherwise.
func (o *DtoPageJob) GetItems() []DtoJob {
	if o == nil || IsNil(o.Items) {
		var ret []DtoJob
		return ret
	}
	return o.Items
}

// GetItemsOk returns a tuple with the Items field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *DtoPageJob) GetItemsOk() ([]DtoJob, bool) {
	if o == nil || IsNil(o.Items) {
		return nil, false
	}
	return o.Items, true
}

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

	return false
}

// SetItems gets a reference to the given []DtoJob and assigns it to the Items field.
func (o *DtoPageJob) SetItems(v []DtoJob) {
	o.Items = v
}

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

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

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

	return false
}

// SetPage gets a reference to the given int32 and assigns it to the Page field.
func (o *DtoPageJob) SetPage(v int32) {
	o.Page = &v
}

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

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

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

	return false
}

// SetPageSize gets a reference to the given int32 and assigns it to the PageSize field.
func (o *DtoPageJob) SetPageSize(v int32) {
	o.PageSize = &v
}

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

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

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

	return false
}

// SetTotal gets a reference to the given int32 and assigns it to the Total field.
func (o *DtoPageJob) SetTotal(v int32) {
	o.Total = &v
}

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

func (o DtoPageJob) ToMap() (map[string]interface{}, error) {
	toSerialize := map[string]interface{}{}
	if !IsNil(o.Items) {
		toSerialize["items"] = o.Items
	}
	if !IsNil(o.Page) {
		toSerialize["page"] = o.Page
	}
	if !IsNil(o.PageSize) {
		toSerialize["page_size"] = o.PageSize
	}
	if !IsNil(o.Total) {
		toSerialize["total"] = o.Total
	}
	return toSerialize, nil
}

type NullableDtoPageJob struct {
	value *DtoPageJob
	isSet bool
}

func (v NullableDtoPageJob) Get() *DtoPageJob {
	return v.value
}

func (v *NullableDtoPageJob) Set(val *DtoPageJob) {
	v.value = val
	v.isSet = true
}

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

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

func NewNullableDtoPageJob(val *DtoPageJob) *NullableDtoPageJob {
	return &NullableDtoPageJob{value: val, isSet: true}
}

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

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