001/* 002 * CDDL HEADER START 003 * 004 * The contents of this file are subject to the terms of the 005 * Common Development and Distribution License, Version 1.0 only 006 * (the "License"). You may not use this file except in compliance 007 * with the License. 008 * 009 * You can obtain a copy of the license at 010 * http://www.opensource.org/licenses/cddl1.php. 011 * See the License for the specific language governing permissions 012 * and limitations under the License. 013 * 014 * When distributing Covered Code, include this CDDL HEADER in each 015 * file. If applicable, add the following below this CDDL HEADER, 016 * with the fields enclosed by brackets "[]" replaced with your own 017 * identifying information: 018 * Portions Copyright [yyyy] [name of copyright owner] 019 * 020 * CDDL HEADER END 021 * 022 * 023 * Portions Copyright 2007-2021 Ping Identity Corporation 024 * Portions Copyright 2006-2008 Sun Microsystems, Inc. 025 */ 026package com.unboundid.directory.sdk.ds.types; 027 028 029 030import java.util.List; 031import java.util.Map; 032 033import com.unboundid.directory.sdk.common.types.Entry; 034import com.unboundid.util.ThreadSafety; 035import com.unboundid.util.ThreadSafetyLevel; 036 037 038/** 039 * This class defines a data type for storing information associated 040 * with an account status notification. 041 */ 042@ThreadSafety(level= ThreadSafetyLevel.INTERFACE_THREADSAFE) 043public interface AccountStatusNotification 044{ 045 /** 046 * Retrieves the notification type for this account status notification. 047 * 048 * @return The notification type for this account status notification. 049 */ 050 AccountStatusNotificationType getNotificationType(); 051 052 053 054 /** 055 * Retrieves the DN of the user entry to which this notification applies. 056 * 057 * @return The DN of the user entry to which this notification applies. 058 */ 059 String getUserDN(); 060 061 062 063 /** 064 * Retrieves the user entry for whom this notification applies. 065 * 066 * @return The user entry for whom this notification applies. 067 */ 068 Entry getUserEntry(); 069 070 071 072 /** 073 * Retrieves a message that provides additional information for this account 074 * status notification. 075 * 076 * @return A message that provides additional information for this account 077 * status notification. 078 */ 079 String getMessage(); 080 081 082 083 /** 084 * Retrieves a set of properties that may provide additional information for 085 * this account status notification. 086 * 087 * @return A set of properties that may provide additional information for 088 * this account status notification. 089 */ 090 Map<AccountStatusNotificationProperty,List<String>> 091 getNotificationProperties(); 092 093 094 095 /** 096 * Retrieves the set of values for the specified account status notification 097 * property. 098 * 099 * @param property The account status notification property for which to 100 * retrieve the associated values. 101 * 102 * @return The set of values for the specified account status notification 103 * property, or {@code null} if the specified property is not defined 104 * for this account status notification. 105 */ 106 List<String> getNotificationProperty( 107 final AccountStatusNotificationProperty property); 108 109 110 111 /** 112 * Retrieves a string representation of this account status notification. 113 * 114 * @return A string representation of this account status notification. 115 */ 116 String toString(); 117} 118