Enumerations

mip_cc_cache_storage_type

Storage type for caches

Field Description
MIP_CACHE_STORAGE_TYPE_IN_MEMORY = 0 In-memory storage
MIP_CACHE_STORAGE_TYPE_ON_DISK = 1 On-disk storage
MIP_CACHE_STORAGE_TYPE_ON_DISK_ENCRYPTED = 2 On-disk storage with encryption (if supported by the platform)
typedef enum {
  MIP_CACHE_STORAGE_TYPE_IN_MEMORY = 0,        
  MIP_CACHE_STORAGE_TYPE_ON_DISK = 1,          
  MIP_CACHE_STORAGE_TYPE_ON_DISK_ENCRYPTED = 2 
} mip_cc_cache_storage_type;

mip_cc_content_format

Content format

Field Description
MIP_CONTENT_FORMAT_DEFAULT = 0 Standard file format
MIP_CONTENT_FORMAT_EMAIL = 1 Email
typedef enum {
  MIP_CONTENT_FORMAT_DEFAULT = 0, 
  MIP_CONTENT_FORMAT_EMAIL = 1,   
} mip_cc_content_format;

mip_cc_label_assignment_method

Describes how a new label is being applied

Field Description
MIP_LABEL_ASSIGNMENT_METHOD_STANDARD = 0 Standard label assignments will not override a previous privileged assignment.
MIP_LABEL_ASSIGNMENT_METHOD_PRIVILEGED = 1 A privileged label assignment will not be overridden by future standard assignments.
MIP_LABEL_ASSIGNMENT_METHOD_AUTO = 2 Reserved. Do not use.
typedef enum {
  MIP_LABEL_ASSIGNMENT_METHOD_STANDARD = 0,   
  MIP_LABEL_ASSIGNMENT_METHOD_PRIVILEGED = 1, 
  MIP_LABEL_ASSIGNMENT_METHOD_AUTO = 2,       
} mip_cc_label_assignment_method;

mip_cc_content_mark_alignment

Alignment for content marks (content header or content footer)

Field Description
MIP_CONTENT_MARK_ALIGNMENT_LEFT = 0 Content marking is aligned to the left
MIP_CONTENT_MARK_ALIGNMENT_RIGHT = 1 Content marking is aligned to the right
MIP_CONTENT_MARK_ALIGNMENT_CENTER = 2 Content marking is centered
typedef enum {
  MIP_CONTENT_MARK_ALIGNMENT_LEFT = 0,   
  MIP_CONTENT_MARK_ALIGNMENT_RIGHT = 1,  
  MIP_CONTENT_MARK_ALIGNMENT_CENTER = 2, 
} mip_cc_content_mark_alignment;

mip_cc_watermark_layout

Layout for watermarks

Field Description
MIP_WATERMARK_LAYOUT_HORIZONTAL = 0 Watermark layout is horizontal
MIP_WATERMARK_LAYOUT_DIAGONAL = 1 Watermark layout is diagonal
typedef enum {
  MIP_WATERMARK_LAYOUT_HORIZONTAL = 0, 
  MIP_WATERMARK_LAYOUT_DIAGONAL = 1,   
} mip_cc_watermark_layout;

A user's response when consent is requested to connect to an unrecognized service endpoint

Field Description
MIP_CONSENT_ACCEPT_ALWAYS = 0 Consent and remember this decision
MIP_CONSENT_ACCEPT = 1 Consent just one time
MIP_CONSENT_REJECT = 2 Do not consent
typedef enum {
  MIP_CONSENT_ACCEPT_ALWAYS = 0, 
  MIP_CONSENT_ACCEPT = 1,        
  MIP_CONSENT_REJECT = 2         
} mip_cc_consent;

mip_cc_flighting_feature

Defines new features by name

Field Description
MIP_FLIGHTING_FEATURE_SERVICE_DISCOVERY = 0 Rely on separate HTTP call to determine RMS service endpoints (default false)
MIP_FLIGHTING_FEATURE_AUTH_INFO_CACHE = 1 Cache OAuth2 challenges per domain/tenant to reduce unnecessary 401 responses. Disable for apps/services that manage their own HTTP auth (default true)
MIP_FLIGHTING_FEATURE_LINUX_ENCRYPTED_CACHE = 2 Enable encrypted caching for Linux platforms (default false)
MIP_FLIGHTING_FEATURE_SINGLE_DOMAIN_NAME = 3 Enable single company name for dns lookup (e.g. https://corprights)
MIP_FLIGHTING_FEATURE_POLICY_AUTH = 4 Enable automatic HTTP authentication for requests sent to Policy service. Disable for apps/services that manage their own HTTP auth (default true)
MIP_FLIGHTING_FEATURE_URL_REDIRECT_CACHE = 5 Cache URL redirects to reduce number of HTTP operations
MIP_FLIGHTING_FEATURE_PRE_LICENSE = 6 Enable pre license api check
MIP_FLIGHTING_FEATURE_DOUBLE_KEY_PROTECTION = 7 Enable double key protection feature to use a customer key to encrypt with
MIP_FLIGHTING_FEATURE_VARIABLE_POLICY_TTL = 8 Enable variable policy ttl in storage
MIP_FLIGHTING_FEATURE_VARIABLE_TEXT_MARKING = 9 Enable variable text marking
MIP_FLIGHTING_FEATURE_OPTIMIZE_PDF_MEMORY = 10 Enable Optimize PDF Memory Creator in protect and unprotect PDF files
MIP_FLIGHTING_FEATURE_REMOVE_DELETED_LABEL_MD = 11 Enable removing delete label's meta data
MIP_FLIGHTING_FEATURE_ENFORCE_TLS12 = 12 Enforce TLS 1.2 for non-ADRMS HTTPS connections
MIP_FLIGHTING_FEATURE_KEEP_PDF_LINEARIZTION = 13 Keep PDF file linearization after encrypted/decrypted by Optimize PDF Memory Creator
typedef enum {
  MIP_FLIGHTING_FEATURE_SERVICE_DISCOVERY = 0,         
  MIP_FLIGHTING_FEATURE_AUTH_INFO_CACHE = 1,           
  MIP_FLIGHTING_FEATURE_LINUX_ENCRYPTED_CACHE = 2,     
  MIP_FLIGHTING_FEATURE_SINGLE_DOMAIN_NAME = 3,        
  MIP_FLIGHTING_FEATURE_POLICY_AUTH = 4,               
  MIP_FLIGHTING_FEATURE_URL_REDIRECT_CACHE = 5,        
  MIP_FLIGHTING_FEATURE_PRE_LICENSE = 6,               
  MIP_FLIGHTING_FEATURE_DOUBLE_KEY_PROTECTION = 7,     
  MIP_FLIGHTING_FEATURE_VARIABLE_POLICY_TTL = 8,       
  MIP_FLIGHTING_FEATURE_VARIABLE_TEXT_MARKING = 9,     
  MIP_FLIGHTING_FEATURE_OPTIMIZE_PDF_MEMORY = 10,      
  MIP_FLIGHTING_FEATURE_REMOVE_DELETED_LABEL_MD = 11,  
  MIP_FLIGHTING_FEATURE_ENFORCE_TLS12 = 12,            
  MIP_FLIGHTING_FEATURE_KEEP_PDF_LINEARIZTION = 13,    
} mip_cc_flighting_feature;

mip_cc_http_request_type

HTTP request type

Field Description
HTTP_REQUEST_TYPE_GET = 0 HTTP GET
HTTP_REQUEST_TYPE_POST = 1 HTTP POST
typedef enum {
  HTTP_REQUEST_TYPE_GET = 0,  
  HTTP_REQUEST_TYPE_POST = 1, 
} mip_cc_http_request_type;

mip_cc_http_result

Success/failure state of the HTTP operation

Field Description
HTTP_RESULT_OK = 0 HTTP operation was completed successfull
HTTP_RESULT_FAILURE = 1 HTTP operation failed (e.g. timeout, network failure, etc.)
typedef enum {
  HTTP_RESULT_OK = 0,      
  HTTP_RESULT_FAILURE = 1, 
} mip_cc_http_result;

mip_cc_log_level

Log level

Field Description
MIP_LOG_LEVEL_TRACE = 0 Trace
MIP_LOG_LEVEL_INFO Info
MIP_LOG_LEVEL_WARNING Warning
MIP_LOG_LEVEL_ERROR Error
typedef enum {
  MIP_LOG_LEVEL_TRACE = 0,  
  MIP_LOG_LEVEL_INFO,       
  MIP_LOG_LEVEL_WARNING,    
  MIP_LOG_LEVEL_ERROR,      
} mip_cc_log_level;

mip_cc_protection_type

A description of whether protection is defined by a template or ad-hoc

Field Description
MIP_PROTECTION_TYPE_TEMPLATE_BASED = 0 Based on an RMS template
MIP_PROTECTION_TYPE_CUSTOM = 1 Custom, ad-hoc protection
typedef enum {
  MIP_PROTECTION_TYPE_TEMPLATE_BASED = 0, 
  MIP_PROTECTION_TYPE_CUSTOM = 1,         
} mip_cc_protection_type;

mip_cc_result

API success/failure result

Field Description
MIP_RESULT_ERROR_UNKNOWN = 1 Unknown error
MIP_RESULT_ERROR_INSUFFICIENT_BUFFER = 2 Buffer provided by application is too small
MIP_RESULT_ERROR_BAD_INPUT = 3 Application passed bad input
MIP_RESULT_ERROR_FILE_IO_ERROR = 4 General file i/o error
MIP_RESULT_ERROR_NETWORK = 5 General network error (e.g. unreachable service)
MIP_RESULT_ERROR_INTERNAL = 6 Unexpected internal error
MIP_RESULT_ERROR_JUSTIFICATION_REQUIRED = 7 Justification should be provided to complete the action on the file.
MIP_RESULT_ERROR_NOT_SUPPORTED_OPERATION = 8 Opeation is not supported
MIP_RESULT_ERROR_PRIVILEGED_REQUIRED = 9 Cannot override privileged label when with standard method
MIP_RESULT_ERROR_ACCESS_DENIED = 10 User does not have rights to access the service
MIP_RESULT_ERROR_CONSENT_DENIED = 11 An operation that required consent from the user was not granted consent
MIP_RESULT_ERROR_NO_PERMISSIONS = 12 The user could not get access to the content (e.g. no permissions, content revoked)
MIP_RESULT_ERROR_NO_AUTH_TOKEN = 13 The user could not get access to the content due to an empty auth token
MIP_RESULT_ERROR_SERVICE_DISABLED = 14 The user could not get access to the content due to the service being disabled
MIP_RESULT_ERROR_PROXY_AUTH = 15 Proxy authentication failed
MIP_RESULT_ERROR_NO_POLICY = 16 No policy is configured for user/tenant
MIP_RESULT_ERROR_OPERATION_CANCELLED = 17 Operation cancelled
MIP_RESULT_ERROR_ADHOC_PROTECTION_REQUIRED = 18 Ad-hoc protection should be set to complete the action on the file
MIP_RESULT_ERROR_DEPRECATED_API = 19 Caller invoked a deprecated API
MIP_RESULT_ERROR_TEMPLATE_NOT_FOUND = 20 Template ID is not recognized
MIP_RESULT_ERROR_LABEL_NOT_FOUND = 21 Label ID is not recognized
MIP_RESULT_ERROR_LABEL_DISABLED = 22 Label is disabled or inactive
MIP_RESULT_ERROR_DOUBLE_KEY_DISABLED = 23 The double key feature has not been enabled
typedef enum {
  MIP_RESULT_SUCCESS = 0,

  // MIP C API errors
  MIP_RESULT_ERROR_UNKNOWN = 1,                    
  MIP_RESULT_ERROR_INSUFFICIENT_BUFFER = 2,        

  // MIP C++ exceptions
  MIP_RESULT_ERROR_BAD_INPUT = 3,                  
  MIP_RESULT_ERROR_FILE_IO_ERROR = 4,              
  MIP_RESULT_ERROR_NETWORK = 5,                    
  MIP_RESULT_ERROR_INTERNAL = 6,                   
  MIP_RESULT_ERROR_JUSTIFICATION_REQUIRED = 7,     
  MIP_RESULT_ERROR_NOT_SUPPORTED_OPERATION = 8,    
  MIP_RESULT_ERROR_PRIVILEGED_REQUIRED = 9,        
  MIP_RESULT_ERROR_ACCESS_DENIED = 10,             
  MIP_RESULT_ERROR_CONSENT_DENIED = 11,            
  MIP_RESULT_ERROR_NO_PERMISSIONS = 12,            
  MIP_RESULT_ERROR_NO_AUTH_TOKEN = 13,             
  MIP_RESULT_ERROR_SERVICE_DISABLED = 14,          
  MIP_RESULT_ERROR_PROXY_AUTH = 15,                
  MIP_RESULT_ERROR_NO_POLICY = 16,                 
  MIP_RESULT_ERROR_OPERATION_CANCELLED = 17,       
  MIP_RESULT_ERROR_ADHOC_PROTECTION_REQUIRED = 18, 
  MIP_RESULT_ERROR_DEPRECATED_API = 19,            
  MIP_RESULT_ERROR_TEMPLATE_NOT_FOUND = 20,        
  MIP_RESULT_ERROR_LABEL_NOT_FOUND = 21,           
  MIP_RESULT_ERROR_LABEL_DISABLED = 22,            
  MIP_RESULT_ERROR_DOUBLE_KEY_DISABLED = 23,       
} mip_cc_result;

mip_cc_cipher_mode

Cipher mode identifier

Field Description
MIP_CIPHER_MODE_CBC4K = 0 CBC 4K mode with internal padding
MIP_CIPHER_MODE_ECB = 1 ECB mode
MIP_CIPHER_MODE_CBC512NOPADDING = 2 CBC 512 mode with external (client) padding
MIP_CIPHER_MODE_CBC4KNOPADDING = 3 CBC 4K mode with external (client) padding
typedef enum {
  MIP_CIPHER_MODE_CBC4K = 0,              
  MIP_CIPHER_MODE_ECB = 1,                
  MIP_CIPHER_MODE_CBC512NOPADDING = 2,    
  MIP_CIPHER_MODE_CBC4KNOPADDING = 3      
} mip_cc_cipher_mode;

mip_cc_pre_license_format

Defines pre-license format

Field Description
MIP_PRE_LICENSE_FORMAT_XML = 0 Legacy XML/SOAP format used by MSIPC
MIP_PRE_LICENSE_FORMAT_JSON = 1 JSON/REST format used by MIP SDK and RMS SDK
typedef enum {
  MIP_PRE_LICENSE_FORMAT_XML = 0,  
  MIP_PRE_LICENSE_FORMAT_JSON = 1, 
} mip_cc_pre_license_format;

mip_cc_action_type

Action type bit mask

Field Description
MIP_ACTION_TYPE_ADD_CONTENT_FOOTER = 1 << 0 Add a content footer to the document action type.
MIP_ACTION_TYPE_ADD_CONTENT_HEADER = 1 << 1 Add a content header to the document action type.
MIP_ACTION_TYPE_ADD_WATERMARK = 1 << 2 Add a water mark to the entire document action type.
MIP_ACTION_TYPE_CUSTOM = 1 << 3 A custom defined action type.
MIP_ACTION_TYPE_JUSTIFY = 1 << 4 A justify action type.
MIP_ACTION_TYPE_METADATA = 1 << 5 A Meta data change action type.
MIP_ACTION_TYPE_PROTECT_ADHOC = 1 << 6 A protect by adhoc policy action type.
MIP_ACTION_TYPE_PROTECT_BY_TEMPLATE = 1 << 7 A protect by template action type.
MIP_ACTION_TYPE_PROTECT_DO_NOT_FORWARD = 1 << 8 A protect by do not forward action type.
MIP_ACTION_TYPE_REMOVE_CONTENT_FOOTER = 1 << 9 Remove content footer action type.
MIP_ACTION_TYPE_REMOVE_CONTENT_HEADER = 1 << 10 Remove content header action type.
MIP_ACTION_TYPE_REMOVE_PROTECTION = 1 << 11 Remove protection action type.
MIP_ACTION_TYPE_REMOVE_WATERMARK = 1 << 12 Remove watermarking action type.
MIP_ACTION_TYPE_APPLY_LABEL = 1 << 13 Apply label action type.
MIP_ACTION_TYPE_RECOMMEND_LABEL = 1 << 14 Recommend label action type.
MIP_ACTION_TYPE_PROTECT_ADHOC_DK = 1 << 15 A protect by adhoc policy action type.
MIP_ACTION_TYPE_PROTECT_DO_NOT_FORWARD_DK = 1 << 17 A protect by do not forward action type.
MIP_ACTION_TYPE_PROTECT_BY_ENCRYPT_ONLY = 1 << 18 A protect by encryption action type.
typedef enum {
  MIP_ACTION_TYPE_ADD_CONTENT_FOOTER = 1 << 0,        
  MIP_ACTION_TYPE_ADD_CONTENT_HEADER = 1 << 1,        
  MIP_ACTION_TYPE_ADD_WATERMARK = 1 << 2,             
  MIP_ACTION_TYPE_CUSTOM = 1 << 3,                    
  MIP_ACTION_TYPE_JUSTIFY = 1 << 4,                   
  MIP_ACTION_TYPE_METADATA = 1 << 5,                  
  MIP_ACTION_TYPE_PROTECT_ADHOC = 1 << 6,             
  MIP_ACTION_TYPE_PROTECT_BY_TEMPLATE = 1 << 7,       
  MIP_ACTION_TYPE_PROTECT_DO_NOT_FORWARD = 1 << 8,    
  MIP_ACTION_TYPE_REMOVE_CONTENT_FOOTER = 1 << 9,     
  MIP_ACTION_TYPE_REMOVE_CONTENT_HEADER = 1 << 10,    
  MIP_ACTION_TYPE_REMOVE_PROTECTION = 1 << 11,        
  MIP_ACTION_TYPE_REMOVE_WATERMARK = 1 << 12,         
  MIP_ACTION_TYPE_APPLY_LABEL = 1 << 13,              
  MIP_ACTION_TYPE_RECOMMEND_LABEL = 1 << 14,          
  MIP_ACTION_TYPE_PROTECT_ADHOC_DK = 1 << 15,         
  // Reserved
  MIP_ACTION_TYPE_PROTECT_DO_NOT_FORWARD_DK = 1 << 17,
  MIP_ACTION_TYPE_PROTECT_BY_ENCRYPT_ONLY = 1 << 18,  
} mip_cc_action_type;

mip_cc_label_action_state

Describes what the application is trying to do regarding the current label

Field Description
MIP_LABEL_ACTION_STATE_NO_CHANGE = 0 The current label should not change.
MIP_LABEL_ACTION_STATE_REMOVE = 1 The current label should be removed.
MIP_LABEL_ACTION_STATE_UPDATE = 2 The current label should be changed.
typedef enum {
  MIP_LABEL_ACTION_STATE_NO_CHANGE = 0, 
  MIP_LABEL_ACTION_STATE_REMOVE = 1,    
  MIP_LABEL_ACTION_STATE_UPDATE = 2,    
} mip_cc_label_action_state;

mip_cc_label_action_type

Label-related actions an application understands and supports

Field Description
MIP_LABEL_ACTION_TYPE_ADD_CONTENT_FOOTER = 1 << 0 Add a content footer to the document action type.
MIP_LABEL_ACTION_TYPE_ADD_CONTENT_HEADER = 1 << 1 Add a content header to the document action type.
MIP_LABEL_ACTION_TYPE_ADD_WATERMARK = 1 << 2 Add a water mark to the entire document action type.
MIP_LABEL_ACTION_TYPE_CUSTOM = 1 << 3 A custom defined action type.
MIP_LABEL_ACTION_TYPE_JUSTIFY = 1 << 4 A justify action type.
MIP_LABEL_ACTION_TYPE_METADATA = 1 << 5 A Meta data change action type.
MIP_LABEL_ACTION_TYPE_PROTECT_ADHOC = 1 << 6 A protect by adhoc policy action type.
MIP_LABEL_ACTION_TYPE_PROTECT_BY_TEMPLATE = 1 << 7 A protect by template action type.
MIP_LABEL_ACTION_TYPE_PROTECT_DO_NOT_FORWARD = 1 << 8 A protect by do not forward action type.
MIP_LABEL_ACTION_TYPE_REMOVE_CONTENT_FOOTER = 1 << 9 Remove content footer action type.
MIP_LABEL_ACTION_TYPE_REMOVE_CONTENT_HEADER = 1 << 10 Remove content header action type.
MIP_LABEL_ACTION_TYPE_REMOVE_PROTECTION = 1 << 11 Remove protection action type.
MIP_LABEL_ACTION_TYPE_REMOVE_WATERMARK = 1 << 12 Remove watermarking action type.
MIP_LABEL_ACTION_TYPE_APPLY_LABEL = 1 << 13 Apply label action type.
MIP_LABEL_ACTION_TYPE_RECOMMEND_LABEL = 1 << 14 Recommend label action type.
MIP_LABEL_ACTION_TYPE_PROTECT_ADHOC_DK = 1 << 15 A protect by adhoc policy action type.
MIP_LABEL_ACTION_TYPE_PROTECT_DO_NOT_FORWARD_DK = 1 << 17 A protect by do not forward action type.
MIP_LABEL_ACTION_TYPE_PROTECT_BY_ENCRYPT_ONLY = 1 << 18 A protect by encryption action type.
typedef enum {
  MIP_LABEL_ACTION_TYPE_ADD_CONTENT_FOOTER = 1 << 0,     
  MIP_LABEL_ACTION_TYPE_ADD_CONTENT_HEADER = 1 << 1,     
  MIP_LABEL_ACTION_TYPE_ADD_WATERMARK = 1 << 2,          
  MIP_LABEL_ACTION_TYPE_CUSTOM = 1 << 3,                 
  MIP_LABEL_ACTION_TYPE_JUSTIFY = 1 << 4,                
  MIP_LABEL_ACTION_TYPE_METADATA = 1 << 5,               
  MIP_LABEL_ACTION_TYPE_PROTECT_ADHOC = 1 << 6,          
  MIP_LABEL_ACTION_TYPE_PROTECT_BY_TEMPLATE = 1 << 7,    
  MIP_LABEL_ACTION_TYPE_PROTECT_DO_NOT_FORWARD = 1 << 8, 
  MIP_LABEL_ACTION_TYPE_REMOVE_CONTENT_FOOTER = 1 << 9,  
  MIP_LABEL_ACTION_TYPE_REMOVE_CONTENT_HEADER = 1 << 10, 
  MIP_LABEL_ACTION_TYPE_REMOVE_PROTECTION = 1 << 11,     
  MIP_LABEL_ACTION_TYPE_REMOVE_WATERMARK = 1 << 12,      
  MIP_LABEL_ACTION_TYPE_APPLY_LABEL = 1 << 13,           
  MIP_LABEL_ACTION_TYPE_RECOMMEND_LABEL = 1 << 14,       
  MIP_LABEL_ACTION_TYPE_PROTECT_ADHOC_DK = 1 << 15,      
  // Reserved
  MIP_LABEL_ACTION_TYPE_PROTECT_DO_NOT_FORWARD_DK = 1 << 17, 
  MIP_LABEL_ACTION_TYPE_PROTECT_BY_ENCRYPT_ONLY = 1 << 18,   
} mip_cc_label_action_type;

mip_cc_data_state

Defines the state of the data as an application is acting upon it

Field Description
MIP_DATA_STATE_REST = 0 Inactive data stored physically in databases/file/warehouses
MIP_DATA_STATE_MOTION = 1 Data traversing a network or temporarily residing in computer memory to be read or updated
MIP_DATA_STATE_USE = 2 Active data under constant change stored physically in databases/file/warehouses etc
typedef enum {
  MIP_DATA_STATE_REST = 0,   
  MIP_DATA_STATE_MOTION = 1, 
  MIP_DATA_STATE_USE = 2,    
} mip_cc_data_state;