func (s StacktraceJSReport) GetType() string {
	return "stacktracejs"
}
GetType returns report type
package frontreport
import "strings"
type Reportable interface {
	GetType() string
	GetService() string
	SetTimestamp(string)
	SetHost(string)
}
type Report struct {
	Timestamp string `json:"@timestamp"`
	Host      string `json:"frontreport-host"`
	Service   string `json:"service"`
}
func (r *Report) SetTimestamp(ts string) {
	r.Timestamp = ts
}
func (r *Report) SetHost(h string) {
	r.Host = h
}
func (r *Report) GetService() string {
	return strings.ToLower(r.Service)
}
type CSPReport struct {
	Report
	Body struct {
		DocumentURI        string `json:"document-uri"`
		Referrer           string `json:"referrer"`
		BlockedURI         string `json:"blocked-uri"`
		ViolatedDirective  string `json:"violated-directive"`
		EffectiveDirective string `json:"effective-directive"`
		OriginalPolicy     string `json:"original-policy"`
	} `json:"csp-report"`
}
func (c CSPReport) GetType() string {
	return "csp"
}
type PKPReport struct {
	Report
	DateTime                  string   `json:"date-time"`
	Hostname                  string   `json:"hostname"`
	Port                      int      `json:"port"`
	EffectiveExpirationDate   string   `json:"effective-expiration-date"`
	IncludeSubdomains         bool     `json:"include-subdomains"`
	NotedHostname             string   `json:"noted-hostname"`
	ServedCertificateChain    []string `json:"served-certificate-chain"`
	ValidatedCertificateChain []string `json:"validated-certificate-chain"`
	KnownPins                 []string `json:"known-pins"`
}
func (p PKPReport) GetType() string {
	return "pkp"
}
type StacktraceJSStackframe struct {
	FunctionName string `json:"functionName"`
	FileName     string `json:"fileName"`
	LineNumber   int    `json:"lineNumber"`
	ColumnNumber int    `json:"columnNumber"`
}
type StacktraceJSReport struct {
	Report
	Message string                   `json:"message"`
	Stack   []StacktraceJSStackframe `json:"stack"`
	Browser *struct {
		Name    string `json:"name,omitempty"`
		Version string `json:"version,omitempty"`
	} `json:"browser,omitempty"`
	OS *struct {
		Name    string `json:"name,omitempty"`
		Version string `json:"version,omitempty"`
	} `json:"os,omitempty"`
	URL       string `json:"url,omitempty"`
	SourceURL string `json:"sourceUrl,omitempty"`
	UserID    string `json:"userId,omitempty"`
	StackHash string `json:"stackHash,omitempty"`
	ScriptURL string `json:"scriptUrl,omitempty"`
	PartyID         string `json:"partyId,omitempty"`
	DepartmentID    string `json:"departmentId,omitempty"`
	SalesPointID    string `json:"salesPointId,omitempty"`
	RetailUIVersion string `json:"retailUiVersion,omitempty"`
	AppVersion      string `json:"appVersion,omitempty"`
	ClaimID         string `json:"claimId,omitempty"`
}