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 2018-2023 Ping Identity Corporation
026 */
027
028package com.unboundid.directory.sdk.broker.types;
029
030import java.util.Map;
031
032/**
033 * Interface providing access to Advice statements returned from a
034 * policy evaluation.
035 */
036public interface AdviceStatement {
037
038  /**
039   * Get the name of the Advice instance.
040   * @return the Advice name.
041   */
042  String getName();
043
044  /**
045   * Get the code (advice Id) of the Advice instance.  The advice
046   * code corresponds to the type of advice returned.
047   * @return the Advice code.
048   */
049  String getCode();
050
051  /**
052   * Get the payload returned with this advice instance.
053   * @return The payload string, whose interpretation is specific to the Advice
054   * type.
055   */
056  String getPayload();
057
058  /**
059   * Determine whether this Advice is obligatory.
060   * @return boolean value, true for obligatory advice.
061   */
062  boolean isObligatory();
063
064  /**
065   * Get the value of any Trust Framework Attributes that were returned along
066   * with the Advice instance.
067   * @return a Map of Attribute name to Attribute value.
068   */
069  Map<String, String> getAttributes();
070}