//
// 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.07.16 at 03:24:22 PM EEST 
//


package org.ecloudmanager.tmrk.cloudapi.model;

import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.*;


/**
 * <p>Java class for PasswordComplexityRulesType complex type.
 * <p/>
 * <p>The following schema fragment specifies the expected content contained within this class.
 * <p/>
 * <pre>
 * &lt;complexType name="PasswordComplexityRulesType">
 *   &lt;complexContent>
 *     &lt;extension base="{}ResourceType">
 *       &lt;sequence>
 *         &lt;element name="RuleType" type="{}PasswordComplexityRuleTypeEnum"/>
 *         &lt;element name="CustomRules" type="{}CustomPasswordRulesType" minOccurs="0"/>
 *         &lt;element name="PasswordExpiration" type="{}PasswordExpirationType" minOccurs="0"/>
 *         &lt;element name="Description" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *       &lt;/sequence>
 *     &lt;/extension>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "PasswordComplexityRulesType", propOrder = {
    "ruleType",
    "customRules",
    "passwordExpiration",
    "description"
})
public class PasswordComplexityRulesType
    extends ResourceType {

    @XmlElement(name = "RuleType", required = true)
    @XmlSchemaType(name = "string")
    protected PasswordComplexityRuleTypeEnum ruleType;
    @XmlElementRef(name = "CustomRules", type = JAXBElement.class, required = false)
    protected JAXBElement<CustomPasswordRulesType> customRules;
    @XmlElementRef(name = "PasswordExpiration", type = JAXBElement.class, required = false)
    protected JAXBElement<PasswordExpirationType> passwordExpiration;
    @XmlElementRef(name = "Description", type = JAXBElement.class, required = false)
    protected JAXBElement<String> description;

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

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

    /**
     * Gets the value of the customRules property.
     *
     * @return possible object is
     * {@link JAXBElement }{@code <}{@link CustomPasswordRulesType }{@code >}
     */
    public JAXBElement<CustomPasswordRulesType> getCustomRules() {
        return customRules;
    }

    /**
     * Sets the value of the customRules property.
     *
     * @param value allowed object is
     *              {@link JAXBElement }{@code <}{@link CustomPasswordRulesType }{@code >}
     */
    public void setCustomRules(JAXBElement<CustomPasswordRulesType> value) {
        this.customRules = value;
    }

    /**
     * Gets the value of the passwordExpiration property.
     *
     * @return possible object is
     * {@link JAXBElement }{@code <}{@link PasswordExpirationType }{@code >}
     */
    public JAXBElement<PasswordExpirationType> getPasswordExpiration() {
        return passwordExpiration;
    }

    /**
     * Sets the value of the passwordExpiration property.
     *
     * @param value allowed object is
     *              {@link JAXBElement }{@code <}{@link PasswordExpirationType }{@code >}
     */
    public void setPasswordExpiration(JAXBElement<PasswordExpirationType> value) {
        this.passwordExpiration = value;
    }

    /**
     * Gets the value of the description property.
     *
     * @return possible object is
     * {@link JAXBElement }{@code <}{@link String }{@code >}
     */
    public JAXBElement<String> getDescription() {
        return description;
    }

    /**
     * Sets the value of the description property.
     *
     * @param value allowed object is
     *              {@link JAXBElement }{@code <}{@link String }{@code >}
     */
    public void setDescription(JAXBElement<String> value) {
        this.description = value;
    }

}
