/*
 * Red Hat Security Data API
 *
 * Unofficial OpenAPI definitions for Red Hat Security Data API
 *
 * API version: 1.0
 * Contact: mustafa@ctrliq.com
 */

// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

package rhsecurity

import (
	"encoding/json"
)

// CVEDetailedCvss3 struct for CVEDetailedCvss3
type CVEDetailedCvss3 struct {
	Cvss3BaseScore     string `json:"cvss3_base_score"`
	Cvss3ScoringVector string `json:"cvss3_scoring_vector"`
	Status             string `json:"status"`
}

// NewCVEDetailedCvss3 instantiates a new CVEDetailedCvss3 object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewCVEDetailedCvss3(cvss3BaseScore string, cvss3ScoringVector string, status string) *CVEDetailedCvss3 {
	this := CVEDetailedCvss3{}
	this.Cvss3BaseScore = cvss3BaseScore
	this.Cvss3ScoringVector = cvss3ScoringVector
	this.Status = status
	return &this
}

// NewCVEDetailedCvss3WithDefaults instantiates a new CVEDetailedCvss3 object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewCVEDetailedCvss3WithDefaults() *CVEDetailedCvss3 {
	this := CVEDetailedCvss3{}
	return &this
}

// GetCvss3BaseScore returns the Cvss3BaseScore field value
func (o *CVEDetailedCvss3) GetCvss3BaseScore() string {
	if o == nil {
		var ret string
		return ret
	}

	return o.Cvss3BaseScore
}

// GetCvss3BaseScoreOk returns a tuple with the Cvss3BaseScore field value
// and a boolean to check if the value has been set.
func (o *CVEDetailedCvss3) GetCvss3BaseScoreOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return &o.Cvss3BaseScore, true
}

// SetCvss3BaseScore sets field value
func (o *CVEDetailedCvss3) SetCvss3BaseScore(v string) {
	o.Cvss3BaseScore = v
}

// GetCvss3ScoringVector returns the Cvss3ScoringVector field value
func (o *CVEDetailedCvss3) GetCvss3ScoringVector() string {
	if o == nil {
		var ret string
		return ret
	}

	return o.Cvss3ScoringVector
}

// GetCvss3ScoringVectorOk returns a tuple with the Cvss3ScoringVector field value
// and a boolean to check if the value has been set.
func (o *CVEDetailedCvss3) GetCvss3ScoringVectorOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return &o.Cvss3ScoringVector, true
}

// SetCvss3ScoringVector sets field value
func (o *CVEDetailedCvss3) SetCvss3ScoringVector(v string) {
	o.Cvss3ScoringVector = v
}

// GetStatus returns the Status field value
func (o *CVEDetailedCvss3) GetStatus() string {
	if o == nil {
		var ret string
		return ret
	}

	return o.Status
}

// GetStatusOk returns a tuple with the Status field value
// and a boolean to check if the value has been set.
func (o *CVEDetailedCvss3) GetStatusOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return &o.Status, true
}

// SetStatus sets field value
func (o *CVEDetailedCvss3) SetStatus(v string) {
	o.Status = v
}

func (o CVEDetailedCvss3) MarshalJSON() ([]byte, error) {
	toSerialize := map[string]interface{}{}
	if true {
		toSerialize["cvss3_base_score"] = o.Cvss3BaseScore
	}
	if true {
		toSerialize["cvss3_scoring_vector"] = o.Cvss3ScoringVector
	}
	if true {
		toSerialize["status"] = o.Status
	}
	return json.Marshal(toSerialize)
}

type NullableCVEDetailedCvss3 struct {
	value *CVEDetailedCvss3
	isSet bool
}

func (v NullableCVEDetailedCvss3) Get() *CVEDetailedCvss3 {
	return v.value
}

func (v *NullableCVEDetailedCvss3) Set(val *CVEDetailedCvss3) {
	v.value = val
	v.isSet = true
}

func (v NullableCVEDetailedCvss3) IsSet() bool {
	return v.isSet
}

func (v *NullableCVEDetailedCvss3) Unset() {
	v.value = nil
	v.isSet = false
}

func NewNullableCVEDetailedCvss3(val *CVEDetailedCvss3) *NullableCVEDetailedCvss3 {
	return &NullableCVEDetailedCvss3{value: val, isSet: true}
}

func (v NullableCVEDetailedCvss3) MarshalJSON() ([]byte, error) {
	return json.Marshal(v.value)
}

func (v *NullableCVEDetailedCvss3) UnmarshalJSON(src []byte) error {
	v.isSet = true
	return json.Unmarshal(src, &v.value)
}
