providers/flexera/schema/advisory_details.go (91 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
// https://app.quicktype.io?share=0hpDyoi4G7vzbKVRXzMB
// used file advisory_details.json
// then did manual fixing
// Advisory type
type Advisory struct {
AdvisoryIdentifier string `json:"advisory_identifier"`
AggregateSeverity string `json:"aggregate_severity"`
Criticality int64 `json:"criticality"`
CriticalityDescription string `json:"criticality_description"`
CveStrList string `json:"cve_str_list"`
Cvss3Info *Cvss3Info `json:"cvss3_info"`
CvssInfo *CvssInfo `json:"cvss_info"`
Description string `json:"description"`
FlexeraID int64 `json:"id"`
Impact []*Impact `json:"impact"`
IsZeroDay bool `json:"is_zero_day"`
ModifiedDate string `json:"modified_date"`
Products []*Product `json:"products"`
References []*AdvisoryReference `json:"references"`
Released string `json:"released"`
Revisions []*Revision `json:"revisions"`
Solution string `json:"solution"`
SolutionStatus int64 `json:"solution_status"`
SolutionStatusDescription string `json:"solution_status_description"`
ThreatScore string `json:"threat_score"`
Title string `json:"title"`
Type int64 `json:"type"`
Vulnerabilities []*Vulnerability `json:"vulnerabilities"`
}
// Cvss3Info type
type Cvss3Info struct {
BaseScore float64 `json:"cvss_base_score"`
OverallScore float64 `json:"cvss_overall_score"`
Vector string `json:"cvss_vector"`
}
// CvssInfo type
type CvssInfo struct {
BaseScore float64 `json:"cvss_base_score"`
OverallScore float64 `json:"cvss_overall_score"`
Vector string `json:"cvss_vector"`
}
// Impact type
type Impact struct {
ID int64 `json:"id"`
Name string `json:"name"`
}
// Product type
type Product struct {
Cpes []*Cpe `json:"cpes"`
HasCpe bool `json:"has_cpe"`
ID string `json:"id"`
IsOS bool `json:"is_os"`
Name string `json:"name"`
}
// Cpe type
type Cpe struct {
ModificationDate string `json:"modification_date"`
Name string `json:"name"`
NvdID string `json:"nvd_id"`
}
// AdvisoryReference type
type AdvisoryReference struct {
Description string `json:"description"`
InternalType int64 `json:"internal_type"`
Ordinal int64 `json:"ordinal"`
URL string `json:"url"`
}
// Revision type
type Revision struct {
Description string `json:"description"`
Number string `json:"number"`
ReleaseDate string `json:"release_date"`
}
// Vulnerability type
type Vulnerability struct {
Cve string `json:"cve"`
CveInfo *VulnerabilityCveInfo `json:"cve_info"`
Description string `json:"description"`
Ordinal int64 `json:"ordinal"`
Products []*Product `json:"products"`
Title string `json:"title"`
}
// VulnerabilityCveInfo type
type VulnerabilityCveInfo struct {
Cvss3Score string `json:"cvss3_score"`
Cvss3Vector string `json:"cvss3_vector"`
CvssScore string `json:"cvss_score"`
CvssVector string `json:"cvss_vector"`
Description string `json:"description"`
Disclaimer string `json:"disclaimer"`
OptName string `json:"opt_name"`
OptType string `json:"opt_type"`
Reference string `json:"reference"`
References []*CveInfoReference `json:"references"`
Source string `json:"source"`
ThreatScore float64 `json:"threat_score"`
ThreatRules map[string]string `json:"threat_rules"`
UpdateFlag int64 `json:"update_flag"`
}
// CveInfoReference type
type CveInfoReference struct {
Source string `json:"source"`
URL string `json:"url"`
}