001/**
002 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003 *
004 * Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved
005 *
006 * The contents of this file are subject to the terms
007 * of the Common Development and Distribution License
008 * (the License). You may not use this file except in
009 * compliance with the License.
010 *
011 * You can obtain a copy of the License at
012 * https://opensso.dev.java.net/public/CDDLv1.0.html or
013 * opensso/legal/CDDLv1.0.txt
014 * See the License for the specific language governing
015 * permission and limitations under the License.
016 *
017 * When distributing Covered Code, include this CDDL
018 * Header Notice in each file and include the License file
019 * at opensso/legal/CDDLv1.0.txt.
020 * If applicable, add the following below the CDDL Header,
021 * with the fields enclosed by brackets [] replaced by
022 * your own identifying information:
023 * "Portions Copyrighted [year] [name of copyright owner]"
024 *
025 * $Id: LogoutRequest.java,v 1.2 2008/06/25 05:47:56 qcheng Exp $
026 *
027 */
028
029
030package com.sun.identity.saml2.protocol;
031
032import com.sun.identity.saml2.common.SAML2Exception;
033
034/**
035 * This class represents the <code>LogoutRequest</code> element in
036 * SAML protocol schema.
037 * A session participant or session authority sends a <code>LogoutRequest</code>
038 * message to indicate that a session has been terminated.
039 *
040 * <pre>
041 * &lt;element name="LogoutRequest" type="{urn:oasis:names:tc:SAML:2.0:protocol}LogoutRequestType"/>
042 * </pre>
043 *
044 * <pre>
045 * &lt;complexType name="LogoutRequestType">
046 *   &lt;complexContent>
047 *     &lt;extension base="{urn:oasis:names:tc:SAML:2.0:protocol}RequestAbstractType">
048 *       &lt;sequence>
049 *         &lt;choice>
050 *           &lt;element ref="{urn:oasis:names:tc:SAML:2.0:assertion}BaseID"/>
051 *           &lt;element ref="{urn:oasis:names:tc:SAML:2.0:assertion}NameID"/>
052 *           &lt;element ref="{urn:oasis:names:tc:SAML:2.0:assertion}EncryptedID"/>
053 *         &lt;/choice>
054 *         &lt;element ref="{urn:oasis:names:tc:SAML:2.0:protocol}SessionIndex" maxOccurs="unbounded" minOccurs="0"/>
055 *       &lt;/sequence>
056 *       &lt;attribute name="NotOnOrAfter" type="{http://www.w3.org/2001/XMLSchema}dateTime" />
057 *       &lt;attribute name="Reason" type="{http://www.w3.org/2001/XMLSchema}string" />
058 *     &lt;/extension>
059 *   &lt;/complexContent>
060 * &lt;/complexType>
061 * </pre>
062 *
063 * @supported.all.api
064 */
065public interface LogoutRequest
066extends com.sun.identity.saml2.protocol.RequestAbstract {
067    
068    /**
069     * Returns the value of the notOnOrAfter property.
070     *
071     * @return <code>java.util.Date</code> value of the notOnOrAfter property
072     * @see #setNotOnOrAfter(Date)
073     */
074    public java.util.Date getNotOnOrAfter();
075    
076    /**
077     * Sets the value of the notOnOrAfter property.
078     *
079     * @param value <code>java.util.Date</code> value of the notOnOrAfter 
080     * property to be set
081     *
082     * @throws SAML2Exception if the object is immutable
083     * @see #getNotOnOrAfter
084     */
085    public void setNotOnOrAfter(java.util.Date value) throws SAML2Exception;
086    
087    /**
088     * Returns the value of the reason property.
089     *
090     * @return <code>String</code> value of the reason property
091     * @see #setReason(String)
092     */
093    public java.lang.String getReason();
094    
095    /**
096     * Sets the value of the reason property.
097     *
098     * @param value <code>String</code> value of the reason property to be set
099     * @throws SAML2Exception if the object is immutable
100     * @see #getReason
101     */
102    public void setReason(java.lang.String value) throws SAML2Exception;
103    
104    /**
105     * Returns the value of the encryptedID property.
106     *
107     * @return the value of the encryptedID property
108     * @see #setEncryptedID(EncryptedID)
109     */
110    public com.sun.identity.saml2.assertion.EncryptedID getEncryptedID();
111    
112    /**
113     * Sets the value of the encryptedID property.
114     *
115     * @param value the value of the encryptedID property to be set
116     * @throws SAML2Exception if the object is immutable
117     *
118     * @see #getEncryptedID
119     */
120    public void setEncryptedID(
121    com.sun.identity.saml2.assertion.EncryptedID value)
122    throws SAML2Exception;
123    
124    /**
125     * Returns the value of the nameID property.
126     *
127     * @return the value of the nameID property
128     * @see #setNameID(NameID)
129     */
130    public com.sun.identity.saml2.assertion.NameID getNameID();
131    
132    /**
133     * Sets the value of the nameID property.
134     *
135     * @param value the value of the nameID property to be set
136     * @throws SAML2Exception if the object is immutable
137     * @see #getNameID
138     */
139    public void setNameID(com.sun.identity.saml2.assertion.NameID value)
140    throws SAML2Exception;
141    
142    /**
143     * Returns the value of the baseID property.
144     *
145     * @return the value of the baseID property
146     * @see #setBaseID(BaseID)
147     */
148    public com.sun.identity.saml2.assertion.BaseID getBaseID();
149    
150    /**
151     * Sets the value of the baseID property.
152     *
153     * @param value the value of the baseID property to be set
154     * @throws SAML2Exception if the object is immutable
155     * @see #getBaseID
156     */
157    public void setBaseID(com.sun.identity.saml2.assertion.BaseID value)
158    throws SAML2Exception;
159    
160    /**
161     * Returns the value of the SessionIndex property.
162     *
163     * @return list containing objects of type <code>java.lang.String</code>
164     * @see #setSessionIndex(List)
165     */
166    public java.util.List getSessionIndex();
167    
168    /**
169     * Sets the value of the SessionIndex property.
170     *
171     * @param sessionIndexList list containing objects of 
172     *        type <code>java.lang.String</code>
173     * @throws SAML2Exception if the object is immutable
174     * @see #getSessionIndex
175     */
176    public void setSessionIndex(java.util.List sessionIndexList)
177    throws SAML2Exception;
178}