// Code generated by easyjson for marshaling/unmarshaling. DO NOT EDIT.

package types

import (
	json "encoding/json"
	datetime "git.canopsis.net/canopsis/canopsis-community/community/go-engines-community/lib/canopsis/datetime"
	pattern "git.canopsis.net/canopsis/canopsis-community/community/go-engines-community/lib/canopsis/pattern"
	easyjson "github.com/mailru/easyjson"
	jlexer "github.com/mailru/easyjson/jlexer"
	jwriter "github.com/mailru/easyjson/jwriter"
)

// suppress unused package warning
var (
	_ *json.RawMessage
	_ *jlexer.Lexer
	_ *jwriter.Writer
	_ easyjson.Marshaler
)

func easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes(in *jlexer.Lexer, out *Event) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "_id":
			if in.IsNull() {
				in.Skip()
				out.ID = nil
			} else {
				if out.ID == nil {
					out.ID = new(string)
				}
				*out.ID = string(in.String())
			}
		case "connector":
			out.Connector = string(in.String())
		case "connector_name":
			out.ConnectorName = string(in.String())
		case "event_type":
			out.EventType = string(in.String())
		case "component":
			out.Component = string(in.String())
		case "resource":
			out.Resource = string(in.String())
		case "perf_data":
			out.PerfData = string(in.String())
		case "status":
			if in.IsNull() {
				in.Skip()
				out.Status = nil
			} else {
				if out.Status == nil {
					out.Status = new(CpsNumber)
				}
				if data := in.Raw(); in.Ok() {
					in.AddError((*out.Status).UnmarshalJSON(data))
				}
			}
		case "source_type":
			out.SourceType = string(in.String())
		case "long_output":
			out.LongOutput = string(in.String())
		case "state":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.State).UnmarshalJSON(data))
			}
		case "output":
			out.Output = string(in.String())
		case "current_alarm":
			if in.IsNull() {
				in.Skip()
				out.Alarm = nil
			} else {
				if out.Alarm == nil {
					out.Alarm = new(Alarm)
				}
				easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes1(in, out.Alarm)
			}
		case "current_entity":
			if in.IsNull() {
				in.Skip()
				out.Entity = nil
			} else {
				if out.Entity == nil {
					out.Entity = new(Entity)
				}
				easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes2(in, out.Entity)
			}
		case "aid":
			out.AlarmID = string(in.String())
		case "author":
			out.Author = string(in.String())
		case "user_id":
			out.UserID = string(in.String())
		case "timestamp":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.Timestamp).UnmarshalJSON(data))
			}
		case "rt":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.ReceivedTimestamp).UnmarshalJSON(data))
			}
		case "routing_key":
			out.RK = string(in.String())
		case "duration":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.Duration).UnmarshalJSON(data))
			}
		case "stat_name":
			out.StatName = string(in.String())
		case "debug":
			out.Debug = bool(in.Bool())
		case "role":
			out.Role = string(in.String())
		case "extra":
			if in.IsNull() {
				in.Skip()
			} else {
				in.Delim('{')
				out.ExtraInfos = make(map[string]interface{})
				for !in.IsDelim('}') {
					key := string(in.String())
					in.WantColon()
					var v1 interface{}
					if m, ok := v1.(easyjson.Unmarshaler); ok {
						m.UnmarshalEasyJSON(in)
					} else if m, ok := v1.(json.Unmarshaler); ok {
						_ = m.UnmarshalJSON(in.Raw())
					} else {
						v1 = in.Interface()
					}
					(out.ExtraInfos)[key] = v1
					in.WantComma()
				}
				in.Delim('}')
			}
		case "alarm_change":
			if in.IsNull() {
				in.Skip()
				out.AlarmChange = nil
			} else {
				if out.AlarmChange == nil {
					out.AlarmChange = new(AlarmChange)
				}
				easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes3(in, out.AlarmChange)
			}
		case "tags":
			if in.IsNull() {
				in.Skip()
			} else {
				in.Delim('{')
				if !in.IsDelim('}') {
					out.Tags = make(map[string]string)
				} else {
					out.Tags = nil
				}
				for !in.IsDelim('}') {
					key := string(in.String())
					in.WantColon()
					var v2 string
					v2 = string(in.String())
					(out.Tags)[key] = v2
					in.WantComma()
				}
				in.Delim('}')
			}
		case "imtags":
			if in.IsNull() {
				in.Skip()
			} else {
				in.Delim('{')
				if !in.IsDelim('}') {
					out.ImportTags = make(map[string]string)
				} else {
					out.ImportTags = nil
				}
				for !in.IsDelim('}') {
					key := string(in.String())
					in.WantColon()
					var v3 string
					v3 = string(in.String())
					(out.ImportTags)[key] = v3
					in.WantComma()
				}
				in.Delim('}')
			}
		case "impsrc":
			out.ImportSource = string(in.String())
		case "metaalarm_rule_id":
			out.MetaAlarmRuleID = string(in.String())
		case "metaalarm_value_path":
			out.MetaAlarmValuePath = string(in.String())
		case "ma_parents":
			if in.IsNull() {
				in.Skip()
				out.MetaAlarmParents = nil
			} else {
				in.Delim('[')
				if out.MetaAlarmParents == nil {
					if !in.IsDelim(']') {
						out.MetaAlarmParents = make([]string, 0, 4)
					} else {
						out.MetaAlarmParents = []string{}
					}
				} else {
					out.MetaAlarmParents = (out.MetaAlarmParents)[:0]
				}
				for !in.IsDelim(']') {
					var v4 string
					v4 = string(in.String())
					out.MetaAlarmParents = append(out.MetaAlarmParents, v4)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "ma_children":
			if in.IsNull() {
				in.Skip()
				out.MetaAlarmChildren = nil
			} else {
				in.Delim('[')
				if out.MetaAlarmChildren == nil {
					if !in.IsDelim(']') {
						out.MetaAlarmChildren = make([]string, 0, 4)
					} else {
						out.MetaAlarmChildren = []string{}
					}
				} else {
					out.MetaAlarmChildren = (out.MetaAlarmChildren)[:0]
				}
				for !in.IsDelim(']') {
					var v5 string
					v5 = string(in.String())
					out.MetaAlarmChildren = append(out.MetaAlarmChildren, v5)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "ma_tags":
			if in.IsNull() {
				in.Skip()
				out.MetaAlarmTags = nil
			} else {
				if out.MetaAlarmTags == nil {
					out.MetaAlarmTags = new(CorrelationRuleTags)
				}
				easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes4(in, out.MetaAlarmTags)
			}
		case "ma_infos":
			if in.IsNull() {
				in.Skip()
				out.MetaAlarmInfos = nil
			} else {
				in.Delim('[')
				if out.MetaAlarmInfos == nil {
					if !in.IsDelim(']') {
						out.MetaAlarmInfos = make([]CorrelationRuleInfo, 0, 1)
					} else {
						out.MetaAlarmInfos = []CorrelationRuleInfo{}
					}
				} else {
					out.MetaAlarmInfos = (out.MetaAlarmInfos)[:0]
				}
				for !in.IsDelim(']') {
					var v6 CorrelationRuleInfo
					easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes5(in, &v6)
					out.MetaAlarmInfos = append(out.MetaAlarmInfos, v6)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "display_name":
			out.DisplayName = string(in.String())
		case "pbehavior_info":
			easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes6(in, &out.PbehaviorInfo)
		case "initiator":
			out.Initiator = string(in.String())
		case "delayed_scenario_id":
			out.DelayedScenarioID = string(in.String())
		case "delayed_scenario_data":
			out.DelayedScenarioData = string(in.String())
		case "added_to_services":
			if in.IsNull() {
				in.Skip()
				out.AddedToServices = nil
			} else {
				in.Delim('[')
				if out.AddedToServices == nil {
					if !in.IsDelim(']') {
						out.AddedToServices = make([]string, 0, 4)
					} else {
						out.AddedToServices = []string{}
					}
				} else {
					out.AddedToServices = (out.AddedToServices)[:0]
				}
				for !in.IsDelim(']') {
					var v7 string
					v7 = string(in.String())
					out.AddedToServices = append(out.AddedToServices, v7)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "removed_from_services":
			if in.IsNull() {
				in.Skip()
				out.RemovedFromServices = nil
			} else {
				in.Delim('[')
				if out.RemovedFromServices == nil {
					if !in.IsDelim(']') {
						out.RemovedFromServices = make([]string, 0, 4)
					} else {
						out.RemovedFromServices = []string{}
					}
				} else {
					out.RemovedFromServices = (out.RemovedFromServices)[:0]
				}
				for !in.IsDelim(']') {
					var v8 string
					v8 = string(in.String())
					out.RemovedFromServices = append(out.RemovedFromServices, v8)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "idle_rule_apply":
			out.IdleRuleApply = string(in.String())
		case "execution":
			out.Execution = string(in.String())
		case "instruction":
			out.Instruction = string(in.String())
		case "ma_updated":
			out.IsMetaAlarmUpdated = bool(in.Bool())
		case "instr_matched":
			out.IsInstructionMatched = bool(in.Bool())
		case "healthcheck":
			out.Healthcheck = bool(in.Bool())
		case "state_setting_updated":
			out.StateSettingUpdated = bool(in.Bool())
		case "close_delay":
			if in.IsNull() {
				in.Skip()
				out.CloseDelayValue = nil
			} else {
				if out.CloseDelayValue == nil {
					out.CloseDelayValue = new(int64)
				}
				*out.CloseDelayValue = int64(in.Int64())
			}
		case "is_close_delay":
			out.IsCloseDelayJob = bool(in.Bool())
		case "ticket":
			out.Ticket = string(in.String())
		case "ticket_url":
			out.TicketURL = string(in.String())
		case "ticket_url_title":
			out.TicketURLTitle = string(in.String())
		case "ticket_comment":
			out.TicketComment = string(in.String())
		case "ticket_system_name":
			out.TicketSystemName = string(in.String())
		case "ticket_meta_alarm_id":
			out.TicketMetaAlarmID = string(in.String())
		case "ticket_rule_id":
			out.TicketRuleID = string(in.String())
		case "ticket_rule_name":
			out.TicketRuleName = string(in.String())
		case "ticket_data":
			if in.IsNull() {
				in.Skip()
			} else {
				in.Delim('{')
				if !in.IsDelim('}') {
					out.TicketData = make(map[string]string)
				} else {
					out.TicketData = nil
				}
				for !in.IsDelim('}') {
					key := string(in.String())
					in.WantColon()
					var v9 string
					v9 = string(in.String())
					(out.TicketData)[key] = v9
					in.WantComma()
				}
				in.Delim('}')
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes(out *jwriter.Writer, in Event) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"_id\":"
		out.RawString(prefix[1:])
		if in.ID == nil {
			out.RawString("null")
		} else {
			out.String(string(*in.ID))
		}
	}
	{
		const prefix string = ",\"connector\":"
		out.RawString(prefix)
		out.String(string(in.Connector))
	}
	{
		const prefix string = ",\"connector_name\":"
		out.RawString(prefix)
		out.String(string(in.ConnectorName))
	}
	{
		const prefix string = ",\"event_type\":"
		out.RawString(prefix)
		out.String(string(in.EventType))
	}
	{
		const prefix string = ",\"component\":"
		out.RawString(prefix)
		out.String(string(in.Component))
	}
	{
		const prefix string = ",\"resource\":"
		out.RawString(prefix)
		out.String(string(in.Resource))
	}
	{
		const prefix string = ",\"perf_data\":"
		out.RawString(prefix)
		out.String(string(in.PerfData))
	}
	{
		const prefix string = ",\"status\":"
		out.RawString(prefix)
		if in.Status == nil {
			out.RawString("null")
		} else {
			out.Raw((*in.Status).MarshalJSON())
		}
	}
	{
		const prefix string = ",\"source_type\":"
		out.RawString(prefix)
		out.String(string(in.SourceType))
	}
	{
		const prefix string = ",\"long_output\":"
		out.RawString(prefix)
		out.String(string(in.LongOutput))
	}
	{
		const prefix string = ",\"state\":"
		out.RawString(prefix)
		out.Raw((in.State).MarshalJSON())
	}
	{
		const prefix string = ",\"output\":"
		out.RawString(prefix)
		out.String(string(in.Output))
	}
	{
		const prefix string = ",\"current_alarm\":"
		out.RawString(prefix)
		if in.Alarm == nil {
			out.RawString("null")
		} else {
			easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes1(out, *in.Alarm)
		}
	}
	{
		const prefix string = ",\"current_entity\":"
		out.RawString(prefix)
		if in.Entity == nil {
			out.RawString("null")
		} else {
			easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes2(out, *in.Entity)
		}
	}
	if in.AlarmID != "" {
		const prefix string = ",\"aid\":"
		out.RawString(prefix)
		out.String(string(in.AlarmID))
	}
	{
		const prefix string = ",\"author\":"
		out.RawString(prefix)
		out.String(string(in.Author))
	}
	{
		const prefix string = ",\"user_id\":"
		out.RawString(prefix)
		out.String(string(in.UserID))
	}
	{
		const prefix string = ",\"timestamp\":"
		out.RawString(prefix)
		out.Raw((in.Timestamp).MarshalJSON())
	}
	{
		const prefix string = ",\"rt\":"
		out.RawString(prefix)
		out.Raw((in.ReceivedTimestamp).MarshalJSON())
	}
	{
		const prefix string = ",\"routing_key\":"
		out.RawString(prefix)
		out.String(string(in.RK))
	}
	if in.Duration != 0 {
		const prefix string = ",\"duration\":"
		out.RawString(prefix)
		out.Raw((in.Duration).MarshalJSON())
	}
	{
		const prefix string = ",\"stat_name\":"
		out.RawString(prefix)
		out.String(string(in.StatName))
	}
	{
		const prefix string = ",\"debug\":"
		out.RawString(prefix)
		out.Bool(bool(in.Debug))
	}
	if in.Role != "" {
		const prefix string = ",\"role\":"
		out.RawString(prefix)
		out.String(string(in.Role))
	}
	{
		const prefix string = ",\"extra\":"
		out.RawString(prefix)
		if in.ExtraInfos == nil && (out.Flags&jwriter.NilMapAsEmpty) == 0 {
			out.RawString(`null`)
		} else {
			out.RawByte('{')
			v10First := true
			for v10Name, v10Value := range in.ExtraInfos {
				if v10First {
					v10First = false
				} else {
					out.RawByte(',')
				}
				out.String(string(v10Name))
				out.RawByte(':')
				if m, ok := v10Value.(easyjson.Marshaler); ok {
					m.MarshalEasyJSON(out)
				} else if m, ok := v10Value.(json.Marshaler); ok {
					out.Raw(m.MarshalJSON())
				} else {
					out.Raw(json.Marshal(v10Value))
				}
			}
			out.RawByte('}')
		}
	}
	{
		const prefix string = ",\"alarm_change\":"
		out.RawString(prefix)
		if in.AlarmChange == nil {
			out.RawString("null")
		} else {
			easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes3(out, *in.AlarmChange)
		}
	}
	if len(in.Tags) != 0 {
		const prefix string = ",\"tags\":"
		out.RawString(prefix)
		{
			out.RawByte('{')
			v11First := true
			for v11Name, v11Value := range in.Tags {
				if v11First {
					v11First = false
				} else {
					out.RawByte(',')
				}
				out.String(string(v11Name))
				out.RawByte(':')
				out.String(string(v11Value))
			}
			out.RawByte('}')
		}
	}
	if len(in.ImportTags) != 0 {
		const prefix string = ",\"imtags\":"
		out.RawString(prefix)
		{
			out.RawByte('{')
			v12First := true
			for v12Name, v12Value := range in.ImportTags {
				if v12First {
					v12First = false
				} else {
					out.RawByte(',')
				}
				out.String(string(v12Name))
				out.RawByte(':')
				out.String(string(v12Value))
			}
			out.RawByte('}')
		}
	}
	if in.ImportSource != "" {
		const prefix string = ",\"impsrc\":"
		out.RawString(prefix)
		out.String(string(in.ImportSource))
	}
	if in.MetaAlarmRuleID != "" {
		const prefix string = ",\"metaalarm_rule_id\":"
		out.RawString(prefix)
		out.String(string(in.MetaAlarmRuleID))
	}
	if in.MetaAlarmValuePath != "" {
		const prefix string = ",\"metaalarm_value_path\":"
		out.RawString(prefix)
		out.String(string(in.MetaAlarmValuePath))
	}
	if len(in.MetaAlarmParents) != 0 {
		const prefix string = ",\"ma_parents\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v13, v14 := range in.MetaAlarmParents {
				if v13 > 0 {
					out.RawByte(',')
				}
				out.String(string(v14))
			}
			out.RawByte(']')
		}
	}
	if len(in.MetaAlarmChildren) != 0 {
		const prefix string = ",\"ma_children\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v15, v16 := range in.MetaAlarmChildren {
				if v15 > 0 {
					out.RawByte(',')
				}
				out.String(string(v16))
			}
			out.RawByte(']')
		}
	}
	if in.MetaAlarmTags != nil {
		const prefix string = ",\"ma_tags\":"
		out.RawString(prefix)
		easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes4(out, *in.MetaAlarmTags)
	}
	if len(in.MetaAlarmInfos) != 0 {
		const prefix string = ",\"ma_infos\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v17, v18 := range in.MetaAlarmInfos {
				if v17 > 0 {
					out.RawByte(',')
				}
				easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes5(out, v18)
			}
			out.RawByte(']')
		}
	}
	if in.DisplayName != "" {
		const prefix string = ",\"display_name\":"
		out.RawString(prefix)
		out.String(string(in.DisplayName))
	}
	{
		const prefix string = ",\"pbehavior_info\":"
		out.RawString(prefix)
		easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes6(out, in.PbehaviorInfo)
	}
	{
		const prefix string = ",\"initiator\":"
		out.RawString(prefix)
		out.String(string(in.Initiator))
	}
	if in.DelayedScenarioID != "" {
		const prefix string = ",\"delayed_scenario_id\":"
		out.RawString(prefix)
		out.String(string(in.DelayedScenarioID))
	}
	if in.DelayedScenarioData != "" {
		const prefix string = ",\"delayed_scenario_data\":"
		out.RawString(prefix)
		out.String(string(in.DelayedScenarioData))
	}
	if len(in.AddedToServices) != 0 {
		const prefix string = ",\"added_to_services\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v19, v20 := range in.AddedToServices {
				if v19 > 0 {
					out.RawByte(',')
				}
				out.String(string(v20))
			}
			out.RawByte(']')
		}
	}
	if len(in.RemovedFromServices) != 0 {
		const prefix string = ",\"removed_from_services\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v21, v22 := range in.RemovedFromServices {
				if v21 > 0 {
					out.RawByte(',')
				}
				out.String(string(v22))
			}
			out.RawByte(']')
		}
	}
	if in.IdleRuleApply != "" {
		const prefix string = ",\"idle_rule_apply\":"
		out.RawString(prefix)
		out.String(string(in.IdleRuleApply))
	}
	if in.Execution != "" {
		const prefix string = ",\"execution\":"
		out.RawString(prefix)
		out.String(string(in.Execution))
	}
	if in.Instruction != "" {
		const prefix string = ",\"instruction\":"
		out.RawString(prefix)
		out.String(string(in.Instruction))
	}
	if in.IsMetaAlarmUpdated {
		const prefix string = ",\"ma_updated\":"
		out.RawString(prefix)
		out.Bool(bool(in.IsMetaAlarmUpdated))
	}
	if in.IsInstructionMatched {
		const prefix string = ",\"instr_matched\":"
		out.RawString(prefix)
		out.Bool(bool(in.IsInstructionMatched))
	}
	if in.Healthcheck {
		const prefix string = ",\"healthcheck\":"
		out.RawString(prefix)
		out.Bool(bool(in.Healthcheck))
	}
	if in.StateSettingUpdated {
		const prefix string = ",\"state_setting_updated\":"
		out.RawString(prefix)
		out.Bool(bool(in.StateSettingUpdated))
	}
	if in.CloseDelayValue != nil {
		const prefix string = ",\"close_delay\":"
		out.RawString(prefix)
		out.Int64(int64(*in.CloseDelayValue))
	}
	if in.IsCloseDelayJob {
		const prefix string = ",\"is_close_delay\":"
		out.RawString(prefix)
		out.Bool(bool(in.IsCloseDelayJob))
	}
	if in.Ticket != "" {
		const prefix string = ",\"ticket\":"
		out.RawString(prefix)
		out.String(string(in.Ticket))
	}
	if in.TicketURL != "" {
		const prefix string = ",\"ticket_url\":"
		out.RawString(prefix)
		out.String(string(in.TicketURL))
	}
	if in.TicketURLTitle != "" {
		const prefix string = ",\"ticket_url_title\":"
		out.RawString(prefix)
		out.String(string(in.TicketURLTitle))
	}
	if in.TicketComment != "" {
		const prefix string = ",\"ticket_comment\":"
		out.RawString(prefix)
		out.String(string(in.TicketComment))
	}
	if in.TicketSystemName != "" {
		const prefix string = ",\"ticket_system_name\":"
		out.RawString(prefix)
		out.String(string(in.TicketSystemName))
	}
	if in.TicketMetaAlarmID != "" {
		const prefix string = ",\"ticket_meta_alarm_id\":"
		out.RawString(prefix)
		out.String(string(in.TicketMetaAlarmID))
	}
	if in.TicketRuleID != "" {
		const prefix string = ",\"ticket_rule_id\":"
		out.RawString(prefix)
		out.String(string(in.TicketRuleID))
	}
	if in.TicketRuleName != "" {
		const prefix string = ",\"ticket_rule_name\":"
		out.RawString(prefix)
		out.String(string(in.TicketRuleName))
	}
	if len(in.TicketData) != 0 {
		const prefix string = ",\"ticket_data\":"
		out.RawString(prefix)
		{
			out.RawByte('{')
			v23First := true
			for v23Name, v23Value := range in.TicketData {
				if v23First {
					v23First = false
				} else {
					out.RawByte(',')
				}
				out.String(string(v23Name))
				out.RawByte(':')
				out.String(string(v23Value))
			}
			out.RawByte('}')
		}
	}
	out.RawByte('}')
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v Event) MarshalEasyJSON(w *jwriter.Writer) {
	easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes(w, v)
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *Event) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes(l, v)
}
func easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes6(in *jlexer.Lexer, out *PbehaviorInfo) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "timestamp":
			if in.IsNull() {
				in.Skip()
				out.Timestamp = nil
			} else {
				if out.Timestamp == nil {
					out.Timestamp = new(datetime.CpsTime)
				}
				if data := in.Raw(); in.Ok() {
					in.AddError((*out.Timestamp).UnmarshalJSON(data))
				}
			}
		case "id":
			out.ID = string(in.String())
		case "name":
			out.Name = string(in.String())
		case "reason_name":
			out.ReasonName = string(in.String())
		case "reason":
			out.ReasonID = string(in.String())
		case "type":
			out.TypeID = string(in.String())
		case "type_name":
			out.TypeName = string(in.String())
		case "canonical_type":
			out.CanonicalType = string(in.String())
		case "icon_name":
			out.IconName = string(in.String())
		case "color":
			out.Color = string(in.String())
		case "author":
			out.Author = string(in.String())
		case "rule_name":
			out.RuleName = string(in.String())
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes6(out *jwriter.Writer, in PbehaviorInfo) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"timestamp\":"
		out.RawString(prefix[1:])
		if in.Timestamp == nil {
			out.RawString("null")
		} else {
			out.Raw((*in.Timestamp).MarshalJSON())
		}
	}
	{
		const prefix string = ",\"id\":"
		out.RawString(prefix)
		out.String(string(in.ID))
	}
	{
		const prefix string = ",\"name\":"
		out.RawString(prefix)
		out.String(string(in.Name))
	}
	{
		const prefix string = ",\"reason_name\":"
		out.RawString(prefix)
		out.String(string(in.ReasonName))
	}
	{
		const prefix string = ",\"reason\":"
		out.RawString(prefix)
		out.String(string(in.ReasonID))
	}
	{
		const prefix string = ",\"type\":"
		out.RawString(prefix)
		out.String(string(in.TypeID))
	}
	{
		const prefix string = ",\"type_name\":"
		out.RawString(prefix)
		out.String(string(in.TypeName))
	}
	{
		const prefix string = ",\"canonical_type\":"
		out.RawString(prefix)
		out.String(string(in.CanonicalType))
	}
	{
		const prefix string = ",\"icon_name\":"
		out.RawString(prefix)
		out.String(string(in.IconName))
	}
	{
		const prefix string = ",\"color\":"
		out.RawString(prefix)
		out.String(string(in.Color))
	}
	{
		const prefix string = ",\"author\":"
		out.RawString(prefix)
		out.String(string(in.Author))
	}
	if in.RuleName != "" {
		const prefix string = ",\"rule_name\":"
		out.RawString(prefix)
		out.String(string(in.RuleName))
	}
	out.RawByte('}')
}
func easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes5(in *jlexer.Lexer, out *CorrelationRuleInfo) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "name":
			out.Name = string(in.String())
		case "description":
			out.Description = string(in.String())
		case "value":
			if m, ok := out.Value.(easyjson.Unmarshaler); ok {
				m.UnmarshalEasyJSON(in)
			} else if m, ok := out.Value.(json.Unmarshaler); ok {
				_ = m.UnmarshalJSON(in.Raw())
			} else {
				out.Value = in.Interface()
			}
		case "copy_from_children":
			out.CopyFromChildren = bool(in.Bool())
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes5(out *jwriter.Writer, in CorrelationRuleInfo) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"name\":"
		out.RawString(prefix[1:])
		out.String(string(in.Name))
	}
	if in.Description != "" {
		const prefix string = ",\"description\":"
		out.RawString(prefix)
		out.String(string(in.Description))
	}
	if in.Value != nil {
		const prefix string = ",\"value\":"
		out.RawString(prefix)
		if m, ok := in.Value.(easyjson.Marshaler); ok {
			m.MarshalEasyJSON(out)
		} else if m, ok := in.Value.(json.Marshaler); ok {
			out.Raw(m.MarshalJSON())
		} else {
			out.Raw(json.Marshal(in.Value))
		}
	}
	if in.CopyFromChildren {
		const prefix string = ",\"copy_from_children\":"
		out.RawString(prefix)
		out.Bool(bool(in.CopyFromChildren))
	}
	out.RawByte('}')
}
func easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes4(in *jlexer.Lexer, out *CorrelationRuleTags) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "copy_from_children":
			out.CopyFromChildren = bool(in.Bool())
		case "filter_by_label":
			if in.IsNull() {
				in.Skip()
				out.FilterByLabel = nil
			} else {
				in.Delim('[')
				if out.FilterByLabel == nil {
					if !in.IsDelim(']') {
						out.FilterByLabel = make([]string, 0, 4)
					} else {
						out.FilterByLabel = []string{}
					}
				} else {
					out.FilterByLabel = (out.FilterByLabel)[:0]
				}
				for !in.IsDelim(']') {
					var v24 string
					v24 = string(in.String())
					out.FilterByLabel = append(out.FilterByLabel, v24)
					in.WantComma()
				}
				in.Delim(']')
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes4(out *jwriter.Writer, in CorrelationRuleTags) {
	out.RawByte('{')
	first := true
	_ = first
	if in.CopyFromChildren {
		const prefix string = ",\"copy_from_children\":"
		first = false
		out.RawString(prefix[1:])
		out.Bool(bool(in.CopyFromChildren))
	}
	if len(in.FilterByLabel) != 0 {
		const prefix string = ",\"filter_by_label\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		{
			out.RawByte('[')
			for v25, v26 := range in.FilterByLabel {
				if v25 > 0 {
					out.RawByte(',')
				}
				out.String(string(v26))
			}
			out.RawByte(']')
		}
	}
	out.RawByte('}')
}
func easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes3(in *jlexer.Lexer, out *AlarmChange) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "Type":
			out.Type = AlarmChangeType(in.String())
		case "PreviousState":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.PreviousState).UnmarshalJSON(data))
			}
		case "PreviousStateChange":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.PreviousStateChange).UnmarshalJSON(data))
			}
		case "PreviousStatus":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.PreviousStatus).UnmarshalJSON(data))
			}
		case "PreviousStatusChange":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.PreviousStatusChange).UnmarshalJSON(data))
			}
		case "PreviousPbehaviorTime":
			if in.IsNull() {
				in.Skip()
				out.PreviousPbehaviorTime = nil
			} else {
				if out.PreviousPbehaviorTime == nil {
					out.PreviousPbehaviorTime = new(datetime.CpsTime)
				}
				if data := in.Raw(); in.Ok() {
					in.AddError((*out.PreviousPbehaviorTime).UnmarshalJSON(data))
				}
			}
		case "PreviousEntityPbehaviorTime":
			if in.IsNull() {
				in.Skip()
				out.PreviousEntityPbehaviorTime = nil
			} else {
				if out.PreviousEntityPbehaviorTime == nil {
					out.PreviousEntityPbehaviorTime = new(datetime.CpsTime)
				}
				if data := in.Raw(); in.Ok() {
					in.AddError((*out.PreviousEntityPbehaviorTime).UnmarshalJSON(data))
				}
			}
		case "PreviousPbehaviorTypeID":
			out.PreviousPbehaviorTypeID = string(in.String())
		case "PreviousPbehaviorCannonicalType":
			out.PreviousPbehaviorCannonicalType = string(in.String())
		case "EventsCount":
			out.EventsCount = int(in.Int())
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes3(out *jwriter.Writer, in AlarmChange) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"Type\":"
		out.RawString(prefix[1:])
		out.String(string(in.Type))
	}
	{
		const prefix string = ",\"PreviousState\":"
		out.RawString(prefix)
		out.Raw((in.PreviousState).MarshalJSON())
	}
	{
		const prefix string = ",\"PreviousStateChange\":"
		out.RawString(prefix)
		out.Raw((in.PreviousStateChange).MarshalJSON())
	}
	{
		const prefix string = ",\"PreviousStatus\":"
		out.RawString(prefix)
		out.Raw((in.PreviousStatus).MarshalJSON())
	}
	{
		const prefix string = ",\"PreviousStatusChange\":"
		out.RawString(prefix)
		out.Raw((in.PreviousStatusChange).MarshalJSON())
	}
	{
		const prefix string = ",\"PreviousPbehaviorTime\":"
		out.RawString(prefix)
		if in.PreviousPbehaviorTime == nil {
			out.RawString("null")
		} else {
			out.Raw((*in.PreviousPbehaviorTime).MarshalJSON())
		}
	}
	{
		const prefix string = ",\"PreviousEntityPbehaviorTime\":"
		out.RawString(prefix)
		if in.PreviousEntityPbehaviorTime == nil {
			out.RawString("null")
		} else {
			out.Raw((*in.PreviousEntityPbehaviorTime).MarshalJSON())
		}
	}
	{
		const prefix string = ",\"PreviousPbehaviorTypeID\":"
		out.RawString(prefix)
		out.String(string(in.PreviousPbehaviorTypeID))
	}
	{
		const prefix string = ",\"PreviousPbehaviorCannonicalType\":"
		out.RawString(prefix)
		out.String(string(in.PreviousPbehaviorCannonicalType))
	}
	{
		const prefix string = ",\"EventsCount\":"
		out.RawString(prefix)
		out.Int(int(in.EventsCount))
	}
	out.RawByte('}')
}
func easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes2(in *jlexer.Lexer, out *Entity) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "_id":
			out.ID = string(in.String())
		case "name":
			out.Name = string(in.String())
		case "author":
			out.Author = string(in.String())
		case "description":
			out.Description = string(in.String())
		case "enable_history":
			if in.IsNull() {
				in.Skip()
				out.EnableHistory = nil
			} else {
				in.Delim('[')
				if out.EnableHistory == nil {
					if !in.IsDelim(']') {
						out.EnableHistory = make([]datetime.CpsTime, 0, 2)
					} else {
						out.EnableHistory = []datetime.CpsTime{}
					}
				} else {
					out.EnableHistory = (out.EnableHistory)[:0]
				}
				for !in.IsDelim(']') {
					var v27 datetime.CpsTime
					if data := in.Raw(); in.Ok() {
						in.AddError((v27).UnmarshalJSON(data))
					}
					out.EnableHistory = append(out.EnableHistory, v27)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "measurements":
			if m, ok := out.Measurements.(easyjson.Unmarshaler); ok {
				m.UnmarshalEasyJSON(in)
			} else if m, ok := out.Measurements.(json.Unmarshaler); ok {
				_ = m.UnmarshalJSON(in.Raw())
			} else {
				out.Measurements = in.Interface()
			}
		case "enabled":
			out.Enabled = bool(in.Bool())
		case "infos":
			if in.IsNull() {
				in.Skip()
			} else {
				in.Delim('{')
				out.Infos = make(map[string]Info)
				for !in.IsDelim('}') {
					key := string(in.String())
					in.WantColon()
					var v28 Info
					easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes7(in, &v28)
					(out.Infos)[key] = v28
					in.WantComma()
				}
				in.Delim('}')
			}
		case "component_infos":
			if in.IsNull() {
				in.Skip()
			} else {
				in.Delim('{')
				if !in.IsDelim('}') {
					out.ComponentInfos = make(map[string]Info)
				} else {
					out.ComponentInfos = nil
				}
				for !in.IsDelim('}') {
					key := string(in.String())
					in.WantColon()
					var v29 Info
					easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes7(in, &v29)
					(out.ComponentInfos)[key] = v29
					in.WantComma()
				}
				in.Delim('}')
			}
		case "type":
			out.Type = string(in.String())
		case "category":
			out.Category = string(in.String())
		case "impact_level":
			out.ImpactLevel = int64(in.Int64())
		case "created":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.Created).UnmarshalJSON(data))
			}
		case "updated":
			if in.IsNull() {
				in.Skip()
				out.Updated = nil
			} else {
				if out.Updated == nil {
					out.Updated = new(datetime.CpsTime)
				}
				if data := in.Raw(); in.Ok() {
					in.AddError((*out.Updated).UnmarshalJSON(data))
				}
			}
		case "last_event_date":
			if in.IsNull() {
				in.Skip()
				out.LastEventDate = nil
			} else {
				if out.LastEventDate == nil {
					out.LastEventDate = new(datetime.CpsTime)
				}
				if data := in.Raw(); in.Ok() {
					in.AddError((*out.LastEventDate).UnmarshalJSON(data))
				}
			}
		case "connector":
			out.Connector = string(in.String())
		case "component":
			out.Component = string(in.String())
		case "last_idle_rule_apply":
			out.LastIdleRuleApply = string(in.String())
		case "idle_since":
			if in.IsNull() {
				in.Skip()
				out.IdleSince = nil
			} else {
				if out.IdleSince == nil {
					out.IdleSince = new(datetime.CpsTime)
				}
				if data := in.Raw(); in.Ok() {
					in.AddError((*out.IdleSince).UnmarshalJSON(data))
				}
			}
		case "import_source":
			out.ImportSource = string(in.String())
		case "imported":
			if in.IsNull() {
				in.Skip()
				out.Imported = nil
			} else {
				if out.Imported == nil {
					out.Imported = new(datetime.CpsTime)
				}
				if data := in.Raw(); in.Ok() {
					in.AddError((*out.Imported).UnmarshalJSON(data))
				}
			}
		case "imtags":
			if in.IsNull() {
				in.Skip()
				out.ImportTags = nil
			} else {
				in.Delim('[')
				if out.ImportTags == nil {
					if !in.IsDelim(']') {
						out.ImportTags = make([]string, 0, 4)
					} else {
						out.ImportTags = []string{}
					}
				} else {
					out.ImportTags = (out.ImportTags)[:0]
				}
				for !in.IsDelim(']') {
					var v30 string
					v30 = string(in.String())
					out.ImportTags = append(out.ImportTags, v30)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "pbehavior_info":
			easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes6(in, &out.PbehaviorInfo)
		case "last_pbehavior_date":
			if in.IsNull() {
				in.Skip()
				out.LastPbehaviorDate = nil
			} else {
				if out.LastPbehaviorDate == nil {
					out.LastPbehaviorDate = new(datetime.CpsTime)
				}
				if data := in.Raw(); in.Ok() {
					in.AddError((*out.LastPbehaviorDate).UnmarshalJSON(data))
				}
			}
		case "sli_avail_state":
			out.SliAvailState = int64(in.Int64())
		case "services":
			if in.IsNull() {
				in.Skip()
				out.Services = nil
			} else {
				in.Delim('[')
				if out.Services == nil {
					if !in.IsDelim(']') {
						out.Services = make([]string, 0, 4)
					} else {
						out.Services = []string{}
					}
				} else {
					out.Services = (out.Services)[:0]
				}
				for !in.IsDelim(']') {
					var v31 string
					v31 = string(in.String())
					out.Services = append(out.Services, v31)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "services_to_add":
			if in.IsNull() {
				in.Skip()
				out.ServicesToAdd = nil
			} else {
				in.Delim('[')
				if out.ServicesToAdd == nil {
					if !in.IsDelim(']') {
						out.ServicesToAdd = make([]string, 0, 4)
					} else {
						out.ServicesToAdd = []string{}
					}
				} else {
					out.ServicesToAdd = (out.ServicesToAdd)[:0]
				}
				for !in.IsDelim(']') {
					var v32 string
					v32 = string(in.String())
					out.ServicesToAdd = append(out.ServicesToAdd, v32)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "services_to_remove":
			if in.IsNull() {
				in.Skip()
				out.ServicesToRemove = nil
			} else {
				in.Delim('[')
				if out.ServicesToRemove == nil {
					if !in.IsDelim(']') {
						out.ServicesToRemove = make([]string, 0, 4)
					} else {
						out.ServicesToRemove = []string{}
					}
				} else {
					out.ServicesToRemove = (out.ServicesToRemove)[:0]
				}
				for !in.IsDelim(']') {
					var v33 string
					v33 = string(in.String())
					out.ServicesToRemove = append(out.ServicesToRemove, v33)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "soft_deleted":
			if in.IsNull() {
				in.Skip()
				out.SoftDeleted = nil
			} else {
				if out.SoftDeleted == nil {
					out.SoftDeleted = new(datetime.CpsTime)
				}
				if data := in.Raw(); in.Ok() {
					in.AddError((*out.SoftDeleted).UnmarshalJSON(data))
				}
			}
		case "resolve_deleted_event_processed":
			if in.IsNull() {
				in.Skip()
				out.ResolveDeletedEventProcessed = nil
			} else {
				if out.ResolveDeletedEventProcessed == nil {
					out.ResolveDeletedEventProcessed = new(datetime.CpsTime)
				}
				if data := in.Raw(); in.Ok() {
					in.AddError((*out.ResolveDeletedEventProcessed).UnmarshalJSON(data))
				}
			}
		case "state_info":
			if in.IsNull() {
				in.Skip()
				out.StateInfo = nil
			} else {
				if out.StateInfo == nil {
					out.StateInfo = new(StateInfo)
				}
				easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes8(in, out.StateInfo)
			}
		case "component_state_settings":
			out.ComponentStateSettings = bool(in.Bool())
		case "component_state_settings_to_add":
			out.ComponentStateSettingsToAdd = bool(in.Bool())
		case "component_state_settings_to_remove":
			out.ComponentStateSettingsToRemove = bool(in.Bool())
		case "comments":
			if in.IsNull() {
				in.Skip()
				out.Comments = nil
			} else {
				in.Delim('[')
				if out.Comments == nil {
					if !in.IsDelim(']') {
						out.Comments = make([]EntityComment, 0, 1)
					} else {
						out.Comments = []EntityComment{}
					}
				} else {
					out.Comments = (out.Comments)[:0]
				}
				for !in.IsDelim(']') {
					var v34 EntityComment
					easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes9(in, &v34)
					out.Comments = append(out.Comments, v34)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "last_comment":
			if in.IsNull() {
				in.Skip()
				out.LastComment = nil
			} else {
				if out.LastComment == nil {
					out.LastComment = new(EntityComment)
				}
				easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes9(in, out.LastComment)
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes2(out *jwriter.Writer, in Entity) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"_id\":"
		out.RawString(prefix[1:])
		out.String(string(in.ID))
	}
	{
		const prefix string = ",\"name\":"
		out.RawString(prefix)
		out.String(string(in.Name))
	}
	if in.Author != "" {
		const prefix string = ",\"author\":"
		out.RawString(prefix)
		out.String(string(in.Author))
	}
	{
		const prefix string = ",\"description\":"
		out.RawString(prefix)
		out.String(string(in.Description))
	}
	{
		const prefix string = ",\"enable_history\":"
		out.RawString(prefix)
		if in.EnableHistory == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
			out.RawString("null")
		} else {
			out.RawByte('[')
			for v35, v36 := range in.EnableHistory {
				if v35 > 0 {
					out.RawByte(',')
				}
				out.Raw((v36).MarshalJSON())
			}
			out.RawByte(']')
		}
	}
	{
		const prefix string = ",\"measurements\":"
		out.RawString(prefix)
		if m, ok := in.Measurements.(easyjson.Marshaler); ok {
			m.MarshalEasyJSON(out)
		} else if m, ok := in.Measurements.(json.Marshaler); ok {
			out.Raw(m.MarshalJSON())
		} else {
			out.Raw(json.Marshal(in.Measurements))
		}
	}
	{
		const prefix string = ",\"enabled\":"
		out.RawString(prefix)
		out.Bool(bool(in.Enabled))
	}
	{
		const prefix string = ",\"infos\":"
		out.RawString(prefix)
		if in.Infos == nil && (out.Flags&jwriter.NilMapAsEmpty) == 0 {
			out.RawString(`null`)
		} else {
			out.RawByte('{')
			v37First := true
			for v37Name, v37Value := range in.Infos {
				if v37First {
					v37First = false
				} else {
					out.RawByte(',')
				}
				out.String(string(v37Name))
				out.RawByte(':')
				easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes7(out, v37Value)
			}
			out.RawByte('}')
		}
	}
	if len(in.ComponentInfos) != 0 {
		const prefix string = ",\"component_infos\":"
		out.RawString(prefix)
		{
			out.RawByte('{')
			v38First := true
			for v38Name, v38Value := range in.ComponentInfos {
				if v38First {
					v38First = false
				} else {
					out.RawByte(',')
				}
				out.String(string(v38Name))
				out.RawByte(':')
				easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes7(out, v38Value)
			}
			out.RawByte('}')
		}
	}
	{
		const prefix string = ",\"type\":"
		out.RawString(prefix)
		out.String(string(in.Type))
	}
	{
		const prefix string = ",\"category\":"
		out.RawString(prefix)
		out.String(string(in.Category))
	}
	{
		const prefix string = ",\"impact_level\":"
		out.RawString(prefix)
		out.Int64(int64(in.ImpactLevel))
	}
	{
		const prefix string = ",\"created\":"
		out.RawString(prefix)
		out.Raw((in.Created).MarshalJSON())
	}
	if in.Updated != nil {
		const prefix string = ",\"updated\":"
		out.RawString(prefix)
		out.Raw((*in.Updated).MarshalJSON())
	}
	if in.LastEventDate != nil {
		const prefix string = ",\"last_event_date\":"
		out.RawString(prefix)
		out.Raw((*in.LastEventDate).MarshalJSON())
	}
	if in.Connector != "" {
		const prefix string = ",\"connector\":"
		out.RawString(prefix)
		out.String(string(in.Connector))
	}
	if in.Component != "" {
		const prefix string = ",\"component\":"
		out.RawString(prefix)
		out.String(string(in.Component))
	}
	if in.LastIdleRuleApply != "" {
		const prefix string = ",\"last_idle_rule_apply\":"
		out.RawString(prefix)
		out.String(string(in.LastIdleRuleApply))
	}
	if in.IdleSince != nil {
		const prefix string = ",\"idle_since\":"
		out.RawString(prefix)
		out.Raw((*in.IdleSince).MarshalJSON())
	}
	{
		const prefix string = ",\"import_source\":"
		out.RawString(prefix)
		out.String(string(in.ImportSource))
	}
	{
		const prefix string = ",\"imported\":"
		out.RawString(prefix)
		if in.Imported == nil {
			out.RawString("null")
		} else {
			out.Raw((*in.Imported).MarshalJSON())
		}
	}
	if len(in.ImportTags) != 0 {
		const prefix string = ",\"imtags\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v39, v40 := range in.ImportTags {
				if v39 > 0 {
					out.RawByte(',')
				}
				out.String(string(v40))
			}
			out.RawByte(']')
		}
	}
	if true {
		const prefix string = ",\"pbehavior_info\":"
		out.RawString(prefix)
		easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes6(out, in.PbehaviorInfo)
	}
	if in.LastPbehaviorDate != nil {
		const prefix string = ",\"last_pbehavior_date\":"
		out.RawString(prefix)
		out.Raw((*in.LastPbehaviorDate).MarshalJSON())
	}
	{
		const prefix string = ",\"sli_avail_state\":"
		out.RawString(prefix)
		out.Int64(int64(in.SliAvailState))
	}
	if len(in.Services) != 0 {
		const prefix string = ",\"services\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v41, v42 := range in.Services {
				if v41 > 0 {
					out.RawByte(',')
				}
				out.String(string(v42))
			}
			out.RawByte(']')
		}
	}
	if len(in.ServicesToAdd) != 0 {
		const prefix string = ",\"services_to_add\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v43, v44 := range in.ServicesToAdd {
				if v43 > 0 {
					out.RawByte(',')
				}
				out.String(string(v44))
			}
			out.RawByte(']')
		}
	}
	if len(in.ServicesToRemove) != 0 {
		const prefix string = ",\"services_to_remove\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v45, v46 := range in.ServicesToRemove {
				if v45 > 0 {
					out.RawByte(',')
				}
				out.String(string(v46))
			}
			out.RawByte(']')
		}
	}
	if in.SoftDeleted != nil {
		const prefix string = ",\"soft_deleted\":"
		out.RawString(prefix)
		out.Raw((*in.SoftDeleted).MarshalJSON())
	}
	if in.ResolveDeletedEventProcessed != nil {
		const prefix string = ",\"resolve_deleted_event_processed\":"
		out.RawString(prefix)
		out.Raw((*in.ResolveDeletedEventProcessed).MarshalJSON())
	}
	{
		const prefix string = ",\"state_info\":"
		out.RawString(prefix)
		if in.StateInfo == nil {
			out.RawString("null")
		} else {
			easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes8(out, *in.StateInfo)
		}
	}
	if in.ComponentStateSettings {
		const prefix string = ",\"component_state_settings\":"
		out.RawString(prefix)
		out.Bool(bool(in.ComponentStateSettings))
	}
	if in.ComponentStateSettingsToAdd {
		const prefix string = ",\"component_state_settings_to_add\":"
		out.RawString(prefix)
		out.Bool(bool(in.ComponentStateSettingsToAdd))
	}
	if in.ComponentStateSettingsToRemove {
		const prefix string = ",\"component_state_settings_to_remove\":"
		out.RawString(prefix)
		out.Bool(bool(in.ComponentStateSettingsToRemove))
	}
	if len(in.Comments) != 0 {
		const prefix string = ",\"comments\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v47, v48 := range in.Comments {
				if v47 > 0 {
					out.RawByte(',')
				}
				easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes9(out, v48)
			}
			out.RawByte(']')
		}
	}
	if in.LastComment != nil {
		const prefix string = ",\"last_comment\":"
		out.RawString(prefix)
		easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes9(out, *in.LastComment)
	}
	out.RawByte('}')
}
func easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes9(in *jlexer.Lexer, out *EntityComment) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "_id":
			out.ID = string(in.String())
		case "t":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.Timestamp).UnmarshalJSON(data))
			}
		case "a":
			if in.IsNull() {
				in.Skip()
				out.Author = nil
			} else {
				if out.Author == nil {
					out.Author = new(Author)
				}
				easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes10(in, out.Author)
			}
		case "m":
			out.Message = string(in.String())
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes9(out *jwriter.Writer, in EntityComment) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"_id\":"
		out.RawString(prefix[1:])
		out.String(string(in.ID))
	}
	{
		const prefix string = ",\"t\":"
		out.RawString(prefix)
		out.Raw((in.Timestamp).MarshalJSON())
	}
	{
		const prefix string = ",\"a\":"
		out.RawString(prefix)
		if in.Author == nil {
			out.RawString("null")
		} else {
			easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes10(out, *in.Author)
		}
	}
	{
		const prefix string = ",\"m\":"
		out.RawString(prefix)
		out.String(string(in.Message))
	}
	out.RawByte('}')
}
func easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes10(in *jlexer.Lexer, out *Author) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "_id":
			out.ID = string(in.String())
		case "display_name":
			out.DisplayName = string(in.String())
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes10(out *jwriter.Writer, in Author) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"_id\":"
		out.RawString(prefix[1:])
		out.String(string(in.ID))
	}
	{
		const prefix string = ",\"display_name\":"
		out.RawString(prefix)
		out.String(string(in.DisplayName))
	}
	out.RawByte('}')
}
func easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes8(in *jlexer.Lexer, out *StateInfo) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "_id":
			out.ID = string(in.String())
		case "inherited_pattern":
			if in.IsNull() {
				in.Skip()
				out.InheritedPattern = nil
			} else {
				if out.InheritedPattern == nil {
					out.InheritedPattern = new(pattern.Entity)
				}
				if in.IsNull() {
					in.Skip()
					*out.InheritedPattern = nil
				} else {
					in.Delim('[')
					if *out.InheritedPattern == nil {
						if !in.IsDelim(']') {
							*out.InheritedPattern = make(pattern.Entity, 0, 2)
						} else {
							*out.InheritedPattern = pattern.Entity{}
						}
					} else {
						*out.InheritedPattern = (*out.InheritedPattern)[:0]
					}
					for !in.IsDelim(']') {
						var v49 []pattern.FieldCondition
						if in.IsNull() {
							in.Skip()
							v49 = nil
						} else {
							in.Delim('[')
							if v49 == nil {
								if !in.IsDelim(']') {
									v49 = make([]pattern.FieldCondition, 0, 0)
								} else {
									v49 = []pattern.FieldCondition{}
								}
							} else {
								v49 = (v49)[:0]
							}
							for !in.IsDelim(']') {
								var v50 pattern.FieldCondition
								easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisPattern(in, &v50)
								v49 = append(v49, v50)
								in.WantComma()
							}
							in.Delim(']')
						}
						*out.InheritedPattern = append(*out.InheritedPattern, v49)
						in.WantComma()
					}
					in.Delim(']')
				}
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes8(out *jwriter.Writer, in StateInfo) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"_id\":"
		out.RawString(prefix[1:])
		out.String(string(in.ID))
	}
	if in.InheritedPattern != nil {
		const prefix string = ",\"inherited_pattern\":"
		out.RawString(prefix)
		if *in.InheritedPattern == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
			out.RawString("null")
		} else {
			out.RawByte('[')
			for v51, v52 := range *in.InheritedPattern {
				if v51 > 0 {
					out.RawByte(',')
				}
				if v52 == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
					out.RawString("null")
				} else {
					out.RawByte('[')
					for v53, v54 := range v52 {
						if v53 > 0 {
							out.RawByte(',')
						}
						easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisPattern(out, v54)
					}
					out.RawByte(']')
				}
			}
			out.RawByte(']')
		}
	}
	out.RawByte('}')
}
func easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisPattern(in *jlexer.Lexer, out *pattern.FieldCondition) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "field":
			out.Field = string(in.String())
		case "field_type":
			out.FieldType = string(in.String())
		case "cond":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.Condition).UnmarshalJSON(data))
			}
		case "alias":
			out.Alias = string(in.String())
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisPattern(out *jwriter.Writer, in pattern.FieldCondition) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"field\":"
		out.RawString(prefix[1:])
		out.String(string(in.Field))
	}
	if in.FieldType != "" {
		const prefix string = ",\"field_type\":"
		out.RawString(prefix)
		out.String(string(in.FieldType))
	}
	{
		const prefix string = ",\"cond\":"
		out.RawString(prefix)
		easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisPattern1(out, in.Condition)
	}
	if in.Alias != "" {
		const prefix string = ",\"alias\":"
		out.RawString(prefix)
		out.String(string(in.Alias))
	}
	out.RawByte('}')
}
func easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisPattern1(in *jlexer.Lexer, out *pattern.Condition) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "type":
			out.Type = string(in.String())
		case "value":
			if m, ok := out.Value.(easyjson.Unmarshaler); ok {
				m.UnmarshalEasyJSON(in)
			} else if m, ok := out.Value.(json.Unmarshaler); ok {
				_ = m.UnmarshalJSON(in.Raw())
			} else {
				out.Value = in.Interface()
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisPattern1(out *jwriter.Writer, in pattern.Condition) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"type\":"
		out.RawString(prefix[1:])
		out.String(string(in.Type))
	}
	{
		const prefix string = ",\"value\":"
		out.RawString(prefix)
		if m, ok := in.Value.(easyjson.Marshaler); ok {
			m.MarshalEasyJSON(out)
		} else if m, ok := in.Value.(json.Marshaler); ok {
			out.Raw(m.MarshalJSON())
		} else {
			out.Raw(json.Marshal(in.Value))
		}
	}
	out.RawByte('}')
}
func easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes7(in *jlexer.Lexer, out *Info) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "name":
			out.Name = string(in.String())
		case "description":
			out.Description = string(in.String())
		case "value":
			if m, ok := out.Value.(easyjson.Unmarshaler); ok {
				m.UnmarshalEasyJSON(in)
			} else if m, ok := out.Value.(json.Unmarshaler); ok {
				_ = m.UnmarshalJSON(in.Raw())
			} else {
				out.Value = in.Interface()
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes7(out *jwriter.Writer, in Info) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"name\":"
		out.RawString(prefix[1:])
		out.String(string(in.Name))
	}
	{
		const prefix string = ",\"description\":"
		out.RawString(prefix)
		out.String(string(in.Description))
	}
	{
		const prefix string = ",\"value\":"
		out.RawString(prefix)
		if m, ok := in.Value.(easyjson.Marshaler); ok {
			m.MarshalEasyJSON(out)
		} else if m, ok := in.Value.(json.Marshaler); ok {
			out.Raw(m.MarshalJSON())
		} else {
			out.Raw(json.Marshal(in.Value))
		}
	}
	out.RawByte('}')
}
func easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes1(in *jlexer.Lexer, out *Alarm) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "_id":
			out.ID = string(in.String())
		case "t":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.Time).UnmarshalJSON(data))
			}
		case "d":
			out.EntityID = string(in.String())
		case "tags":
			if in.IsNull() {
				in.Skip()
				out.Tags = nil
			} else {
				in.Delim('[')
				if out.Tags == nil {
					if !in.IsDelim(']') {
						out.Tags = make([]string, 0, 4)
					} else {
						out.Tags = []string{}
					}
				} else {
					out.Tags = (out.Tags)[:0]
				}
				for !in.IsDelim(']') {
					var v55 string
					v55 = string(in.String())
					out.Tags = append(out.Tags, v55)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "etags":
			if in.IsNull() {
				in.Skip()
				out.ExternalTags = nil
			} else {
				in.Delim('[')
				if out.ExternalTags == nil {
					if !in.IsDelim(']') {
						out.ExternalTags = make([]string, 0, 4)
					} else {
						out.ExternalTags = []string{}
					}
				} else {
					out.ExternalTags = (out.ExternalTags)[:0]
				}
				for !in.IsDelim(']') {
					var v56 string
					v56 = string(in.String())
					out.ExternalTags = append(out.ExternalTags, v56)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "itags":
			if in.IsNull() {
				in.Skip()
				out.InternalTags = nil
			} else {
				in.Delim('[')
				if out.InternalTags == nil {
					if !in.IsDelim(']') {
						out.InternalTags = make([]string, 0, 4)
					} else {
						out.InternalTags = []string{}
					}
				} else {
					out.InternalTags = (out.InternalTags)[:0]
				}
				for !in.IsDelim(']') {
					var v57 string
					v57 = string(in.String())
					out.InternalTags = append(out.InternalTags, v57)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "itags_upd":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.InternalTagsUpdated).UnmarshalJSON(data))
			}
		case "imtags":
			if in.IsNull() {
				in.Skip()
				out.ImportTags = nil
			} else {
				in.Delim('[')
				if out.ImportTags == nil {
					if !in.IsDelim(']') {
						out.ImportTags = make([]string, 0, 4)
					} else {
						out.ImportTags = []string{}
					}
				} else {
					out.ImportTags = (out.ImportTags)[:0]
				}
				for !in.IsDelim(']') {
					var v58 string
					v58 = string(in.String())
					out.ImportTags = append(out.ImportTags, v58)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "copy_ctags":
			out.CopyTagsFromChildren = bool(in.Bool())
		case "filter_ctags":
			if in.IsNull() {
				in.Skip()
				out.FilterChildrenTagsByLabel = nil
			} else {
				in.Delim('[')
				if out.FilterChildrenTagsByLabel == nil {
					if !in.IsDelim(']') {
						out.FilterChildrenTagsByLabel = make([]string, 0, 4)
					} else {
						out.FilterChildrenTagsByLabel = []string{}
					}
				} else {
					out.FilterChildrenTagsByLabel = (out.FilterChildrenTagsByLabel)[:0]
				}
				for !in.IsDelim(']') {
					var v59 string
					v59 = string(in.String())
					out.FilterChildrenTagsByLabel = append(out.FilterChildrenTagsByLabel, v59)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "cinfos":
			if in.IsNull() {
				in.Skip()
				out.EntityInfosFromChildren = nil
			} else {
				in.Delim('[')
				if out.EntityInfosFromChildren == nil {
					if !in.IsDelim(']') {
						out.EntityInfosFromChildren = make([]string, 0, 4)
					} else {
						out.EntityInfosFromChildren = []string{}
					}
				} else {
					out.EntityInfosFromChildren = (out.EntityInfosFromChildren)[:0]
				}
				for !in.IsDelim(']') {
					var v60 string
					v60 = string(in.String())
					out.EntityInfosFromChildren = append(out.EntityInfosFromChildren, v60)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "v":
			easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes11(in, &out.Value)
		case "kpi_assigned_instructions":
			if in.IsNull() {
				in.Skip()
				out.KpiAssignedInstructions = nil
			} else {
				in.Delim('[')
				if out.KpiAssignedInstructions == nil {
					if !in.IsDelim(']') {
						out.KpiAssignedInstructions = make([]string, 0, 4)
					} else {
						out.KpiAssignedInstructions = []string{}
					}
				} else {
					out.KpiAssignedInstructions = (out.KpiAssignedInstructions)[:0]
				}
				for !in.IsDelim(']') {
					var v61 string
					v61 = string(in.String())
					out.KpiAssignedInstructions = append(out.KpiAssignedInstructions, v61)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "kpi_executed_instructions":
			if in.IsNull() {
				in.Skip()
				out.KpiExecutedInstructions = nil
			} else {
				in.Delim('[')
				if out.KpiExecutedInstructions == nil {
					if !in.IsDelim(']') {
						out.KpiExecutedInstructions = make([]string, 0, 4)
					} else {
						out.KpiExecutedInstructions = []string{}
					}
				} else {
					out.KpiExecutedInstructions = (out.KpiExecutedInstructions)[:0]
				}
				for !in.IsDelim(']') {
					var v62 string
					v62 = string(in.String())
					out.KpiExecutedInstructions = append(out.KpiExecutedInstructions, v62)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "kpi_assigned_auto_instructions":
			if in.IsNull() {
				in.Skip()
				out.KpiAssignedAutoInstructions = nil
			} else {
				in.Delim('[')
				if out.KpiAssignedAutoInstructions == nil {
					if !in.IsDelim(']') {
						out.KpiAssignedAutoInstructions = make([]string, 0, 4)
					} else {
						out.KpiAssignedAutoInstructions = []string{}
					}
				} else {
					out.KpiAssignedAutoInstructions = (out.KpiAssignedAutoInstructions)[:0]
				}
				for !in.IsDelim(']') {
					var v63 string
					v63 = string(in.String())
					out.KpiAssignedAutoInstructions = append(out.KpiAssignedAutoInstructions, v63)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "kpi_executed_auto_instructions":
			if in.IsNull() {
				in.Skip()
				out.KpiExecutedAutoInstructions = nil
			} else {
				in.Delim('[')
				if out.KpiExecutedAutoInstructions == nil {
					if !in.IsDelim(']') {
						out.KpiExecutedAutoInstructions = make([]string, 0, 4)
					} else {
						out.KpiExecutedAutoInstructions = []string{}
					}
				} else {
					out.KpiExecutedAutoInstructions = (out.KpiExecutedAutoInstructions)[:0]
				}
				for !in.IsDelim(']') {
					var v64 string
					v64 = string(in.String())
					out.KpiExecutedAutoInstructions = append(out.KpiExecutedAutoInstructions, v64)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "auto_instruction_in_progress":
			out.InactiveAutoInstructionInProgress = bool(in.Bool())
		case "inactive_delay_meta_alarm_in_progress":
			out.InactiveDelayMetaAlarmInProgress = bool(in.Bool())
		case "meta_alarm_inactive_delay":
			if in.IsNull() {
				in.Skip()
				out.MetaAlarmInactiveDelay = nil
			} else {
				in.Delim('[')
				if out.MetaAlarmInactiveDelay == nil {
					if !in.IsDelim(']') {
						out.MetaAlarmInactiveDelay = make([]MetaAlarmInactiveDelay, 0, 1)
					} else {
						out.MetaAlarmInactiveDelay = []MetaAlarmInactiveDelay{}
					}
				} else {
					out.MetaAlarmInactiveDelay = (out.MetaAlarmInactiveDelay)[:0]
				}
				for !in.IsDelim(']') {
					var v65 MetaAlarmInactiveDelay
					easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes12(in, &v65)
					out.MetaAlarmInactiveDelay = append(out.MetaAlarmInactiveDelay, v65)
					in.WantComma()
				}
				in.Delim(']')
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes1(out *jwriter.Writer, in Alarm) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"_id\":"
		out.RawString(prefix[1:])
		out.String(string(in.ID))
	}
	{
		const prefix string = ",\"t\":"
		out.RawString(prefix)
		out.Raw((in.Time).MarshalJSON())
	}
	{
		const prefix string = ",\"d\":"
		out.RawString(prefix)
		out.String(string(in.EntityID))
	}
	if len(in.Tags) != 0 {
		const prefix string = ",\"tags\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v66, v67 := range in.Tags {
				if v66 > 0 {
					out.RawByte(',')
				}
				out.String(string(v67))
			}
			out.RawByte(']')
		}
	}
	if len(in.ExternalTags) != 0 {
		const prefix string = ",\"etags\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v68, v69 := range in.ExternalTags {
				if v68 > 0 {
					out.RawByte(',')
				}
				out.String(string(v69))
			}
			out.RawByte(']')
		}
	}
	if len(in.InternalTags) != 0 {
		const prefix string = ",\"itags\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v70, v71 := range in.InternalTags {
				if v70 > 0 {
					out.RawByte(',')
				}
				out.String(string(v71))
			}
			out.RawByte(']')
		}
	}
	{
		const prefix string = ",\"itags_upd\":"
		out.RawString(prefix)
		out.Raw((in.InternalTagsUpdated).MarshalJSON())
	}
	if len(in.ImportTags) != 0 {
		const prefix string = ",\"imtags\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v72, v73 := range in.ImportTags {
				if v72 > 0 {
					out.RawByte(',')
				}
				out.String(string(v73))
			}
			out.RawByte(']')
		}
	}
	if in.CopyTagsFromChildren {
		const prefix string = ",\"copy_ctags\":"
		out.RawString(prefix)
		out.Bool(bool(in.CopyTagsFromChildren))
	}
	if len(in.FilterChildrenTagsByLabel) != 0 {
		const prefix string = ",\"filter_ctags\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v74, v75 := range in.FilterChildrenTagsByLabel {
				if v74 > 0 {
					out.RawByte(',')
				}
				out.String(string(v75))
			}
			out.RawByte(']')
		}
	}
	if len(in.EntityInfosFromChildren) != 0 {
		const prefix string = ",\"cinfos\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v76, v77 := range in.EntityInfosFromChildren {
				if v76 > 0 {
					out.RawByte(',')
				}
				out.String(string(v77))
			}
			out.RawByte(']')
		}
	}
	{
		const prefix string = ",\"v\":"
		out.RawString(prefix)
		easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes11(out, in.Value)
	}
	if len(in.KpiAssignedInstructions) != 0 {
		const prefix string = ",\"kpi_assigned_instructions\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v78, v79 := range in.KpiAssignedInstructions {
				if v78 > 0 {
					out.RawByte(',')
				}
				out.String(string(v79))
			}
			out.RawByte(']')
		}
	}
	if len(in.KpiExecutedInstructions) != 0 {
		const prefix string = ",\"kpi_executed_instructions\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v80, v81 := range in.KpiExecutedInstructions {
				if v80 > 0 {
					out.RawByte(',')
				}
				out.String(string(v81))
			}
			out.RawByte(']')
		}
	}
	if len(in.KpiAssignedAutoInstructions) != 0 {
		const prefix string = ",\"kpi_assigned_auto_instructions\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v82, v83 := range in.KpiAssignedAutoInstructions {
				if v82 > 0 {
					out.RawByte(',')
				}
				out.String(string(v83))
			}
			out.RawByte(']')
		}
	}
	if len(in.KpiExecutedAutoInstructions) != 0 {
		const prefix string = ",\"kpi_executed_auto_instructions\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v84, v85 := range in.KpiExecutedAutoInstructions {
				if v84 > 0 {
					out.RawByte(',')
				}
				out.String(string(v85))
			}
			out.RawByte(']')
		}
	}
	if in.InactiveAutoInstructionInProgress {
		const prefix string = ",\"auto_instruction_in_progress\":"
		out.RawString(prefix)
		out.Bool(bool(in.InactiveAutoInstructionInProgress))
	}
	if in.InactiveDelayMetaAlarmInProgress {
		const prefix string = ",\"inactive_delay_meta_alarm_in_progress\":"
		out.RawString(prefix)
		out.Bool(bool(in.InactiveDelayMetaAlarmInProgress))
	}
	if len(in.MetaAlarmInactiveDelay) != 0 {
		const prefix string = ",\"meta_alarm_inactive_delay\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v86, v87 := range in.MetaAlarmInactiveDelay {
				if v86 > 0 {
					out.RawByte(',')
				}
				easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes12(out, v87)
			}
			out.RawByte(']')
		}
	}
	out.RawByte('}')
}
func easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes12(in *jlexer.Lexer, out *MetaAlarmInactiveDelay) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "ID":
			out.ID = string(in.String())
		case "Expired":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.Expired).UnmarshalJSON(data))
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes12(out *jwriter.Writer, in MetaAlarmInactiveDelay) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"ID\":"
		out.RawString(prefix[1:])
		out.String(string(in.ID))
	}
	{
		const prefix string = ",\"Expired\":"
		out.RawString(prefix)
		out.Raw((in.Expired).MarshalJSON())
	}
	out.RawByte('}')
}
func easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes11(in *jlexer.Lexer, out *AlarmValue) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "ack":
			if in.IsNull() {
				in.Skip()
				out.ACK = nil
			} else {
				if out.ACK == nil {
					out.ACK = new(AlarmStep)
				}
				easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(in, out.ACK)
			}
		case "canceled":
			if in.IsNull() {
				in.Skip()
				out.Canceled = nil
			} else {
				if out.Canceled == nil {
					out.Canceled = new(AlarmStep)
				}
				easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(in, out.Canceled)
			}
		case "snooze":
			if in.IsNull() {
				in.Skip()
				out.Snooze = nil
			} else {
				if out.Snooze == nil {
					out.Snooze = new(AlarmStep)
				}
				easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(in, out.Snooze)
			}
		case "state":
			if in.IsNull() {
				in.Skip()
				out.State = nil
			} else {
				if out.State == nil {
					out.State = new(AlarmStep)
				}
				easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(in, out.State)
			}
		case "status":
			if in.IsNull() {
				in.Skip()
				out.Status = nil
			} else {
				if out.Status == nil {
					out.Status = new(AlarmStep)
				}
				easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(in, out.Status)
			}
		case "comments":
			if in.IsNull() {
				in.Skip()
				out.Comments = nil
			} else {
				in.Delim('[')
				if out.Comments == nil {
					if !in.IsDelim(']') {
						out.Comments = make([]AlarmStep, 0, 0)
					} else {
						out.Comments = []AlarmStep{}
					}
				} else {
					out.Comments = (out.Comments)[:0]
				}
				for !in.IsDelim(']') {
					var v88 AlarmStep
					easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(in, &v88)
					out.Comments = append(out.Comments, v88)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "last_comment":
			if in.IsNull() {
				in.Skip()
				out.LastComment = nil
			} else {
				if out.LastComment == nil {
					out.LastComment = new(AlarmStep)
				}
				easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(in, out.LastComment)
			}
		case "change_state":
			if in.IsNull() {
				in.Skip()
				out.ChangeState = nil
			} else {
				if out.ChangeState == nil {
					out.ChangeState = new(AlarmStep)
				}
				easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(in, out.ChangeState)
			}
		case "tickets":
			if in.IsNull() {
				in.Skip()
				out.Tickets = nil
			} else {
				in.Delim('[')
				if out.Tickets == nil {
					if !in.IsDelim(']') {
						out.Tickets = make([]AlarmStep, 0, 0)
					} else {
						out.Tickets = []AlarmStep{}
					}
				} else {
					out.Tickets = (out.Tickets)[:0]
				}
				for !in.IsDelim(']') {
					var v89 AlarmStep
					easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(in, &v89)
					out.Tickets = append(out.Tickets, v89)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "ticket":
			if in.IsNull() {
				in.Skip()
				out.Ticket = nil
			} else {
				if out.Ticket == nil {
					out.Ticket = new(AlarmStep)
				}
				easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(in, out.Ticket)
			}
		case "steps":
			if in.IsNull() {
				in.Skip()
				out.Steps = nil
			} else {
				in.Delim('[')
				if out.Steps == nil {
					if !in.IsDelim(']') {
						out.Steps = make(AlarmSteps, 0, 0)
					} else {
						out.Steps = AlarmSteps{}
					}
				} else {
					out.Steps = (out.Steps)[:0]
				}
				for !in.IsDelim(']') {
					var v90 AlarmStep
					easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(in, &v90)
					out.Steps = append(out.Steps, v90)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "component":
			out.Component = string(in.String())
		case "connector":
			out.Connector = string(in.String())
		case "connector_name":
			out.ConnectorName = string(in.String())
		case "creation_date":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.CreationDate).UnmarshalJSON(data))
			}
		case "activation_date":
			if in.IsNull() {
				in.Skip()
				out.ActivationDate = nil
			} else {
				if out.ActivationDate == nil {
					out.ActivationDate = new(datetime.CpsTime)
				}
				if data := in.Raw(); in.Ok() {
					in.AddError((*out.ActivationDate).UnmarshalJSON(data))
				}
			}
		case "display_name":
			out.DisplayName = string(in.String())
		case "hard_limit":
			if in.IsNull() {
				in.Skip()
				out.HardLimit = nil
			} else {
				if out.HardLimit == nil {
					out.HardLimit = new(CpsNumber)
				}
				if data := in.Raw(); in.Ok() {
					in.AddError((*out.HardLimit).UnmarshalJSON(data))
				}
			}
		case "initial_output":
			out.InitialOutput = string(in.String())
		case "output":
			out.Output = string(in.String())
		case "initial_long_output":
			out.InitialLongOutput = string(in.String())
		case "long_output":
			out.LongOutput = string(in.String())
		case "long_output_history":
			if in.IsNull() {
				in.Skip()
				out.LongOutputHistory = nil
			} else {
				in.Delim('[')
				if out.LongOutputHistory == nil {
					if !in.IsDelim(']') {
						out.LongOutputHistory = make([]string, 0, 4)
					} else {
						out.LongOutputHistory = []string{}
					}
				} else {
					out.LongOutputHistory = (out.LongOutputHistory)[:0]
				}
				for !in.IsDelim(']') {
					var v91 string
					v91 = string(in.String())
					out.LongOutputHistory = append(out.LongOutputHistory, v91)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "last_update_date":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.LastUpdateDate).UnmarshalJSON(data))
			}
		case "last_event_date":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.LastEventDate).UnmarshalJSON(data))
			}
		case "last_st_upd_dt":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.LastStateOrStatusUpdateDate).UnmarshalJSON(data))
			}
		case "resource":
			out.Resource = string(in.String())
		case "resolved":
			if in.IsNull() {
				in.Skip()
				out.Resolved = nil
			} else {
				if out.Resolved == nil {
					out.Resolved = new(datetime.CpsTime)
				}
				if data := in.Raw(); in.Ok() {
					in.AddError((*out.Resolved).UnmarshalJSON(data))
				}
			}
		case "pbehavior_info":
			easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes6(in, &out.PbehaviorInfo)
		case "meta":
			out.Meta = string(in.String())
		case "meta_value_path":
			out.MetaValuePath = string(in.String())
		case "parents":
			if in.IsNull() {
				in.Skip()
				out.Parents = nil
			} else {
				in.Delim('[')
				if out.Parents == nil {
					if !in.IsDelim(']') {
						out.Parents = make([]string, 0, 4)
					} else {
						out.Parents = []string{}
					}
				} else {
					out.Parents = (out.Parents)[:0]
				}
				for !in.IsDelim(']') {
					var v92 string
					v92 = string(in.String())
					out.Parents = append(out.Parents, v92)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "children":
			if in.IsNull() {
				in.Skip()
				out.Children = nil
			} else {
				in.Delim('[')
				if out.Children == nil {
					if !in.IsDelim(']') {
						out.Children = make([]string, 0, 4)
					} else {
						out.Children = []string{}
					}
				} else {
					out.Children = (out.Children)[:0]
				}
				for !in.IsDelim(']') {
					var v93 string
					v93 = string(in.String())
					out.Children = append(out.Children, v93)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "unlinked_parents":
			if in.IsNull() {
				in.Skip()
				out.UnlinkedParents = nil
			} else {
				in.Delim('[')
				if out.UnlinkedParents == nil {
					if !in.IsDelim(']') {
						out.UnlinkedParents = make([]string, 0, 4)
					} else {
						out.UnlinkedParents = []string{}
					}
				} else {
					out.UnlinkedParents = (out.UnlinkedParents)[:0]
				}
				for !in.IsDelim(']') {
					var v94 string
					v94 = string(in.String())
					out.UnlinkedParents = append(out.UnlinkedParents, v94)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "state_changes_since_status_update":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.StateChangesSinceStatusUpdate).UnmarshalJSON(data))
			}
		case "total_state_changes":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.TotalStateChanges).UnmarshalJSON(data))
			}
		case "events_count":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.EventsCount).UnmarshalJSON(data))
			}
		case "infos":
			if in.IsNull() {
				in.Skip()
			} else {
				in.Delim('{')
				out.Infos = make(map[string]map[string]interface{})
				for !in.IsDelim('}') {
					key := string(in.String())
					in.WantColon()
					var v95 map[string]interface{}
					if in.IsNull() {
						in.Skip()
					} else {
						in.Delim('{')
						v95 = make(map[string]interface{})
						for !in.IsDelim('}') {
							key := string(in.String())
							in.WantColon()
							var v96 interface{}
							if m, ok := v96.(easyjson.Unmarshaler); ok {
								m.UnmarshalEasyJSON(in)
							} else if m, ok := v96.(json.Unmarshaler); ok {
								_ = m.UnmarshalJSON(in.Raw())
							} else {
								v96 = in.Interface()
							}
							(v95)[key] = v96
							in.WantComma()
						}
						in.Delim('}')
					}
					(out.Infos)[key] = v95
					in.WantComma()
				}
				in.Delim('}')
			}
		case "last_infos_update":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.LastInfosUpdate).UnmarshalJSON(data))
			}
		case "inactive_start":
			if in.IsNull() {
				in.Skip()
				out.InactiveStart = nil
			} else {
				if out.InactiveStart == nil {
					out.InactiveStart = new(datetime.CpsTime)
				}
				if data := in.Raw(); in.Ok() {
					in.AddError((*out.InactiveStart).UnmarshalJSON(data))
				}
			}
		case "duration":
			out.Duration = int64(in.Int64())
		case "current_state_duration":
			out.CurrentStateDuration = int64(in.Int64())
		case "active_duration":
			out.ActiveDuration = int64(in.Int64())
		case "inactive_duration":
			out.InactiveDuration = int64(in.Int64())
		case "snooze_duration":
			out.SnoozeDuration = int64(in.Int64())
		case "pbh_inactive_duration":
			out.PbehaviorInactiveDuration = int64(in.Int64())
		case "close_delay_value":
			out.CloseDelayValue = int64(in.Int64())
		case "close_delay":
			if in.IsNull() {
				in.Skip()
				out.CloseDelay = nil
			} else {
				if out.CloseDelay == nil {
					out.CloseDelay = new(AlarmStep)
				}
				easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(in, out.CloseDelay)
			}
		case "max_state":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.MaxState).UnmarshalJSON(data))
			}
		case "initial_state":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.InitialState).UnmarshalJSON(data))
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes11(out *jwriter.Writer, in AlarmValue) {
	out.RawByte('{')
	first := true
	_ = first
	if in.ACK != nil {
		const prefix string = ",\"ack\":"
		first = false
		out.RawString(prefix[1:])
		easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(out, *in.ACK)
	}
	if in.Canceled != nil {
		const prefix string = ",\"canceled\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(out, *in.Canceled)
	}
	if in.Snooze != nil {
		const prefix string = ",\"snooze\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(out, *in.Snooze)
	}
	if in.State != nil {
		const prefix string = ",\"state\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(out, *in.State)
	}
	if in.Status != nil {
		const prefix string = ",\"status\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(out, *in.Status)
	}
	if len(in.Comments) != 0 {
		const prefix string = ",\"comments\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		{
			out.RawByte('[')
			for v97, v98 := range in.Comments {
				if v97 > 0 {
					out.RawByte(',')
				}
				easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(out, v98)
			}
			out.RawByte(']')
		}
	}
	if in.LastComment != nil {
		const prefix string = ",\"last_comment\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(out, *in.LastComment)
	}
	if in.ChangeState != nil {
		const prefix string = ",\"change_state\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(out, *in.ChangeState)
	}
	if len(in.Tickets) != 0 {
		const prefix string = ",\"tickets\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		{
			out.RawByte('[')
			for v99, v100 := range in.Tickets {
				if v99 > 0 {
					out.RawByte(',')
				}
				easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(out, v100)
			}
			out.RawByte(']')
		}
	}
	if in.Ticket != nil {
		const prefix string = ",\"ticket\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(out, *in.Ticket)
	}
	{
		const prefix string = ",\"steps\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		if in.Steps == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
			out.RawString("null")
		} else {
			out.RawByte('[')
			for v101, v102 := range in.Steps {
				if v101 > 0 {
					out.RawByte(',')
				}
				easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(out, v102)
			}
			out.RawByte(']')
		}
	}
	{
		const prefix string = ",\"component\":"
		out.RawString(prefix)
		out.String(string(in.Component))
	}
	{
		const prefix string = ",\"connector\":"
		out.RawString(prefix)
		out.String(string(in.Connector))
	}
	{
		const prefix string = ",\"connector_name\":"
		out.RawString(prefix)
		out.String(string(in.ConnectorName))
	}
	{
		const prefix string = ",\"creation_date\":"
		out.RawString(prefix)
		out.Raw((in.CreationDate).MarshalJSON())
	}
	if in.ActivationDate != nil {
		const prefix string = ",\"activation_date\":"
		out.RawString(prefix)
		out.Raw((*in.ActivationDate).MarshalJSON())
	}
	{
		const prefix string = ",\"display_name\":"
		out.RawString(prefix)
		out.String(string(in.DisplayName))
	}
	if in.HardLimit != nil {
		const prefix string = ",\"hard_limit\":"
		out.RawString(prefix)
		out.Raw((*in.HardLimit).MarshalJSON())
	}
	{
		const prefix string = ",\"initial_output\":"
		out.RawString(prefix)
		out.String(string(in.InitialOutput))
	}
	{
		const prefix string = ",\"output\":"
		out.RawString(prefix)
		out.String(string(in.Output))
	}
	{
		const prefix string = ",\"initial_long_output\":"
		out.RawString(prefix)
		out.String(string(in.InitialLongOutput))
	}
	{
		const prefix string = ",\"long_output\":"
		out.RawString(prefix)
		out.String(string(in.LongOutput))
	}
	{
		const prefix string = ",\"long_output_history\":"
		out.RawString(prefix)
		if in.LongOutputHistory == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
			out.RawString("null")
		} else {
			out.RawByte('[')
			for v103, v104 := range in.LongOutputHistory {
				if v103 > 0 {
					out.RawByte(',')
				}
				out.String(string(v104))
			}
			out.RawByte(']')
		}
	}
	{
		const prefix string = ",\"last_update_date\":"
		out.RawString(prefix)
		out.Raw((in.LastUpdateDate).MarshalJSON())
	}
	{
		const prefix string = ",\"last_event_date\":"
		out.RawString(prefix)
		out.Raw((in.LastEventDate).MarshalJSON())
	}
	{
		const prefix string = ",\"last_st_upd_dt\":"
		out.RawString(prefix)
		out.Raw((in.LastStateOrStatusUpdateDate).MarshalJSON())
	}
	if in.Resource != "" {
		const prefix string = ",\"resource\":"
		out.RawString(prefix)
		out.String(string(in.Resource))
	}
	if in.Resolved != nil {
		const prefix string = ",\"resolved\":"
		out.RawString(prefix)
		out.Raw((*in.Resolved).MarshalJSON())
	}
	if true {
		const prefix string = ",\"pbehavior_info\":"
		out.RawString(prefix)
		easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes6(out, in.PbehaviorInfo)
	}
	if in.Meta != "" {
		const prefix string = ",\"meta\":"
		out.RawString(prefix)
		out.String(string(in.Meta))
	}
	if in.MetaValuePath != "" {
		const prefix string = ",\"meta_value_path\":"
		out.RawString(prefix)
		out.String(string(in.MetaValuePath))
	}
	{
		const prefix string = ",\"parents\":"
		out.RawString(prefix)
		if in.Parents == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
			out.RawString("null")
		} else {
			out.RawByte('[')
			for v105, v106 := range in.Parents {
				if v105 > 0 {
					out.RawByte(',')
				}
				out.String(string(v106))
			}
			out.RawByte(']')
		}
	}
	{
		const prefix string = ",\"children\":"
		out.RawString(prefix)
		if in.Children == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
			out.RawString("null")
		} else {
			out.RawByte('[')
			for v107, v108 := range in.Children {
				if v107 > 0 {
					out.RawByte(',')
				}
				out.String(string(v108))
			}
			out.RawByte(']')
		}
	}
	{
		const prefix string = ",\"unlinked_parents\":"
		out.RawString(prefix)
		if in.UnlinkedParents == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
			out.RawString("null")
		} else {
			out.RawByte('[')
			for v109, v110 := range in.UnlinkedParents {
				if v109 > 0 {
					out.RawByte(',')
				}
				out.String(string(v110))
			}
			out.RawByte(']')
		}
	}
	if in.StateChangesSinceStatusUpdate != 0 {
		const prefix string = ",\"state_changes_since_status_update\":"
		out.RawString(prefix)
		out.Raw((in.StateChangesSinceStatusUpdate).MarshalJSON())
	}
	if in.TotalStateChanges != 0 {
		const prefix string = ",\"total_state_changes\":"
		out.RawString(prefix)
		out.Raw((in.TotalStateChanges).MarshalJSON())
	}
	if in.EventsCount != 0 {
		const prefix string = ",\"events_count\":"
		out.RawString(prefix)
		out.Raw((in.EventsCount).MarshalJSON())
	}
	{
		const prefix string = ",\"infos\":"
		out.RawString(prefix)
		if in.Infos == nil && (out.Flags&jwriter.NilMapAsEmpty) == 0 {
			out.RawString(`null`)
		} else {
			out.RawByte('{')
			v111First := true
			for v111Name, v111Value := range in.Infos {
				if v111First {
					v111First = false
				} else {
					out.RawByte(',')
				}
				out.String(string(v111Name))
				out.RawByte(':')
				if v111Value == nil && (out.Flags&jwriter.NilMapAsEmpty) == 0 {
					out.RawString(`null`)
				} else {
					out.RawByte('{')
					v112First := true
					for v112Name, v112Value := range v111Value {
						if v112First {
							v112First = false
						} else {
							out.RawByte(',')
						}
						out.String(string(v112Name))
						out.RawByte(':')
						if m, ok := v112Value.(easyjson.Marshaler); ok {
							m.MarshalEasyJSON(out)
						} else if m, ok := v112Value.(json.Marshaler); ok {
							out.Raw(m.MarshalJSON())
						} else {
							out.Raw(json.Marshal(v112Value))
						}
					}
					out.RawByte('}')
				}
			}
			out.RawByte('}')
		}
	}
	if true {
		const prefix string = ",\"last_infos_update\":"
		out.RawString(prefix)
		out.Raw((in.LastInfosUpdate).MarshalJSON())
	}
	{
		const prefix string = ",\"inactive_start\":"
		out.RawString(prefix)
		if in.InactiveStart == nil {
			out.RawString("null")
		} else {
			out.Raw((*in.InactiveStart).MarshalJSON())
		}
	}
	{
		const prefix string = ",\"duration\":"
		out.RawString(prefix)
		out.Int64(int64(in.Duration))
	}
	{
		const prefix string = ",\"current_state_duration\":"
		out.RawString(prefix)
		out.Int64(int64(in.CurrentStateDuration))
	}
	{
		const prefix string = ",\"active_duration\":"
		out.RawString(prefix)
		out.Int64(int64(in.ActiveDuration))
	}
	{
		const prefix string = ",\"inactive_duration\":"
		out.RawString(prefix)
		out.Int64(int64(in.InactiveDuration))
	}
	{
		const prefix string = ",\"snooze_duration\":"
		out.RawString(prefix)
		out.Int64(int64(in.SnoozeDuration))
	}
	{
		const prefix string = ",\"pbh_inactive_duration\":"
		out.RawString(prefix)
		out.Int64(int64(in.PbehaviorInactiveDuration))
	}
	if in.CloseDelayValue != 0 {
		const prefix string = ",\"close_delay_value\":"
		out.RawString(prefix)
		out.Int64(int64(in.CloseDelayValue))
	}
	if in.CloseDelay != nil {
		const prefix string = ",\"close_delay\":"
		out.RawString(prefix)
		easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(out, *in.CloseDelay)
	}
	if in.MaxState != 0 {
		const prefix string = ",\"max_state\":"
		out.RawString(prefix)
		out.Raw((in.MaxState).MarshalJSON())
	}
	if in.InitialState != 0 {
		const prefix string = ",\"initial_state\":"
		out.RawString(prefix)
		out.Raw((in.InitialState).MarshalJSON())
	}
	out.RawByte('}')
}
func easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(in *jlexer.Lexer, out *AlarmStep) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "_t":
			out.Type = string(in.String())
		case "t":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.Timestamp).UnmarshalJSON(data))
			}
		case "a":
			out.Author = string(in.String())
		case "user_id":
			out.UserID = string(in.String())
		case "m":
			out.Message = string(in.String())
		case "role":
			out.Role = string(in.String())
		case "val":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.Value).UnmarshalJSON(data))
			}
		case "statecounter":
			easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes14(in, &out.StateCounter)
		case "pbehavior_canonical_type":
			out.PbehaviorCanonicalType = string(in.String())
		case "icon_name":
			out.IconName = string(in.String())
		case "color":
			out.Color = string(in.String())
		case "initiator":
			out.Initiator = string(in.String())
		case "exec":
			out.Execution = string(in.String())
		case "dgroup":
			out.DisplayGroup = string(in.String())
		case "in_pbh":
			out.InPbehaviorInterval = bool(in.Bool())
		case "ticket":
			out.Ticket = string(in.String())
		case "ticket_url":
			out.TicketURL = string(in.String())
		case "ticket_url_title":
			out.TicketURLTitle = string(in.String())
		case "ticket_comment":
			out.TicketComment = string(in.String())
		case "ticket_system_name":
			out.TicketSystemName = string(in.String())
		case "ticket_meta_alarm_id":
			out.TicketMetaAlarmID = string(in.String())
		case "ticket_rule_id":
			out.TicketRuleID = string(in.String())
		case "ticket_rule_name":
			out.TicketRuleName = string(in.String())
		case "ticket_data":
			if in.IsNull() {
				in.Skip()
			} else {
				in.Delim('{')
				if !in.IsDelim('}') {
					out.TicketData = make(map[string]string)
				} else {
					out.TicketData = nil
				}
				for !in.IsDelim('}') {
					key := string(in.String())
					in.WantColon()
					var v113 string
					v113 = string(in.String())
					(out.TicketData)[key] = v113
					in.WantComma()
				}
				in.Delim('}')
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes13(out *jwriter.Writer, in AlarmStep) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"_t\":"
		out.RawString(prefix[1:])
		out.String(string(in.Type))
	}
	{
		const prefix string = ",\"t\":"
		out.RawString(prefix)
		out.Raw((in.Timestamp).MarshalJSON())
	}
	{
		const prefix string = ",\"a\":"
		out.RawString(prefix)
		out.String(string(in.Author))
	}
	if in.UserID != "" {
		const prefix string = ",\"user_id\":"
		out.RawString(prefix)
		out.String(string(in.UserID))
	}
	{
		const prefix string = ",\"m\":"
		out.RawString(prefix)
		out.String(string(in.Message))
	}
	if in.Role != "" {
		const prefix string = ",\"role\":"
		out.RawString(prefix)
		out.String(string(in.Role))
	}
	{
		const prefix string = ",\"val\":"
		out.RawString(prefix)
		out.Raw((in.Value).MarshalJSON())
	}
	if true {
		const prefix string = ",\"statecounter\":"
		out.RawString(prefix)
		easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes14(out, in.StateCounter)
	}
	if in.PbehaviorCanonicalType != "" {
		const prefix string = ",\"pbehavior_canonical_type\":"
		out.RawString(prefix)
		out.String(string(in.PbehaviorCanonicalType))
	}
	if in.IconName != "" {
		const prefix string = ",\"icon_name\":"
		out.RawString(prefix)
		out.String(string(in.IconName))
	}
	if in.Color != "" {
		const prefix string = ",\"color\":"
		out.RawString(prefix)
		out.String(string(in.Color))
	}
	if in.Initiator != "" {
		const prefix string = ",\"initiator\":"
		out.RawString(prefix)
		out.String(string(in.Initiator))
	}
	if in.Execution != "" {
		const prefix string = ",\"exec\":"
		out.RawString(prefix)
		out.String(string(in.Execution))
	}
	if in.DisplayGroup != "" {
		const prefix string = ",\"dgroup\":"
		out.RawString(prefix)
		out.String(string(in.DisplayGroup))
	}
	if in.InPbehaviorInterval {
		const prefix string = ",\"in_pbh\":"
		out.RawString(prefix)
		out.Bool(bool(in.InPbehaviorInterval))
	}
	if in.Ticket != "" {
		const prefix string = ",\"ticket\":"
		out.RawString(prefix)
		out.String(string(in.Ticket))
	}
	if in.TicketURL != "" {
		const prefix string = ",\"ticket_url\":"
		out.RawString(prefix)
		out.String(string(in.TicketURL))
	}
	if in.TicketURLTitle != "" {
		const prefix string = ",\"ticket_url_title\":"
		out.RawString(prefix)
		out.String(string(in.TicketURLTitle))
	}
	if in.TicketComment != "" {
		const prefix string = ",\"ticket_comment\":"
		out.RawString(prefix)
		out.String(string(in.TicketComment))
	}
	if in.TicketSystemName != "" {
		const prefix string = ",\"ticket_system_name\":"
		out.RawString(prefix)
		out.String(string(in.TicketSystemName))
	}
	if in.TicketMetaAlarmID != "" {
		const prefix string = ",\"ticket_meta_alarm_id\":"
		out.RawString(prefix)
		out.String(string(in.TicketMetaAlarmID))
	}
	if in.TicketRuleID != "" {
		const prefix string = ",\"ticket_rule_id\":"
		out.RawString(prefix)
		out.String(string(in.TicketRuleID))
	}
	if in.TicketRuleName != "" {
		const prefix string = ",\"ticket_rule_name\":"
		out.RawString(prefix)
		out.String(string(in.TicketRuleName))
	}
	if len(in.TicketData) != 0 {
		const prefix string = ",\"ticket_data\":"
		out.RawString(prefix)
		{
			out.RawByte('{')
			v114First := true
			for v114Name, v114Value := range in.TicketData {
				if v114First {
					v114First = false
				} else {
					out.RawByte(',')
				}
				out.String(string(v114Name))
				out.RawByte(':')
				out.String(string(v114Value))
			}
			out.RawByte('}')
		}
	}
	out.RawByte('}')
}
func easyjsonF642ad3eDecodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes14(in *jlexer.Lexer, out *CropCounter) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "statechanges":
			out.StateChanges = int(in.Int())
		case "stateinc":
			out.Stateinc = int(in.Int())
		case "statedec":
			out.Statedec = int(in.Int())
		case "state:0":
			out.StateInfo = int(in.Int())
		case "state:1":
			out.StateMinor = int(in.Int())
		case "state:2":
			out.StateMajor = int(in.Int())
		case "state:3":
			out.StateCritical = int(in.Int())
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjsonF642ad3eEncodeGitCanopsisNetCanopsisCanopsisCommunityCommunityGoEnginesCommunityLibCanopsisTypes14(out *jwriter.Writer, in CropCounter) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"statechanges\":"
		out.RawString(prefix[1:])
		out.Int(int(in.StateChanges))
	}
	{
		const prefix string = ",\"stateinc\":"
		out.RawString(prefix)
		out.Int(int(in.Stateinc))
	}
	{
		const prefix string = ",\"statedec\":"
		out.RawString(prefix)
		out.Int(int(in.Statedec))
	}
	if in.StateInfo != 0 {
		const prefix string = ",\"state:0\":"
		out.RawString(prefix)
		out.Int(int(in.StateInfo))
	}
	if in.StateMinor != 0 {
		const prefix string = ",\"state:1\":"
		out.RawString(prefix)
		out.Int(int(in.StateMinor))
	}
	if in.StateMajor != 0 {
		const prefix string = ",\"state:2\":"
		out.RawString(prefix)
		out.Int(int(in.StateMajor))
	}
	if in.StateCritical != 0 {
		const prefix string = ",\"state:3\":"
		out.RawString(prefix)
		out.Int(int(in.StateCritical))
	}
	out.RawByte('}')
}
