/*
 * Subset of Influx API covered by Influx CLI
 *
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * API version: 2.0.0
 */

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

package api

import (
	"encoding/json"
)

// TemplateSummaryErrors struct for TemplateSummaryErrors
type TemplateSummaryErrors struct {
	Kind    string   `json:"kind" yaml:"kind"`
	Reason  string   `json:"reason" yaml:"reason"`
	Fields  []string `json:"fields" yaml:"fields"`
	Indexes []*int   `json:"indexes" yaml:"indexes"`
}

// NewTemplateSummaryErrors instantiates a new TemplateSummaryErrors 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 NewTemplateSummaryErrors(kind string, reason string, fields []string, indexes []*int) *TemplateSummaryErrors {
	this := TemplateSummaryErrors{}
	this.Kind = kind
	this.Reason = reason
	this.Fields = fields
	this.Indexes = indexes
	return &this
}

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

// GetKind returns the Kind field value
func (o *TemplateSummaryErrors) GetKind() string {
	if o == nil {
		var ret string
		return ret
	}

	return o.Kind
}

// GetKindOk returns a tuple with the Kind field value
// and a boolean to check if the value has been set.
func (o *TemplateSummaryErrors) GetKindOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return &o.Kind, true
}

// SetKind sets field value
func (o *TemplateSummaryErrors) SetKind(v string) {
	o.Kind = v
}

// GetReason returns the Reason field value
func (o *TemplateSummaryErrors) GetReason() string {
	if o == nil {
		var ret string
		return ret
	}

	return o.Reason
}

// GetReasonOk returns a tuple with the Reason field value
// and a boolean to check if the value has been set.
func (o *TemplateSummaryErrors) GetReasonOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return &o.Reason, true
}

// SetReason sets field value
func (o *TemplateSummaryErrors) SetReason(v string) {
	o.Reason = v
}

// GetFields returns the Fields field value
func (o *TemplateSummaryErrors) GetFields() []string {
	if o == nil {
		var ret []string
		return ret
	}

	return o.Fields
}

// GetFieldsOk returns a tuple with the Fields field value
// and a boolean to check if the value has been set.
func (o *TemplateSummaryErrors) GetFieldsOk() (*[]string, bool) {
	if o == nil {
		return nil, false
	}
	return &o.Fields, true
}

// SetFields sets field value
func (o *TemplateSummaryErrors) SetFields(v []string) {
	o.Fields = v
}

// GetIndexes returns the Indexes field value
func (o *TemplateSummaryErrors) GetIndexes() []*int {
	if o == nil {
		var ret []*int
		return ret
	}

	return o.Indexes
}

// GetIndexesOk returns a tuple with the Indexes field value
// and a boolean to check if the value has been set.
func (o *TemplateSummaryErrors) GetIndexesOk() (*[]*int, bool) {
	if o == nil {
		return nil, false
	}
	return &o.Indexes, true
}

// SetIndexes sets field value
func (o *TemplateSummaryErrors) SetIndexes(v []*int) {
	o.Indexes = v
}

func (o TemplateSummaryErrors) MarshalJSON() ([]byte, error) {
	toSerialize := map[string]interface{}{}
	if true {
		toSerialize["kind"] = o.Kind
	}
	if true {
		toSerialize["reason"] = o.Reason
	}
	if true {
		toSerialize["fields"] = o.Fields
	}
	if true {
		toSerialize["indexes"] = o.Indexes
	}
	return json.Marshal(toSerialize)
}

type NullableTemplateSummaryErrors struct {
	value *TemplateSummaryErrors
	isSet bool
}

func (v NullableTemplateSummaryErrors) Get() *TemplateSummaryErrors {
	return v.value
}

func (v *NullableTemplateSummaryErrors) Set(val *TemplateSummaryErrors) {
	v.value = val
	v.isSet = true
}

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

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

func NewNullableTemplateSummaryErrors(val *TemplateSummaryErrors) *NullableTemplateSummaryErrors {
	return &NullableTemplateSummaryErrors{value: val, isSet: true}
}

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

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