/*
 * 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"
)

// TemplateSummaryResources struct for TemplateSummaryResources
type TemplateSummaryResources struct {
	Buckets               []TemplateSummaryBucket               `json:"buckets" yaml:"buckets"`
	Checks                []TemplateSummaryCheck                `json:"checks" yaml:"checks"`
	Dashboards            []TemplateSummaryDashboard            `json:"dashboards" yaml:"dashboards"`
	Labels                []TemplateSummaryLabel                `json:"labels" yaml:"labels"`
	LabelMappings         []TemplateSummaryLabelMapping         `json:"labelMappings" yaml:"labelMappings"`
	MissingEnvRefs        []string                              `json:"missingEnvRefs" yaml:"missingEnvRefs"`
	MissingSecrets        []string                              `json:"missingSecrets" yaml:"missingSecrets"`
	NotificationEndpoints []TemplateSummaryNotificationEndpoint `json:"notificationEndpoints" yaml:"notificationEndpoints"`
	NotificationRules     []TemplateSummaryNotificationRule     `json:"notificationRules" yaml:"notificationRules"`
	Tasks                 []TemplateSummaryTask                 `json:"tasks" yaml:"tasks"`
	TelegrafConfigs       []TemplateSummaryTelegraf             `json:"telegrafConfigs" yaml:"telegrafConfigs"`
	Variables             []TemplateSummaryVariable             `json:"variables" yaml:"variables"`
}

// NewTemplateSummaryResources instantiates a new TemplateSummaryResources 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 NewTemplateSummaryResources(buckets []TemplateSummaryBucket, checks []TemplateSummaryCheck, dashboards []TemplateSummaryDashboard, labels []TemplateSummaryLabel, labelMappings []TemplateSummaryLabelMapping, missingEnvRefs []string, missingSecrets []string, notificationEndpoints []TemplateSummaryNotificationEndpoint, notificationRules []TemplateSummaryNotificationRule, tasks []TemplateSummaryTask, telegrafConfigs []TemplateSummaryTelegraf, variables []TemplateSummaryVariable) *TemplateSummaryResources {
	this := TemplateSummaryResources{}
	this.Buckets = buckets
	this.Checks = checks
	this.Dashboards = dashboards
	this.Labels = labels
	this.LabelMappings = labelMappings
	this.MissingEnvRefs = missingEnvRefs
	this.MissingSecrets = missingSecrets
	this.NotificationEndpoints = notificationEndpoints
	this.NotificationRules = notificationRules
	this.Tasks = tasks
	this.TelegrafConfigs = telegrafConfigs
	this.Variables = variables
	return &this
}

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

// GetBuckets returns the Buckets field value
func (o *TemplateSummaryResources) GetBuckets() []TemplateSummaryBucket {
	if o == nil {
		var ret []TemplateSummaryBucket
		return ret
	}

	return o.Buckets
}

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

// SetBuckets sets field value
func (o *TemplateSummaryResources) SetBuckets(v []TemplateSummaryBucket) {
	o.Buckets = v
}

// GetChecks returns the Checks field value
func (o *TemplateSummaryResources) GetChecks() []TemplateSummaryCheck {
	if o == nil {
		var ret []TemplateSummaryCheck
		return ret
	}

	return o.Checks
}

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

// SetChecks sets field value
func (o *TemplateSummaryResources) SetChecks(v []TemplateSummaryCheck) {
	o.Checks = v
}

// GetDashboards returns the Dashboards field value
func (o *TemplateSummaryResources) GetDashboards() []TemplateSummaryDashboard {
	if o == nil {
		var ret []TemplateSummaryDashboard
		return ret
	}

	return o.Dashboards
}

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

// SetDashboards sets field value
func (o *TemplateSummaryResources) SetDashboards(v []TemplateSummaryDashboard) {
	o.Dashboards = v
}

// GetLabels returns the Labels field value
func (o *TemplateSummaryResources) GetLabels() []TemplateSummaryLabel {
	if o == nil {
		var ret []TemplateSummaryLabel
		return ret
	}

	return o.Labels
}

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

// SetLabels sets field value
func (o *TemplateSummaryResources) SetLabels(v []TemplateSummaryLabel) {
	o.Labels = v
}

// GetLabelMappings returns the LabelMappings field value
func (o *TemplateSummaryResources) GetLabelMappings() []TemplateSummaryLabelMapping {
	if o == nil {
		var ret []TemplateSummaryLabelMapping
		return ret
	}

	return o.LabelMappings
}

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

// SetLabelMappings sets field value
func (o *TemplateSummaryResources) SetLabelMappings(v []TemplateSummaryLabelMapping) {
	o.LabelMappings = v
}

// GetMissingEnvRefs returns the MissingEnvRefs field value
func (o *TemplateSummaryResources) GetMissingEnvRefs() []string {
	if o == nil {
		var ret []string
		return ret
	}

	return o.MissingEnvRefs
}

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

// SetMissingEnvRefs sets field value
func (o *TemplateSummaryResources) SetMissingEnvRefs(v []string) {
	o.MissingEnvRefs = v
}

// GetMissingSecrets returns the MissingSecrets field value
func (o *TemplateSummaryResources) GetMissingSecrets() []string {
	if o == nil {
		var ret []string
		return ret
	}

	return o.MissingSecrets
}

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

// SetMissingSecrets sets field value
func (o *TemplateSummaryResources) SetMissingSecrets(v []string) {
	o.MissingSecrets = v
}

// GetNotificationEndpoints returns the NotificationEndpoints field value
func (o *TemplateSummaryResources) GetNotificationEndpoints() []TemplateSummaryNotificationEndpoint {
	if o == nil {
		var ret []TemplateSummaryNotificationEndpoint
		return ret
	}

	return o.NotificationEndpoints
}

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

// SetNotificationEndpoints sets field value
func (o *TemplateSummaryResources) SetNotificationEndpoints(v []TemplateSummaryNotificationEndpoint) {
	o.NotificationEndpoints = v
}

// GetNotificationRules returns the NotificationRules field value
func (o *TemplateSummaryResources) GetNotificationRules() []TemplateSummaryNotificationRule {
	if o == nil {
		var ret []TemplateSummaryNotificationRule
		return ret
	}

	return o.NotificationRules
}

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

// SetNotificationRules sets field value
func (o *TemplateSummaryResources) SetNotificationRules(v []TemplateSummaryNotificationRule) {
	o.NotificationRules = v
}

// GetTasks returns the Tasks field value
func (o *TemplateSummaryResources) GetTasks() []TemplateSummaryTask {
	if o == nil {
		var ret []TemplateSummaryTask
		return ret
	}

	return o.Tasks
}

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

// SetTasks sets field value
func (o *TemplateSummaryResources) SetTasks(v []TemplateSummaryTask) {
	o.Tasks = v
}

// GetTelegrafConfigs returns the TelegrafConfigs field value
func (o *TemplateSummaryResources) GetTelegrafConfigs() []TemplateSummaryTelegraf {
	if o == nil {
		var ret []TemplateSummaryTelegraf
		return ret
	}

	return o.TelegrafConfigs
}

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

// SetTelegrafConfigs sets field value
func (o *TemplateSummaryResources) SetTelegrafConfigs(v []TemplateSummaryTelegraf) {
	o.TelegrafConfigs = v
}

// GetVariables returns the Variables field value
func (o *TemplateSummaryResources) GetVariables() []TemplateSummaryVariable {
	if o == nil {
		var ret []TemplateSummaryVariable
		return ret
	}

	return o.Variables
}

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

// SetVariables sets field value
func (o *TemplateSummaryResources) SetVariables(v []TemplateSummaryVariable) {
	o.Variables = v
}

func (o TemplateSummaryResources) MarshalJSON() ([]byte, error) {
	toSerialize := map[string]interface{}{}
	if true {
		toSerialize["buckets"] = o.Buckets
	}
	if true {
		toSerialize["checks"] = o.Checks
	}
	if true {
		toSerialize["dashboards"] = o.Dashboards
	}
	if true {
		toSerialize["labels"] = o.Labels
	}
	if true {
		toSerialize["labelMappings"] = o.LabelMappings
	}
	if true {
		toSerialize["missingEnvRefs"] = o.MissingEnvRefs
	}
	if true {
		toSerialize["missingSecrets"] = o.MissingSecrets
	}
	if true {
		toSerialize["notificationEndpoints"] = o.NotificationEndpoints
	}
	if true {
		toSerialize["notificationRules"] = o.NotificationRules
	}
	if true {
		toSerialize["tasks"] = o.Tasks
	}
	if true {
		toSerialize["telegrafConfigs"] = o.TelegrafConfigs
	}
	if true {
		toSerialize["variables"] = o.Variables
	}
	return json.Marshal(toSerialize)
}

type NullableTemplateSummaryResources struct {
	value *TemplateSummaryResources
	isSet bool
}

func (v NullableTemplateSummaryResources) Get() *TemplateSummaryResources {
	return v.value
}

func (v *NullableTemplateSummaryResources) Set(val *TemplateSummaryResources) {
	v.value = val
	v.isSet = true
}

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

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

func NewNullableTemplateSummaryResources(val *TemplateSummaryResources) *NullableTemplateSummaryResources {
	return &NullableTemplateSummaryResources{value: val, isSet: true}
}

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

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