using System.ServiceModel;
namespace TGServiceInterface.Components
{
///
/// Manage the group that is used to access the service, can only be used by an administrator
///
[ServiceContract]
public interface ITGAdministration
{
///
/// Get the port used for remote operation
///
/// The port used for remote operation
[OperationContract]
ushort RemoteAccessPort();
///
/// Set the port used for remote operation
/// Requires a service restart to take effect
///
/// The new port to use for remote operation
/// on success, error message on failure
[OperationContract]
string SetRemoteAccessPort(ushort port);
///
/// Returns the name of the windows group allowed to use the service other than administrator
///
/// The name of the windows group allowed to use the service other than administrator, "ADMIN" if it's unset, on failure
[OperationContract]
string GetCurrentAuthorizedGroup();
///
/// Searches the windows machine for the group named , sets it as the authorized group if it's found
///
/// The name of the windows group to search for or null to clear the setting
/// The name of the windows group that is now authorized to use the service on success, on failure, "ADMIN" on clearing
[OperationContract]
string SetAuthorizedGroup(string groupName);
///
/// Moves the entire server installation, requires no operations to be running
///
/// The new path to place the server
/// on success, error message on failure
[OperationContract]
string MoveServer(string new_location);
///
/// Renames the current static folder to a backup name and recreates is from the current repo using TGS3.json
///
/// on success, error message on failure
[OperationContract]
string RecreateStaticFolder();
}
}