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 * Portions Copyrighted 2016 ForgeRock AS.
028 */
029
030
031package com.sun.identity.saml2.protocol;
032
033import com.fasterxml.jackson.annotation.JsonTypeInfo;
034import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
035import com.sun.identity.saml2.common.SAML2Exception;
036import com.sun.identity.saml2.protocol.impl.LogoutRequestImpl;
037import com.sun.identity.saml2.protocol.impl.LogoutResponseImpl;
038
039/**
040 * This class represents the <code>LogoutRequest</code> element in
041 * SAML protocol schema.
042 * A session participant or session authority sends a <code>LogoutRequest</code>
043 * message to indicate that a session has been terminated.
044 *
045 * <pre>
046 * &lt;element name="LogoutRequest" type="{urn:oasis:names:tc:SAML:2.0:protocol}LogoutRequestType"/>
047 * </pre>
048 *
049 * <pre>
050 * &lt;complexType name="LogoutRequestType">
051 *   &lt;complexContent>
052 *     &lt;extension base="{urn:oasis:names:tc:SAML:2.0:protocol}RequestAbstractType">
053 *       &lt;sequence>
054 *         &lt;choice>
055 *           &lt;element ref="{urn:oasis:names:tc:SAML:2.0:assertion}BaseID"/>
056 *           &lt;element ref="{urn:oasis:names:tc:SAML:2.0:assertion}NameID"/>
057 *           &lt;element ref="{urn:oasis:names:tc:SAML:2.0:assertion}EncryptedID"/>
058 *         &lt;/choice>
059 *         &lt;element ref="{urn:oasis:names:tc:SAML:2.0:protocol}SessionIndex" maxOccurs="unbounded" minOccurs="0"/>
060 *       &lt;/sequence>
061 *       &lt;attribute name="NotOnOrAfter" type="{http://www.w3.org/2001/XMLSchema}dateTime" />
062 *       &lt;attribute name="Reason" type="{http://www.w3.org/2001/XMLSchema}string" />
063 *     &lt;/extension>
064 *   &lt;/complexContent>
065 * &lt;/complexType>
066 * </pre>
067 *
068 * @supported.all.api
069 */
070
071@JsonTypeInfo(include = JsonTypeInfo.As.PROPERTY, use = JsonTypeInfo.Id.CLASS,
072        defaultImpl = LogoutRequestImpl.class)
073public interface LogoutRequest
074extends com.sun.identity.saml2.protocol.RequestAbstract {
075    
076    /**
077     * Returns the value of the notOnOrAfter property.
078     *
079     * @return <code>java.util.Date</code> value of the notOnOrAfter property
080     * @see #setNotOnOrAfter(Date)
081     */
082    public java.util.Date getNotOnOrAfter();
083    
084    /**
085     * Sets the value of the notOnOrAfter property.
086     *
087     * @param value <code>java.util.Date</code> value of the notOnOrAfter 
088     * property to be set
089     *
090     * @throws SAML2Exception if the object is immutable
091     * @see #getNotOnOrAfter
092     */
093    public void setNotOnOrAfter(java.util.Date value) throws SAML2Exception;
094    
095    /**
096     * Returns the value of the reason property.
097     *
098     * @return <code>String</code> value of the reason property
099     * @see #setReason(String)
100     */
101    public java.lang.String getReason();
102    
103    /**
104     * Sets the value of the reason property.
105     *
106     * @param value <code>String</code> value of the reason property to be set
107     * @throws SAML2Exception if the object is immutable
108     * @see #getReason
109     */
110    public void setReason(java.lang.String value) throws SAML2Exception;
111    
112    /**
113     * Returns the value of the encryptedID property.
114     *
115     * @return the value of the encryptedID property
116     * @see #setEncryptedID(EncryptedID)
117     */
118    public com.sun.identity.saml2.assertion.EncryptedID getEncryptedID();
119    
120    /**
121     * Sets the value of the encryptedID property.
122     *
123     * @param value the value of the encryptedID property to be set
124     * @throws SAML2Exception if the object is immutable
125     *
126     * @see #getEncryptedID
127     */
128    public void setEncryptedID(
129    com.sun.identity.saml2.assertion.EncryptedID value)
130    throws SAML2Exception;
131    
132    /**
133     * Returns the value of the nameID property.
134     *
135     * @return the value of the nameID property
136     * @see #setNameID(NameID)
137     */
138    public com.sun.identity.saml2.assertion.NameID getNameID();
139    
140    /**
141     * Sets the value of the nameID property.
142     *
143     * @param value the value of the nameID property to be set
144     * @throws SAML2Exception if the object is immutable
145     * @see #getNameID
146     */
147    public void setNameID(com.sun.identity.saml2.assertion.NameID value)
148    throws SAML2Exception;
149    
150    /**
151     * Returns the value of the baseID property.
152     *
153     * @return the value of the baseID property
154     * @see #setBaseID(BaseID)
155     */
156    public com.sun.identity.saml2.assertion.BaseID getBaseID();
157    
158    /**
159     * Sets the value of the baseID property.
160     *
161     * @param value the value of the baseID property to be set
162     * @throws SAML2Exception if the object is immutable
163     * @see #getBaseID
164     */
165    public void setBaseID(com.sun.identity.saml2.assertion.BaseID value)
166    throws SAML2Exception;
167    
168    /**
169     * Returns the value of the SessionIndex property.
170     *
171     * @return list containing objects of type <code>java.lang.String</code>
172     * @see #setSessionIndex(List)
173     */
174    public java.util.List getSessionIndex();
175    
176    /**
177     * Sets the value of the SessionIndex property.
178     *
179     * @param sessionIndexList list containing objects of 
180     *        type <code>java.lang.String</code>
181     * @throws SAML2Exception if the object is immutable
182     * @see #getSessionIndex
183     */
184    public void setSessionIndex(java.util.List sessionIndexList)
185    throws SAML2Exception;
186}