package cvss40

// note: this was autogenerated with some manual tweaking

type Cvss40 struct {
	Version      string       `json:"version"`
	VectorString string       `json:"vectorString"`
	BaseScore    float64      `json:"baseScore"`
	BaseSeverity SeverityType `json:"baseSeverity"`
	// AttackVector                      string  `json:"attackVector"`
	// AttackComplexity                  string  `json:"attackComplexity"`
	// AttackRequirements                string  `json:"attackRequirements"`
	// PrivilegesRequired                string  `json:"privilegesRequired"`
	// UserInteraction                   string  `json:"userInteraction"`
	// VulnConfidentialityImpact         string  `json:"vulnConfidentialityImpact"`
	// VulnIntegrityImpact               string  `json:"vulnIntegrityImpact"`
	// VulnAvailabilityImpact            string  `json:"vulnAvailabilityImpact"`
	// SubConfidentialityImpact          string  `json:"subConfidentialityImpact"`
	// SubIntegrityImpact                string  `json:"subIntegrityImpact"`
	// SubAvailabilityImpact             string  `json:"subAvailabilityImpact"`
	// ExploitMaturity                   string  `json:"exploitMaturity"`
	// ConfidentialityRequirement        string  `json:"confidentialityRequirement"`
	// IntegrityRequirement              string  `json:"integrityRequirement"`
	// AvailabilityRequirement           string  `json:"availabilityRequirement"`
	// ModifiedAttackVector              string  `json:"modifiedAttackVector"`
	// ModifiedAttackComplexity          string  `json:"modifiedAttackComplexity"`
	// ModifiedAttackRequirements        string  `json:"modifiedAttackRequirements"`
	// ModifiedPrivilegesRequired        string  `json:"modifiedPrivilegesRequired"`
	// ModifiedUserInteraction           string  `json:"modifiedUserInteraction"`
	// ModifiedVulnConfidentialityImpact string  `json:"modifiedVulnConfidentialityImpact"`
	// ModifiedVulnIntegrityImpact       string  `json:"modifiedVulnIntegrityImpact"`
	// ModifiedVulnAvailabilityImpact    string  `json:"modifiedVulnAvailabilityImpact"`
	// ModifiedSubConfidentialityImpact  string  `json:"modifiedSubConfidentialityImpact"`
	// ModifiedSubIntegrityImpact        string  `json:"modifiedSubIntegrityImpact"`
	// ModifiedSubAvailabilityImpact     string  `json:"modifiedSubAvailabilityImpact"`
	// Safety                            string  `json:"Safety"`
	// Automatable                       string  `json:"Automatable"`
	// Recovery                          string  `json:"Recovery"`
	// ValueDensity                      string  `json:"valueDensity"`
	// VulnerabilityResponseEffort       string  `json:"vulnerabilityResponseEffort"`
	// ProviderUrgency                   string  `json:"providerUrgency"`
}

type SeverityType string

const (
	SeverityTypeCritical SeverityType = "CRITICAL"
	SeverityTypeHIGH     SeverityType = "HIGH"
	SeverityTypeLOW      SeverityType = "LOW"
	SeverityTypeMEDIUM   SeverityType = "MEDIUM"
	SeverityTypeNONE     SeverityType = "NONE"
)
