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 * docs/licenses/cddl.txt
011 * or http://www.opensource.org/licenses/cddl1.php.
012 * See the License for the specific language governing permissions
013 * and limitations under the License.
014 *
015 * When distributing Covered Code, include this CDDL HEADER in each
016 * file and include the License file at
017 * docs/licenses/cddl.txt.  If applicable,
018 * add the following below this CDDL HEADER, with the fields enclosed
019 * by brackets "[]" replaced with your own identifying information:
020 *      Portions Copyright [yyyy] [name of copyright owner]
021 *
022 * CDDL HEADER END
023 *
024 *
025 *      Copyright 2014-2021 Ping Identity Corporation
026 */
027package com.unboundid.directory.sdk.ds.types;
028
029import com.unboundid.util.ThreadSafety;
030import com.unboundid.util.ThreadSafetyLevel;
031
032
033
034/**
035 * This class implements an enumeration that may be used to define the
036 * ways in which an attribute may be indexed within the directory server.
037 */
038@ThreadSafety(level= ThreadSafetyLevel.COMPLETELY_THREADSAFE)
039public enum NotificationDeliveryResult
040{
041  /**
042   * The notification was successfully delivered.
043   */
044  SUCCESS,
045
046  /**
047   * The notification could not be delivered and delivery should not be retried.
048   */
049  FAILURE,
050
051  /**
052   * The notification could not be delivered but delivery should be retried.
053   * Notification manager implementations should be careful not to return
054   * {@code RETRY} when all future attempts of the notification delivery will
055   * fail, e.g. a remote change failing due to a schema violation. If the
056   * extension can determine that the remote service is completely unavailable,
057   * then it is fine to continue to retry, but if the service is available
058   * and only failing for some changes, then continuing to retry is dangerous.
059   * There are methods on the {@code Notification} interface to determine how
060   * many attempts have been made and for how long attempts have been made.
061   * Above some threshold, the extension should return {@code FAILURE} instead
062   * of {@code RETRY}.
063   */
064  RETRY
065}