package com.ausregistry.jtoolkit2.session;
import com.ausregistry.jtoolkit2.se.CommandType;
/**
* Configure the behaviour and authentication sources of a Session.
*/
public interface SessionProperties {
/**
* The hostname of the EPP server.
*/
String getHostname();
/**
* The port on which the EPP server listens (standard port is 700).
*/
int getPort();
/**
* The client's username (clID in EPP terminology) as used in the EPP login
* command.
*/
String getClientID();
/**
* Set the client's username (clID in EPP terminology) to be returned by
* further calls to getClientID.
*/
void setClientID(String id);
/**
* The client's password (pw in EPP terminology) as used in the EPP login
* command.
*/
String getClientPW();
/**
* Set the password to be returned by further calls to getClientPW.
*/
void setClientPW(String password);
/**
* The protocol version of EPP to be used to communicate with the EPP
* server.
*/
String getVersion();
/**
* Request that the EPP server send any language-configurable messages in
* this language.
*/
String getLanguage();
/**
* Request that the objects specified by these URIs be managable during the
* Session configured from these properties.
*/
String[] getObjURIs();
/**
* Request that the extensions specified by these URIs be available during
* the Session configured from these properties.
*/
String[] getExtURIs();
/**
* The location of the KeyStore file from which private key and public
* certificate data will be read in order to establish a connection with
* the EPP server.
*/
String getKeyStoreFilename();
/**
* The passphrase used to protect the KeyStore identified by <a
* href="#getKeyStoreFilename()">getKeyStoreFilename</a>.
*/
String getKeyStorePassphrase();
/**
* The type of the KeyStore. The two most common types are JKS (default)
* and PKCS12.
*/
String getKeyStoreType();
/**
* The location of the KeyStore file from which Certification Authority
* data will be read in order to verify the authenticity of the key
* in the accompanying user keystore.
*/
String getTrustStoreFilename();
/**
* The passphrase used to protect the KeyStore identified by <a
* href="#getTrustStoreFilename()">getTrustStoreFilename</a>.
*/
String getTrustStorePassphrase();
/**
* The SSL version to use. The only version currently supported by EPP is
* TLSv1.
*/
String getSSLVersion();
/**
* The SSL key manager algorithm to use. The default algorithm for the
* Sun JRE is SunX509.
*/
String getSSLAlgorithm();
/**
* The maximum number of commands of the given type to process in a single
* session over a short period of time (default: infinity).
*/
int getCommandLimit(CommandType type);
/**
* The maximum number of commands of any type to process in a single
* session over a short period of time (default: infinity ).
*/
int getCommandLimit();
/**
* The time interval, in milliseconds, over which a command is considered
* recent for the purposes of session-specific command limiting (default: 1
* second = 1000 ms).
*/
long getCommandLimitInterval();
/**
* The maximum duration of time (specified in milliseconds) to wait when
* acquiring a session.
*/
long getAcquireTimeout();
/**
* The maximum length of time (specified in milliseconds) to wait for data
* to become available on the underlying socket when reading.
*/
int getSocketTimeout();
/**
* Enforce strict validation of incoming and outgoing service elements.
* The purpose of strict validation is to detect service element errors
* prior to transmission.
*/
boolean enforceStrictValidation();
}