package cvss20

// note: this was autogenerated with some manual tweaking

type Cvss20 struct {
	// AccessComplexity           *AccessComplexityType          `json:"accessComplexity,omitempty"`
	// AccessVector               *AccessVectorType              `json:"accessVector,omitempty"`
	// Authentication             *AuthenticationType            `json:"authentication,omitempty"`
	// AvailabilityImpact         *CiaType                       `json:"availabilityImpact,omitempty"`
	// AvailabilityRequirement    *CiaRequirementType            `json:"availabilityRequirement,omitempty"`
	BaseScore float64 `json:"baseScore"`
	// CollateralDamagePotential  *CollateralDamagePotentialType `json:"collateralDamagePotential,omitempty"`
	// ConfidentialityImpact      *CiaType                       `json:"confidentialityImpact,omitempty"`
	// ConfidentialityRequirement *CiaRequirementType            `json:"confidentialityRequirement,omitempty"`
	// EnvironmentalScore         *float64                       `json:"environmentalScore,omitempty"`
	// Exploitability             *ExploitabilityType            `json:"exploitability,omitempty"`
	// IntegrityImpact            *CiaType                       `json:"integrityImpact,omitempty"`
	// IntegrityRequirement       *CiaRequirementType            `json:"integrityRequirement,omitempty"`
	// RemediationLevel           *RemediationLevelType          `json:"remediationLevel,omitempty"`
	// ReportConfidence           *ReportConfidenceType          `json:"reportConfidence,omitempty"`
	// TargetDistribution         *TargetDistributionType        `json:"targetDistribution,omitempty"`
	// TemporalScore              *float64                       `json:"temporalScore,omitempty"`
	VectorString string `json:"vectorString"`
	Version      string `json:"version"` // CVSS Version
}

// type AccessComplexityType string
//
// const (
//	AccessComplexityTypeHIGH   AccessComplexityType = "HIGH"
//	AccessComplexityTypeLOW    AccessComplexityType = "LOW"
//	AccessComplexityTypeMEDIUM AccessComplexityType = "MEDIUM"
//)
//
// type AccessVectorType string
//
// const (
//	AdjacentNetwork AccessVectorType = "ADJACENT_NETWORK"
//	Local           AccessVectorType = "LOCAL"
//	Network         AccessVectorType = "NETWORK"
//)
//
// type AuthenticationType string
//
// const (
//	AuthenticationTypeNONE AuthenticationType = "NONE"
//	Multiple               AuthenticationType = "MULTIPLE"
//	Single                 AuthenticationType = "SINGLE"
//)
//
// type CiaType string
//
// const (
//	CiaTypeNONE CiaType = "NONE"
//	Complete    CiaType = "COMPLETE"
//	Partial     CiaType = "PARTIAL"
//)
//
// type CiaRequirementType string
//
// const (
//	CiaRequirementTypeHIGH       CiaRequirementType = "HIGH"
//	CiaRequirementTypeLOW        CiaRequirementType = "LOW"
//	CiaRequirementTypeMEDIUM     CiaRequirementType = "MEDIUM"
//	CiaRequirementTypeNOTDEFINED CiaRequirementType = "NOT_DEFINED"
//)
//
// type CollateralDamagePotentialType string
//
// const (
//	CollateralDamagePotentialTypeHIGH       CollateralDamagePotentialType = "HIGH"
//	CollateralDamagePotentialTypeLOW        CollateralDamagePotentialType = "LOW"
//	CollateralDamagePotentialTypeNONE       CollateralDamagePotentialType = "NONE"
//	CollateralDamagePotentialTypeNOTDEFINED CollateralDamagePotentialType = "NOT_DEFINED"
//	LowMedium                               CollateralDamagePotentialType = "LOW_MEDIUM"
//	MediumHigh                              CollateralDamagePotentialType = "MEDIUM_HIGH"
//)
//
// type ExploitabilityType string
//
// const (
//	ExploitabilityTypeHIGH       ExploitabilityType = "HIGH"
//	ExploitabilityTypeNOTDEFINED ExploitabilityType = "NOT_DEFINED"
//	Functional                   ExploitabilityType = "FUNCTIONAL"
//	ProofOfConcept               ExploitabilityType = "PROOF_OF_CONCEPT"
//	Unproven                     ExploitabilityType = "UNPROVEN"
//)
//
// type RemediationLevelType string
//
// const (
//	OfficialFix                    RemediationLevelType = "OFFICIAL_FIX"
//	RemediationLevelTypeNOTDEFINED RemediationLevelType = "NOT_DEFINED"
//	TemporaryFix                   RemediationLevelType = "TEMPORARY_FIX"
//	Unavailable                    RemediationLevelType = "UNAVAILABLE"
//	Workaround                     RemediationLevelType = "WORKAROUND"
//)
//
// type ReportConfidenceType string
//
// const (
//	Confirmed                      ReportConfidenceType = "CONFIRMED"
//	ReportConfidenceTypeNOTDEFINED ReportConfidenceType = "NOT_DEFINED"
//	Unconfirmed                    ReportConfidenceType = "UNCONFIRMED"
//	Uncorroborated                 ReportConfidenceType = "UNCORROBORATED"
//)
//
// type TargetDistributionType string
//
// const (
//	TargetDistributionTypeHIGH       TargetDistributionType = "HIGH"
//	TargetDistributionTypeLOW        TargetDistributionType = "LOW"
//	TargetDistributionTypeMEDIUM     TargetDistributionType = "MEDIUM"
//	TargetDistributionTypeNONE       TargetDistributionType = "NONE"
//	TargetDistributionTypeNOTDEFINED TargetDistributionType = "NOT_DEFINED"
//)
