/*
Myrtille: A native HTML4/5 Remote Desktop Protocol client.
Copyright(c) 2014-2021 Cedric Coste
Copyright(c) 2018 Paul Oliver (Olive Innovations)
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.
*/
using System.Collections.Generic;
namespace Myrtille.Services.Contracts
{
public interface IEnterpriseAdapter
{
void Initialize();
///
/// Authenticate user
///
///
///
///
/// the name of your domain (i.e. MYDOMAIN or mydomain.local) or the domain controller FQDN or IP
/// the netbios domain name (i.e. MYDOMAIN)
///
EnterpriseSession Authenticate(string username, string password, string adminGroup, string domain, string netbiosDomain);
///
/// Delete user session
///
///
void Logout(string sessionID);
///
/// Add new host to the platform
///
///
///
///
long? AddHost(EnterpriseHostEdit editHost, string sessionID);
///
/// Get host information from ID and session ID
///
///
///
/// Host information for connection or null if invalid hostid or sessionId specified
EnterpriseHostEdit GetHost(long hostID, string sessionID);
///
/// Update host information
///
///
///
///
bool UpdateHost(EnterpriseHostEdit editHost, string sessionID);
///
/// Delete host
///
///
///
///
bool DeleteHost(long hostID, string sessionID);
///
/// Retrieve a list of hosts the user session is allowed to access
///
///
///
List SessionHosts(string sessionID);
///
/// Get the connection details for the session and host
///
///
///
///
///
EnterpriseConnectionDetails GetSessionConnectionDetails(string sessionID, long hostID, string sessionKey);
///
/// Create a session, the session URL returned can be given to external users to connect to a specific host using a URL
///
///
///
///
///
///
///
string CreateUserSession(string sessionID, long hostID, string username, string password, string domain);
///
/// Change password for user
///
///
///
///
///
///
///
bool ChangeUserPassword(string username, string oldPassword, string newPassword, string domain);
///
/// Add override credentials for specific session host
///
///
///
bool AddSessionHostCredentials(EnterpriseHostSessionCredentials credentials);
}
}