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 * trunk/ds/resource/legal-notices/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 * trunk/ds/resource/legal-notices/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 *      Portions Copyright 2023 Ping Identity Corporation
026 */
027package com.unboundid.directory.sdk.ds.types;
028
029
030
031import java.io.File;
032
033import com.unboundid.util.NotNull;
034import com.unboundid.util.Nullable;
035
036
037
038/**
039 * This information may be used to obtain information about an LDIF export task
040 * that was processed by the server.
041 */
042public interface LDIFExportTaskProperties
043{
044  /**
045   * Retrieves the task ID for the associated LDIF export task.
046   *
047   * @return  The task ID for the associated LDIF export task.
048   */
049  @NotNull()
050  String getTaskID();
051
052
053
054  /**
055   * Retrieves the output file to which the data was exported.
056   *
057   * @return  The output file to which the data was exported.
058   */
059  @NotNull()
060  File getOutputFile();
061
062
063
064  /**
065   * Retrieves the backend ID for the backend from which the export was
066   * generated.
067   *
068   * @return  The backend ID for the backend from which the export was
069   *          generated.
070   */
071  @NotNull()
072  String getBackendID();
073
074
075
076  /**
077   * Indicates whether the LDIF export is GZIP-compressed.
078   *
079   * @return  {@code true} if the LDIF export is GZIP-compressed, or
080   *          {@code false} if not.
081   */
082  boolean isCompressed();
083
084
085
086  /**
087   * Indicates whether the LDIF export is encrypted.
088   *
089   * @return  {@code true} if the LDIF export is encrypted, or {@code false} if
090   *          not.
091   */
092  boolean isEncrypted();
093
094
095
096  /**
097   * Retrieves the ID of the encryption settings definition that was used to
098   * encrypt the LDIF file, if applicable.
099   *
100   * @return  The ID of the encryption settings definition that was used to
101   *          encrypt the LDIF file, or {@code null} if the LDIF file was not
102   *          encrypted or if it was encrypted with a passphrase rather than an
103   *          encryption settings definition.
104   */
105  @Nullable()
106  String getEncryptionSettingsDefinitionID();
107
108
109
110  /**
111   * Retrieves the passphrase that was used to encrypt the LDIF file, if
112   * applicable.
113   *
114   * @return  The passphrase that was used to encrypt the LDIF file, or
115   *          {@code null} if the LDIF file was not encrypted or if it was
116   *          encrypted with an encryption settings definition rather than a
117   *          specified passphrase.
118   */
119  @Nullable()
120  String getEncryptionPassphrase();
121
122
123
124  /**
125   * Retrieves a string representation of this LDIF export task properties
126   * object.
127   *
128   * @return  A string representation of this LDIF export task properties
129   *          object.
130   */
131  @NotNull()
132  String toString();
133}