providers/fireeye/schema/report.go (104 lines of code) (raw):

// Copyright (c) Facebook, Inc. and its affiliates. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package schema // ReportIndexItem one item in array returned on /report/index // we only want the reportID so we can use it to get /report/{reportID} type ReportIndexItem struct { ReportID string `json:"reportId"` } // ReportWrapper struct type ReportWrapper struct { Report Report `json:"report"` } // Report struct type Report struct { Audience []string `json:"audience"` Copyright string `json:"copyright"` CveIDs *ReportCveIDs `json:"cveIds"` ExecSummary string `json:"execSummary"` IntelligenceType string `json:"intelligenceType"` PublishDate string `json:"publishDate"` ReportID string `json:"reportId"` ReportType string `json:"reportType"` TagSection *ReportTagSection `json:"tagSection"` ThreatScape *ReportThreatScape `json:"ThreatScape"` Title string `json:"title"` Version string `json:"version"` Version1PublishDate string `json:"version1PublishDate"` } // ReportCveIDs struct type ReportCveIDs struct { CveID []string `json:"cveId"` } // ReportTagSection struct type ReportTagSection struct { Files *ReportFiles `json:"files"` Main *ReportMain `json:"main"` Networks *ReportNetworks `json:"networks"` } // ReportThreatScape struct type ReportThreatScape struct { Product []string `json:"product"` } // ReportFiles struct type ReportFiles struct { File []*ReportFile `json:"file"` } // ReportFile struct type ReportFile struct { Sha1 string `json:"sha1"` Identifier string `json:"identifier"` Actor string `json:"actor"` FileName string `json:"fileName"` FileSize string `json:"fileSize"` ActorID string `json:"actorId"` Sha256 string `json:"sha256"` Type string `json:"type"` Md5 string `json:"md5"` } // ReportMain struct type ReportMain struct { Actors *ReportActors `json:"actors"` AffectedIndustries *ReportAffectedIndustries `json:"affectedIndustries"` IntendedEffects *ReportIntendedEffects `json:"intendedEffects"` MalwareFamilies *ReportMalwareFamilies `json:"malwareFamilies"` Motivations *ReportMotivations `json:"motivations"` SourceGeographies *ReportSourceGeographies `json:"sourceGeographies"` TargetedInformations *ReportTargetedInformations `json:"targetedInformations"` TargetGeographies *ReportTargetGeographies `json:"targetGeographies"` Ttps *ReportTtps `json:"ttps"` } // ReportActors struct type ReportActors struct { Actor []*ReportActor `json:"actor"` } // ReportActor struct type ReportActor struct { ID string `json:"id"` Name string `json:"name"` } // ReportNetworks struct type ReportNetworks struct { Networks []*ReportNetwork `json:"network"` } // ReportNetwork struct type ReportNetwork struct { URL string `json:"url"` NetworkType string `json:"networkType"` Identifier string `json:"identifier"` Actor string `json:"actor"` ActorID string `json:"actorId"` Domain string `json:"domain"` } // ReportMotivations struct type ReportMotivations struct { Motivation []string `json:"motivation"` } // ReportSourceGeographies struct type ReportSourceGeographies struct { SourceGeography []string `json:"sourceGeography"` } // ReportAffectedIndustries struct type ReportAffectedIndustries struct { AffectedIndustry []string `json:"affectedIndustry"` } // ReportIntendedEffects struct type ReportIntendedEffects struct { IntendedEffect []string `json:"intendedEffect"` } // ReportTtps struct type ReportTtps struct { Ttp []string `json:"ttp"` } // ReportTargetGeographies struct type ReportTargetGeographies struct { TargetGeography []string `json:"targetGeography"` } // ReportTargetedInformations struct type ReportTargetedInformations struct { TargetedInformation []string `json:"targetedInformation"` } // ReportMalwareFamilies struct type ReportMalwareFamilies struct { MalwareFamily []*ReportMalwareFamily `json:"malwareFamily"` } // ReportMalwareFamily struct type ReportMalwareFamily struct { ID string `json:"id"` Name string `json:"name"` }