MineTrust Connector CPP SDK

CppCliInterop.h
1// This file was generated automatically using GenerateAPIDefinition.ps1
2// Do not manually alter this file - instead modify the template and re-build the project
3#pragma once
4
5#include <chrono>
6#include <string>
7#include <unordered_map>
8#include <vector>
9#include <ppltasks.h>
10
11#ifdef CPPCLIINTEROP_EXPORTS
12#define MT_CONNECTOR_EXPORT __declspec(dllexport)
13#else
14#define MT_CONNECTOR_EXPORT __declspec(dllimport)
15#endif
16
20namespace MineTrustConnector
21{
25 class MT_CONNECTOR_EXPORT CppCliInterop
26 {
27 public:
31 enum class LogEvent
32 {
36 AllFilesUpToDate = 1000,
40 SyncStarted = 1001,
44 SyncCompleted = 1002,
48 ReplicationStarted = 1003,
52 ReplicationComplete = 1004,
56 VersionLocked = 1005,
60 PackageDisabled = 1006,
64 ProcessOwnedLockRemoved = 1007,
68 PackageVersionCreated = 1008,
72 PackageDeleted = 1009,
76 PackageArchived = 1010,
80 PackageRestored = 1011,
84 FileUploaded = 1100,
88 FileDownloaded = 1101,
92 FileUpdatedLocally = 1102,
96 FileUpdatedOnServer = 1103,
100 FileRemovedOnServer = 1104,
104 FileReplicated = 1105,
108 FileDiscarded = 1106,
112 FileCheckedOut = 1107,
116 FileCheckedIn = 1108,
120 FileUncheckedOut = 1109,
124 FileChangesDiscarded = 1110,
128 FileVersionsCleanedUp = 1111,
132 FileUploadInProgress = 1112,
136 FileDownloadInProgress = 1113,
140 PreparingFileUpload = 1114,
144 Initialising = 2000,
148 ConnectionEstablished = 2001,
152 ConnectionLost = 2002,
156 GracefulShutdown = 2003,
160 ServiceError = 2004,
164 ServerRegistered = 2005,
168 AccessTokenSuccess = 2006,
172 PackageEnabled = 2007,
177 ServiceUIDMismatch = 2008,
181 PackageAutoEnableUndetermined = 2009,
185 ClientCompatibilityError = 2010,
189 PackagePreviouslyDeleted = 2011,
194 SSLErrorDetected = 2012,
198 GeneralSyncError = 4000,
202 GeneralReplicationError = 4001,
206 Unauthorized = 4002,
210 PackageConfigurationNotFound = 4003,
216 AccessTokenRequired = 4004,
220 ServerRegistrationFailed = 4005,
224 LockPackageFailed = 4006,
228 UnlockPackageFailed = 4007,
232 EnablePackageFailed = 4008,
236 UpdateLocalFailed = 4009,
240 UpdateServerFailed = 4010,
244 PackageValidationFailed = 4011,
248 FileConflict = 4012,
252 CreateVersionFailed = 4013,
256 PackageDeletionFailed = 4014,
260 PrintDiagnosticsFailed = 4015,
264 AccessForbidden = 4016,
265 };
266
271 {
275 std::string packageUID;
279 std::vector<std::string> files;
283 std::vector<std::string> extensions;
287 std::unordered_map<std::string, std::string> tags;
291 std::string retention;
292 };
293
300 {
304 static MT_CONNECTOR_EXPORT const std::string SHARED_PACKAGE_VISIBILITY;
308 static MT_CONNECTOR_EXPORT const std::string PRIVATE_PACKAGE_VISIBILITY;
312 std::string filePath;
317 bool enabled = false;
321 std::string displayName;
325 std::string packageUID;
329 std::string serverUrl;
333 std::string localRoot;
338 std::string mineTrustRoot;
343 std::vector<std::string> tagNamingPatterns;
348 std::vector<IncludeConfiguration> include;
353 std::vector<std::string> exclude;
357 int targetVersion = 0;
361 bool exclusiveCheckOut = false;
366 std::string owner;
372 std::string visibility;
377 std::string filter;
378 };
379
387 {
391 int totalFiles = 0;
395 int localFiles = 0;
399 int percentageDownloaded = 0;
400 };
401
406 {
414 std::string value;
418 std::vector<ConfigSchemaItem> children;
422 std::string fullPath;
423 };
424
430 {
434 std::string root;
438 std::vector<ConfigSchemaItem> items;
439 };
440
447 {
451 std::string name;
455 std::string value;
459 std::unique_ptr<int> folderID;
460 };
461
468 {
472 std::string name;
476 std::string breadcrumb;
480 std::vector<LocalTagRecord> tags;
484 std::unique_ptr<int> fileID;
488 std::string localFilePath;
489 };
490
495 {
504 std::chrono::system_clock::time_point time;
508 std::string message;
512 std::unique_ptr<int64_t> recordId;
516 int level = 0;
520 std::string filePath;
524 std::string packageUID;
528 std::unordered_map<std::string, std::string> eventArgs;
529 };
530
535 static bool LoadPackageConfiguration(const std::string& packageUID, PackageConfiguration& instance);
540 static bool SavePackageConfiguration(const PackageConfiguration& instance);
541
546 {
550 Success = 0,
554 ServerAlreadyRegistered = 1,
558 GeneralError = 2,
562 IncompatibleClient = 3
563 };
564
568 static RegisterServerResultCodes RegisterServer(const std::string& serverURL, bool showUI = false);
573 static concurrency::task<RegisterServerResultCodes> RegisterServerTask(const std::string& serverURL, bool showUI = false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
578 {
582 Success = 0,
586 PackageConfigurationNotFound = 1,
590 PackageAlreadyEnabled = 2,
594 PackagePreviouslyDeleted = 3,
598 ServerURLNotValid = 4,
602 GeneralError = 5,
606 IncompatibleClient = 6
607 };
608
612 static EnablePackageResultCodes EnablePackage(const std::string& packageUID, const std::string& localRoot = "", const std::string& serverURL = "", bool showUI = false);
617 static concurrency::task<EnablePackageResultCodes> EnablePackageTask(const std::string& packageUID, const std::string& localRoot = "", const std::string& serverURL = "", bool showUI = false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
622 {
626 Success = 0,
630 PackageConfigurationNotFound = 1,
634 GeneralError = 2,
638 IncompatibleClient = 3
639 };
640
644 static CreateVersionResultCodes CreateVersion(const std::string& packageUID, const std::string& comment = "", bool showUI = false);
649 static concurrency::task<CreateVersionResultCodes> CreateVersionTask(const std::string& packageUID, const std::string& comment = "", bool showUI = false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
654 {
658 Success = 0,
662 PackageConfigurationNotFound = 1,
666 PackageAlreadyLocked = 2,
670 FilesCheckedOutElsewhere = 3,
674 ProcessNotFound = 4,
678 PackageNotEnabled = 5,
682 PackageProcessing = 6,
686 GeneralError = 7,
690 IncompatibleClient = 8
691 };
692
696 static LockPackageResultCodes LockPackage(const std::string& packageUID, const int& ownerProcess = 0, bool showUI = false);
701 static concurrency::task<LockPackageResultCodes> LockPackageTask(const std::string& packageUID, const int& ownerProcess = 0, bool showUI = false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
706 {
710 Success = 0,
714 PackageConfigurationNotFound = 1,
718 PackageNotLocked = 2,
722 GeneralError = 3,
726 IncompatibleClient = 4
727 };
728
732 static UnlockPackageResultCodes UnlockPackage(const std::string& packageUID, bool discardChanges = false, bool showUI = false);
737 static concurrency::task<UnlockPackageResultCodes> UnlockPackageTask(const std::string& packageUID, bool discardChanges = false, bool showUI = false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
742 {
746 Success = 0,
750 PackageConfigurationNotFound = 1,
754 PackageNotEnabled = 2,
758 PackageLocked = 3,
762 GeneralError = 4,
766 IncompatibleClient = 5
767 };
768
772 static SyncNowResultCodes SyncNow(const std::string& packageUID, bool showUI = false);
777 static concurrency::task<SyncNowResultCodes> SyncNowTask(const std::string& packageUID, bool showUI = false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
782 {
786 Success = 0,
790 PackageConfigurationNotFound = 1,
794 LocalFileNotFound = 2,
798 ServerFileNotFound = 3,
802 ServerFileCheckedOut = 4,
806 GeneralError = 5,
810 IncompatibleClient = 6
811 };
812
816 static UpdateServerResultCodes UpdateServer(const std::string& packageUID, const std::string& filePath, bool showUI = false);
821 static concurrency::task<UpdateServerResultCodes> UpdateServerTask(const std::string& packageUID, const std::string& filePath, bool showUI = false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
826 {
830 Success = 0,
834 PackageConfigurationNotFound = 1,
838 LocalFileNotFound = 2,
842 ServerFileNotFound = 3,
846 GeneralError = 4,
850 IncompatibleClient = 5
851 };
852
856 static UpdateLocalResultCodes UpdateLocal(const std::string& packageUID, const std::string& filePath, bool showUI = false);
861 static concurrency::task<UpdateLocalResultCodes> UpdateLocalTask(const std::string& packageUID, const std::string& filePath, bool showUI = false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
866 {
870 Success = 0,
874 GeneralError = 1,
878 IncompatibleClient = 2
879 };
880
884 static PrintDiagnosticsResultCodes PrintDiagnostics(bool showUI = false);
889 static concurrency::task<PrintDiagnosticsResultCodes> PrintDiagnosticsTask(bool showUI = false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
890
894 static std::vector<std::string> ListServerURLs();
895
899 static std::vector<PackageConfiguration> ListServerConfigurations();
900
904 static std::vector<PackageConfiguration> ListPackageConfigurations();
905
911 static std::vector<PackageConfiguration> FindPackageConfigurations(const std::string& jsonPath, const std::string& testValue, bool negate = false);
912
917 [[deprecated("Use FindTags and FindFiles instead")]]
918 static std::unordered_map<std::string, std::vector<std::string>> FindPackageConfigurationItems(const std::string& tagName, const std::string& tagValue);
919
926 [[deprecated("Use FindTags and FindFiles instead")]]
927 static std::unordered_map<std::string, std::vector<std::string>> FindPackageConfigurationItems(const std::unordered_map<std::string, std::string>& tagCriteria);
928
943 static std::vector<LocalTagRecord> FindTags(const std::string& filter = "", const std::string& serviceUID = "", bool fuzzyMatch = false);
944
950 static std::vector<LocalFileRecord> FindFiles(const std::string& tagName, const std::string& tagValue, const std::string& serviceUID = "", bool fuzzyMatch = false);
951
957 static std::vector<LocalFileRecord> FindFiles(const std::unordered_map<std::string, std::string>& tagCriteria, const std::string& serviceUID = "", bool fuzzyMatch = false);
958
963 static std::vector<std::string> GetDeletedPackages(const std::string& serviceUID = "");
964
969 static std::vector<std::string> GetArchivedPackages(const std::string& serviceUID = "");
970
975 static std::string GetShellExtensionName();
976
982 static PackageMetrics LoadPackageMetrics(const std::string& packageUID);
983
988 static ConfigSchema LoadConfigSchema(const std::string& root);
989
993 static std::vector<std::string> GetPermittedValues(const std::string& configPath);
994
999 static bool IsMineTrustConnectorInstalled();
1000
1005 static bool IsMineTrustConnectorRunning();
1006
1007 struct RegistrationWrapperImpl;
1008 using RegistrationWrapper = std::unique_ptr<RegistrationWrapperImpl, void(*)(RegistrationWrapperImpl*)>;
1009
1014 static RegistrationWrapper RegisterEvents(std::function<void(const MTConnectorEvent&)> callback, const std::list<LogEvent>& eventIDs = {});
1015
1019 static std::vector<std::string> EnumerateLocalContents(const std::string& packageUID);
1020
1025 static std::vector<std::string> EnumerateLocalFilesByTag(const std::string& packageUID, const std::string& tagName, const std::string& tagValue);
1026
1030 static bool IsInScope(const std::string& packageUID, const std::string& localFilePath);
1031
1038 static void IncludeInPackage(PackageConfiguration& instance, const std::string& localFilePath, std::function<void(IncludeConfiguration&)> configureInclusion);
1039
1045 static void ExcludeFromPackage(PackageConfiguration& instance, const std::string& localFilePath);
1046
1051 static void TagFile(PackageConfiguration& instance, const std::string& localFilePath, const std::string& tagName, const std::string& tagValue);
1052
1060 static concurrency::task<void> ReceiveFiles(const std::vector<LocalFileRecord>& selection, std::function<void(const std::vector<LocalFileRecord>&)> filesReceivedCallback, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
1061
1070 static concurrency::task<void> SendFiles(const std::vector<LocalFileRecord>& selection, std::function<PackageConfiguration(const LocalFileRecord&)> packageSelectionCallback, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
1071 };
1072}
Definition CppCliInterop.h:26
UpdateServerResultCodes
Definition CppCliInterop.h:782
UpdateLocalResultCodes
Definition CppCliInterop.h:826
RegisterServerResultCodes
Definition CppCliInterop.h:546
UnlockPackageResultCodes
Definition CppCliInterop.h:706
CreateVersionResultCodes
Definition CppCliInterop.h:622
PrintDiagnosticsResultCodes
Definition CppCliInterop.h:866
LockPackageResultCodes
Definition CppCliInterop.h:654
LogEvent
Definition CppCliInterop.h:32
EnablePackageResultCodes
Definition CppCliInterop.h:578
SyncNowResultCodes
Definition CppCliInterop.h:742
std::string root
Definition CppCliInterop.h:434
std::vector< ConfigSchemaItem > items
Definition CppCliInterop.h:438
std::string value
Definition CppCliInterop.h:414
ConfigSchemaItem * parent
Definition CppCliInterop.h:410
std::string fullPath
Definition CppCliInterop.h:422
std::vector< ConfigSchemaItem > children
Definition CppCliInterop.h:418
std::vector< std::string > files
Definition CppCliInterop.h:279
std::vector< std::string > extensions
Definition CppCliInterop.h:283
std::unordered_map< std::string, std::string > tags
Definition CppCliInterop.h:287
std::string retention
Definition CppCliInterop.h:291
std::string packageUID
Definition CppCliInterop.h:275
std::string localFilePath
Definition CppCliInterop.h:488
std::unique_ptr< int > fileID
Definition CppCliInterop.h:484
std::string name
Definition CppCliInterop.h:472
std::string breadcrumb
Definition CppCliInterop.h:476
std::vector< LocalTagRecord > tags
Definition CppCliInterop.h:480
std::string value
Definition CppCliInterop.h:455
std::string name
Definition CppCliInterop.h:451
std::unique_ptr< int > folderID
Definition CppCliInterop.h:459
std::string packageUID
Definition CppCliInterop.h:524
LogEvent eventId
Definition CppCliInterop.h:500
std::unordered_map< std::string, std::string > eventArgs
Definition CppCliInterop.h:528
std::unique_ptr< int64_t > recordId
Definition CppCliInterop.h:512
std::string message
Definition CppCliInterop.h:508
std::chrono::system_clock::time_point time
Definition CppCliInterop.h:504
std::string filePath
Definition CppCliInterop.h:520
std::vector< IncludeConfiguration > include
Definition CppCliInterop.h:348
std::string mineTrustRoot
Definition CppCliInterop.h:338
std::string owner
Definition CppCliInterop.h:366
std::string displayName
Definition CppCliInterop.h:321
std::string localRoot
Definition CppCliInterop.h:333
std::string visibility
Definition CppCliInterop.h:372
std::vector< std::string > tagNamingPatterns
Definition CppCliInterop.h:343
static MT_CONNECTOR_EXPORT const std::string PRIVATE_PACKAGE_VISIBILITY
Definition CppCliInterop.h:308
static MT_CONNECTOR_EXPORT const std::string SHARED_PACKAGE_VISIBILITY
Definition CppCliInterop.h:304
std::string serverUrl
Definition CppCliInterop.h:329
std::vector< std::string > exclude
Definition CppCliInterop.h:353
std::string filePath
Definition CppCliInterop.h:312
std::string packageUID
Definition CppCliInterop.h:325
std::string filter
Definition CppCliInterop.h:377