//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.11 
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
// Any modifications to this file will be lost upon recompilation of the source schema. 
// Generated on: 2017.01.18 at 02:27:26 AM EST 
//


package gov.va.med.pharmacy.ncpdpmsgs;

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


/**
 * <p>Java class for HeaderType complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="HeaderType"&gt;
 *   &lt;complexContent&gt;
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *       &lt;sequence&gt;
 *         &lt;element name="To"&gt;
 *           &lt;complexType&gt;
 *             &lt;simpleContent&gt;
 *               &lt;extension base="&lt;http://www.ncpdp.org/schema/SCRIPT&gt;MailAddressType"&gt;
 *                 &lt;attribute name="Qualifier"&gt;
 *                   &lt;simpleType&gt;
 *                     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string"&gt;
 *                       &lt;pattern value="P|C|M|D|ZZZ"/&gt;
 *                     &lt;/restriction&gt;
 *                   &lt;/simpleType&gt;
 *                 &lt;/attribute&gt;
 *               &lt;/extension&gt;
 *             &lt;/simpleContent&gt;
 *           &lt;/complexType&gt;
 *         &lt;/element&gt;
 *         &lt;element name="From"&gt;
 *           &lt;complexType&gt;
 *             &lt;simpleContent&gt;
 *               &lt;extension base="&lt;http://www.ncpdp.org/schema/SCRIPT&gt;MailAddressType"&gt;
 *                 &lt;attribute name="Qualifier"&gt;
 *                   &lt;simpleType&gt;
 *                     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string"&gt;
 *                       &lt;pattern value="P|C|M|D|ZZZ"/&gt;
 *                     &lt;/restriction&gt;
 *                   &lt;/simpleType&gt;
 *                 &lt;/attribute&gt;
 *               &lt;/extension&gt;
 *             &lt;/simpleContent&gt;
 *           &lt;/complexType&gt;
 *         &lt;/element&gt;
 *         &lt;element name="MessageID" type="{http://www.ncpdp.org/schema/SCRIPT}an..35M"/&gt;
 *         &lt;element name="RelatesToMessageID" type="{http://www.ncpdp.org/schema/SCRIPT}an..35" minOccurs="0"/&gt;
 *         &lt;element name="SentTime" type="{http://www.ncpdp.org/schema/SCRIPT}UtcDateType"/&gt;
 *         &lt;element name="Security" type="{http://www.ncpdp.org/schema/SCRIPT}SecurityType" minOccurs="0"/&gt;
 *         &lt;element name="Mailbox" type="{http://www.ncpdp.org/schema/SCRIPT}MailboxType" minOccurs="0"/&gt;
 *         &lt;element name="TestMessage" type="{http://www.ncpdp.org/schema/SCRIPT}n1" minOccurs="0"/&gt;
 *         &lt;element name="RxReferenceNumber" type="{http://www.ncpdp.org/schema/SCRIPT}an..35" minOccurs="0"/&gt;
 *         &lt;element name="TertiaryIdentifier" type="{http://www.ncpdp.org/schema/SCRIPT}an..3" minOccurs="0"/&gt;
 *         &lt;element name="PrescriberOrderNumber" type="{http://www.ncpdp.org/schema/SCRIPT}an..35" minOccurs="0"/&gt;
 *         &lt;element name="DigitalSignature" minOccurs="0"&gt;
 *           &lt;complexType&gt;
 *             &lt;complexContent&gt;
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *                 &lt;sequence&gt;
 *                   &lt;element name="DigestValue" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
 *                   &lt;element name="SignatureValue" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
 *                   &lt;element name="X509Data" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
 *                 &lt;/sequence&gt;
 *                 &lt;attribute name="version" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" fixed="1.0" /&gt;
 *               &lt;/restriction&gt;
 *             &lt;/complexContent&gt;
 *           &lt;/complexType&gt;
 *         &lt;/element&gt;
 *       &lt;/sequence&gt;
 *     &lt;/restriction&gt;
 *   &lt;/complexContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "HeaderType", propOrder = {
    "to",
    "from",
    "messageID",
    "relatesToMessageID",
    "sentTime",
    "security",
    "mailbox",
    "testMessage",
    "rxReferenceNumber",
    "tertiaryIdentifier",
    "prescriberOrderNumber",
    "digitalSignature"
})
public class HeaderType {

    @XmlElement(name = "To", required = true)
    protected HeaderType.To to;
    @XmlElement(name = "From", required = true)
    protected HeaderType.From from;
    @XmlElement(name = "MessageID", required = true)
    protected String messageID;
    @XmlElement(name = "RelatesToMessageID")
    protected String relatesToMessageID;
    @XmlElement(name = "SentTime", required = true)
    @XmlSchemaType(name = "dateTime")
    protected XMLGregorianCalendar sentTime;
    @XmlElement(name = "Security")
    protected SecurityType security;
    @XmlElement(name = "Mailbox")
    protected MailboxType mailbox;
    @XmlElement(name = "TestMessage")
    protected String testMessage;
    @XmlElement(name = "RxReferenceNumber")
    protected String rxReferenceNumber;
    @XmlElement(name = "TertiaryIdentifier")
    protected String tertiaryIdentifier;
    @XmlElement(name = "PrescriberOrderNumber")
    protected String prescriberOrderNumber;
    @XmlElement(name = "DigitalSignature")
    protected HeaderType.DigitalSignature digitalSignature;

    /**
     * Gets the value of the to property.
     * 
     * @return
     *     possible object is
     *     {@link HeaderType.To }
     *     
     */
    public HeaderType.To getTo() {
        return to;
    }

    /**
     * Sets the value of the to property.
     * 
     * @param value
     *     allowed object is
     *     {@link HeaderType.To }
     *     
     */
    public void setTo(HeaderType.To value) {
        this.to = value;
    }

    /**
     * Gets the value of the from property.
     * 
     * @return
     *     possible object is
     *     {@link HeaderType.From }
     *     
     */
    public HeaderType.From getFrom() {
        return from;
    }

    /**
     * Sets the value of the from property.
     * 
     * @param value
     *     allowed object is
     *     {@link HeaderType.From }
     *     
     */
    public void setFrom(HeaderType.From value) {
        this.from = value;
    }

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

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

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

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

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

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

    /**
     * Gets the value of the security property.
     * 
     * @return
     *     possible object is
     *     {@link SecurityType }
     *     
     */
    public SecurityType getSecurity() {
        return security;
    }

    /**
     * Sets the value of the security property.
     * 
     * @param value
     *     allowed object is
     *     {@link SecurityType }
     *     
     */
    public void setSecurity(SecurityType value) {
        this.security = value;
    }

    /**
     * Gets the value of the mailbox property.
     * 
     * @return
     *     possible object is
     *     {@link MailboxType }
     *     
     */
    public MailboxType getMailbox() {
        return mailbox;
    }

    /**
     * Sets the value of the mailbox property.
     * 
     * @param value
     *     allowed object is
     *     {@link MailboxType }
     *     
     */
    public void setMailbox(MailboxType value) {
        this.mailbox = value;
    }

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

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

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

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

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

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

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

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

    /**
     * Gets the value of the digitalSignature property.
     * 
     * @return
     *     possible object is
     *     {@link HeaderType.DigitalSignature }
     *     
     */
    public HeaderType.DigitalSignature getDigitalSignature() {
        return digitalSignature;
    }

    /**
     * Sets the value of the digitalSignature property.
     * 
     * @param value
     *     allowed object is
     *     {@link HeaderType.DigitalSignature }
     *     
     */
    public void setDigitalSignature(HeaderType.DigitalSignature value) {
        this.digitalSignature = value;
    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType&gt;
     *   &lt;complexContent&gt;
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
     *       &lt;sequence&gt;
     *         &lt;element name="DigestValue" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
     *         &lt;element name="SignatureValue" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
     *         &lt;element name="X509Data" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
     *       &lt;/sequence&gt;
     *       &lt;attribute name="version" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" fixed="1.0" /&gt;
     *     &lt;/restriction&gt;
     *   &lt;/complexContent&gt;
     * &lt;/complexType&gt;
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "digestValue",
        "signatureValue",
        "x509Data"
    })
    public static class DigitalSignature {

        @XmlElement(name = "DigestValue", required = true)
        protected String digestValue;
        @XmlElement(name = "SignatureValue", required = true)
        protected String signatureValue;
        @XmlElement(name = "X509Data", required = true)
        protected String x509Data;
        @XmlAttribute(name = "version", required = true)
        @XmlSchemaType(name = "anySimpleType")
        protected String version;

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

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

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

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

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

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

        /**
         * Gets the value of the version property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getVersion() {
            if (version == null) {
                return "1.0";
            } else {
                return version;
            }
        }

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

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType&gt;
     *   &lt;simpleContent&gt;
     *     &lt;extension base="&lt;http://www.ncpdp.org/schema/SCRIPT&gt;MailAddressType"&gt;
     *       &lt;attribute name="Qualifier"&gt;
     *         &lt;simpleType&gt;
     *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string"&gt;
     *             &lt;pattern value="P|C|M|D|ZZZ"/&gt;
     *           &lt;/restriction&gt;
     *         &lt;/simpleType&gt;
     *       &lt;/attribute&gt;
     *     &lt;/extension&gt;
     *   &lt;/simpleContent&gt;
     * &lt;/complexType&gt;
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "value"
    })
    public static class From {

        @XmlValue
        protected String value;
        @XmlAttribute(name = "Qualifier")
        protected String qualifier;

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

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

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

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

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType&gt;
     *   &lt;simpleContent&gt;
     *     &lt;extension base="&lt;http://www.ncpdp.org/schema/SCRIPT&gt;MailAddressType"&gt;
     *       &lt;attribute name="Qualifier"&gt;
     *         &lt;simpleType&gt;
     *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string"&gt;
     *             &lt;pattern value="P|C|M|D|ZZZ"/&gt;
     *           &lt;/restriction&gt;
     *         &lt;/simpleType&gt;
     *       &lt;/attribute&gt;
     *     &lt;/extension&gt;
     *   &lt;/simpleContent&gt;
     * &lt;/complexType&gt;
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "value"
    })
    public static class To {

        @XmlValue
        protected String value;
        @XmlAttribute(name = "Qualifier")
        protected String qualifier;

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

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

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

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

    }

}
