
package cz.moneta.test.dsl.cebia.iva;

import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlSchemaType;
import jakarta.xml.bind.annotation.XmlType;
import javax.xml.datatype.XMLGregorianCalendar;


/**
 * <p>Java class for WSVehicleIdentificationType complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="WSVehicleIdentificationType"&gt;
 *   &lt;complexContent&gt;
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *       &lt;sequence&gt;
 *         &lt;element name="Brand" type="{http://samo.cz/iva/}WSBrandType" minOccurs="0"/&gt;
 *         &lt;element name="Model" type="{http://samo.cz/iva/}WSVehicleModelType" minOccurs="0"/&gt;
 *         &lt;element name="Version" type="{http://samo.cz/iva/}WSVehicleVersionType" minOccurs="0"/&gt;
 *         &lt;element name="EquipmentLevel" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="VehicleKind" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="VehicleKindID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="CountryCode" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="CountryName" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="ForeignMarket" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt;
 *         &lt;element name="IndividualImport" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt;
 *         &lt;element name="ProductionYear" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/&gt;
 *         &lt;element name="ProductionDate" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/&gt;
 *         &lt;element name="ProductionDateMonthValid" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt;
 *         &lt;element name="ProductionDateDayValid" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt;
 *         &lt;element name="LocalEquipmentLevel" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="ImageID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *       &lt;/sequence&gt;
 *     &lt;/restriction&gt;
 *   &lt;/complexContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "WSVehicleIdentificationType", propOrder = {
    "brand",
    "model",
    "version",
    "equipmentLevel",
    "vehicleKind",
    "vehicleKindID",
    "countryCode",
    "countryName",
    "foreignMarket",
    "individualImport",
    "productionYear",
    "productionDate",
    "productionDateMonthValid",
    "productionDateDayValid",
    "localEquipmentLevel",
    "imageID"
})
public class WSVehicleIdentificationType {

    @XmlElement(name = "Brand", nillable = true)
    protected WSBrandType brand;
    @XmlElement(name = "Model", nillable = true)
    protected WSVehicleModelType model;
    @XmlElement(name = "Version", nillable = true)
    protected WSVehicleVersionType version;
    @XmlElement(name = "EquipmentLevel", nillable = true)
    protected String equipmentLevel;
    @XmlElement(name = "VehicleKind", nillable = true)
    protected String vehicleKind;
    @XmlElement(name = "VehicleKindID", nillable = true)
    protected String vehicleKindID;
    @XmlElement(name = "CountryCode", nillable = true)
    protected String countryCode;
    @XmlElement(name = "CountryName", nillable = true)
    protected String countryName;
    @XmlElement(name = "ForeignMarket")
    protected Boolean foreignMarket;
    @XmlElement(name = "IndividualImport")
    protected Boolean individualImport;
    @XmlElement(name = "ProductionYear", nillable = true)
    protected Integer productionYear;
    @XmlElement(name = "ProductionDate", nillable = true)
    @XmlSchemaType(name = "dateTime")
    protected XMLGregorianCalendar productionDate;
    @XmlElement(name = "ProductionDateMonthValid", nillable = true)
    protected Boolean productionDateMonthValid;
    @XmlElement(name = "ProductionDateDayValid", nillable = true)
    protected Boolean productionDateDayValid;
    @XmlElement(name = "LocalEquipmentLevel", nillable = true)
    protected String localEquipmentLevel;
    @XmlElement(name = "ImageID", nillable = true)
    protected String imageID;

    /**
     * Gets the value of the brand property.
     * 
     * @return
     *     possible object is
     *     {@link WSBrandType }
     *     
     */
    public WSBrandType getBrand() {
        return brand;
    }

    /**
     * Sets the value of the brand property.
     * 
     * @param value
     *     allowed object is
     *     {@link WSBrandType }
     *     
     */
    public void setBrand(WSBrandType value) {
        this.brand = value;
    }

    /**
     * Gets the value of the model property.
     * 
     * @return
     *     possible object is
     *     {@link WSVehicleModelType }
     *     
     */
    public WSVehicleModelType getModel() {
        return model;
    }

    /**
     * Sets the value of the model property.
     * 
     * @param value
     *     allowed object is
     *     {@link WSVehicleModelType }
     *     
     */
    public void setModel(WSVehicleModelType value) {
        this.model = value;
    }

    /**
     * Gets the value of the version property.
     * 
     * @return
     *     possible object is
     *     {@link WSVehicleVersionType }
     *     
     */
    public WSVehicleVersionType getVersion() {
        return version;
    }

    /**
     * Sets the value of the version property.
     * 
     * @param value
     *     allowed object is
     *     {@link WSVehicleVersionType }
     *     
     */
    public void setVersion(WSVehicleVersionType value) {
        this.version = value;
    }

    /**
     * Gets the value of the equipmentLevel property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getEquipmentLevel() {
        return equipmentLevel;
    }

    /**
     * Sets the value of the equipmentLevel property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setEquipmentLevel(String value) {
        this.equipmentLevel = value;
    }

    /**
     * Gets the value of the vehicleKind property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getVehicleKind() {
        return vehicleKind;
    }

    /**
     * Sets the value of the vehicleKind property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setVehicleKind(String value) {
        this.vehicleKind = value;
    }

    /**
     * Gets the value of the vehicleKindID property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getVehicleKindID() {
        return vehicleKindID;
    }

    /**
     * Sets the value of the vehicleKindID property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setVehicleKindID(String value) {
        this.vehicleKindID = value;
    }

    /**
     * Gets the value of the countryCode property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getCountryCode() {
        return countryCode;
    }

    /**
     * Sets the value of the countryCode property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setCountryCode(String value) {
        this.countryCode = value;
    }

    /**
     * Gets the value of the countryName property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getCountryName() {
        return countryName;
    }

    /**
     * Sets the value of the countryName property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setCountryName(String value) {
        this.countryName = value;
    }

    /**
     * Gets the value of the foreignMarket property.
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isForeignMarket() {
        return foreignMarket;
    }

    /**
     * Sets the value of the foreignMarket property.
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setForeignMarket(Boolean value) {
        this.foreignMarket = value;
    }

    /**
     * Gets the value of the individualImport property.
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isIndividualImport() {
        return individualImport;
    }

    /**
     * Sets the value of the individualImport property.
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setIndividualImport(Boolean value) {
        this.individualImport = value;
    }

    /**
     * Gets the value of the productionYear property.
     * 
     * @return
     *     possible object is
     *     {@link Integer }
     *     
     */
    public Integer getProductionYear() {
        return productionYear;
    }

    /**
     * Sets the value of the productionYear property.
     * 
     * @param value
     *     allowed object is
     *     {@link Integer }
     *     
     */
    public void setProductionYear(Integer value) {
        this.productionYear = value;
    }

    /**
     * Gets the value of the productionDate property.
     * 
     * @return
     *     possible object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public XMLGregorianCalendar getProductionDate() {
        return productionDate;
    }

    /**
     * Sets the value of the productionDate property.
     * 
     * @param value
     *     allowed object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public void setProductionDate(XMLGregorianCalendar value) {
        this.productionDate = value;
    }

    /**
     * Gets the value of the productionDateMonthValid property.
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isProductionDateMonthValid() {
        return productionDateMonthValid;
    }

    /**
     * Sets the value of the productionDateMonthValid property.
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setProductionDateMonthValid(Boolean value) {
        this.productionDateMonthValid = value;
    }

    /**
     * Gets the value of the productionDateDayValid property.
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isProductionDateDayValid() {
        return productionDateDayValid;
    }

    /**
     * Sets the value of the productionDateDayValid property.
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setProductionDateDayValid(Boolean value) {
        this.productionDateDayValid = value;
    }

    /**
     * Gets the value of the localEquipmentLevel property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getLocalEquipmentLevel() {
        return localEquipmentLevel;
    }

    /**
     * Sets the value of the localEquipmentLevel property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setLocalEquipmentLevel(String value) {
        this.localEquipmentLevel = value;
    }

    /**
     * Gets the value of the imageID property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getImageID() {
        return imageID;
    }

    /**
     * Sets the value of the imageID property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setImageID(String value) {
        this.imageID = value;
    }

    public WSVehicleIdentificationType withBrand(WSBrandType value) {
        setBrand(value);
        return this;
    }

    public WSVehicleIdentificationType withModel(WSVehicleModelType value) {
        setModel(value);
        return this;
    }

    public WSVehicleIdentificationType withVersion(WSVehicleVersionType value) {
        setVersion(value);
        return this;
    }

    public WSVehicleIdentificationType withEquipmentLevel(String value) {
        setEquipmentLevel(value);
        return this;
    }

    public WSVehicleIdentificationType withVehicleKind(String value) {
        setVehicleKind(value);
        return this;
    }

    public WSVehicleIdentificationType withVehicleKindID(String value) {
        setVehicleKindID(value);
        return this;
    }

    public WSVehicleIdentificationType withCountryCode(String value) {
        setCountryCode(value);
        return this;
    }

    public WSVehicleIdentificationType withCountryName(String value) {
        setCountryName(value);
        return this;
    }

    public WSVehicleIdentificationType withForeignMarket(Boolean value) {
        setForeignMarket(value);
        return this;
    }

    public WSVehicleIdentificationType withIndividualImport(Boolean value) {
        setIndividualImport(value);
        return this;
    }

    public WSVehicleIdentificationType withProductionYear(Integer value) {
        setProductionYear(value);
        return this;
    }

    public WSVehicleIdentificationType withProductionDate(XMLGregorianCalendar value) {
        setProductionDate(value);
        return this;
    }

    public WSVehicleIdentificationType withProductionDateMonthValid(Boolean value) {
        setProductionDateMonthValid(value);
        return this;
    }

    public WSVehicleIdentificationType withProductionDateDayValid(Boolean value) {
        setProductionDateDayValid(value);
        return this;
    }

    public WSVehicleIdentificationType withLocalEquipmentLevel(String value) {
        setLocalEquipmentLevel(value);
        return this;
    }

    public WSVehicleIdentificationType withImageID(String value) {
        setImageID(value);
        return this;
    }

}
