// Copyright 2016 The Nomulus Authors. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package google.registry.config; import com.google.common.base.Optional; import com.google.common.net.HostAndPort; import java.net.URL; import org.joda.time.Duration; /** * Registry configuration for global constants that can't be injected. * *
The goal of this custom configuration system is to have our project environments configured * in type-safe Java code that can be refactored, rather than XML files and system properties. * *
Note: This interface is deprecated by {@link ConfigModule}. */ public interface RegistryConfig { /** * Returns the App Engine project ID, which is based off the environment name. */ public String getProjectId(); /** * Returns the Google Cloud Storage bucket for storing backup snapshots. * * @see google.registry.export.ExportSnapshotServlet */ public String getSnapshotsBucket(); /** * Number of sharded commit log buckets. * *
This number is crucial for determining how much transactional throughput the system can * allow, because it determines how many entity groups are available for writing commit logs. * Since entity groups have a one transaction per second SLA (which is actually like ten in * practice), a registry that wants to be able to handle one hundred transactions per second * should have one hundred buckets. * *
Warning: This can be raised but never lowered. * * @see google.registry.model.ofy.CommitLogBucket */ public int getCommitLogBucketCount(); /** * Returns the length of time before commit logs should be deleted from datastore. * *
The only reason you'll want to retain this commit logs in datastore is for performing
* point-in-time restoration queries for subsystems like RDE.
*
* @see google.registry.backup.DeleteOldCommitLogsAction
* @see google.registry.model.translators.CommitLogRevisionsTranslatorFactory
*/
public Duration getCommitLogDatastoreRetention();
/**
* Returns {@code true} if TMCH certificate authority should be in testing mode.
*
* @see google.registry.tmch.TmchCertificateAuthority
*/
public boolean getTmchCaTestingMode();
public Optional This is used by the {@code nomulus} tool to connect to the App Engine remote API.
*/
public HostAndPort getServer();
/** Returns the amount of time a singleton should be cached, before expiring. */
public Duration getSingletonCacheRefreshDuration();
/**
* Returns the amount of time a domain label list should be cached in memory before expiring.
*
* @see google.registry.model.registry.label.ReservedList
* @see google.registry.model.registry.label.PremiumList
*/
public Duration getDomainLabelListCacheDuration();
/** Returns the amount of time a singleton should be cached in persist mode, before expiring. */
public Duration getSingletonCachePersistDuration();
/**
* Returns the header text at the top of the reserved terms exported list.
*
* @see google.registry.export.ExportUtils#exportReservedTerms
*/
public String getReservedTermsExportDisclaimer();
/**
* Returns a display name that is used on outgoing emails sent by Nomulus.
*
* @see google.registry.util.SendEmailUtils
*/
public String getGoogleAppsAdminEmailDisplayName();
/**
* Returns the email address that outgoing emails from the app are sent from.
*
* @see google.registry.util.SendEmailUtils
*/
public String getGoogleAppsSendFromEmailAddress();
/**
* Returns the roid suffix to be used for the roids of all contacts and hosts. E.g. a value of
* "ROID" would end up creating roids that look like "ABC123-ROID".
*
* @see
* Extensible Provisioning Protocol (EPP) Repository Identifiers
*/
public String getContactAndHostRepositoryIdentifier();
/**
* Returns default WHOIS server to use when {@code Registrar#getWhoisServer()} is {@code null}.
*
* @see "google.registry.whois.DomainWhoisResponse"
* @see "google.registry.whois.RegistrarWhoisResponse"
*/
public String getRegistrarDefaultWhoisServer();
/**
* Returns the default referral URL that is used unless registrars have specified otherwise.
*/
public URL getRegistrarDefaultReferralUrl();
/**
* Returns the number of EppResourceIndex buckets to be used.
*/
public int getEppResourceIndexBucketCount();
/**
* Returns the base duration that gets doubled on each retry within {@code Ofy}.
*/
public Duration getBaseOfyRetryDuration();
/**
* Returns the global automatic transfer length for contacts. After this amount of time has
* elapsed, the transfer is automatically improved.
*/
public Duration getContactAutomaticTransferLength();
/**
* Returns the clientId of the registrar used by the {@code CheckApiServlet}.
*/
public String getCheckApiServletRegistrarClientId();
// XXX: Please consider using ConfigModule instead of adding new methods to this file.
}