MineTrust Connector CPP SDK

MTConnectorSDK.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 MT_CONNECTOR_CPP_EXPORTS
12#define MT_CONNECTOR_EXPORT __declspec(dllexport)
13#else
14#define MT_CONNECTOR_EXPORT __declspec(dllimport)
15#endif
16
23namespace MTConnectorSDK
24{
28 enum class LogEvent
29 {
33 AllFilesUpToDate = 1000,
37 SyncStarted = 1001,
41 SyncCompleted = 1002,
45 ReplicationStarted = 1003,
49 ReplicationComplete = 1004,
53 VersionLocked = 1005,
57 PackageDisabled = 1006,
61 ProcessOwnedLockRemoved = 1007,
65 PackageVersionCreated = 1008,
69 PackageDeleted = 1009,
73 PackageArchived = 1010,
77 PackageRestored = 1011,
81 FileUploaded = 1100,
85 FileDownloaded = 1101,
89 FileUpdatedLocally = 1102,
93 FileUpdatedOnServer = 1103,
97 FileRemovedOnServer = 1104,
101 FileReplicated = 1105,
105 FileDiscarded = 1106,
109 FileCheckedOut = 1107,
113 FileCheckedIn = 1108,
117 FileUncheckedOut = 1109,
121 FileChangesDiscarded = 1110,
125 FileVersionsCleanedUp = 1111,
129 FileUploadInProgress = 1112,
133 FileDownloadInProgress = 1113,
137 PreparingFileUpload = 1114,
141 FileNoLongerExists = 1115,
145 FileCheckedOutElsewhere = 1116,
149 Initialising = 2000,
153 ConnectionEstablished = 2001,
157 ConnectionLost = 2002,
161 GracefulShutdown = 2003,
165 ServiceError = 2004,
169 ServerRegistered = 2005,
173 AccessTokenSuccess = 2006,
177 PackageEnabled = 2007,
182 ServiceUIDMismatch = 2008,
186 PackageAutoEnableUndetermined = 2009,
190 ClientCompatibilityError = 2010,
194 PackagePreviouslyDeleted = 2011,
199 SSLErrorDetected = 2012,
203 GeneralSyncError = 4000,
207 GeneralReplicationError = 4001,
211 Unauthorized = 4002,
215 PackageConfigurationNotFound = 4003,
221 AccessTokenRequired = 4004,
225 ServerRegistrationFailed = 4005,
229 LockPackageFailed = 4006,
233 UnlockPackageFailed = 4007,
237 EnablePackageFailed = 4008,
241 UpdateLocalFailed = 4009,
245 UpdateServerFailed = 4010,
249 PackageValidationFailed = 4011,
253 FileConflict = 4012,
257 CreateVersionFailed = 4013,
261 PackageDeletionFailed = 4014,
265 PrintDiagnosticsFailed = 4015,
269 AccessForbidden = 4016,
273 PackageAccessDenied = 4017,
274 };
275
280 {
284 std::string packageUID;
288 std::vector<std::string> files;
292 std::vector<std::string> extensions;
296 std::unordered_map<std::string, std::string> tags;
300 std::string retention;
301 };
302
309 {
313 static MT_CONNECTOR_EXPORT const std::string SHARED_PACKAGE_VISIBILITY;
317 static MT_CONNECTOR_EXPORT const std::string PRIVATE_PACKAGE_VISIBILITY;
321 std::string filePath;
326 bool enabled = false;
330 std::string displayName;
334 std::string packageUID;
338 std::string serverUrl;
342 std::string localRoot;
347 std::string mineTrustRoot;
352 std::vector<std::string> tagNamingPatterns;
357 std::vector<IncludeConfiguration> include;
362 std::vector<std::string> exclude;
370 bool exclusiveCheckOut = false;
375 std::string owner;
381 std::string visibility;
386 std::string filter;
387 };
388
396 {
400 int totalFiles = 0;
404 int localFiles = 0;
409 };
410
415 {
423 std::string value;
427 std::vector<ConfigSchemaItem> children;
431 std::string fullPath;
432 };
433
439 {
443 std::string root;
447 std::vector<ConfigSchemaItem> items;
448 };
449
456 {
460 std::string name;
464 std::string value;
468 std::unique_ptr<int> folderID;
469 };
470
477 {
481 std::string name;
485 std::string breadcrumb;
489 std::vector<LocalTagRecord> tags;
493 std::unique_ptr<int> fileID;
497 std::string localFilePath;
498 };
499
504 {
509 LogEvent eventId;
513 std::chrono::system_clock::time_point time;
517 std::string message;
521 std::unique_ptr<int64_t> recordId;
525 int level = 0;
529 std::string filePath;
533 std::string packageUID;
537 std::unordered_map<std::string, std::string> eventArgs;
538 };
539
544 MT_CONNECTOR_EXPORT bool LoadPackageConfiguration(const std::string& packageUID, PackageConfiguration& instance);
549 MT_CONNECTOR_EXPORT bool SavePackageConfiguration(const PackageConfiguration& instance);
550
554 enum class RegisterServerResultCodes
555 {
559 Success = 0,
563 ServerAlreadyRegistered = 1,
567 GeneralError = 2,
571 IncompatibleClient = 3
572 };
573
577 MT_CONNECTOR_EXPORT RegisterServerResultCodes RegisterServer(const std::string& serverURL, bool showUI = false);
582 MT_CONNECTOR_EXPORT concurrency::task<RegisterServerResultCodes> RegisterServerTask(const std::string& serverURL, bool showUI = false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
586 enum class EnablePackageResultCodes
587 {
591 Success = 0,
595 PackageConfigurationNotFound = 1,
599 PackageAlreadyEnabled = 2,
603 PackagePreviouslyDeleted = 3,
607 ServerURLNotValid = 4,
611 InsufficientPermissions = 5,
615 GeneralError = 6,
619 IncompatibleClient = 7
620 };
621
625 MT_CONNECTOR_EXPORT EnablePackageResultCodes EnablePackage(const std::string& packageUID, const std::string& localRoot = "", const std::string& serverURL = "", bool showUI = false);
630 MT_CONNECTOR_EXPORT 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());
634 enum class CreateVersionResultCodes
635 {
639 Success = 0,
643 PackageConfigurationNotFound = 1,
647 InsufficientPermissions = 2,
651 GeneralError = 3,
655 IncompatibleClient = 4
656 };
657
661 MT_CONNECTOR_EXPORT CreateVersionResultCodes CreateVersion(const std::string& packageUID, const std::string& comment = "", bool showUI = false);
666 MT_CONNECTOR_EXPORT concurrency::task<CreateVersionResultCodes> CreateVersionTask(const std::string& packageUID, const std::string& comment = "", bool showUI = false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
670 enum class LockPackageResultCodes
671 {
675 Success = 0,
679 PackageConfigurationNotFound = 1,
683 PackageAlreadyLocked = 2,
687 FilesCheckedOutElsewhere = 3,
691 ProcessNotFound = 4,
695 PackageNotEnabled = 5,
699 PackageProcessing = 6,
703 InsufficientPermissions = 7,
707 GeneralError = 8,
711 IncompatibleClient = 9
712 };
713
717 MT_CONNECTOR_EXPORT LockPackageResultCodes LockPackage(const std::string& packageUID, const int& ownerProcess = 0, bool showUI = false);
722 MT_CONNECTOR_EXPORT concurrency::task<LockPackageResultCodes> LockPackageTask(const std::string& packageUID, const int& ownerProcess = 0, bool showUI = false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
726 enum class UnlockPackageResultCodes
727 {
731 Success = 0,
735 PackageConfigurationNotFound = 1,
739 PackageNotLocked = 2,
743 GeneralError = 3,
747 IncompatibleClient = 4
748 };
749
753 MT_CONNECTOR_EXPORT UnlockPackageResultCodes UnlockPackage(const std::string& packageUID, bool discardChanges = false, bool showUI = false);
758 MT_CONNECTOR_EXPORT concurrency::task<UnlockPackageResultCodes> UnlockPackageTask(const std::string& packageUID, bool discardChanges = false, bool showUI = false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
762 enum class SyncNowResultCodes
763 {
767 Success = 0,
771 PackageConfigurationNotFound = 1,
775 PackageNotEnabled = 2,
779 PackageLocked = 3,
783 GeneralError = 4,
787 IncompatibleClient = 5
788 };
789
793 MT_CONNECTOR_EXPORT SyncNowResultCodes SyncNow(const std::string& packageUID, bool showUI = false);
798 MT_CONNECTOR_EXPORT concurrency::task<SyncNowResultCodes> SyncNowTask(const std::string& packageUID, bool showUI = false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
802 enum class UpdateServerResultCodes
803 {
807 Success = 0,
811 PackageConfigurationNotFound = 1,
815 LocalFileNotFound = 2,
819 ServerFileNotFound = 3,
823 ServerFileCheckedOut = 4,
827 GeneralError = 5,
831 IncompatibleClient = 6
832 };
833
837 MT_CONNECTOR_EXPORT UpdateServerResultCodes UpdateServer(const std::string& packageUID, const std::string& filePath, bool showUI = false);
842 MT_CONNECTOR_EXPORT concurrency::task<UpdateServerResultCodes> UpdateServerTask(const std::string& packageUID, const std::string& filePath, bool showUI = false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
846 enum class UpdateLocalResultCodes
847 {
851 Success = 0,
855 PackageConfigurationNotFound = 1,
859 LocalFileNotFound = 2,
863 ServerFileNotFound = 3,
867 GeneralError = 4,
871 IncompatibleClient = 5
872 };
873
877 MT_CONNECTOR_EXPORT UpdateLocalResultCodes UpdateLocal(const std::string& packageUID, const std::string& filePath, bool showUI = false);
882 MT_CONNECTOR_EXPORT concurrency::task<UpdateLocalResultCodes> UpdateLocalTask(const std::string& packageUID, const std::string& filePath, bool showUI = false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
886 enum class PrintDiagnosticsResultCodes
887 {
891 Success = 0,
895 GeneralError = 1,
899 IncompatibleClient = 2
900 };
901
905 MT_CONNECTOR_EXPORT PrintDiagnosticsResultCodes PrintDiagnostics(bool showUI = false);
910 MT_CONNECTOR_EXPORT concurrency::task<PrintDiagnosticsResultCodes> PrintDiagnosticsTask(bool showUI = false, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
911
915 MT_CONNECTOR_EXPORT std::vector<std::string> ListServerURLs();
916
920 MT_CONNECTOR_EXPORT std::vector<PackageConfiguration> ListServerConfigurations();
921
925 MT_CONNECTOR_EXPORT std::vector<PackageConfiguration> ListPackageConfigurations();
926
932 MT_CONNECTOR_EXPORT std::vector<PackageConfiguration> FindPackageConfigurations(const std::string& jsonPath, const std::string& testValue, bool negate = false);
933
948 MT_CONNECTOR_EXPORT std::vector<LocalTagRecord> FindTags(const std::string& nameFilter = "", const std::string& valueFilter = "", const std::string& serviceUID = "", bool fuzzyMatch = false);
949
955 MT_CONNECTOR_EXPORT std::vector<LocalFileRecord> FindFiles(const std::string& tagName, const std::string& tagValue, const std::string& serviceUID = "", bool fuzzyMatch = false);
956
962 MT_CONNECTOR_EXPORT std::vector<LocalFileRecord> FindFiles(const std::unordered_map<std::string, std::string>& tagCriteria, const std::string& serviceUID = "", bool fuzzyMatch = false);
963
971 MT_CONNECTOR_EXPORT std::vector<LocalFileRecord> FindFiles(const std::string& tagName, const std::string& tagValue, const std::string& fileNamePattern, const std::string& serviceUID = "", bool fuzzyMatch = false);
972
980 MT_CONNECTOR_EXPORT std::vector<LocalFileRecord> FindFiles(const std::unordered_map<std::string, std::string>& tagCriteria, const std::string& fileNamePattern, const std::string& serviceUID = "", bool fuzzyMatch = false);
981
989 MT_CONNECTOR_EXPORT std::vector<LocalFileRecord> EvaluateFilter(const std::string& filter, const std::string& packageUID = "", const std::string& serviceUID = "");
990
995 MT_CONNECTOR_EXPORT std::vector<std::string> GetAccessiblePackages(const std::string& serviceUID = "");
996
1001 MT_CONNECTOR_EXPORT std::vector<std::string> GetInaccessiblePackages(const std::string& serviceUID = "");
1002
1007 MT_CONNECTOR_EXPORT std::vector<std::string> GetDeletedPackages(const std::string& serviceUID = "");
1008
1013 MT_CONNECTOR_EXPORT std::vector<std::string> GetArchivedPackages(const std::string& serviceUID = "");
1014
1019 MT_CONNECTOR_EXPORT std::string GetShellExtensionName();
1020
1028 MT_CONNECTOR_EXPORT PackageMetrics LoadPackageMetrics(const std::string& packageUID, const std::string& serviceUID = "");
1029
1034 MT_CONNECTOR_EXPORT ConfigSchema LoadConfigSchema(const std::string& root);
1035
1039 MT_CONNECTOR_EXPORT std::vector<std::string> GetPermittedValues(const std::string& configPath);
1040
1045 MT_CONNECTOR_EXPORT bool IsMineTrustConnectorInstalled();
1046
1051 MT_CONNECTOR_EXPORT bool IsMineTrustConnectorRunning();
1052
1054 using RegistrationWrapper = std::unique_ptr<RegistrationWrapperImpl, void(*)(RegistrationWrapperImpl*)>;
1055
1060 MT_CONNECTOR_EXPORT RegistrationWrapper RegisterEvents(std::function<void(const MTConnectorEvent&)> callback, const std::list<LogEvent>& eventIDs = {});
1061
1065 MT_CONNECTOR_EXPORT std::vector<std::string> EnumerateLocalContents(const std::string& packageUID);
1066
1071 MT_CONNECTOR_EXPORT std::vector<std::string> EnumerateLocalFilesByTag(const std::string& packageUID, const std::string& tagName, const std::string& tagValue);
1072
1076 MT_CONNECTOR_EXPORT bool IsInScope(const std::string& packageUID, const std::string& localFilePath);
1077
1084 MT_CONNECTOR_EXPORT void IncludeInPackage(PackageConfiguration& instance, const std::string& localFilePath, std::function<void(IncludeConfiguration&)> configureInclusion);
1085
1091 MT_CONNECTOR_EXPORT void ExcludeFromPackage(PackageConfiguration& instance, const std::string& localFilePath);
1092
1097 MT_CONNECTOR_EXPORT void TagFile(PackageConfiguration& instance, const std::string& localFilePath, const std::string& tagName, const std::string& tagValue);
1098
1103 MT_CONNECTOR_EXPORT void RemoveTag(PackageConfiguration& instance, const std::string& localFilePath, const std::string& tagName);
1104
1112 MT_CONNECTOR_EXPORT 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());
1113
1122 MT_CONNECTOR_EXPORT concurrency::task<void> SendFiles(const std::vector<LocalFileRecord>& selection, std::function<PackageConfiguration(const LocalFileRecord&)> packageSelectionCallback, concurrency::cancellation_token cancel = concurrency::cancellation_token::none());
1123}
Definition MTConnectorSDK.h:439
std::string root
Definition MTConnectorSDK.h:443
std::vector< ConfigSchemaItem > items
Definition MTConnectorSDK.h:447
Definition MTConnectorSDK.h:415
ConfigSchemaItem * parent
Definition MTConnectorSDK.h:419
std::vector< ConfigSchemaItem > children
Definition MTConnectorSDK.h:427
std::string value
Definition MTConnectorSDK.h:423
std::string fullPath
Definition MTConnectorSDK.h:431
Definition MTConnectorSDK.h:280
std::unordered_map< std::string, std::string > tags
Definition MTConnectorSDK.h:296
std::vector< std::string > files
Definition MTConnectorSDK.h:288
std::string packageUID
Definition MTConnectorSDK.h:284
std::string retention
Definition MTConnectorSDK.h:300
std::vector< std::string > extensions
Definition MTConnectorSDK.h:292
Definition MTConnectorSDK.h:477
std::vector< LocalTagRecord > tags
Definition MTConnectorSDK.h:489
std::string localFilePath
Definition MTConnectorSDK.h:497
std::unique_ptr< int > fileID
Definition MTConnectorSDK.h:493
std::string breadcrumb
Definition MTConnectorSDK.h:485
std::string name
Definition MTConnectorSDK.h:481
Definition MTConnectorSDK.h:456
std::string name
Definition MTConnectorSDK.h:460
std::string value
Definition MTConnectorSDK.h:464
std::unique_ptr< int > folderID
Definition MTConnectorSDK.h:468
Definition MTConnectorSDK.h:504
std::unordered_map< std::string, std::string > eventArgs
Definition MTConnectorSDK.h:537
LogEvent eventId
Definition MTConnectorSDK.h:509
int level
Definition MTConnectorSDK.h:525
std::string message
Definition MTConnectorSDK.h:517
std::string packageUID
Definition MTConnectorSDK.h:533
std::unique_ptr< int64_t > recordId
Definition MTConnectorSDK.h:521
std::chrono::system_clock::time_point time
Definition MTConnectorSDK.h:513
std::string filePath
Definition MTConnectorSDK.h:529
Definition MTConnectorSDK.h:309
std::string displayName
Definition MTConnectorSDK.h:330
std::string serverUrl
Definition MTConnectorSDK.h:338
std::vector< IncludeConfiguration > include
Definition MTConnectorSDK.h:357
std::string localRoot
Definition MTConnectorSDK.h:342
static MT_CONNECTOR_EXPORT const std::string PRIVATE_PACKAGE_VISIBILITY
Definition MTConnectorSDK.h:317
std::string filter
Definition MTConnectorSDK.h:386
static MT_CONNECTOR_EXPORT const std::string SHARED_PACKAGE_VISIBILITY
Definition MTConnectorSDK.h:313
std::string owner
Definition MTConnectorSDK.h:375
bool enabled
Definition MTConnectorSDK.h:326
std::vector< std::string > exclude
Definition MTConnectorSDK.h:362
std::string filePath
Definition MTConnectorSDK.h:321
std::vector< std::string > tagNamingPatterns
Definition MTConnectorSDK.h:352
std::string visibility
Definition MTConnectorSDK.h:381
std::string mineTrustRoot
Definition MTConnectorSDK.h:347
std::string packageUID
Definition MTConnectorSDK.h:334
bool exclusiveCheckOut
Definition MTConnectorSDK.h:370
int targetVersion
Definition MTConnectorSDK.h:366
Definition MTConnectorSDK.h:396
int totalFiles
Definition MTConnectorSDK.h:400
int localFiles
Definition MTConnectorSDK.h:404
int percentageDownloaded
Definition MTConnectorSDK.h:408
Definition MTConnectorSDK.cpp:478