//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
// 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: 2015.03.12 at 01:44:18 PM CET 
//


package be.iminds.ilabt.jfed.lowlevel.authority.binding;

import javax.xml.bind.annotation.*;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;


/**
 * <p>Java class for anonymous complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType>
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="type" maxOccurs="unbounded" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="special" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
 *                 &lt;/sequence>
 *                 &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="authority" maxOccurs="unbounded" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="urn" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *                   &lt;element name="hrn" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *                   &lt;element name="location" minOccurs="0">
 *                     &lt;complexType>
 *                       &lt;complexContent>
 *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                           &lt;attribute name="country" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                           &lt;attribute name="latitude" type="{http://www.w3.org/2001/XMLSchema}double" />
 *                           &lt;attribute name="longitude" type="{http://www.w3.org/2001/XMLSchema}double" />
 *                         &lt;/restriction>
 *                       &lt;/complexContent>
 *                     &lt;/complexType>
 *                   &lt;/element>
 *                   &lt;element name="urls">
 *                     &lt;complexType>
 *                       &lt;complexContent>
 *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                           &lt;sequence>
 *                             &lt;element name="serverurl" maxOccurs="unbounded">
 *                               &lt;complexType>
 *                                 &lt;complexContent>
 *                                   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                                     &lt;sequence>
 *                                       &lt;element name="servertype">
 *                                         &lt;complexType>
 *                                           &lt;complexContent>
 *                                             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                                               &lt;attribute name="role">
 *                                                 &lt;simpleType>
 *                                                   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *                                                     &lt;enumeration value="Slice Authority"/>
 *                                                     &lt;enumeration value="Aggregate Manager"/>
 *                                                     &lt;enumeration value="PlanetLab registry"/>
 *                                                   &lt;/restriction>
 *                                                 &lt;/simpleType>
 *                                               &lt;/attribute>
 *                                               &lt;attribute name="version" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                                             &lt;/restriction>
 *                                           &lt;/complexContent>
 *                                         &lt;/complexType>
 *                                       &lt;/element>
 *                                       &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *                                     &lt;/sequence>
 *                                   &lt;/restriction>
 *                                 &lt;/complexContent>
 *                               &lt;/complexType>
 *                             &lt;/element>
 *                           &lt;/sequence>
 *                         &lt;/restriction>
 *                       &lt;/complexContent>
 *                     &lt;/complexType>
 *                   &lt;/element>
 *                   &lt;element name="proxies">
 *                     &lt;complexType>
 *                       &lt;complexContent>
 *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                           &lt;sequence>
 *                             &lt;element name="proxy" maxOccurs="unbounded">
 *                               &lt;complexType>
 *                                 &lt;complexContent>
 *                                   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                                     &lt;sequence>
 *                                       &lt;element name="proxyType" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *                                       &lt;element name="hostname" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *                                       &lt;element name="portRange" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *                                       &lt;element name="hostKey" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *                                     &lt;/sequence>
 *                                   &lt;/restriction>
 *                                 &lt;/complexContent>
 *                               &lt;/complexType>
 *                             &lt;/element>
 *                           &lt;/sequence>
 *                         &lt;/restriction>
 *                       &lt;/complexContent>
 *                     &lt;/complexType>
 *                   &lt;/element>
 *                   &lt;element name="type" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *                   &lt;element name="gid" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *                   &lt;element name="source">
 *                     &lt;simpleType>
 *                       &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *                         &lt;enumeration value="Clearinghouse"/>
 *                         &lt;enumeration value="Builtin"/>
 *                         &lt;enumeration value="User"/>
 *                       &lt;/restriction>
 *                     &lt;/simpleType>
 *                   &lt;/element>
 *                   &lt;element name="reconnectEachTime" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
 *                   &lt;element name="special" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
 *                   &lt;element name="defaultScsUrn" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *                   &lt;element name="pemSslTrustCert" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
 *                   &lt;element name="allowedCertificateHostnameAliases">
 *                     &lt;complexType>
 *                       &lt;complexContent>
 *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                           &lt;sequence>
 *                             &lt;element name="alias" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded"/>
 *                           &lt;/sequence>
 *                         &lt;/restriction>
 *                       &lt;/complexContent>
 *                     &lt;/complexType>
 *                   &lt;/element>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="extraFile" maxOccurs="unbounded" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;attribute name="url" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
 *                 &lt;attribute name="minVersion" type="{http://www.w3.org/2001/XMLSchema}integer" />
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "type",
    "authority",
    "extraFile"
})
@XmlRootElement(name = "authorities")
public class Authorities {

    protected List<Authorities.Type> type;
    protected List<Authorities.Authority> authority;
    protected List<Authorities.ExtraFile> extraFile;

    /**
     * Gets the value of the type property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the type property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getType().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link Authorities.Type }
     * 
     * 
     */
    public List<Authorities.Type> getType() {
        if (type == null) {
            type = new ArrayList<>();
        }
        return this.type;
    }

    /**
     * Gets the value of the authority property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the authority property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getAuthority().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link Authorities.Authority }
     * 
     * 
     */
    public List<Authorities.Authority> getAuthority() {
        if (authority == null) {
            authority = new ArrayList<>();
        }
        return this.authority;
    }

    /**
     * Gets the value of the extraFile property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the extraFile property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getExtraFile().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link Authorities.ExtraFile }
     * 
     * 
     */
    public List<Authorities.ExtraFile> getExtraFile() {
        if (extraFile == null) {
            extraFile = new ArrayList<>();
        }
        return this.extraFile;
    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="urn" type="{http://www.w3.org/2001/XMLSchema}string"/>
     *         &lt;element name="hrn" type="{http://www.w3.org/2001/XMLSchema}string"/>
     *         &lt;element name="location" minOccurs="0">
     *           &lt;complexType>
     *             &lt;complexContent>
     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *                 &lt;attribute name="country" type="{http://www.w3.org/2001/XMLSchema}string" />
     *                 &lt;attribute name="latitude" type="{http://www.w3.org/2001/XMLSchema}double" />
     *                 &lt;attribute name="longitude" type="{http://www.w3.org/2001/XMLSchema}double" />
     *               &lt;/restriction>
     *             &lt;/complexContent>
     *           &lt;/complexType>
     *         &lt;/element>
     *         &lt;element name="urls">
     *           &lt;complexType>
     *             &lt;complexContent>
     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *                 &lt;sequence>
     *                   &lt;element name="serverurl" maxOccurs="unbounded">
     *                     &lt;complexType>
     *                       &lt;complexContent>
     *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *                           &lt;sequence>
     *                             &lt;element name="servertype">
     *                               &lt;complexType>
     *                                 &lt;complexContent>
     *                                   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *                                     &lt;attribute name="role">
     *                                       &lt;simpleType>
     *                                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
     *                                           &lt;enumeration value="Slice Authority"/>
     *                                           &lt;enumeration value="Aggregate Manager"/>
     *                                           &lt;enumeration value="PlanetLab registry"/>
     *                                         &lt;/restriction>
     *                                       &lt;/simpleType>
     *                                     &lt;/attribute>
     *                                     &lt;attribute name="version" type="{http://www.w3.org/2001/XMLSchema}string" />
     *                                   &lt;/restriction>
     *                                 &lt;/complexContent>
     *                               &lt;/complexType>
     *                             &lt;/element>
     *                             &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string"/>
     *                           &lt;/sequence>
     *                         &lt;/restriction>
     *                       &lt;/complexContent>
     *                     &lt;/complexType>
     *                   &lt;/element>
     *                 &lt;/sequence>
     *               &lt;/restriction>
     *             &lt;/complexContent>
     *           &lt;/complexType>
     *         &lt;/element>
     *         &lt;element name="proxies">
     *           &lt;complexType>
     *             &lt;complexContent>
     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *                 &lt;sequence>
     *                   &lt;element name="proxy" maxOccurs="unbounded">
     *                     &lt;complexType>
     *                       &lt;complexContent>
     *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *                           &lt;sequence>
     *                             &lt;element name="proxyType" type="{http://www.w3.org/2001/XMLSchema}string"/>
     *                             &lt;element name="hostname" type="{http://www.w3.org/2001/XMLSchema}string"/>
     *                             &lt;element name="portRange" type="{http://www.w3.org/2001/XMLSchema}string"/>
     *                             &lt;element name="hostKey" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
     *                           &lt;/sequence>
     *                         &lt;/restriction>
     *                       &lt;/complexContent>
     *                     &lt;/complexType>
     *                   &lt;/element>
     *                 &lt;/sequence>
     *               &lt;/restriction>
     *             &lt;/complexContent>
     *           &lt;/complexType>
     *         &lt;/element>
     *         &lt;element name="type" type="{http://www.w3.org/2001/XMLSchema}string"/>
     *         &lt;element name="gid" type="{http://www.w3.org/2001/XMLSchema}string"/>
     *         &lt;element name="source">
     *           &lt;simpleType>
     *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
     *               &lt;enumeration value="Clearinghouse"/>
     *               &lt;enumeration value="Builtin"/>
     *               &lt;enumeration value="User"/>
     *             &lt;/restriction>
     *           &lt;/simpleType>
     *         &lt;/element>
     *         &lt;element name="reconnectEachTime" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
     *         &lt;element name="special" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
     *         &lt;element name="defaultScsUrn" type="{http://www.w3.org/2001/XMLSchema}string"/>
     *         &lt;element name="pemSslTrustCert" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
     *         &lt;element name="allowedCertificateHostnameAliases">
     *           &lt;complexType>
     *             &lt;complexContent>
     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *                 &lt;sequence>
     *                   &lt;element name="alias" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded"/>
     *                 &lt;/sequence>
     *               &lt;/restriction>
     *             &lt;/complexContent>
     *           &lt;/complexType>
     *         &lt;/element>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "urn",
        "hrn",
        "location",
        "urls",
        "proxies",
        "type",
        "gid",
        "source",
        "reconnectEachTime",
        "special",
        "defaultScsUrn",
        "pemSslTrustCert",
        "allowedCertificateHostnameAliases"
    })
    public static class Authority {

        @XmlElement(required = true)
        protected String urn;
        @XmlElement(required = true)
        protected String hrn;
        protected Authorities.Authority.Location location;
        @XmlElement(required = true)
        protected Authorities.Authority.Urls urls;
        @XmlElement(required = true)
        protected Authorities.Authority.Proxies proxies;
        @XmlElement(required = true)
        protected String type;
        @XmlElement(required = true)
        protected String gid;
        @XmlElement(required = true)
        protected String source;
        protected boolean reconnectEachTime;
        protected List<String> special;
        @XmlElement(required = true)
        protected String defaultScsUrn;
        protected List<String> pemSslTrustCert;
        @XmlElement(required = true)
        protected Authorities.Authority.AllowedCertificateHostnameAliases allowedCertificateHostnameAliases;

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

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

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

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

        /**
         * Gets the value of the location property.
         * 
         * @return
         *     possible object is
         *     {@link Authorities.Authority.Location }
         *     
         */
        public Authorities.Authority.Location getLocation() {
            return location;
        }

        /**
         * Sets the value of the location property.
         * 
         * @param value
         *     allowed object is
         *     {@link Authorities.Authority.Location }
         *     
         */
        public void setLocation(Authorities.Authority.Location value) {
            this.location = value;
        }

        /**
         * Gets the value of the urls property.
         * 
         * @return
         *     possible object is
         *     {@link Authorities.Authority.Urls }
         *     
         */
        public Authorities.Authority.Urls getUrls() {
            return urls;
        }

        /**
         * Sets the value of the urls property.
         * 
         * @param value
         *     allowed object is
         *     {@link Authorities.Authority.Urls }
         *     
         */
        public void setUrls(Authorities.Authority.Urls value) {
            this.urls = value;
        }

        /**
         * Gets the value of the proxies property.
         * 
         * @return
         *     possible object is
         *     {@link Authorities.Authority.Proxies }
         *     
         */
        public Authorities.Authority.Proxies getProxies() {
            return proxies;
        }

        /**
         * Sets the value of the proxies property.
         * 
         * @param value
         *     allowed object is
         *     {@link Authorities.Authority.Proxies }
         *     
         */
        public void setProxies(Authorities.Authority.Proxies value) {
            this.proxies = value;
        }

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

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

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

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

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

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

        /**
         * Gets the value of the reconnectEachTime property.
         * 
         */
        public boolean isReconnectEachTime() {
            return reconnectEachTime;
        }

        /**
         * Sets the value of the reconnectEachTime property.
         * 
         */
        public void setReconnectEachTime(boolean value) {
            this.reconnectEachTime = value;
        }

        /**
         * Gets the value of the special property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the special property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getSpecial().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link String }
         * 
         * 
         */
        public List<String> getSpecial() {
            if (special == null) {
                special = new ArrayList<>();
            }
            return this.special;
        }

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

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

        /**
         * Gets the value of the pemSslTrustCert property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the pemSslTrustCert property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getPemSslTrustCert().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link String }
         * 
         * 
         */
        public List<String> getPemSslTrustCert() {
            if (pemSslTrustCert == null) {
                pemSslTrustCert = new ArrayList<>();
            }
            return this.pemSslTrustCert;
        }

        /**
         * Gets the value of the allowedCertificateHostnameAliases property.
         * 
         * @return
         *     possible object is
         *     {@link Authorities.Authority.AllowedCertificateHostnameAliases }
         *     
         */
        public Authorities.Authority.AllowedCertificateHostnameAliases getAllowedCertificateHostnameAliases() {
            return allowedCertificateHostnameAliases;
        }

        /**
         * Sets the value of the allowedCertificateHostnameAliases property.
         * 
         * @param value
         *     allowed object is
         *     {@link Authorities.Authority.AllowedCertificateHostnameAliases }
         *     
         */
        public void setAllowedCertificateHostnameAliases(Authorities.Authority.AllowedCertificateHostnameAliases value) {
            this.allowedCertificateHostnameAliases = value;
        }


        /**
         * <p>Java class for anonymous complex type.
         * 
         * <p>The following schema fragment specifies the expected content contained within this class.
         * 
         * <pre>
         * &lt;complexType>
         *   &lt;complexContent>
         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
         *       &lt;sequence>
         *         &lt;element name="alias" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded"/>
         *       &lt;/sequence>
         *     &lt;/restriction>
         *   &lt;/complexContent>
         * &lt;/complexType>
         * </pre>
         * 
         * 
         */
        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name = "", propOrder = {
            "alias"
        })
        public static class AllowedCertificateHostnameAliases {

            @XmlElement(required = true)
            protected List<String> alias;

            /**
             * Gets the value of the alias property.
             * 
             * <p>
             * This accessor method returns a reference to the live list,
             * not a snapshot. Therefore any modification you make to the
             * returned list will be present inside the JAXB object.
             * This is why there is not a <CODE>set</CODE> method for the alias property.
             * 
             * <p>
             * For example, to add a new item, do as follows:
             * <pre>
             *    getAlias().add(newItem);
             * </pre>
             * 
             * 
             * <p>
             * Objects of the following type(s) are allowed in the list
             * {@link String }
             * 
             * 
             */
            public List<String> getAlias() {
                if (alias == null) {
                    alias = new ArrayList<>();
                }
                return this.alias;
            }

        }


        /**
         * <p>Java class for anonymous complex type.
         * 
         * <p>The following schema fragment specifies the expected content contained within this class.
         * 
         * <pre>
         * &lt;complexType>
         *   &lt;complexContent>
         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
         *       &lt;attribute name="country" type="{http://www.w3.org/2001/XMLSchema}string" />
         *       &lt;attribute name="latitude" type="{http://www.w3.org/2001/XMLSchema}double" />
         *       &lt;attribute name="longitude" type="{http://www.w3.org/2001/XMLSchema}double" />
         *     &lt;/restriction>
         *   &lt;/complexContent>
         * &lt;/complexType>
         * </pre>
         * 
         * 
         */
        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name = "")
        public static class Location {

            @XmlAttribute(name = "country")
            protected String country;
            @XmlAttribute(name = "latitude")
            protected Double latitude;
            @XmlAttribute(name = "longitude")
            protected Double longitude;

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

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

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

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

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

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

        }


        /**
         * <p>Java class for anonymous complex type.
         * 
         * <p>The following schema fragment specifies the expected content contained within this class.
         * 
         * <pre>
         * &lt;complexType>
         *   &lt;complexContent>
         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
         *       &lt;sequence>
         *         &lt;element name="proxy" maxOccurs="unbounded">
         *           &lt;complexType>
         *             &lt;complexContent>
         *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
         *                 &lt;sequence>
         *                   &lt;element name="proxyType" type="{http://www.w3.org/2001/XMLSchema}string"/>
         *                   &lt;element name="hostname" type="{http://www.w3.org/2001/XMLSchema}string"/>
         *                   &lt;element name="portRange" type="{http://www.w3.org/2001/XMLSchema}string"/>
         *                   &lt;element name="hostKey" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
         *                 &lt;/sequence>
         *               &lt;/restriction>
         *             &lt;/complexContent>
         *           &lt;/complexType>
         *         &lt;/element>
         *       &lt;/sequence>
         *     &lt;/restriction>
         *   &lt;/complexContent>
         * &lt;/complexType>
         * </pre>
         * 
         * 
         */
        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name = "", propOrder = {
            "proxy"
        })
        public static class Proxies {

            @XmlElement(required = true)
            protected List<Authorities.Authority.Proxies.Proxy> proxy;

            /**
             * Gets the value of the proxy property.
             * 
             * <p>
             * This accessor method returns a reference to the live list,
             * not a snapshot. Therefore any modification you make to the
             * returned list will be present inside the JAXB object.
             * This is why there is not a <CODE>set</CODE> method for the proxy property.
             * 
             * <p>
             * For example, to add a new item, do as follows:
             * <pre>
             *    getProxy().add(newItem);
             * </pre>
             * 
             * 
             * <p>
             * Objects of the following type(s) are allowed in the list
             * {@link Authorities.Authority.Proxies.Proxy }
             * 
             * 
             */
            public List<Authorities.Authority.Proxies.Proxy> getProxy() {
                if (proxy == null) {
                    proxy = new ArrayList<>();
                }
                return this.proxy;
            }


            /**
             * <p>Java class for anonymous complex type.
             * 
             * <p>The following schema fragment specifies the expected content contained within this class.
             * 
             * <pre>
             * &lt;complexType>
             *   &lt;complexContent>
             *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
             *       &lt;sequence>
             *         &lt;element name="proxyType" type="{http://www.w3.org/2001/XMLSchema}string"/>
             *         &lt;element name="hostname" type="{http://www.w3.org/2001/XMLSchema}string"/>
             *         &lt;element name="portRange" type="{http://www.w3.org/2001/XMLSchema}string"/>
             *         &lt;element name="hostKey" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
             *       &lt;/sequence>
             *     &lt;/restriction>
             *   &lt;/complexContent>
             * &lt;/complexType>
             * </pre>
             * 
             * 
             */
            @XmlAccessorType(XmlAccessType.FIELD)
            @XmlType(name = "", propOrder = {
                "proxyType",
                "hostname",
                "portRange",
                "hostKey"
            })
            public static class Proxy {

                @XmlElement(required = true)
                protected String proxyType;
                @XmlElement(required = true)
                protected String hostname;
                @XmlElement(required = true)
                protected String portRange;
                protected String hostKey;

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

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

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

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

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

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

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

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

            }

        }


        /**
         * <p>Java class for anonymous complex type.
         * 
         * <p>The following schema fragment specifies the expected content contained within this class.
         * 
         * <pre>
         * &lt;complexType>
         *   &lt;complexContent>
         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
         *       &lt;sequence>
         *         &lt;element name="serverurl" maxOccurs="unbounded">
         *           &lt;complexType>
         *             &lt;complexContent>
         *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
         *                 &lt;sequence>
         *                   &lt;element name="servertype">
         *                     &lt;complexType>
         *                       &lt;complexContent>
         *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
         *                           &lt;attribute name="role">
         *                             &lt;simpleType>
         *                               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
         *                                 &lt;enumeration value="Slice Authority"/>
         *                                 &lt;enumeration value="Aggregate Manager"/>
         *                                 &lt;enumeration value="PlanetLab registry"/>
         *                               &lt;/restriction>
         *                             &lt;/simpleType>
         *                           &lt;/attribute>
         *                           &lt;attribute name="version" type="{http://www.w3.org/2001/XMLSchema}string" />
         *                         &lt;/restriction>
         *                       &lt;/complexContent>
         *                     &lt;/complexType>
         *                   &lt;/element>
         *                   &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string"/>
         *                 &lt;/sequence>
         *               &lt;/restriction>
         *             &lt;/complexContent>
         *           &lt;/complexType>
         *         &lt;/element>
         *       &lt;/sequence>
         *     &lt;/restriction>
         *   &lt;/complexContent>
         * &lt;/complexType>
         * </pre>
         * 
         * 
         */
        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name = "", propOrder = {
            "serverurl"
        })
        public static class Urls {

            @XmlElement(required = true)
            protected List<Authorities.Authority.Urls.Serverurl> serverurl;

            /**
             * Gets the value of the serverurl property.
             * 
             * <p>
             * This accessor method returns a reference to the live list,
             * not a snapshot. Therefore any modification you make to the
             * returned list will be present inside the JAXB object.
             * This is why there is not a <CODE>set</CODE> method for the serverurl property.
             * 
             * <p>
             * For example, to add a new item, do as follows:
             * <pre>
             *    getServerurl().add(newItem);
             * </pre>
             * 
             * 
             * <p>
             * Objects of the following type(s) are allowed in the list
             * {@link Authorities.Authority.Urls.Serverurl }
             * 
             * 
             */
            public List<Authorities.Authority.Urls.Serverurl> getServerurl() {
                if (serverurl == null) {
                    serverurl = new ArrayList<>();
                }
                return this.serverurl;
            }


            /**
             * <p>Java class for anonymous complex type.
             * 
             * <p>The following schema fragment specifies the expected content contained within this class.
             * 
             * <pre>
             * &lt;complexType>
             *   &lt;complexContent>
             *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
             *       &lt;sequence>
             *         &lt;element name="servertype">
             *           &lt;complexType>
             *             &lt;complexContent>
             *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
             *                 &lt;attribute name="role">
             *                   &lt;simpleType>
             *                     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
             *                       &lt;enumeration value="Slice Authority"/>
             *                       &lt;enumeration value="Aggregate Manager"/>
             *                       &lt;enumeration value="PlanetLab registry"/>
             *                     &lt;/restriction>
             *                   &lt;/simpleType>
             *                 &lt;/attribute>
             *                 &lt;attribute name="version" type="{http://www.w3.org/2001/XMLSchema}string" />
             *               &lt;/restriction>
             *             &lt;/complexContent>
             *           &lt;/complexType>
             *         &lt;/element>
             *         &lt;element name="url" type="{http://www.w3.org/2001/XMLSchema}string"/>
             *       &lt;/sequence>
             *     &lt;/restriction>
             *   &lt;/complexContent>
             * &lt;/complexType>
             * </pre>
             * 
             * 
             */
            @XmlAccessorType(XmlAccessType.FIELD)
            @XmlType(name = "", propOrder = {
                "servertype",
                "url"
            })
            public static class Serverurl {

                @XmlElement(required = true)
                protected Authorities.Authority.Urls.Serverurl.Servertype servertype;
                @XmlElement(required = true)
                protected String url;

                /**
                 * Gets the value of the servertype property.
                 * 
                 * @return
                 *     possible object is
                 *     {@link Authorities.Authority.Urls.Serverurl.Servertype }
                 *     
                 */
                public Authorities.Authority.Urls.Serverurl.Servertype getServertype() {
                    return servertype;
                }

                /**
                 * Sets the value of the servertype property.
                 * 
                 * @param value
                 *     allowed object is
                 *     {@link Authorities.Authority.Urls.Serverurl.Servertype }
                 *     
                 */
                public void setServertype(Authorities.Authority.Urls.Serverurl.Servertype value) {
                    this.servertype = value;
                }

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

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


                /**
                 * <p>Java class for anonymous complex type.
                 * 
                 * <p>The following schema fragment specifies the expected content contained within this class.
                 * 
                 * <pre>
                 * &lt;complexType>
                 *   &lt;complexContent>
                 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
                 *       &lt;attribute name="role">
                 *         &lt;simpleType>
                 *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
                 *             &lt;enumeration value="Slice Authority"/>
                 *             &lt;enumeration value="Aggregate Manager"/>
                 *             &lt;enumeration value="PlanetLab registry"/>
                 *           &lt;/restriction>
                 *         &lt;/simpleType>
                 *       &lt;/attribute>
                 *       &lt;attribute name="version" type="{http://www.w3.org/2001/XMLSchema}string" />
                 *     &lt;/restriction>
                 *   &lt;/complexContent>
                 * &lt;/complexType>
                 * </pre>
                 * 
                 * 
                 */
                @XmlAccessorType(XmlAccessType.FIELD)
                @XmlType(name = "")
                public static class Servertype {

                    @XmlAttribute(name = "role")
                    protected String role;
                    @XmlAttribute(name = "version")
                    protected String version;

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

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

                    /**
                     * Gets the value of the version property.
                     * 
                     * @return
                     *     possible object is
                     *     {@link String }
                     *     
                     */
                    public String getVersion() {
                        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>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;attribute name="url" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
     *       &lt;attribute name="minVersion" type="{http://www.w3.org/2001/XMLSchema}integer" />
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "")
    public static class ExtraFile {

        @XmlAttribute(name = "url")
        @XmlSchemaType(name = "anyURI")
        protected String url;
        @XmlAttribute(name = "minVersion")
        protected BigInteger minVersion;

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

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

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

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

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="special" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
     *       &lt;/sequence>
     *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "special"
    })
    public static class Type {

        protected List<String> special;
        @XmlAttribute(name = "name")
        protected String name;

        /**
         * Gets the value of the special property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the special property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getSpecial().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link String }
         * 
         * 
         */
        public List<String> getSpecial() {
            if (special == null) {
                special = new ArrayList<>();
            }
            return this.special;
        }

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

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

    }

}
