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 * Portions Copyright 2010-2023 Ping Identity Corporation 026 */ 027package com.unboundid.directory.sdk.sync.config; 028 029 030 031import java.util.Set; 032 033import com.unboundid.util.NotExtensible; 034import com.unboundid.util.ThreadSafety; 035import com.unboundid.util.ThreadSafetyLevel; 036 037 038 039/** 040 * This interface defines a set of methods that may be used to obtain 041 * information about the general configuration for a JDBC Sync Source. 042 */ 043@NotExtensible() 044@ThreadSafety(level=ThreadSafetyLevel.INTERFACE_NOT_THREADSAFE) 045public interface JDBCSyncSourceConfig 046 extends GenericSyncConfig 047{ 048 /** 049 * Gets the description for this Sync Source. 050 * @return the description, or null if there is none set. 051 */ 052 String getDescription(); 053 054 /** 055 * Gets the maximum number of connections that the Sync Source 056 * is allowed to have open to the database at a given time. 057 * @return an integer between 1 and 1000 058 */ 059 int getMaxOpenConnections(); 060 061 /** 062 * Gets the list of configured database entry types that are used 063 * to uniquely identify a set of data in the database that makes up 064 * an LDAP entry. Changes that do not match one of these entry types 065 * are dropped by the sync source. 066 * @return a set of database entry types 067 */ 068 Set<String> getDatabaseEntryType(); 069 070 /** 071 * Gets the configured users from which detected changes will be ignored. 072 * <p> 073 * This is particularly useful when using the Data Sync Server to sync 074 * changes back to this source (i.e. bi-directional sync). 075 * In this case, a unique user account would be used by the Sync Pipe that 076 * applies changes to this source, and that user would be in this list to 077 * prevent those changes from being synchronized back to their original 078 * source. 079 * @return the set of database login names from which changes will be ignored 080 */ 081 Set<String> getIgnoreChangesByUser(); 082 083 /** 084 * Gets the configured amount of time (in milliseconds) after which changelog 085 * entries should be deleted from the changelog or corresponding table in the 086 * database. 087 * @return a long value that is greater than or equal to 1 088 */ 089 long getChangelogMaximumAge(); 090}