func (eventdestination *EventDestination) UnmarshalJSON(b []byte) error {
	type temp EventDestination
	var t struct {
		temp
	}
	err := json.Unmarshal(b, &t)
	if err != nil {
		return err
	}
	*eventdestination = EventDestination(t.temp)
	eventdestination.rawData = b
	return nil
}
UnmarshalJSON unmarshals a EventDestination object from the raw JSON.
package redfish
import (
	"encoding/json"
	"fmt"
	"net/url"
	"reflect"
	"strings"
	"github.com/stmcginnis/gofish/common"
)
type DeliveryRetryPolicy string
const (
	TerminateAfterRetriesDeliveryRetryPolicy DeliveryRetryPolicy = "TerminateAfterRetries"
	SuspendRetriesDeliveryRetryPolicy DeliveryRetryPolicy = "SuspendRetries"
	RetryForeverDeliveryRetryPolicy DeliveryRetryPolicy = "RetryForever"
)
type EventDestinationProtocol string
const (
	RedfishEventDestinationProtocol EventDestinationProtocol = "Redfish"
	SNMPv1EventDestinationProtocol EventDestinationProtocol = "SNMPv1"
	SNMPv2cEventDestinationProtocol EventDestinationProtocol = "SNMPv2c"
	SNMPv3EventDestinationProtocol EventDestinationProtocol = "SNMPv3"
	SMTPEventDestinationProtocol EventDestinationProtocol = "SMTP"
)
type SNMPAuthenticationProtocols string
const (
	NoneSNMPAuthenticationProtocols SNMPAuthenticationProtocols = "None"
	CommunityStringSNMPAuthenticationProtocols SNMPAuthenticationProtocols = "CommunityString"
	HMACMD5SNMPAuthenticationProtocols SNMPAuthenticationProtocols = "HMAC_MD5"
	HMACSHA96SNMPAuthenticationProtocols SNMPAuthenticationProtocols = "HMAC_SHA96"
)
type SNMPEncryptionProtocols string
const (
	NoneSNMPEncryptionProtocols SNMPEncryptionProtocols = "None"
	CBCDESSNMPEncryptionProtocols SNMPEncryptionProtocols = "CBC_DES"
	CFB128AES128SNMPEncryptionProtocols SNMPEncryptionProtocols = "CFB128_AES128"
)
type SubscriptionType string
const (
	RedfishEventSubscriptionType SubscriptionType = "RedfishEvent"
	SSESubscriptionType SubscriptionType = "SSE"
	SNMPTrapSubscriptionType SubscriptionType = "SNMPTrap"
	SNMPInformSubscriptionType SubscriptionType = "SNMPInform"
)
type EventDestination struct {
	common.Entity
	ODataContext string `json:"@odata.context"`
	ODataType string `json:"@odata.type"`
	Context string
	DeliveryRetryPolicy DeliveryRetryPolicy
	Description string
	Destination string
	EventFormatType EventFormatType
	EventTypes []EventType
	HTTPHeaders []HTTPHeaderProperty `json:"HttpHeaders"`
	IncludeOriginOfCondition bool
	MessageIDs []string `json:"MessageIds"`
	MetricReportDefinitionsCount int `json:"MetricReportDefinitions@odata.count"`
	OriginResourcesCount int `json:"OriginResources@odata.count"`
	Protocol EventDestinationProtocol
	RegistryPrefixes []string
	ResourceTypes []string
	SNMP SNMPSettings
	Status common.Status
	SubordinateResources bool
	SubscriptionType SubscriptionType
	rawData []byte
}