diff --git a/model/meta/MetaNoAuthProbeStatus.go b/model/meta/MetaNoAuthProbeStatus.go index 1a9264d..2018877 100644 --- a/model/meta/MetaNoAuthProbeStatus.go +++ b/model/meta/MetaNoAuthProbeStatus.go @@ -1,8 +1,64 @@ package meta -import "encoding/json" +import ( + "encoding/json" + "fmt" +) type MetaNoAuthProbeStatus struct { ID json.Number `json:"id,Number,omitempty"` Name string `json:"name,omitempty"` } + +type NoAuthProbeStatusType int + +const ( + NoAuthProbeStatusTypeACCEPT NoAuthProbeStatusType = 1 + iota + NoAuthProbeStatusTypeDENY + NoAuthProbeStatusTypePROCESS +) + +var ( + noAuthProbeStatusTypeID = map[NoAuthProbeStatusType]string{ + NoAuthProbeStatusTypeACCEPT: "ACCEPT", + NoAuthProbeStatusTypeDENY: "DENY", + NoAuthProbeStatusTypePROCESS: "PROCESS", + } + + noAuthProbeStatusTypeName = map[string]NoAuthProbeStatusType{ + "ACCEPT": NoAuthProbeStatusTypeACCEPT, + "DENY": NoAuthProbeStatusTypeDENY, + "PROCESS": NoAuthProbeStatusTypePROCESS, + } +) + +func ToNoAuthProbeStatusType(v string) NoAuthProbeStatusType { + return noAuthProbeStatusTypeName[v] +} + +func (ct NoAuthProbeStatusType) String() string { + return noAuthProbeStatusTypeID[ct] +} + +func (ct NoAuthProbeStatusType) MarshalJSON() ([]byte, error) { + value, ok := noAuthProbeStatusTypeID[ct] + if !ok { + return nil, fmt.Errorf("Invalid EnumType[%s] value", ct) + } + return json.Marshal(value) +} + +func (ct NoAuthProbeStatusType) UnmarshalJSON(b []byte) error { + var s string + err := json.Unmarshal(b, &s) + if err != nil { + return err + } + + value, ok := noAuthProbeStatusTypeName[s] + if !ok { + return fmt.Errorf("Invalid EnumType[%s] value", s) + } + ct = value + return nil +}