28#ifndef API_MIP_FILE_FILE_ENGINE_H_ 
   29#define API_MIP_FILE_FILE_ENGINE_H_ 
   69        const std::string& engineId,
 
   70        const std::shared_ptr<AuthDelegate>& authDelegate,
 
   71        const std::string& clientData,
 
   72        const std::string& locale = 
"",
 
   73        bool loadSensitivityTypes = 
false)
 
   74        : mEngineId(engineId),
 
   75          mAuthDelegate(authDelegate),
 
   76          mClientData(clientData),
 
   78          mIsLoadSensitivityTypesEnabled(loadSensitivityTypes) {
 
   79      if (mLocale.compare(
"") == 0) {
 
   99        const std::shared_ptr<AuthDelegate>& authDelegate,
 
  100        const std::string& clientData,
 
  101        const std::string& locale = 
"",
 
  102        bool loadSensitivityTypes = 
false)
 
  103        : mIdentity(identity),
 
  104          mAuthDelegate(authDelegate),
 
  105          mClientData(clientData),
 
  107          mIsLoadSensitivityTypesEnabled(loadSensitivityTypes) {
 
  108      if (mLocale.compare(
"") == 0) {
 
  116    const std::string& GetEngineId()
 const { 
return mEngineId; }
 
  123    void SetEngineId(
const std::string& 
id) { mEngineId = id; }
 
  128    const Identity& GetIdentity()
 const { 
return mIdentity; }
 
  133    void SetIdentity(
const Identity& identity) { mIdentity = identity; }
 
  138    const std::string& GetClientData()
 const { 
return mClientData; }
 
  143    const std::string& GetLocale()
 const { 
return mLocale; }
 
  148    void SetCustomSettings(
const std::vector<std::pair<std::string, std::string>>& value) { mCustomSettings = value; }
 
  153    const std::vector<std::pair<std::string, std::string>>& GetCustomSettings()
 const { 
return mCustomSettings; }
 
  158    void SetSessionId(
const std::string& sessionId) {
 
  159      mSessionId = sessionId;
 
  165    const std::string& GetSessionId()
 const {
 
  176    void SetCloud(
Cloud cloud) {
 
  185    Cloud GetCloud()
 const {
 
  197      mDataBoundary = dataBoundary;
 
  206      return mDataBoundary;
 
  216    void SetProtectionCloudEndpointBaseUrl(
const std::string& protectionCloudEndpointBaseUrl) {
 
  217      mProtectionCloudEndpointBaseUrl = protectionCloudEndpointBaseUrl;
 
  227    const std::string& GetProtectionCloudEndpointBaseUrl()
 const {
 
  228      return mProtectionCloudEndpointBaseUrl;
 
  236    void SetPolicyCloudEndpointBaseUrl(
const std::string& policyCloudEndpointBaseUrl) {
 
  237      mPolicyCloudEndpointBaseUrl = policyCloudEndpointBaseUrl;
 
  245    const std::string& GetPolicyCloudEndpointBaseUrl()
 const {
 
  246      return mPolicyCloudEndpointBaseUrl;
 
  252    void SetProtectionOnlyEngine(
bool protectionOnly) {
 
  253      mProtectionOnlyEngine = protectionOnly;
 
  259    const bool IsProtectionOnlyEngine()
 const {
 
  260      return mProtectionOnlyEngine;
 
  268    bool IsLoadSensitivityTypesEnabled()
 const {
 
  269      return mIsLoadSensitivityTypesEnabled;
 
  275    void EnablePFile(
bool value) {
 
  276      mEnablePFile = value;
 
  284    const bool IsPFileEnabled() {
 
  295    void SetDelegatedUserEmail(
const std::string& delegatedUserEmail) { mDelegatedUserEmail = delegatedUserEmail; }
 
  304    const std::string& GetDelegatedUserEmail()
 const { 
return mDelegatedUserEmail; }
 
  314#if !defined(SWIG) && !defined(SWIG_DIRECTORS) 
  315    [[deprecated(
"SetLabelFilter is deprecated, use ConfigureFunctionality")]]
 
  317    void SetLabelFilter(
const std::vector<LabelFilterType>& deprecatedLabelFilters) { mDeprecatedLabelFilters = deprecatedLabelFilters; }
 
  326    const std::vector<LabelFilterType>& GetLabelFilter()
 const { 
return mDeprecatedLabelFilters; }
 
  339            "FunctionalityFilterType::None is not supported");
 
  342      mConfiguredFunctionality[functionalityFilterType] = enabled;
 
  350    const std::map<FunctionalityFilterType, bool>& GetConfiguredFunctionality()
 const {
 
  351        return mConfiguredFunctionality;
 
  359    void SetAuthDelegate(
const std::shared_ptr<AuthDelegate>& authDelegate) { 
 
  360      mAuthDelegate = authDelegate; 
 
  368    std::shared_ptr<AuthDelegate> GetAuthDelegate()
 const { 
return mAuthDelegate; }
 
  370#if !defined(SWIG) && !defined(SWIG_DIRECTORS) 
  376    const std::shared_ptr<void>& GetLoggerContext()
 const { 
return mLoggerContext; }
 
  384    void SetLoggerContext(
const std::shared_ptr<void>& loggerContext) {
 
  385      mLoggerContext = loggerContext;
 
  389    std::string mEngineId;
 
  393    std::shared_ptr<AuthDelegate> mAuthDelegate;
 
  394    std::string mClientData;
 
  395    std::vector<std::pair<std::string, std::string>> mCustomSettings;
 
  396    std::vector<LabelFilterType> mDeprecatedLabelFilters;    
 
  397    std::map<FunctionalityFilterType, bool> mConfiguredFunctionality;  
 
  398    std::string mProtectionCloudEndpointBaseUrl;
 
  399    std::string mPolicyCloudEndpointBaseUrl;
 
  401    std::string mSessionId;
 
  402    bool mProtectionOnlyEngine = 
false;
 
  403    bool mIsLoadSensitivityTypesEnabled;
 
  404    bool mEnablePFile = 
true;
 
  405    std::string mDelegatedUserEmail;
 
  406    std::shared_ptr<void> mLoggerContext;
 
  410  virtual ~FileEngine() {}
 
  423  virtual const std::vector<std::shared_ptr<SensitivityTypesRulePackage>>& ListSensitivityTypes() 
const = 0;
 
  430  virtual const std::shared_ptr<Label> GetDefaultSensitivityLabel() 
const = 0;
 
  435  virtual std::shared_ptr<Label> GetLabelById(
const std::string& 
id) 
const = 0;
 
  440  virtual const std::vector<std::shared_ptr<Label>> ListSensitivityLabels() = 0;
 
  447  virtual const std::string& GetMoreInfoUrl() 
const = 0;
 
  454  virtual const std::string& GetPolicyFileId() 
const = 0;
 
  461  virtual const std::string& GetSensitivityFileId() 
const = 0;
 
  468  virtual bool IsLabelingRequired() 
const = 0; 
 
  475  virtual std::chrono::time_point<std::chrono::system_clock> GetLastPolicyFetchTime() 
const = 0;
 
  482  virtual const std::string& GetPolicyDataXml() 
const = 0;
 
  496  virtual std::shared_ptr<AsyncControl> CreateFileHandlerAsync(
 
  497      const std::string& inputFilePath,
 
  498      const std::string& filePathForAuditReporting,
 
  499      bool isAuditDiscoveryEnabled,
 
  500      const std::shared_ptr<FileHandler::Observer>& fileHandlerObserver,
 
  501      const std::shared_ptr<void>& context,
 
  502      const std::shared_ptr<FileExecutionState>& fileExecutionState = 
nullptr,
 
  503      bool isGetSensitivityLabelAuditDiscoveryEnabled = 
true) = 0;
 
  519  virtual std::shared_ptr<AsyncControl> CreateFileHandlerAsync(
 
  520      const std::shared_ptr<Stream>& inputStream, 
 
  521      const std::string& actualFilePath,
 
  522      bool isAuditDiscoveryEnabled,
 
  523      const std::shared_ptr<FileHandler::Observer>& fileHandlerObserver, 
 
  524      const std::shared_ptr<void>& context,
 
  525      const std::shared_ptr<FileExecutionState>& fileExecutionState = 
nullptr,
 
  526      bool isGetSensitivityLabelAuditDiscoveryEnabled = 
true) = 0;
 
  535  virtual void SendApplicationAuditEvent(
 
  536      const std::string& level,
 
  537      const std::string& eventType,
 
  538      const std::string& eventData) = 0;
 
  545  virtual const std::vector<std::pair<std::string, std::string>>& GetCustomSettings() 
const = 0;
 
  553  virtual bool HasClassificationRules() 
const = 0;
 
  560  virtual bool HasWorkloadConsent(
Workload workload) 
const = 0;
 
Abstraction for identity.
Definition common_types.h:270
A file Containing the common types used by the upe, file and protection modules.
Cloud
Azure cloud identifier.
Definition common_types.h:728
Workload
The workload the application is working on, used primary to check for consent.
Definition common_types.h:210
LabelFilterType
Label filter types, optional set of properties that can be used to filter labels or label behavior wh...
Definition common_types.h:114
@ None
Definition common_types.h:115
DataBoundary
Diagnostic region identifier.
Definition common_types.h:745
A file containing the MIP SDK error types.
This file contains the ExecutionState class.
This file contains the Label class.
virtual const Settings & GetSettings() const =0
Get the settings set on the profile.