diff --git a/examples/add_user_to_shared_folder.py b/examples/add_user_to_shared_folder.py index 3c59b6731..84e080cd6 100644 --- a/examples/add_user_to_shared_folder.py +++ b/examples/add_user_to_shared_folder.py @@ -165,10 +165,17 @@ if isinstance(manage_records, bool): arq.manageRecords = folder_pb2.BOOLEAN_TRUE if manage_records else folder_pb2.BOOLEAN_FALSE public_keys = my_params.key_cache.get(user) - if public_keys and public_keys.rsa: - user_rsa_key = crypto.load_rsa_public_key(public_keys.rsa) - arq.sharedFolderKey = crypto.encrypt_rsa(shared_folder_key, user_rsa_key) - rq.sharedFolderAddUser.append(arq) + if public_keys: + if public_keys.ec: + user_ec_key = crypto.load_ec_public_key(public_keys.ec) + arq.typedSharedFolderKey.encryptedKey = crypto.encrypt_ec(shared_folder_key, user_ec_key) + arq.typedSharedFolderKey.encryptedKeyType = folder_pb2.encrypted_by_public_key_ecc + rq.sharedFolderAddUser.append(arq) + elif not my_params.forbid_rsa and public_keys.rsa: + user_rsa_key = crypto.load_rsa_public_key(public_keys.rsa) + arq.typedSharedFolderKey.encryptedKey = crypto.encrypt_rsa(shared_folder_key, user_rsa_key) + arq.typedSharedFolderKey.encryptedKeyType = folder_pb2.encrypted_by_public_key + rq.sharedFolderAddUser.append(arq) else: logging.warning('Add user "%s": User public key is not available', user) diff --git a/keepercommander/api.py b/keepercommander/api.py index c9401e472..1c54adcf6 100644 --- a/keepercommander/api.py +++ b/keepercommander/api.py @@ -72,7 +72,7 @@ def login(params, new_login=False, login_ui=None): flow.login(params, new_device=True) -def accept_account_transfer_consent(params): +def accept_account_transfer_consent(params): # type: (KeeperParams) -> bool share_account_by = params.get_share_account_timestamp() print(constants.ACCOUNT_TRANSFER_MSG.format(share_account_by.strftime('%a, %b %d %Y'))) @@ -81,21 +81,45 @@ def accept_account_transfer_consent(params): answer = input('Do you accept Account Transfer policy? {}: '.format(input_options)) answer = answer.lower() if answer.lower() == 'accept': - for role in params.settings['share_account_to']: - encoded_public = utils.base64_url_decode(role['public_key']) - public_key = crypto.load_rsa_public_key(encoded_public) - transfer_key = crypto.encrypt_rsa(params.data_key, public_key) - request = { - 'command': 'share_account', - 'to_role_id': role['role_id'], - 'transfer_key': utils.base64_url_encode(transfer_key) - } - communicate(params, request) - return True + ok = True + requests = [] + if 'share_account_to' in params.settings: + for role in params.settings['share_account_to']: + request = { + 'command': 'share_account', + 'to_role_id': role['role_id'], + } + if not params.forbid_rsa and 'public_key' in role: + encoded_public = utils.base64_url_decode(role['public_key']) + public_key = crypto.load_rsa_public_key(encoded_public) + transfer_key = crypto.encrypt_rsa(params.data_key, public_key) + request['transfer_key'] = utils.base64_url_encode(transfer_key) + + requests.append(request) + responses = execute_batch(params, requests) + if isinstance(responses, list): + for response in responses: + if response['result_code'] != 'success': + logging.warning('Account Transfer policy acceptance error: %s', + response.get('message') or response['result_code']) + ok = False + if ok and params.forbid_rsa and params.enterprise_ec_key: + try: + share_data_key_with_enterprise(params) + except Exception as e: + logging.warning('Account Transfer policy acceptance error: %s', e) + ok = False + return ok else: return False +def share_data_key_with_enterprise(params): # type: (KeeperParams) -> None + rq = enterprise_pb2.EnterpriseUserDataKey() + rq.userEncryptedDataKey = crypto.encrypt_ec(params.data_key, params.enterprise_ec_key) + communicate_rest(params, rq, 'enterprise/set_enterprise_user_data_key') + + def get_record_data_json_bytes(data): # type: (dict) -> bytes """Get serialized and utf-8 encoded record data with padding""" data_str = json.dumps(data) @@ -342,14 +366,22 @@ def load_team_keys(params, team_uids): # type: (KeeperParams, List[str] try: aes = b'' rsa = b'' + ec = b'' encrypted_key = utils.base64_url_decode(tk['key']) - if tk['type'] == 1: + key_type = tk['type'] + if key_type == 1: aes = crypto.decrypt_aes_v1(encrypted_key, params.data_key) - elif tk['type'] == 2: - aes = crypto.decrypt_rsa(tk['key'], params.rsa_key2) - elif tk['type'] == 3: + elif key_type == 2: + aes = crypto.decrypt_rsa(encrypted_key, params.rsa_key2) + elif key_type == 3: + aes = crypto.decrypt_aes_v2(encrypted_key, params.data_key) + elif key_type == 4: + aes = crypto.decrypt_ec(encrypted_key, params.ecc_key) + elif key_type == -1: + ec = encrypted_key + elif key_type == -3: rsa = encrypted_key - params.key_cache[team_uid] = PublicKeys(rsa=rsa, aes=aes) + params.key_cache[team_uid] = PublicKeys(rsa=rsa, aes=aes, ec=ec) except Exception as e: logging.debug(e) diff --git a/keepercommander/breachwatch.py b/keepercommander/breachwatch.py index 1d32aba02..34857aa53 100644 --- a/keepercommander/breachwatch.py +++ b/keepercommander/breachwatch.py @@ -17,7 +17,7 @@ from .commands.helpers.enterprise import user_has_privilege, is_addon_enabled from .constants import KEEPER_PUBLIC_HOSTS from . import api, crypto, utils, rest_api, vault -from .proto import breachwatch_pb2, client_pb2, APIRequest_pb2 +from .proto import breachwatch_pb2, client_pb2, APIRequest_pb2, enterprise_pb2 from .error import KeeperApiError, CommandError from .params import KeeperParams from .vault import KeeperRecord @@ -211,7 +211,11 @@ def prepare_security_data(): sec_data.uid = utils.base64_url_decode(record.record_uid) if record_pw: rec_sd = prepare_security_data() - sec_data.data = crypto.encrypt_rsa(json.dumps(rec_sd).encode('utf-8'), params.enterprise_rsa_key) + data = json.dumps(rec_sd).encode('utf-8') + if params.forbid_rsa: + sec_data.data = crypto.encrypt_ec(data, params.enterprise_ec_key) + else: + sec_data.data = crypto.encrypt_rsa(data, params.enterprise_rsa_key) return sec_data @@ -248,6 +252,7 @@ def skip_update(): update_rq = APIRequest_pb2.SecurityDataRequest() rec_sec_data = calculate_security_data() update_rq.recordSecurityData.append(rec_sec_data) + update_rq.encryptionType = enterprise_pb2.KT_ENCRYPTED_BY_PUBLIC_KEY_ECC if params.forbid_rsa else enterprise_pb2.KT_ENCRYPTED_BY_PUBLIC_KEY api.communicate_rest(params, update_rq, 'enterprise/update_security_data') @staticmethod diff --git a/keepercommander/commands/aram.py b/keepercommander/commands/aram.py index 655e10422..a867d3c09 100644 --- a/keepercommander/commands/aram.py +++ b/keepercommander/commands/aram.py @@ -14,36 +14,34 @@ import base64 import copy import datetime -import os -import time -import json import gzip +import hashlib +import hmac +import json import logging +import os import platform import re +import socket +import ssl import sys +import time from functools import partial - from typing import Optional, List, Union, Dict, Set, Any, Tuple +from urllib.parse import urlparse import requests -import socket -import ssl -import hashlib -import hmac - -from urllib.parse import urlparse -from .transfer_account import EnterpriseTransferUserCommand -from ..display import bcolors -from .helpers import audit_report -from .enterprise_common import EnterpriseCommand from .base import user_choice, suppress_exit, raise_parse_exception, dump_report_data, Command, field_to_title +from .enterprise_common import EnterpriseCommand +from .helpers import audit_report +from .transfer_account import EnterpriseTransferUserCommand from .. import api, vault, record_management +from ..constants import EMAIL_PATTERN +from ..display import bcolors from ..error import CommandError from ..params import KeeperParams from ..proto import enterprise_pb2 -from ..constants import EMAIL_PATTERN from ..sox import sox_data, get_prelim_data, is_compliance_reporting_enabled, get_sox_database_name, \ get_compliance_data, get_node_id from ..sox.sox_data import RebuildTask @@ -713,7 +711,7 @@ def convert_event(self, props, event): def export_events(self, props, events): url = "https://{0}.ods.opinsights.azure.com/api/logs?api-version=2016-04-01".format(props['wsid']) data = json.dumps(events) - dt = datetime.datetime.utcnow().strftime('%a, %d %b %Y %H:%M:%S GMT') + dt = datetime.datetime.now(datetime.timezone.utc).strftime('%a, %d %b %Y %H:%M:%S GMT') shared_key = self.build_shared_key(props['wsid'], props['wskey'], len(data), dt) headers = { "Authorization": "SharedKey {0}".format(shared_key), @@ -1170,7 +1168,7 @@ def convert_value(field, value, **kwargs): if isinstance(value, str): return value if isinstance(value, (int, float)): - dt = datetime.datetime.utcfromtimestamp(int(value)).replace(tzinfo=datetime.timezone.utc).astimezone(tz=None) + dt = datetime.datetime.fromtimestamp(int(value), tz=datetime.timezone.utc) rt = kwargs.get('report_type') or '' if rt in {'day', 'week'}: dt = dt.date() @@ -1180,7 +1178,7 @@ def convert_value(field, value, **kwargs): dt = dt.strftime('%Y-%m-%d @%H:00') return dt elif field in {"first_created", "last_created"}: - return datetime.datetime.utcfromtimestamp(int(value)).replace(tzinfo=datetime.timezone.utc).astimezone(tz=None) + return datetime.datetime.fromtimestamp(int(value), tz=datetime.timezone.utc) return value DimensionCache = {} @@ -1342,7 +1340,7 @@ def filter_rows(rows, search_pattern): rq['timezone'] = tt[0] else: now = time.time() - utc_offset = datetime.datetime.fromtimestamp(now) - datetime.datetime.utcfromtimestamp(now) + utc_offset = datetime.datetime.fromtimestamp(now) - datetime.datetime.fromtimestamp(now, ts=datetime.timezone.utc) hours = (utc_offset.days * 24) + int(utc_offset.seconds / 60 / 60) rq['timezone'] = hours @@ -1993,10 +1991,11 @@ def transfer_accounts(from_users, to_user, dryrun=False): if dryrun: cmd_status = 'dry run' else: - pub_key = self.get_public_key(params, target) - if pub_key: + api.load_user_public_keys(params, [target], False) + target_pub_keys = params.key_cache.get(target) + if target_pub_keys: for email in [u.get('username') for u in from_users]: - result = EnterpriseTransferUserCommand.transfer_user_account(params, email, target, pub_key) + result = EnterpriseTransferUserCommand.transfer_user_account(params, email, target, target_pub_keys) if result: affected += 1 diff --git a/keepercommander/commands/automator.py b/keepercommander/commands/automator.py index a6f9650ab..1239cb6f2 100644 --- a/keepercommander/commands/automator.py +++ b/keepercommander/commands/automator.py @@ -430,7 +430,7 @@ def execute(self, params, **kwargs): # type: (KeeperParams, **any) -> any encrypted_ec_private_key = crypto.encrypt_ec(ec_private_key, automator_public_key) rq.encryptedEccEnterprisePrivateKey = encrypted_ec_private_key - if 'rsa_encrypted_private_key' in keys: + if not params.forbid_rsa and 'rsa_encrypted_private_key' in keys: encrypted_rsa_private_key = utils.base64_url_decode(keys['rsa_encrypted_private_key']) rsa_private_key = crypto.decrypt_aes_v2(encrypted_rsa_private_key, params.enterprise['unencrypted_tree_key']) encrypted_rsa_private_key = crypto.encrypt_ec(rsa_private_key, automator_public_key) diff --git a/keepercommander/commands/convert.py b/keepercommander/commands/convert.py index 027c9a5a3..79591d86c 100644 --- a/keepercommander/commands/convert.py +++ b/keepercommander/commands/convert.py @@ -196,14 +196,6 @@ def execute(self, params, **kwargs): print('\n'.join(f' {k} {v}' for k, v in record_names.items())) else: - rq = { - 'command': 'sync_down', - 'revision': 0, - 'include': ['non_shared_data', 'explicit'] - } - rs = api.communicate(params, rq) - nsd = {x['record_uid']: x['data'] for x in rs.get('non_shared_data', [])} - records = [] for record_uid in record_uids: convert_result = ConvertCommand.convert_to_record_type_data(record_uid, params, type_info) @@ -251,15 +243,6 @@ def execute(self, params, **kwargs): rc.record_file.append(rf) rc.data = crypto.encrypt_aes_v2(api.get_record_data_json_bytes(v3_data), record_key) - # Non shared data - if record_uid in nsd: - try: - non_shared_data = utils.base64_url_decode(nsd[record_uid]) - non_shared_data = crypto.decrypt_aes_v1(non_shared_data, params.data_key) - rc.non_shared_data = crypto.encrypt_aes_v2(non_shared_data, params.data_key) - except Exception as e: - logging.debug('Non shared data conversion failed for record %s: ', record_uid, e) - # Get share folder of the record so that we can convert the Record Folder Key shared_folders = find_parent_top_folder(params, record_uid) diff --git a/keepercommander/commands/enterprise.py b/keepercommander/commands/enterprise.py index 7cadc54da..04574c884 100644 --- a/keepercommander/commands/enterprise.py +++ b/keepercommander/commands/enterprise.py @@ -585,7 +585,10 @@ def tree_node(node): root_name = params.enterprise['enterprise_name'] if kwargs.get('verbose'): root_name += ' ({0})'.format(r['node_id']) - tree['{0} {1}'.format(root_name, ' |Isolated| ' if r.get('isolated') else '')] = tree_node(r) + node_name = root_name + if r.get('isolated') is True: + node_name += ' |Isolated| ' + tree[node_name] = tree_node(r) if len(root_nodes) > 1: tree = OD([('', tree)]) else: @@ -1603,7 +1606,6 @@ def execute(self, params, **kwargs): is_managed_role = True break if is_managed_role: - if 'role_keys2' in params.enterprise: for rk2 in params.enterprise['role_keys2']: if rk2['role_id'] == role_id: @@ -1622,37 +1624,49 @@ def execute(self, params, **kwargs): role_key = crypto.decrypt_rsa(encrypted_key, params.rsa_key2) break - user_pkeys = {} + api.load_user_public_keys(params, [x['username'] for x in matched_users]) for user in matched_users: - if is_add and user['enterprise_user_id'] in role_users: - logging.warning('User %s is already in \'%s\' group: Add to group is skipped', user['username'], role_name) + username = user['username'] + user_id = user['enterprise_user_id'] + if is_add and user_id in role_users: + logging.warning('User %s is already in \'%s\' group: Add to group is skipped', username, role_name) continue - if not is_add and user['enterprise_user_id'] not in role_users: - logging.warning('User %s is not in \'%s\': Remove from group is skipped', user['username'], role_name) + if not is_add and user_id not in role_users: + logging.warning('User %s is not in \'%s\': Remove from group is skipped', username, role_name) continue - user_id = user['enterprise_user_id'] rq = { 'command': 'role_user_add' if is_add else 'role_user_remove', 'enterprise_user_id': user['enterprise_user_id'], 'role_id': role_id } - if is_managed_role: - if user_id not in user_pkeys: + if is_managed_role and is_add: + tree_key = params.enterprise['unencrypted_tree_key'] + if username in params.key_cache: answer = 'y' if kwargs.get('force') else user_choice('Do you want to grant administrative privileges to {0}'.format(user['username']), 'yn', 'n') - public_key = None - if answer == 'y': - public_key = self.get_public_key(params, user['username']) - if public_key is None: - logging.warning('Cannot get public key for user %s', user['username']) - user_pkeys[user_id] = public_key - if user_pkeys[user_id]: - encrypted_tree_key = crypto.encrypt_rsa(params.enterprise['unencrypted_tree_key'], user_pkeys[user_id]) - rq['tree_key'] = utils.base64_url_encode(encrypted_tree_key) - if role_key: - encrypted_role_key = crypto.encrypt_rsa(role_key, user_pkeys[user_id]) - rq['role_admin_key'] = utils.base64_url_encode(encrypted_role_key) + if answer != 'y': + continue + public_key = params.key_cache[username] + if params.forbid_rsa and public_key.ec: + ec_key = crypto.load_ec_public_key(public_key.ec) + encrypted_tree_key = crypto.encrypt_ec(tree_key, ec_key) + rq['tree_key_type'] = 'encrypted_by_public_key_ecc' + rq['tree_key'] = utils.base64_url_encode(encrypted_tree_key) + if role_key: + encrypted_role_key = crypto.encrypt_ec(role_key, ec_key) + rq['role_admin_key'] = utils.base64_url_encode(encrypted_role_key) + elif not params.forbid_rsa and public_key.rsa: + rsa_key = crypto.load_rsa_public_key(public_key.rsa) + encrypted_tree_key = crypto.encrypt_rsa(tree_key, rsa_key) + rq['tree_key'] = utils.base64_url_encode(encrypted_tree_key) + if role_key: + encrypted_role_key = crypto.encrypt_rsa(role_key, rsa_key) + rq['role_admin_key'] = utils.base64_url_encode(encrypted_role_key) + else: + continue request_batch.append(rq) + else: + logging.warning('Cannot get public key for user %s', username) else: request_batch.append(rq) @@ -1675,11 +1689,14 @@ def execute(self, params, **kwargs): raise CommandError('enterprise-user', 'Team {0} could be resolved'.format(t)) if teams: + api.load_team_keys(params, list(teams.keys())) + api.load_user_public_keys(params, [x['username'] for x in matched_users]) for team_uid in teams: is_add, team_name = teams[team_uid] for user in matched_users: if is_add: user_id = user['enterprise_user_id'] + username = user['username'] if user['status'] == 'active': hsf = kwargs.get('hide_shared_folders') or '' is_added = False @@ -1700,13 +1717,33 @@ def execute(self, params, **kwargs): 'command': 'team_enterprise_user_add', 'team_uid': team_uid, 'enterprise_user_id': user_id, + 'user_type': 0, } - team_key = self.get_team_key(params, team_uid) - public_key = self.get_public_key(params, user['username']) - encrypted_team_key = crypto.encrypt_rsa(team_key, public_key) - if team_key and public_key: - rq['team_key'] = utils.base64_url_encode(encrypted_team_key) - rq['user_type'] = 0 + team_keys = params.key_cache.get(team_uid) + team_key = team_keys.aes if team_keys else None + if not team_key: + continue + public_key = params.key_cache.get(username) + if not public_key: + continue + if params.forbid_rsa: + if public_key.ec: + ec_key = crypto.load_ec_public_key(public_key.ec) + encrypted_team_key = crypto.encrypt_ec(team_key, ec_key) + rq['team_key'] = utils.base64_url_encode(encrypted_team_key) + rq['team_key_type'] = 'encrypted_by_public_key_ecc' + else: + logging.warning('User %s does not have EC key. Skipping', username) + continue + else: + if public_key.rsa: + rsa_key = crypto.load_rsa_public_key(public_key.rsa) + encrypted_team_key = crypto.encrypt_rsa(team_key, rsa_key) + rq['team_key'] = utils.base64_url_encode(encrypted_team_key) + rq['team_key_type'] = 'encrypted_by_public_key' + else: + logging.warning('User %s does not have RSA key. Skipping', username) + continue if hsf: rq['user_type'] = 0 if hsf == 'off' else 2 request_batch.append(rq) @@ -1746,6 +1783,7 @@ def execute(self, params, **kwargs): rq['full_name'] = user_name request_batch.append(rq) + results = None if request_batch: results = api.execute_batch(params, request_batch) for rq, rs in zip(request_batch, results): @@ -2020,10 +2058,10 @@ def execute(self, params, **kwargs): matched[role_in_node['role_id']] = role_in_node else: logging.warning('Role name \'%s\' is not unique. Use Role ID. Skipping', role_name) - elif type(r) == dict: + elif isinstance(r, dict): matched[r['role_id']] = r - matched_roles = list(matched.values()) + matched_roles = list(matched.values()) # type: List[dict] request_batch = [] non_batch_update_msgs = [] @@ -2306,13 +2344,12 @@ def execute(self, params, **kwargs): if ul: for u in ul: value = node_lookup.get(u.lower()) - if value: - if value is None: - logging.warning('Node %s could be resolved', u) - if type(value) == dict: - node_changes[value['node_id']] = is_add, value['data'].get('displayname') or params.enterprise['enterprise_name'] - elif type(value) == list: - logging.warning('Node name \'%s\' is not unique. Use Node ID. Skipping', u) + if value is None: + logging.warning('Node %s could be resolved', u) + elif isinstance(value, dict): + node_changes[value['node_id']] = is_add, value['data'].get('displayname') or params.enterprise['enterprise_name'] + elif isinstance(value, list): + logging.warning('Node name \'%s\' is not unique. Use Node ID. Skipping', u) for role in matched_roles: role_id = role['role_id'] @@ -2333,15 +2370,29 @@ def execute(self, params, **kwargs): rq['tree_keys'] = [] if 'role_users' in params.enterprise: for user_id in [x['enterprise_user_id'] for x in params.enterprise['role_users'] if x['role_id'] == role_id]: - emails = [x['username'] for x in params.enterprise['users'] if x['enterprise_user_id'] == user_id] - if emails: - public_key = self.get_public_key(params, emails[0]) - encrypted_tree_key = crypto.encrypt_rsa(params.enterprise['unencrypted_tree_key'], public_key) - if public_key: - rq['tree_keys'].append({ - "enterprise_user_id": user_id, - "tree_key": utils.base64_url_encode(encrypted_tree_key) - }) + email = next((x['username'] for x in params.enterprise['users'] if x['enterprise_user_id'] == user_id), None) + if email: + api.load_user_public_keys(params, [email], False) + public_keys = params.key_cache.get(email) + if public_keys: + tree_key = params.enterprise['unencrypted_tree_key'] + if params.forbid_rsa and public_keys.ec: + ec_key = crypto.load_ec_public_key(public_keys.ec) + encrypted_tree_key = crypto.encrypt_ec(tree_key, ec_key) + rq['tree_keys'].append({ + 'enterprise_user_id': user_id, + 'tree_key': utils.base64_url_encode(encrypted_tree_key), + 'tree_key_type': 'encrypted_by_public_key_ecc' + }) + elif not params.forbid_rsa and public_keys.rsa: + rsa_key = crypto.load_rsa_public_key(public_keys.rsa) + encrypted_tree_key = crypto.encrypt_rsa(tree_key, rsa_key) + rq['tree_keys'].append({ + 'enterprise_user_id': user_id, + 'tree_key': utils.base64_url_encode(encrypted_tree_key), + }) + else: + continue request_batch.append(rq) elif kwargs.get('add_privilege') or kwargs.get('remove_privilege'): @@ -2390,38 +2441,47 @@ def execute(self, params, **kwargs): 'privilege': privilege } if is_add and privilege in ('transfer_account', 'manage_companies'): - role_key = utils.generate_aes_key() - encrypted_role_key = crypto.encrypt_aes_v2( - role_key, params.enterprise['unencrypted_tree_key']) - rq['role_key_enc_with_tree_key'] = utils.base64_url_encode(encrypted_role_key) - priv_key, pub_key = crypto.generate_rsa_key() - public_key = crypto.unload_rsa_public_key(pub_key) - rq['role_public_key'] = utils.base64_url_encode(public_key) - private_key = crypto.unload_rsa_private_key(priv_key) - rq['role_private_key'] = utils.base64_url_encode( - crypto.encrypt_aes_v1(private_key, role_key)) - # TODO resolve actual user list - if 'role_users' in params.enterprise: - rq['role_keys'] = [] - user_ids = {x['enterprise_user_id']: None for x in - params.enterprise['role_users'] if x['role_id'] == role_id} - if len(user_ids) > 0: - user_lookup = {x['enterprise_user_id']: x['username'] for x in - params.enterprise['users'] if x['enterprise_user_id'] in user_ids} - emails = {user_lookup[x]: None for x in user_ids if x in user_lookup} - if len(emails) > 0: - self.get_public_keys(params, emails) - reverse_lookup = {value: key for key, value in user_lookup.items()} - for email, key in emails.items(): - if not key: - continue - if email in reverse_lookup: - encrypted_key = crypto.encrypt_rsa(role_key, key) - rq['role_keys'].append({ - 'enterprise_user_id': reverse_lookup[email], - 'role_key': utils.base64_url_encode(encrypted_key) - }) - + if not params.forbid_rsa: + tree_key = params.enterprise['unencrypted_tree_key'] + role_key = utils.generate_aes_key() + encrypted_role_key = crypto.encrypt_aes_v2(role_key, tree_key) + rq['role_key_enc_with_tree_key'] = utils.base64_url_encode(encrypted_role_key) + priv_key, pub_key = crypto.generate_rsa_key() + public_key = crypto.unload_rsa_public_key(pub_key) + rq['role_public_key'] = utils.base64_url_encode(public_key) + private_key = crypto.unload_rsa_private_key(priv_key) + rq['role_private_key'] = utils.base64_url_encode( + crypto.encrypt_aes_v1(private_key, role_key)) + + # TODO resolve actual user list + if 'role_users' in params.enterprise: + rq['role_keys'] = [] + user_ids = {x['enterprise_user_id']: None for x in + params.enterprise['role_users'] if x['role_id'] == role_id} + if len(user_ids) > 0: + user_lookup = {x['username']: x['enterprise_user_id'] for x in + params.enterprise['users'] if x['enterprise_user_id'] in user_ids} + if len(user_lookup) > 0: + api.load_user_public_keys(params, list(user_lookup.keys()), False) + for email, enterprise_user_id in user_lookup.items(): + key = params.key_cache.get(email) + if not key: + continue + if params.forbid_rsa and key.ec: + ec_public_key = crypto.load_ec_public_key(key.ec) + encrypted_key = crypto.encrypt_ec(role_key, ec_public_key) + rq['role_keys'].append({ + 'enterprise_user_id': enterprise_user_id, + 'role_key': utils.base64_url_encode(encrypted_key), + 'tree_key_type': 'encrypted_by_public_key_ecc' + }) + elif not params.forbid_rsa and key.rsa: + rsa_public_key = crypto.load_rsa_public_key(key.rsa) + encrypted_key = crypto.encrypt_rsa(role_key, rsa_public_key) + rq['role_keys'].append({ + 'enterprise_user_id': enterprise_user_id, + 'role_key': utils.base64_url_encode(encrypted_key), + }) request_batch.append(rq) elif kwargs.get('copy') or kwargs.get('clone'): @@ -2529,7 +2589,7 @@ def execute(self, params, **kwargs): role = None if not role and 'role_id' in rq: role = role_lookup.get(str(rq['role_id'])) - if role: + if isinstance(role, dict): role_name = role['data'].get('displayname') if command in { 'role_delete', 'role_update' }: if rs['result'] == 'success': @@ -2922,8 +2982,6 @@ def execute(self, params, **kwargs): team_key = api.generate_aes_key() encrypted_team_key = crypto.encrypt_aes_v2(team_key, params.enterprise['unencrypted_tree_key']) - private_key, public_key = crypto.generate_rsa_key() - encrypted_private_key = crypto.encrypt_aes_v1(crypto.unload_rsa_private_key(private_key), team_key) rq = { 'command': 'team_add', 'team_uid': team_uid, @@ -2931,13 +2989,21 @@ def execute(self, params, **kwargs): 'restrict_edit': kwargs.get('restrict_edit') == 'on', 'restrict_share': kwargs.get('restrict_share') == 'on', 'restrict_view': kwargs.get('restrict_view') == 'on', - 'public_key': utils.base64_url_encode(crypto.unload_rsa_public_key(public_key)), - 'private_key': utils.base64_url_encode(encrypted_private_key), 'node_id': team_node_id, 'team_key': utils.base64_url_encode(crypto.encrypt_aes_v1(team_key, params.data_key)), 'encrypted_team_key': utils.base64_url_encode(encrypted_team_key), 'manage_only': True } + ec_private_key, ec_public_key = crypto.generate_ec_key() + encrypted_ec_private_key = crypto.encrypt_aes_v2(crypto.unload_ec_private_key(ec_private_key), team_key) + rq['ecc_private_key'] = utils.base64_url_encode(encrypted_ec_private_key) + rq['ecc_public_key'] = utils.base64_url_encode(crypto.unload_ec_public_key(ec_public_key)) + if not params.forbid_rsa: + rsa_private_key, rsa_public_key = crypto.generate_rsa_key() + encrypted_rsa_private_key = crypto.encrypt_aes_v1(crypto.unload_rsa_private_key(rsa_private_key), team_key) + rq['public_key'] = utils.base64_url_encode(crypto.unload_rsa_public_key(rsa_public_key)), + rq['private_key'] = utils.base64_url_encode(encrypted_rsa_private_key), + request_batch.append(rq) else: for team_name in team_names: @@ -3007,17 +3073,40 @@ def execute(self, params, **kwargs): 'enterprise_user_id': user_id, } else: - public_key = self.get_public_key(params, user['username']) - team_key = self.get_team_key(params, team['team_uid']) - encrypted_team_key = crypto.encrypt_rsa(team_key, public_key) - if public_key and team_key: + username = user['username'] + api.load_user_public_keys(params, [username], False) + user_keys = params.key_cache.get(username) + team_uid = team['team_uid'] + api.load_team_keys(params, [team_uid]) + team_keys = params.key_cache.get(team_uid) + team_key = team_keys.aes if team_keys else None + if user_keys and team_key: rq = { 'command': 'team_enterprise_user_add', 'team_uid': team['team_uid'], 'enterprise_user_id': user_id, 'user_type': 0, - 'team_key': utils.base64_url_encode(encrypted_team_key) } + if params.forbid_rsa: + if user_keys.ec: + ec_key = crypto.load_ec_public_key(user_keys.ec) + encrypted_team_key = crypto.encrypt_ec(team_key, ec_key) + rq['team_key'] = utils.base64_url_encode(encrypted_team_key) + rq['team_key_type'] = 'encrypted_by_public_key_ecc' + else: + logging.warning('User %s does not have EC key', username) + rq = None + else: + if user_keys.rsa: + rsa_key = crypto.load_rsa_public_key(user_keys.rsa) + encrypted_team_key = crypto.encrypt_rsa(team_key, rsa_key) + rq['team_key'] = utils.base64_url_encode(encrypted_team_key) + rq['team_key_type'] = 'encrypted_by_public_key' + else: + logging.warning('User %s does not have RSA key', username) + rq = None + else: + logging.warning('Cannot get user %s public key', username) if hsf: rq['user_type'] = 2 if hsf == 'on' else 1 else: @@ -3201,7 +3290,7 @@ def get_user_info(user): report_filter = {'audit_event_type': ['login', 'login_console', 'chat_login', 'accept_invitation']} if isinstance(look_back_days, int) and look_back_days > 0: logging.info(f'Querying latest login for the last {look_back_days} days') - from_date = datetime.datetime.utcnow() - datetime.timedelta(days=look_back_days) + from_date = datetime.datetime.now(tz=datetime.timezone.utc) - datetime.timedelta(days=look_back_days) from_ts = int(from_date.timestamp()) report_filter['created'] = {'min': from_ts} @@ -3225,7 +3314,7 @@ def get_user_info(user): report_rows = rs['audit_event_overview_report_rows'] last_login.update({row.get('username', '').lower(): row.get('last_created') for row in report_rows}) - get_fmt_dt = lambda x: dt_module.utcfromtimestamp(x).replace(tzinfo=datetime.timezone.utc).astimezone(tz=None) + get_fmt_dt = lambda x: dt_module.fromtimestamp(x, datetime.timezone.utc) for user in self.users.values(): key = user['username'].lower() last_login_ts = int(last_login.get(key, 0)) @@ -3324,11 +3413,6 @@ def execute(self, params, **kwargs): added_team_keys[team_uid] = team_key added_teams[team_uid] = team tree_key = params.enterprise['unencrypted_tree_key'] - pri_key, pub_key = crypto.generate_rsa_key() - private_key = crypto.unload_rsa_private_key(pri_key) - private_key = crypto.encrypt_aes_v1(private_key, team_key) - public_key = crypto.unload_rsa_public_key(pub_key) - rq = { 'command': 'team_add', 'team_uid': team_uid, @@ -3336,13 +3420,22 @@ def execute(self, params, **kwargs): 'restrict_edit': kwargs.get('restrict_edit') == 'on', 'restrict_share': kwargs.get('restrict_share') == 'on', 'restrict_view': kwargs.get('restrict_view') == 'on', - 'public_key': utils.base64_url_encode(public_key), - 'private_key': utils.base64_url_encode(private_key), 'node_id': team_node_id, 'team_key': utils.base64_url_encode(crypto.encrypt_aes_v1(team_key, params.data_key)), 'encrypted_team_key': utils.base64_url_encode(crypto.encrypt_aes_v2(team_key, tree_key)), 'manage_only': True } + ec_private_key, ec_public_key = crypto.generate_ec_key() + encrypted_ec_private_key = crypto.encrypt_aes_v2(crypto.unload_ec_private_key(ec_private_key), team_key) + rq['ecc_private_key'] = utils.base64_url_encode(encrypted_ec_private_key) + rq['ecc_public_key'] = utils.base64_url_encode(crypto.unload_ec_public_key(ec_public_key)) + + if not params.forbid_rsa: + rsa_pri_key, rsa_pub_key = crypto.generate_rsa_key() + encrypted_rsa_private_key = crypto.encrypt_aes_v1(crypto.unload_rsa_private_key(rsa_pri_key), team_key) + rq['public_key'] = utils.base64_url_encode(encrypted_rsa_private_key) + rq['private_key'] = utils.base64_url_encode(crypto.unload_rsa_public_key(rsa_pub_key)) + request_batch.append(rq) teams.update(added_teams) @@ -3350,7 +3443,7 @@ def execute(self, params, **kwargs): 'teams' in params.enterprise and 'users' in params.enterprise: # load team and user keys team_keys = {} # type: Dict[str, Optional[bytes]] - user_keys = {} # type: Dict[str, Any] + all_users = set() # type: Set[str] for qtu in params.enterprise['queued_team_users']: team_uid = qtu['team_uid'] if team_uid not in teams and team_uid not in added_teams: @@ -3362,39 +3455,59 @@ def execute(self, params, **kwargs): email = email.lower() if team_uid in teams and team_uid not in team_keys: team_keys[team_uid] = None - if email not in user_keys: - user_keys[email] = None - - self.get_team_keys(params, team_keys) - self.get_public_keys(params, user_keys) + if email not in all_users: + all_users.add(email) + + api.load_team_keys(params, list(team_keys.keys())) + for team_uid in team_keys.keys(): + team_key = params.key_cache.get(team_uid) + if team_key and team_key.aes: + team_keys[team_uid] = team_key.aes team_keys.update(added_team_keys) + api.load_user_public_keys(params, list(all_users), False) - if len(team_keys) > 0 and len(user_keys) > 0: + if len(team_keys) > 0 and len(all_users) > 0: for qtu in params.enterprise['queued_team_users']: team_uid = qtu['team_uid'] team_key = team_keys.get(team_uid) if not team_key: continue for u_id in qtu.get('users') or []: - email = active_users.get(u_id) - if not email: + username = active_users.get(u_id) + if not username: continue - email = email.lower() - public_key = user_keys.get(email) - if not public_key: + keys = params.key_cache.get(username.lower()) + if not keys: continue rq = { 'command': 'team_enterprise_user_add', 'team_uid': team_uid, 'enterprise_user_id': u_id, + 'user_type': 0, } try: - encrypted_team_key = crypto.encrypt_rsa(team_key, public_key) - rq['team_key'] = utils.base64_url_encode(encrypted_team_key) - rq['user_type'] = 0 + if params.forbid_rsa: + if keys.ec: + ec_key = crypto.load_ec_public_key(keys.ec) + encrypted_team_key = crypto.encrypt_ec(team_key, ec_key) + rq['team_key'] = utils.base64_url_encode(encrypted_team_key) + rq['team_key_type'] = 'encrypted_by_public_key_ecc' + else: + logging.warning('User %s does not have EC key. Skipping', username) + continue + else: + if keys.rsa: + rsa_key = crypto.load_rsa_public_key(keys.rsa) + encrypted_team_key = crypto.encrypt_rsa(team_key, rsa_key) + rq['team_key'] = utils.base64_url_encode(encrypted_team_key) + rq['team_key_type'] = 'encrypted_by_public_key' + else: + logging.warning('User %s does not have RSA key. Skipping', username) + continue + request_batch.append(rq) except Exception as e: - logging.warning('Cannot approve user \"%s\" to team \"%s\": %s', email, team_uid, e) + logging.warning('Cannot approve user \"%s\" to team \"%s\": %s', username, team_uid, e) continue if request_batch: @@ -3596,7 +3709,7 @@ def execute(self, params, **kwargs): # resolve user data keys from Account Transfer user_ids = set([x['enterprise_user_id'] for x in matching_devices.values()]) user_ids.difference_update(data_keys.keys()) - if len(user_ids) > 0: + if not params.forbid_rsa and len(user_ids) > 0: data_key_rq = APIRequest_pb2.UserDataKeyRequest() data_key_rq.enterpriseUserId.extend(user_ids) data_key_rs = api.communicate_rest( @@ -3620,8 +3733,9 @@ def execute(self, params, **kwargs): private_key = crypto.load_rsa_private_key(decrypted_private_key) for user_dk in dk.enterpriseUserIdDataKeyPairs: if user_dk.enterpriseUserId not in data_keys: - data_key = crypto.decrypt_rsa(user_dk.encryptedDataKey, private_key) - data_keys[user_dk.enterpriseUserId] = data_key + if user_dk.keyType in (enterprise_pb2.KT_NO_KEY, enterprise_pb2.KT_ENCRYPTED_BY_PUBLIC_KEY): + data_key = crypto.decrypt_rsa(user_dk.encryptedDataKey, private_key) + data_keys[user_dk.enterpriseUserId] = data_key except Exception as ex: logging.debug(ex) diff --git a/keepercommander/commands/enterprise_common.py b/keepercommander/commands/enterprise_common.py index 998b3ac07..c4f2ed276 100644 --- a/keepercommander/commands/enterprise_common.py +++ b/keepercommander/commands/enterprise_common.py @@ -12,12 +12,12 @@ import base64 import collections import logging -from typing import Any, Dict, Set, List, Optional +from typing import Dict from .base import Command, user_choice from .. import api, utils, crypto from ..error import CommandError -from ..params import KeeperParams +from ..params import KeeperParams, PublicKeys from ..proto import enterprise_pb2 @@ -34,106 +34,6 @@ def execute_args(self, params, args, **kwargs): else: raise CommandError('', 'This command is only available for Administrators of Keeper.') - def get_public_keys(self, params, emails): # type: (KeeperParams, Dict[str, Any]) -> None - missing_keys = [] # type: List[str] - for email in list(emails.keys()): - email = email.lower() - user_key = self.public_keys.get(email) - if user_key: - emails[email] = user_key - else: - missing_keys.append(email) - - while len(missing_keys) > 0: - chunk = missing_keys[:99] - missing_keys = missing_keys[99:] - rq = { - 'command': 'public_keys', - 'key_owners': chunk - } - rs = api.communicate(params, rq) - for pko in rs['public_keys']: - if 'public_key' in pko: - email = pko['key_owner'].lower() - try: - public_key = crypto.load_rsa_public_key(utils.base64_url_decode(pko['public_key'])) - self.public_keys[email] = public_key - emails[email] = public_key - except Exception as e: - logging.warning('Cannot load user \"%s\" public key: %s', email, e) - - def get_public_key(self, params, email): - # type: (EnterpriseCommand, KeeperParams, str) -> any - - public_key = self.public_keys.get(email.lower()) - if public_key is None: - emails = { - email: None - } - self.get_public_keys(params, emails) - public_key = emails[email] - - return public_key - - def get_team_keys(self, params, teams): # type: (KeeperParams, Dict[str, Optional[bytes]]) -> None - missing_uids = list() # type: List[str] - tree_key = params.enterprise['unencrypted_tree_key'] - for team_uid in list(teams.keys()): - team_key = self.team_keys.get(team_uid) - if team_key: - teams[team_uid] = team_key - else: - if 'teams' in params.enterprise: - for team in params.enterprise['teams']: - if team['team_uid'] == team_uid: - if 'encrypted_team_key' in team: - enc_team_key = team['encrypted_team_key'] # type: str - if enc_team_key: - try: - team_key = crypto.decrypt_aes_v2(utils.base64_url_decode(enc_team_key), tree_key) - except Exception as e: - logging.warning('Cannot decrypt team \"%s\" key: %s', team_uid, e) - if team_key: - self.team_keys[team_uid] = team_key - teams[team_uid] = team_key - else: - missing_uids.append(team_uid) - - while len(missing_uids) > 0: - chunk = missing_uids[:99] - missing_uids = missing_uids[99:] - rq = { - 'command': 'team_get_keys', - 'teams': chunk - } - rs = api.communicate(params, rq) - if rs['result'] == 'success': - for ko in rs['keys']: - team_key = None - if 'key' in ko: - team_uid = ko['team_uid'] - try: - encrypted_key = utils.base64_url_decode(ko['key']) - key_type = ko['type'] - if key_type == 1: - team_key = crypto.decrypt_aes_v1(encrypted_key, params.data_key) - elif key_type == 2: - team_key = crypto.decrypt_rsa(encrypted_key, params.rsa_key2) - elif key_type == 3: - team_key = crypto.decrypt_aes_v2(encrypted_key, params.data_key) - except Exception as e: - logging.warning('Cannot decrypt team \"%s\" key: %s', team_uid, e) - if team_key: - self.team_keys[team_uid] = team_key - teams[team_uid] = team_key - - def get_team_key(self, params, team_uid): # type: (KeeperParams, str) -> Optional[bytes] - teams = { - team_uid: None - } - self.get_team_keys(params, teams) - return teams.get(team_uid) - def get_role_users_change_batch(self, params, roles, add_user, remove_user, force=False): """Get batch of requests for changing enterprise role users""" request_batch = [] @@ -152,7 +52,7 @@ def get_role_users_change_batch(self, params, roles, add_user, remove_user, forc else: logging.warning('User %s could be resolved', u) - user_pkeys = {} + user_pkeys = {} # type: Dict[str, PublicKeys] for role in roles: role_id = role['role_id'] for user_id in user_changes: @@ -187,19 +87,35 @@ def get_role_users_change_batch(self, params, roles, add_user, remove_user, forc if user_id not in user_pkeys: answer = 'y' if force else user_choice( 'Do you want to grant administrative privileges to {0}'.format(email), 'yn', 'n') - public_key = None if answer == 'y': - public_key = self.get_public_key(params, email) - if public_key is None: + api.load_user_public_keys(params, [email], False) + user_keys = params.key_cache.get(email) + if user_keys: + user_pkeys[user_id] = params.key_cache[email] + else: logging.warning('Cannot get public key for user %s', email) - user_pkeys[user_id] = public_key - if user_pkeys[user_id]: - encrypted_tree_key = crypto.encrypt_rsa(params.enterprise['unencrypted_tree_key'], - user_pkeys[user_id]) - rq['tree_key'] = utils.base64_url_encode(encrypted_tree_key) - if role_key: - encrypted_role_key = crypto.encrypt_rsa(role_key, user_pkeys[user_id]) - rq['role_admin_key'] = utils.base64_url_encode(encrypted_role_key) + + public_key = user_pkeys.get(user_id) + if public_key: + tree_key = params.enterprise['unencrypted_tree_key'] + if params.forbid_rsa and public_key.ec: + ec_key = crypto.load_ec_public_key(public_key.ec) + encrypted_tree_key = crypto.encrypt_ec(tree_key, ec_key) + rq['tree_key'] = utils.base64_url_encode(encrypted_tree_key) + rq['tree_key_type'] = 'encrypted_by_public_key_ecc' + if role_key: + encrypted_role_key = crypto.encrypt_ec(role_key, ec_key) + rq['role_admin_key'] = utils.base64_url_encode(encrypted_role_key) + elif not params.forbid_rsa and public_key.rsa: + rsa_key = crypto.load_rsa_public_key(public_key.rsa) + encrypted_tree_key = crypto.encrypt_rsa(tree_key, rsa_key) + rq['tree_key'] = utils.base64_url_encode(encrypted_tree_key) + if role_key: + encrypted_role_key = crypto.encrypt_rsa(role_key, rsa_key) + rq['role_admin_key'] = utils.base64_url_encode(encrypted_role_key) + else: + continue + request_batch.append(rq) else: request_batch.append(rq) diff --git a/keepercommander/commands/enterprise_create_user.py b/keepercommander/commands/enterprise_create_user.py index 2b7ee6be8..a5de0da73 100644 --- a/keepercommander/commands/enterprise_create_user.py +++ b/keepercommander/commands/enterprise_create_user.py @@ -82,13 +82,6 @@ def execute(self, params, **kwargs): user_data = json.dumps(data).encode('utf-8') user_password = generator.generate(20) user_data_key = utils.generate_aes_key() - rsa_private_key, rsa_public_key = crypto.generate_rsa_key() - rsa_private = crypto.unload_rsa_private_key(rsa_private_key) - rsa_public = crypto.unload_rsa_public_key(rsa_public_key) - - ec_private_key, ec_public_key = crypto.generate_ec_key() - ec_private = crypto.unload_ec_private_key(ec_private_key) - ec_public = crypto.unload_ec_public_key(ec_public_key) enterprise_user_id = EnterpriseCommand.get_enterprise_id(params) @@ -109,10 +102,19 @@ def execute(self, params, **kwargs): user_password, crypto.get_random_bytes(16), constants.PBKDF2_ITERATIONS) user_rq.encryptionParams = utils.create_encryption_params( user_password, crypto.get_random_bytes(16), constants.PBKDF2_ITERATIONS, user_data_key) - user_rq.rsaPublicKey = rsa_public - user_rq.rsaEncryptedPrivateKey = crypto.encrypt_aes_v1(rsa_private, user_data_key) + if not params.forbid_rsa: + rsa_private_key, rsa_public_key = crypto.generate_rsa_key() + rsa_private = crypto.unload_rsa_private_key(rsa_private_key) + rsa_public = crypto.unload_rsa_public_key(rsa_public_key) + user_rq.rsaPublicKey = rsa_public + user_rq.rsaEncryptedPrivateKey = crypto.encrypt_aes_v1(rsa_private, user_data_key) + + ec_private_key, ec_public_key = crypto.generate_ec_key() + ec_private = crypto.unload_ec_private_key(ec_private_key) + ec_public = crypto.unload_ec_public_key(ec_public_key) user_rq.eccPublicKey = ec_public user_rq.eccEncryptedPrivateKey = crypto.encrypt_aes_v2(ec_private, user_data_key) + user_rq.encryptedDeviceToken = LoginV3API.get_device_id(params) user_rq.encryptedClientKey = crypto.encrypt_aes_v1(utils.generate_aes_key(), user_data_key) @@ -201,6 +203,8 @@ def execute(self, params, **kwargs): for key in rs.keys: if not key.roleKey: continue + if not key.userEncryptedDataKey: + continue user_id = key.enterpriseUserId username = user_lookup.get(user_id) or str(user_id) diff --git a/keepercommander/commands/enterprise_push.py b/keepercommander/commands/enterprise_push.py index fa31b8f35..e6fb3a3a1 100644 --- a/keepercommander/commands/enterprise_push.py +++ b/keepercommander/commands/enterprise_push.py @@ -185,14 +185,12 @@ def execute(self, params, **kwargs): user_key = params.key_cache.get(email) if user_key is None: continue - if user_key.ec: + user_ec_key = None + user_rsa_key = None + if params.forbid_rsa and user_key.ec: user_ec_key = crypto.load_ec_public_key(user_key.ec) - else: - user_ec_key = None - if user_key.rsa: + elif not params.forbid_rsa and user_key.rsa: user_rsa_key = crypto.load_rsa_public_key(user_key.rsa) - else: - user_rsa_key = None if user_ec_key is None and user_rsa_key is None: logging.warning('User \"%s\" public key cannot be loaded. Skipping', email) continue diff --git a/keepercommander/commands/folder.py b/keepercommander/commands/folder.py index d6af107b9..4ac381d5d 100644 --- a/keepercommander/commands/folder.py +++ b/keepercommander/commands/folder.py @@ -24,12 +24,9 @@ from asciitree import LeftAligned, BoxStyle, drawing from colorama import Style -from prompt_toolkit.shortcuts import print_formatted_text -from prompt_toolkit.formatted_text import FormattedText - - from . import base -from .base import user_choice, dump_report_data, suppress_exit, raise_parse_exception, Command, GroupCommand, RecordMixin +from .base import user_choice, dump_report_data, suppress_exit, raise_parse_exception, Command, GroupCommand, \ + RecordMixin from .register import ShareFolderCommand from .. import api, display, vault, vault_extensions, crypto, utils from ..error import CommandError, KeeperApiError, Error @@ -37,7 +34,6 @@ from ..params import LAST_SHARED_FOLDER_UID, LAST_FOLDER_UID from ..proto import folder_pb2, record_pb2 from ..record import Record -from ..recordv3 import RecordV3 from ..subfolder import BaseFolderNode, try_resolve_path, find_folders, SharedFolderNode, get_contained_record_uids, \ get_contained_folder_uids @@ -1576,9 +1572,16 @@ def consolidate_shares(shares, id_key): uo.manageUsers = folder_pb2.BOOLEAN_TRUE if ushare.get(MU_KEY) else folder_pb2.BOOLEAN_FALSE uo.manageRecords = folder_pb2.BOOLEAN_TRUE if ushare.get(MR_KEY) else folder_pb2.BOOLEAN_FALSE keys = params.key_cache.get(email) - if keys and keys.rsa: - rsa_key = crypto.load_rsa_public_key(keys.rsa) - uo.sharedFolderKey = crypto.encrypt_rsa(sf_key, rsa_key) + if keys: + if params.forbid_rsa and keys.ec: + ec_key = crypto.load_ec_public_key(keys.ec) + uo.typedSharedFolderKey.encryptedKey = crypto.encrypt_ec(sf_key, ec_key) + uo.typedSharedFolderKey.encryptedKeyType = folder_pb2.encrypted_by_public_key_ecc + elif not params.forbid_rsa and keys.rsa: + rsa_key = crypto.load_rsa_public_key(keys.rsa) + uo.typedSharedFolderKey.encryptedKey = crypto.encrypt_rsa(sf_key, rsa_key) + uo.typedSharedFolderKey.encryptedKeyType = folder_pb2.encrypted_by_public_key + req_user_list = req.sharedFolderAddUser req_user_list.append(uo) @@ -1600,10 +1603,20 @@ def consolidate_shares(shares, id_key): elif team_uid in params.key_cache: team_keys = params.key_cache[team_uid] if team_keys.aes: - to.sharedFolderKey = crypto.encrypt_aes_v1(sf_key, team_keys.aes) - elif team_keys.rsa: + if params.forbid_rsa: + to.typedSharedFolderKey.encryptedKey = crypto.encrypt_aes_v2(sf_key, team_keys.aes) + to.typedSharedFolderKey.encryptedKeyType = folder_pb2.encrypted_by_data_key_gcm + else: + to.typedSharedFolderKey.encryptedKey = crypto.encrypt_aes_v1(sf_key, team_keys.aes) + to.typedSharedFolderKey.encryptedKeyType = folder_pb2.encrypted_by_data_key + elif params.forbid_rsa and team_keys.ec: + ec_key = crypto.load_ec_public_key(team_keys.ec) + to.typedSharedFolderKey.encryptedKey = crypto.encrypt_ec(sf_key, ec_key) + to.typedSharedFolderKey.encryptedKeyType = folder_pb2.encrypted_by_public_key_ecc + elif not params.forbid_rsa and team_keys.rsa: rsa_key = crypto.load_rsa_public_key(team_keys.rsa) - to.sharedFolderKey = crypto.encrypt_rsa(sf_key, rsa_key) + to.typedSharedFolderKey.encryptedKey = crypto.encrypt_rsa(sf_key, rsa_key) + to.typedSharedFolderKey.encryptedKeyType = folder_pb2.encrypted_by_public_key else: continue req.sharedFolderAddTeam.append(to) @@ -1785,7 +1798,7 @@ def get_teams_info(teams): def tree_node(node): node_uid = node.record_uid if isinstance(node, Record) else node.uid or '' node_name = node.title if isinstance(node, Record) else node.name - node_name = f'{node_name} ({node_uid})' + node_name = f'{node_name} ({node_uid})' if verbose else node_name share_info = get_share_info(node) if isinstance(node, SharedFolderNode) and shares else '' node_name = f'{Style.DIM}{node_name} [Record]{Style.NORMAL}' if isinstance(node, Record) \ else f'{node_name}{Style.BRIGHT} [SHARED]{Style.NORMAL}{share_info}' if isinstance(node, SharedFolderNode) \ @@ -1817,11 +1830,5 @@ def tree_node(node): print(title) tree_txt = tr(tree) tree_txt = re.sub(r'\s+\(\)', '', tree_txt) - if not verbose: - lines = tree_txt.splitlines() - for idx, line in enumerate(lines): - line = re.sub(r'\s+\(.+?\)', '', line, count=1) - lines[idx] = line - tree_txt = '\n'.join(lines) print(tree_txt) print('') diff --git a/keepercommander/commands/record.py b/keepercommander/commands/record.py index fa28acc06..f94a90029 100644 --- a/keepercommander/commands/record.py +++ b/keepercommander/commands/record.py @@ -1122,25 +1122,11 @@ def execute(self, params, **kwargs): if is_shared: if 'shares' not in rec: rec['shares'] = {} - rq = { - 'command': 'get_records', - 'include': ['shares'], - 'records': [{ - 'record_uid': record_uid - }], - 'client_time': api.current_milli_time() - } - try: - rs = api.communicate(params, rq) - if 'records' in rs: - for r in rs['records']: - if record_uid == r['record_uid']: - if 'user_permissions' in r: - rec['shares']['user_permissions'] = r['user_permissions'] - if 'shared_folder_permissions' in r: - rec['shares']['shared_folder_permissions'] = r['shared_folder_permissions'] - except: - pass + shares = api.get_record_shares(params, (record_uid,), True) + if isinstance(shares, list): + record_shares = next(iter(x.get('shares') for x in shares if x.get('record_uid') == record_uid), None) + if isinstance(record_shares, dict): + rec['shares'] = record_shares if 'shares' in rec: if 'user_permissions' in rec['shares']: @@ -1165,7 +1151,7 @@ def execute(self, params, **kwargs): if not flags: flags = 'Read Only' print('{0:>21s}: {1:<26s} ({2}) {3}'.format( - 'Shared Users' if no == 0 else '', uo['username'], flags, + 'Direct User Shares' if no == 0 else '', uo['username'], flags, 'self' if uo['username'] == params.user else '')) no += 1 @@ -1355,32 +1341,33 @@ def execute(self, params, **kwargs): if answer.lower() != 'yes': return - record_shares = api.get_record_shares(params, to_restore, is_share_admin=True) + record_shares = api.get_record_shares(params, to_restore, True) if record_shares: - remove_shares = [] + remove_shares = [] # type: List[record_pb2.SharedRecord] for record_share in record_shares: if 'shares' in record_share: shares = record_share['shares'] if 'user_permissions' in shares: for user_permission in shares['user_permissions']: if user_permission.get('owner') is False: - remove_shares.append({ - 'to_username': user_permission['username'], - 'record_uid': record_share['record_uid'], - }) + rs_rq = record_pb2.SharedRecord() + rs_rq.toUsername = user_permission['username'] + rs_rq.recordUid = utils.base64_url_decode(record_share['record_uid']) + remove_shares.append(rs_rq) + while len(remove_shares) > 0: - chunk = remove_shares[:95] - remove_shares = remove_shares[95:] - rq = { - 'command': 'record_share_update', - 'remove_shares': chunk, - } - rs = api.communicate(params, rq) - if 'remove_statuses' in rs: - for rm_status in rs['remove_statuses']: - if rm_status.get('status') != 'success': - logging.info('Remove share \"%s\" from record UID \"%s\" error: %s', - rm_status['username'], rm_status['record_uid'], rm_status['message']) + chunk = remove_shares[:900] + remove_shares = remove_shares[900:] + rsu_rq = record_pb2.RecordShareUpdateRequest() + rsu_rq.removeSharedRecord.extend(chunk) + + rsu_rs = api.communicate_rest(params, rsu_rq, 'vault/records_share_update', + rs_type=record_pb2.RecordShareUpdateResponse) + for srs in rsu_rs.removeSharedRecordStatus: + if srs.status.lower() != 'success': + record_uid = utils.base64_url_encode(srs.recordUid) + logging.info('Remove share \"%s\" from record UID \"%s\" error: %s', + srs.username, record_uid, srs.message) TrashMixin.last_revision = 0 diff --git a/keepercommander/commands/register.py b/keepercommander/commands/register.py index 01a37f9f0..b4f8100c6 100644 --- a/keepercommander/commands/register.py +++ b/keepercommander/commands/register.py @@ -467,8 +467,14 @@ def prepare_request(params, kwargs, curr_sf, users, teams, rec_uids, *, uo.manageUsers = folder_pb2.BOOLEAN_TRUE if mu or curr_sf.get('default_manage_users') is True else folder_pb2.BOOLEAN_FALSE sf_key = curr_sf.get('shared_folder_key_unencrypted') # type: Optional[bytes] if sf_key: - rsa_key = crypto.load_rsa_public_key(keys.rsa) - uo.sharedFolderKey = crypto.encrypt_rsa(sf_key, rsa_key) + if params.forbid_rsa and keys.ec: + ec_key = crypto.load_ec_public_key(keys.ec) + uo.typedSharedFolderKey.encryptedKey = crypto.encrypt_ec(sf_key, ec_key) + uo.typedSharedFolderKey.encryptedKeyType = folder_pb2.encrypted_by_public_key_ecc + elif not params.forbid_rsa and keys.rsa: + rsa_key = crypto.load_rsa_public_key(keys.rsa) + uo.typedSharedFolderKey.encryptedKey = crypto.encrypt_rsa(sf_key, rsa_key) + uo.typedSharedFolderKey.encryptedKeyType = folder_pb2.encrypted_by_public_key rq.sharedFolderAddUser.append(uo) else: @@ -510,10 +516,20 @@ def prepare_request(params, kwargs, curr_sf, users, teams, rec_uids, *, keys = params.key_cache.get(team_uid) if keys: if keys.aes: - to.sharedFolderKey = crypto.encrypt_aes_v1(sf_key, keys.aes) - elif keys.rsa: + if params.forbid_rsa: + to.typedSharedFolderKey.encryptedKey = crypto.encrypt_aes_v2(sf_key, params.data_key) + to.typedSharedFolderKey.encryptedKeyType = folder_pb2.encrypted_by_data_key_gcm + else: + to.typedSharedFolderKey.encryptedKey = crypto.encrypt_aes_v1(sf_key, params.data_key) + to.typedSharedFolderKey.encryptedKeyType = folder_pb2.encrypted_by_data_key + elif params.forbid_rsa and keys.ec: + ec_key = crypto.load_ec_public_key(keys.ec) + to.typedSharedFolderKey.encryptedKey = crypto.encrypt_ec(sf_key, ec_key) + to.typedSharedFolderKey.encryptedKeyType = folder_pb2.encrypted_by_public_key_ecc + elif not params.forbid_rsa and keys.rsa: rsa_key = crypto.load_rsa_public_key(keys.rsa) - to.sharedFolderKey = crypto.encrypt_rsa(sf_key, rsa_key) + to.typedSharedFolderKey.encryptedKey = crypto.encrypt_rsa(sf_key, rsa_key) + to.typedSharedFolderKey.encryptedKeyType = folder_pb2.encrypted_by_public_key else: continue else: @@ -859,11 +875,11 @@ def execute(self, params, **kwargs): record_key = rec.get('record_key_unencrypted') if record_key and email not in existing_shares and email in params.key_cache: keys = params.key_cache[email] - if keys.ec: + if params.forbid_rsa and keys.ec: ec_key = crypto.load_ec_public_key(keys.ec) ro.recordKey = crypto.encrypt_ec(record_key, ec_key) ro.useEccKey = True - elif keys.rsa: + elif not params.forbid_rsa and keys.rsa: rsa_key = crypto.load_rsa_public_key(keys.rsa) ro.recordKey = crypto.encrypt_rsa(record_key, rsa_key) ro.useEccKey = False @@ -1667,23 +1683,40 @@ def execute(self, params, **kwargs): if not kwargs.get('force') else 'Y' if answer.lower() == 'y': table = [] - while len(direct_shares_update) > 0: - batch = direct_shares_update[:80] - direct_shares_update = direct_shares_update[80:] - rq = { - 'command': 'record_share_update', - 'pt': 'Commander', - 'update_shares': batch - } - rs = api.communicate(params, rq) - if 'update_statuses' in rs: - for status in rs['update_statuses']: - code = status['status'] - if code != 'success': - record_uid = status['record_uid'] - username = status.get('username') or status.get('to_username') - table.append([record_uid, username, code, status.get('message')]) + def to_share_record_proto(srd): # type: (dict) -> record_pb2.SharedRecord + srp = record_pb2.SharedRecord() + srp.toUsername = srd['to_username'] + srp.recordUid = utils.base64_url_decode(srd['record_uid']) + if 'shared_folder_uid' in srd: + srp.sharedFolderUid = utils.base64_url_decode(srd['shared_folder_uid']) + if 'team_uid' in srd: + srp.teamUid = utils.base64_url_decode(srd['team_uid']) + if 'record_key' in srd: + srp.recordKey = utils.base64_url_decode(srd['record_key']) + if 'use_ecc_key' in srd: + srp.useEccKey = srd['use_ecc_key'] + if 'editable' in srd: + srp.editable = srd['editable'] + if 'shareable' in srd: + srp.shareable = srd['shareable'] + if 'transfer' in srd: + srp.shareable = srd['transfer'] + + return srp + + while len(direct_shares_update) > 0: + rsu_rq = record_pb2.RecordShareUpdateRequest() + rsu_rq.updateSharedRecord.extend((to_share_record_proto(x) for x in direct_shares_update[:900])) + direct_shares_update = direct_shares_update[900:] + + rsu_rs = api.communicate_rest(params, rsu_rq, 'vault/records_share_update', + rs_type=record_pb2.RecordShareUpdateResponse) + for status in rsu_rs.updateSharedRecordStatus: + code = status.status.lower() + if code != 'success': + record_uid = utils.base64_url_encode(status.recordUid) + table.append([record_uid, status.username, code, status.message]) if len(table) > 0: headers = ['Record UID', 'Email', 'Error Code', 'Message'] @@ -2406,13 +2439,6 @@ def execute(self, params, **kwargs): user_password = password1 user_data_key = utils.generate_aes_key() - rsa_private_key, rsa_public_key = crypto.generate_rsa_key() - rsa_private = crypto.unload_rsa_private_key(rsa_private_key) - rsa_public = crypto.unload_rsa_public_key(rsa_public_key) - - ec_private_key, ec_public_key = crypto.generate_ec_key() - ec_private = crypto.unload_ec_private_key(ec_private_key) - ec_public = crypto.unload_ec_public_key(ec_public_key) user_rq = APIRequest_pb2.CreateUserRequest() user_rq.username = email @@ -2420,10 +2446,19 @@ def execute(self, params, **kwargs): user_password, crypto.get_random_bytes(16), iterations) user_rq.encryptionParams = utils.create_encryption_params( user_password, crypto.get_random_bytes(16), iterations, user_data_key) - user_rq.rsaPublicKey = rsa_public - user_rq.rsaEncryptedPrivateKey = crypto.encrypt_aes_v1(rsa_private, user_data_key) + if not params.forbid_rsa: + rsa_private_key, rsa_public_key = crypto.generate_rsa_key() + rsa_private = crypto.unload_rsa_private_key(rsa_private_key) + rsa_public = crypto.unload_rsa_public_key(rsa_public_key) + user_rq.rsaPublicKey = rsa_public + user_rq.rsaEncryptedPrivateKey = crypto.encrypt_aes_v1(rsa_private, user_data_key) + + ec_private_key, ec_public_key = crypto.generate_ec_key() + ec_private = crypto.unload_ec_private_key(ec_private_key) + ec_public = crypto.unload_ec_public_key(ec_public_key) user_rq.eccPublicKey = ec_public user_rq.eccEncryptedPrivateKey = crypto.encrypt_aes_v2(ec_private, user_data_key) + user_rq.encryptedDeviceToken = LoginV3API.get_device_id(params) user_rq.encryptedClientKey = crypto.encrypt_aes_v1(utils.generate_aes_key(), user_data_key) user_rq.clientVersion = rest_api.CLIENT_VERSION diff --git a/keepercommander/commands/security_audit.py b/keepercommander/commands/security_audit.py index 21f3f86d5..af1dc18c1 100644 --- a/keepercommander/commands/security_audit.py +++ b/keepercommander/commands/security_audit.py @@ -5,7 +5,7 @@ from json import JSONDecodeError from typing import Dict, List, Optional, Any -from cryptography.hazmat.primitives.asymmetric.rsa import RSAPrivateKey +from cryptography.hazmat.primitives.asymmetric import rsa, ec from keepercommander import api, crypto, utils from keepercommander.breachwatch import BreachWatch @@ -139,17 +139,6 @@ def clear_ancillary_report_data(self): self.error_report_builder = None self.debug_report_builder = None - def get_enterprise_private_rsa_key(self, params, enterprise_priv_key): - if not self.enterprise_private_rsa_key: - tree_key = params.enterprise['unencrypted_tree_key'] - if not enterprise_priv_key: - key = params.enterprise.get('keys', {}).get('rsa_encrypted_private_key', '') - enterprise_priv_key = utils.base64_url_decode(key) - key = crypto.decrypt_aes_v2(enterprise_priv_key, tree_key) - key = crypto.load_rsa_private_key(key) - self.enterprise_private_rsa_key = key - return self.enterprise_private_rsa_key - def get_parser(self): return report_parser @@ -240,10 +229,13 @@ def get_node_id(name_or_id): save_report = kwargs.get('save') or attempt_fix show_updated = save_report or kwargs.get('show_updated') updated_security_reports = [] - tree_key = (params.enterprise or {}).get('unencrypted_tree_key') + tree_key = params.enterprise['unencrypted_tree_key'] from_page = 0 complete = False rows = [] + rsa_key = None # type: Optional[rsa.RSAPrivateKey] + ec_key = None # type: Optional[ec.EllipticCurvePrivateKey] + while not complete: rq = APIRequest_pb2.SecurityReportRequest() rq.fromPage = from_page @@ -253,7 +245,12 @@ def get_node_id(name_or_id): complete = security_report_data_rs.complete from_page = to_page + 1 try: - rsa_key = self.get_enterprise_private_rsa_key(params, security_report_data_rs.enterprisePrivateKey) + if not rsa_key and len(security_report_data_rs.enterprisePrivateKey) > 0: + key_data = crypto.decrypt_aes_v2(security_report_data_rs.enterprisePrivateKey, tree_key) + rsa_key = crypto.load_rsa_private_key(key_data) + if not ec_key and len(security_report_data_rs.enterpriseEccPrivateKey) > 0: + key_data = crypto.decrypt_aes_v2(security_report_data_rs.enterpriseEccPrivateKey, tree_key) + ec_key = crypto.load_ec_private_key(key_data) except: self.get_error_report_builder().set_current_email('Enterprise') self.get_error_report_builder().update_report_data('Invalid enterprise private key') @@ -307,7 +304,7 @@ def get_node_id(name_or_id): if show_updated or debug_mode: debug_mode and self.debug_report_builder.set_current_email(email) - data = self.get_updated_security_report_row(sr, rsa_key, data) + data = self.get_updated_security_report_row(sr, rsa_key, ec_key, data) # Skip summary-score calculation if errors encountered or debug/incremental-data-reporting is enabled if debug_mode or self.get_error_report_builder().has_errors_to_report() and not attempt_fix: @@ -386,15 +383,19 @@ def get_node_id(name_or_id): table.append(row) return dump_report_data(table, field_descriptions, fmt=fmt, filename=out, title=report_title) - def get_updated_security_report_row(self, sr, rsa_key, last_saved_data): - # type: (APIRequest_pb2.SecurityReport, RSAPrivateKey, Dict[str, int]) -> Dict[str, int] - def apply_incremental_data(old_report_data, incremental_dataset, key): - # type: (Dict[str, int], List[APIRequest_pb2.SecurityReportIncrementalData], RSAPrivateKey) -> Dict[str, int] - def decrypt_security_data(sec_data, k): # type: (bytes, RSAPrivateKey) -> Dict[str, int] or None + def get_updated_security_report_row(self, sr, rsa_key, ec_key, last_saved_data): + # type: (APIRequest_pb2.SecurityReport, rsa.RSAPrivateKey, ec.EllipticCurvePrivateKey, Dict[str, int]) -> Dict[str, int] + + def apply_incremental_data(old_report_data, incremental_dataset): + # type: (Dict[str, int], List[APIRequest_pb2.SecurityReportIncrementalData]) -> Dict[str, int] + def decrypt_security_data(sec_data, key_type): # type: (bytes, int) -> Optional[Dict[str, int]] decrypted = None if sec_data: try: - decrypted_bytes = crypto.decrypt_rsa(sec_data, k, apply_padding=True) + if key_type == enterprise_pb2.KT_ENCRYPTED_BY_PUBLIC_KEY_ECC: + decrypted_bytes = crypto.decrypt_ec(sec_data, ec_key) + else: + decrypted_bytes = crypto.decrypt_rsa(sec_data, rsa_key) except Exception as e: error = f'Decrypt fail (incremental data): {e}' self.get_error_report_builder().update_report_data(error) @@ -425,10 +426,10 @@ def decrypt_security_data(sec_data, k): # type: (bytes, RSAPrivateKey) -> Dict[ return decrypted def decrypt_incremental_data(inc_data): - # type: (APIRequest_pb2.SecurityReportIncrementalData) -> Dict[str, Dict[str, int] or None] + # type: (APIRequest_pb2.SecurityReportIncrementalData) -> Dict[str, Optional[Dict[str, int]]] decrypted = { - 'old': decrypt_security_data(inc_data.oldSecurityData, key), - 'curr': decrypt_security_data(inc_data.currentSecurityData, key) + 'old': decrypt_security_data(inc_data.oldSecurityData, inc_data.oldDataEncryptionType), + 'curr': decrypt_security_data(inc_data.currentSecurityData, inc_data.currentDataEncryptionType) } self.debug_report_builder and self.debug_report_builder.update_report_data(decrypted) return decrypted @@ -486,7 +487,7 @@ def update(u_sec_data, old_sec_d, diff): report_data = update_scores(report_data, incremental_dataset) return report_data - result = apply_incremental_data(last_saved_data, sr.securityReportIncrementalData, rsa_key) + result = apply_incremental_data(last_saved_data, sr.securityReportIncrementalData) # Update unique password count total = result.get('total_record_passwords', 0) result['unique_record_passwords'] = total - sr.numberOfReusedPassword diff --git a/keepercommander/commands/transfer_account.py b/keepercommander/commands/transfer_account.py index 579615aae..8dbab9711 100644 --- a/keepercommander/commands/transfer_account.py +++ b/keepercommander/commands/transfer_account.py @@ -14,10 +14,10 @@ import json import logging -from typing import Optional +from typing import Optional, Dict from .. import api, crypto, utils -from ..params import KeeperParams +from ..params import KeeperParams, PublicKeys from .base import suppress_exit, raise_parse_exception, user_choice from .enterprise_common import EnterpriseCommand from ..display import bcolors @@ -186,17 +186,20 @@ def verify_user(username): # type: (str) -> Optional[str] logging.info('Locking active users.') api.execute_batch(params, lock_rq) - public_keys = {} - for target_user in list(transfer_map.keys()): - target_public_key = self.get_public_key(params, target_user) - if target_public_key: - public_keys[target_user] = target_public_key + public_keys = {} # type: Dict[str, PublicKeys] + target_users = list(transfer_map.keys()) + api.load_user_public_keys(params, target_users, False) + for target_user in target_users: + if target_user in params.key_cache: + public_keys[target_user] = params.key_cache[target_user] else: logging.warning('Failed to get user \"%s\" public key', target_user) del transfer_map[target_user] for target_user in transfer_map: target_public_key = public_keys[target_user] + if not target_public_key: + continue for email in transfer_map[target_user]: logging.info('Transferring %s account to %s ...', email, target_user) self.transfer_user_account(params, email, target_user, target_public_key) @@ -206,7 +209,12 @@ def verify_user(username): # type: (str) -> Optional[str] @staticmethod def transfer_user_account(params, username, target_user, target_public_key): - # type: (KeeperParams, str, str, any) -> bool + # type: (KeeperParams, str, str, PublicKeys) -> bool + ec_public_key = crypto.load_ec_public_key(target_public_key.ec) if target_public_key.ec and params.forbid_rsa else None + rsa_public_key = crypto.load_rsa_public_key(target_public_key.rsa) if target_public_key.rsa and not params.forbid_rsa else None + if not ec_public_key and not rsa_public_key: + raise Exception(f'Cannot user target user public key') + rq = { 'command': 'pre_account_transfer', 'target_username': username, @@ -214,31 +222,55 @@ def transfer_user_account(params, username, target_user, target_public_key): try: rs = api.communicate(params, rq) tree_key = params.enterprise['unencrypted_tree_key'] - role_key = None - if 'role_key' in rs: - role_key = utils.base64_url_decode(rs['role_key']) - role_key = crypto.decrypt_rsa(role_key, params.rsa_key2) - elif 'role_key_id' in rs: - role_key_id = rs['role_key_id'] - if 'role_keys2' in params.enterprise: - key2 = next((x for x in params.enterprise['role_keys2'] if x['role_id'] == role_key_id), None) - if key2: - role_key = utils.base64_url_decode(key2['role_key']) - role_key = crypto.decrypt_aes_v2(role_key, tree_key) - if not role_key: - raise Exception('Cannot resolve Account Transfer role key') - role_private_key = utils.base64_url_decode(rs['role_private_key']) if 'role_private_key' in rs else None - role_private_key = crypto.decrypt_aes_v1(role_private_key, role_key) - role_private_key = crypto.load_rsa_private_key(role_private_key) - transfer_key = utils.base64_url_decode(rs['transfer_key']) - transfer_key = crypto.decrypt_rsa(transfer_key, role_private_key) + + user_data_key = None + if 'transfer_key2' in rs: + transfer_key = utils.base64_url_decode(rs['transfer_key2']) + transfer_key_type = rs['transfer_key2_type_id'] + if transfer_key_type == 1: + user_data_key = crypto.decrypt_aes_v1(transfer_key, tree_key) + elif transfer_key_type == 2: + private_key_bytes = utils.base64_url_decode(params.enterprise['keys']['rsa_encrypted_private_key']) + private_key_bytes = crypto.decrypt_aes_v2(private_key_bytes, tree_key) + private_key = crypto.load_rsa_private_key(private_key_bytes) + user_data_key = crypto.decrypt_rsa(transfer_key, private_key) + elif transfer_key_type == 3: + user_data_key = crypto.decrypt_aes_v2(transfer_key, tree_key) + elif transfer_key_type == 4: + private_key_bytes = utils.base64_url_decode(params.enterprise['keys']['ecc_encrypted_private_key']) + private_key_bytes = crypto.decrypt_aes_v2(private_key_bytes, tree_key) + private_key = crypto.load_ec_private_key(private_key_bytes) + user_data_key = crypto.decrypt_ec(transfer_key, private_key) + + if not user_data_key: + role_key = None + if 'role_key' in rs: + role_key = utils.base64_url_decode(rs['role_key']) + role_key = crypto.decrypt_rsa(role_key, params.rsa_key2) + elif 'role_key_id' in rs: + role_key_id = rs['role_key_id'] + if 'role_keys2' in params.enterprise: + key2 = next((x for x in params.enterprise['role_keys2'] if x['role_id'] == role_key_id), None) + if key2: + role_key = utils.base64_url_decode(key2['role_key']) + role_key = crypto.decrypt_aes_v2(role_key, tree_key) + + role_private_key = utils.base64_url_decode(rs['role_private_key']) if 'role_private_key' in rs else None + role_private_key = crypto.decrypt_aes_v1(role_private_key, role_key) + role_private_key = crypto.load_rsa_private_key(role_private_key) + transfer_key = utils.base64_url_decode(rs['transfer_key']) + # transfer_key_type = rs.get('transfer_key_type_id') + user_data_key = crypto.decrypt_rsa(transfer_key, role_private_key) + if not user_data_key: + raise Exception('Cannot resolve Account Transfer key') + user_rsa_private_key = utils.base64_url_decode(rs['user_private_key']) if 'user_private_key' in rs else None if user_rsa_private_key: - user_rsa_private_key = crypto.decrypt_aes_v1(user_rsa_private_key, transfer_key) + user_rsa_private_key = crypto.decrypt_aes_v1(user_rsa_private_key, user_data_key) user_rsa_private_key = crypto.load_rsa_private_key(user_rsa_private_key) user_ecc_private_key = utils.base64_url_decode(rs['user_ecc_private_key']) if 'user_ecc_private_key' in rs else None if user_ecc_private_key: - user_ecc_private_key = crypto.decrypt_aes_v2(user_ecc_private_key, transfer_key) + user_ecc_private_key = crypto.decrypt_aes_v2(user_ecc_private_key, user_data_key) user_ecc_private_key = crypto.load_ec_private_key(user_ecc_private_key) rqt = { @@ -246,6 +278,9 @@ def transfer_user_account(params, username, target_user, target_public_key): 'from_user': username, 'to_user': target_user } + if ec_public_key: + rqt['key_type'] = 'encrypted_by_public_key_ecc' + if 'record_keys' in rs: rqt['record_keys'] = [] rqt['corrupted_record_keys'] = [] @@ -255,21 +290,28 @@ def transfer_user_account(params, username, target_user, target_public_key): record_key = utils.base64_url_decode(rk['record_key']) record_key_type = rk.get('record_key_type', 1) if record_key_type == 1: - record_key = crypto.decrypt_aes_v1(record_key, transfer_key) + record_key = crypto.decrypt_aes_v1(record_key, user_data_key) elif record_key_type == 2: record_key = crypto.decrypt_rsa(record_key, user_rsa_private_key) elif record_key_type == 3: - record_key = crypto.decrypt_aes_v2(record_key, transfer_key) + record_key = crypto.decrypt_aes_v2(record_key, user_data_key) elif record_key_type == 4: record_key = crypto.decrypt_ec(record_key, user_ecc_private_key) elif record_key_type == 0: - record_key = transfer_key + record_key = user_data_key else: raise Exception(f'Unsupported record key type') + if ec_public_key: + encrypted_record_key = crypto.encrypt_ec(record_key, ec_public_key) + record_key_type = 'encrypted_by_public_key_ecc' + else: + encrypted_record_key = crypto.encrypt_rsa(record_key, rsa_public_key) + record_key_type = 'encrypted_by_public_key' rqt['record_keys'].append({ 'record_uid': record_uid, - 'record_key': utils.base64_url_encode(crypto.encrypt_rsa(record_key, target_public_key)) + 'record_key': utils.base64_url_encode(encrypted_record_key), + 'record_key_type': record_key_type }) except Exception as e: logging.debug('Corrupted record key: %s: %s', record_uid, e) @@ -284,19 +326,26 @@ def transfer_user_account(params, username, target_user, target_public_key): shared_folder_key = utils.base64_url_decode(sfk['shared_folder_key']) shared_folder_key_type = sfk.get('shared_folder_key_type', 1) if shared_folder_key_type == 1: - shared_folder_key = crypto.decrypt_aes_v1(shared_folder_key, transfer_key) + shared_folder_key = crypto.decrypt_aes_v1(shared_folder_key, user_data_key) elif shared_folder_key_type == 2: shared_folder_key = crypto.decrypt_rsa(shared_folder_key, user_rsa_private_key) elif shared_folder_key_type == 3: - shared_folder_key = crypto.decrypt_aes_v2(shared_folder_key, transfer_key) + shared_folder_key = crypto.decrypt_aes_v2(shared_folder_key, user_data_key) elif shared_folder_key_type == 4: shared_folder_key = crypto.decrypt_ec(shared_folder_key, user_ecc_private_key) else: raise Exception(f'Unsupported shared folder key type') + if ec_public_key: + encrypted_shared_folder_key = crypto.encrypt_ec(shared_folder_key, ec_public_key) + shared_folder_key_type = 'encrypted_by_public_key_ecc' + else: + encrypted_shared_folder_key = crypto.encrypt_rsa(shared_folder_key, rsa_public_key) + shared_folder_key_type = 'encrypted_by_public_key' rqt['shared_folder_keys'].append({ 'shared_folder_uid': shared_folder_uid, - 'shared_folder_key': utils.base64_url_encode(crypto.encrypt_rsa(shared_folder_key, target_public_key)), + 'shared_folder_key': utils.base64_url_encode(encrypted_shared_folder_key), + 'shared_folder_key_type': shared_folder_key_type, }) except Exception as e: logging.debug('Corrupted shared folder key: %s: %s', shared_folder_uid, e) @@ -311,18 +360,26 @@ def transfer_user_account(params, username, target_user, target_public_key): team_key = utils.base64_url_decode(tk['team_key']) team_key_type = tk.get('team_key_type', 1) if team_key_type == 1: - team_key = crypto.decrypt_aes_v1(team_key, transfer_key) + team_key = crypto.decrypt_aes_v1(team_key, user_data_key) elif team_key_type == 2: team_key = crypto.decrypt_rsa(team_key, user_rsa_private_key) elif team_key_type == 3: - team_key = crypto.decrypt_aes_v2(team_key, transfer_key) + team_key = crypto.decrypt_aes_v2(team_key, user_data_key) elif team_key_type == 4: team_key = crypto.decrypt_ec(team_key, user_ecc_private_key) else: raise Exception(f'Unsupported team key type') + + if ec_public_key: + encrypted_team_key = crypto.encrypt_ec(team_key, ec_public_key) + team_key_type = 'encrypted_by_public_key_ecc' + else: + encrypted_team_key = crypto.encrypt_rsa(team_key, rsa_public_key) + team_key_type = 'encrypted_by_public_key' rqt['team_keys'].append({ 'team_uid': team_uid, - 'team_key': utils.base64_url_encode(crypto.encrypt_rsa(team_key, target_public_key)), + 'team_key': utils.base64_url_encode(encrypted_team_key), + 'team_key_type': team_key_type, }) except Exception as e: logging.debug('Corrupted team key: %s: %s', team_uid, e) @@ -332,13 +389,15 @@ def transfer_user_account(params, username, target_user, target_public_key): rqt['user_folder_keys'] = [] rqt['corrupted_user_folder_keys'] = [] folder_key = utils.generate_aes_key() - folder_data = json.dumps({ - 'name': f'Transfer from {username}' - }).encode('utf-8') + folder_data = json.dumps({ 'name': f'Transfer from {username}' }).encode('utf-8') folder_data = crypto.encrypt_aes_v1(folder_data, folder_key) + if ec_public_key: + encrypted_folder_key = crypto.encrypt_ec(folder_key, ec_public_key) + else: + encrypted_folder_key = crypto.encrypt_rsa(folder_key, rsa_public_key) rqt['user_folder_transfer'] = { 'transfer_folder_uid': utils.generate_uid(), - 'transfer_folder_key': utils.base64_url_encode(crypto.encrypt_rsa(folder_key, target_public_key)), + 'transfer_folder_key': utils.base64_url_encode(encrypted_folder_key), 'transfer_folder_data': utils.base64_url_encode(folder_data) } for ufk in rs['user_folder_keys']: @@ -347,18 +406,26 @@ def transfer_user_account(params, username, target_user, target_public_key): user_folder_key = utils.base64_url_decode(ufk['user_folder_key']) user_folder_key_type = ufk.get('user_folder_key_type', 1) if user_folder_key_type == 1: - user_folder_key = crypto.decrypt_aes_v1(user_folder_key, transfer_key) + user_folder_key = crypto.decrypt_aes_v1(user_folder_key, user_data_key) elif user_folder_key_type == 2: user_folder_key = crypto.decrypt_rsa(user_folder_key, user_rsa_private_key) elif user_folder_key_type == 3: - user_folder_key = crypto.decrypt_aes_v2(user_folder_key, transfer_key) + user_folder_key = crypto.decrypt_aes_v2(user_folder_key, user_data_key) elif user_folder_key_type == 4: user_folder_key = crypto.decrypt_ec(user_folder_key, user_ecc_private_key) else: raise Exception(f'Unsupported user folder key type') + + if ec_public_key: + encrypted_user_folder_key = crypto.encrypt_ec(user_folder_key, ec_public_key) + user_folder_key_type = 'encrypted_by_public_key_ecc' + else: + encrypted_user_folder_key = crypto.encrypt_rsa(user_folder_key, rsa_public_key) + user_folder_key_type = 'encrypted_by_public_key' rqt['user_folder_keys'].append({ 'user_folder_uid': user_folder_uid, - 'user_folder_key': utils.base64_url_encode(crypto.encrypt_rsa(user_folder_key, target_public_key)), + 'user_folder_key': utils.base64_url_encode(encrypted_user_folder_key), + 'user_folder_key_type': user_folder_key_type, }) except Exception as e: logging.debug('Corrupted user folder key: %s: %s', user_folder_uid, e) diff --git a/keepercommander/commands/utils.py b/keepercommander/commands/utils.py index 7e81d62c7..3f4d94758 100644 --- a/keepercommander/commands/utils.py +++ b/keepercommander/commands/utils.py @@ -36,7 +36,7 @@ from .helpers.whoami import get_hostname, get_environment, get_data_center from .ksm import KSMCommand, ksm_parser from .. import __version__, vault -from .. import api, rest_api, loginv3, crypto, utils, constants +from .. import api, rest_api, loginv3, crypto, utils, constants, error from ..breachwatch import BreachWatch from ..display import bcolors from ..error import CommandError @@ -1162,8 +1162,6 @@ def get_parser(self): def execute(self, params, **kwargs): current_password = kwargs.get('current_password') - current_alternates = [] # type: list[dict] - current_master = None # type: Optional[APIRequest_pb2.Salt] is_sso_user = params.settings.get('sso_user', False) if is_sso_user: allow_alternate_passwords = False @@ -1174,17 +1172,14 @@ def execute(self, params, **kwargs): logging.warning('You do not have the required privilege to perform this operation.') return - sync_rq = { - 'command': 'sync_down', - 'revision': 0, - 'include': ['user_auth', 'explicit'] - } - sync_rs = api.communicate(params, sync_rq) - if 'user_auth' in sync_rs: - current_alternates = [x for x in sync_rs['user_auth'] if x['login_type'] == 'ALTERNATE'] - else: - current_master = api.communicate_rest(params, None, 'authentication/get_salt_and_iterations', - rs_type=APIRequest_pb2.Salt) + try: + current_salt = api.communicate_rest(params, None, 'authentication/get_salt_and_iterations', + rs_type=APIRequest_pb2.Salt) + except error.KeeperApiError as kae: + if is_sso_user and kae.result_code == 'doesnt_exist': + current_salt = None + else: + raise kae is_delete_alternate = kwargs.get('delete_alternate') if is_delete_alternate: @@ -1196,23 +1191,12 @@ def execute(self, params, **kwargs): else: if is_sso_user: logging.info('%s SSO Master Password for \"%s\"', - 'Changing' if len(current_alternates) > 0 else 'Setting', params.user) + 'Changing' if current_salt else 'Setting', params.user) else: logging.info('Changing Master Password for \"%s\"', params.user) - if current_master or len(current_alternates) > 0: - if not current_password: - current_password = getpass.getpass(prompt='{0:>24}: '.format('Current Password'), stream=None).strip() - if not current_password: - return - if current_master: - current_salt = current_master.salt - current_iterations = current_master.iterations - else: - current_salt = utils.base64_url_decode(current_alternates[0]['salt']) - current_iterations = current_alternates[0]['iterations'] - - auth_hash = crypto.derive_keyhash_v1(current_password, current_salt, current_iterations) + if current_salt: + auth_hash = crypto.derive_keyhash_v1(current_password, current_salt.salt, current_salt.iterations) rq = APIRequest_pb2.MasterPasswordReentryRequest() rq.pbkdf2Password = utils.base64_url_encode(auth_hash) rq.action = APIRequest_pb2.UNMASK @@ -1228,9 +1212,9 @@ def execute(self, params, **kwargs): current_password = '' if is_delete_alternate: - if len(current_alternates) > 0: + if current_salt: uid_rq = APIRequest_pb2.UidRequest() - uid_rq.uid.extend((utils.base64_url_decode(x['uid']) for x in current_alternates)) + uid_rq.uid.append(current_salt.uid) api.communicate_rest(params, uid_rq, 'authentication/delete_v2_alternate_password') logging.info('SSO Master Password has been deleted') else: @@ -1276,15 +1260,13 @@ def execute(self, params, **kwargs): score = utils.password_score(new_password) logging.info('Password strength: %s', 'WEAK' if score < 40 else 'FAIR' if score < 60 else 'MEDIUM' if score < 80 else 'STRONG') - iterations = current_master.iterations if current_master else \ - max((x['iterations'] for x in current_alternates)) \ - if len(current_alternates) > 0 else constants.PBKDF2_ITERATIONS + iterations = current_salt.iterations if current_salt else constants.PBKDF2_ITERATIONS iterations = max(iterations, constants.PBKDF2_ITERATIONS) auth_salt = crypto.get_random_bytes(16) if is_sso_user: ap_rq = APIRequest_pb2.UserAuthRequest() - ap_rq.uid = utils.base64_url_decode(current_alternates[0]['uid']) if len(current_alternates) > 0 else crypto.get_random_bytes(16) + ap_rq.uid = current_salt.uid if current_salt else crypto.get_random_bytes(16) ap_rq.salt = auth_salt ap_rq.iterations = iterations ap_rq.authHash = crypto.derive_keyhash_v1(new_password, auth_salt, iterations) @@ -1292,9 +1274,9 @@ def execute(self, params, **kwargs): ap_rq.encryptedDataKey = crypto.encrypt_aes_v2(params.data_key, key) ap_rq.encryptedClientKey = crypto.encrypt_aes_v2(params.client_key, key) ap_rq.loginType = APIRequest_pb2.ALTERNATE - ap_rq.name = current_alternates[0]['name'] if len(current_alternates) > 0 else 'alternate' + ap_rq.name = current_salt.name if current_salt else 'alternate' api.communicate_rest(params, ap_rq, 'authentication/set_v2_alternate_password') - logging.info(f'SSO Master Password has been {("changed" if len(current_alternates) > 0 else "set")}') + logging.info(f'SSO Master Password has been {("changed" if current_salt else "set")}') else: auth_verifier = utils.create_auth_verifier(new_password, auth_salt, iterations) data_salt = crypto.get_random_bytes(16) @@ -1313,7 +1295,7 @@ def get_parser(self): return sync_security_data_parser def execute(self, params, **kwargs): - def get_security_data(record, pw_obj): # type: (KeeperRecord, Dict or None) -> APIRequest_pb2.SecurityData + def get_security_data(record, pw_obj): # type: (KeeperRecord, Optional[Dict]) -> APIRequest_pb2.SecurityData sd = APIRequest_pb2.SecurityData() password = BreachWatch.extract_password(record) # Send empty security data for this record if password was removed -- this removes the old security data @@ -1333,7 +1315,16 @@ def get_security_data(record, pw_obj): # type: (KeeperRecord, Dict or None) sd_data['domain'] = domain[:200] if sd_data: try: - sd.data = crypto.encrypt_rsa(json.dumps(sd_data).encode('utf-8'), params.enterprise_rsa_key) + if params.forbid_rsa: + if params.enterprise_ec_key: + sd.data = crypto.encrypt_ec(json.dumps(sd_data).encode('utf-8'), params.enterprise_ec_key) + else: + raise Exception('Enterprise ECC public key is not available') + else: + if params.enterprise_rsa_key: + sd.data = crypto.encrypt_rsa(json.dumps(sd_data).encode('utf-8'), params.enterprise_rsa_key) + else: + raise Exception('Enterprise RSA public key is not available') except Exception as e: logging.error(f'Error: {e}') logging.error(f'Enterprise RSA key length = {params.enterprise_rsa_key.key_size}') @@ -1341,13 +1332,6 @@ def get_security_data(record, pw_obj): # type: (KeeperRecord, Dict or None) sd.uid = utils.base64_url_decode(record.record_uid) return sd - def update_security_data(record_sds): # type: (List[APIRequest_pb2.SecurityData]) -> None - if record_sds: - update_rq = APIRequest_pb2.SecurityDataRequest() - for rsd in record_sds: - update_rq.recordSecurityData.append(rsd) - api.communicate_rest(params, update_rq, 'enterprise/update_security_data') - def get_record_uids(): uids = set() names = kwargs.get('record') @@ -1401,7 +1385,11 @@ def has_stale_security_data(record): # Remove empty security-data update requests (resulting from failed RSA encryption) sds = [sd for sd in sds if sd] while sds: - update_security_data(sds[:update_limit]) + record_sds = sds[:update_limit] + update_rq = APIRequest_pb2.SecurityDataRequest() + update_rq.recordSecurityData.extend(record_sds) + update_rq.encryptionType = enterprise_pb2.KT_ENCRYPTED_BY_PUBLIC_KEY_ECC if params.forbid_rsa else enterprise_pb2.KT_ENCRYPTED_BY_PUBLIC_KEY + api.communicate_rest(params, update_rq, 'enterprise/update_security_data') sds = sds[update_limit:] if to_update: BreachWatch.save_reused_pw_count(params) diff --git a/keepercommander/commands/verify_records.py b/keepercommander/commands/verify_records.py index a93ab18ff..41e617ba0 100644 --- a/keepercommander/commands/verify_records.py +++ b/keepercommander/commands/verify_records.py @@ -14,11 +14,11 @@ import itertools import json import logging -from typing import Tuple, List, Optional, Set +from typing import Tuple, List, Optional, Set, Dict from .base import user_choice, dump_report_data, Command from .. import api, crypto, utils, vault, error -from ..proto import record_pb2 +from ..proto import record_pb2, folder_pb2 from ..record import get_totp_code @@ -33,10 +33,9 @@ def get_parser(self): return verify_shared_folders_parser def execute(self, params, **kwargs): - shared_folders = None # type: Optional[Set[str]] + shared_folders = set() # type: Set[str] target = kwargs.get('target') if isinstance(target, list) and len(target) > 0: - shared_folders = set() sf_names = {x['name_unencrypted'].lower(): x['shared_folder_uid'] for x in params.shared_folder_cache.values()} for name in target: @@ -48,11 +47,15 @@ def execute(self, params, **kwargs): shared_folders.add(sf_names[sf_name]) else: raise error.CommandError('shared_folders', f'Shared folder \"{name}\" not found') + else: + shared_folders.update(params.shared_folder_cache.keys()) + if len(shared_folders) == 0: + raise error.CommandError('shared_folders', f'No shared folders found') rq = { - 'command': 'sync_down', - 'revision': 0, - 'include': ['shared_folder', 'sfheaders', 'sfusers', 'sfrecords', 'explicit'] + 'command': 'get_shared_folders', + 'shared_folders': [{ 'shared_folder_uid': x } for x in shared_folders], + 'include': ['sfheaders', 'sfusers', 'sfrecords'] } rs = api.communicate(params, rq) sf_v3_keys = [] # type: List[Tuple[str, str]] # (record_uid, shared_folder_uid) @@ -166,54 +169,66 @@ def execute(self, params, **kwargs): if sf_v2_keys: sf_v2_keys.sort(key=lambda x: x[1]) - rqs = [] - rq = None + rqs = {} # type: Dict[str, List[folder_pb2.SharedFolderUpdateRecord]] + results = [] for record_uid, shared_folder_uid in sf_v2_keys: + if shared_folder_uid not in rqs: + rqs[shared_folder_uid] = [] record = params.record_cache[record_uid] record_key = record['record_key_unencrypted'] shared_folder = params.shared_folder_cache[shared_folder_uid] shared_folder_key = shared_folder['shared_folder_key_unencrypted'] - if not rq or rq['shared_folder_uid'] != shared_folder_uid or len(rq['add_records']) > 95: - if rq and len(rq['add_records']) > 0: - rqs.append(rq) - rq = { - 'command': 'shared_folder_update', - 'pt': 'Commander', - 'operation': 'update', - 'shared_folder_uid': shared_folder_uid, - 'name': shared_folder['name'], - 'revision': shared_folder['revision'], - 'add_records': [] - } - rq['add_records'].append({ - 'record_uid': record_uid, - 'record_key': utils.base64_url_encode(crypto.encrypt_aes_v1(record_key, shared_folder_key)), - 'can_edit': False, - 'can_share': False, - }) - if rq: - rqs.append(rq) - - rss = api.execute_batch(params, rqs) - results = [] - for i, rs in enumerate(rss): - shared_folder_uid = rqs[i].get('shared_folder_uid') - if rs.get('result') != 'success': - results.append([shared_folder_uid, '', '', rs.get('result_code')]) - elif 'add_records' in rs: - if shared_folder_uid: - for status in rs['add_records']: - if status.get('status') != 'success': - record_uid = status.get('record_uid') - if record_uid: - api.get_record_shares(params, [record_uid]) - owner = '' - rec = params.record_cache.get(record_uid) - if rec and 'shares' in rec: - shares = rec['shares'] - if 'user_permissions' in shares: - owner = next((x.get('username') for x in shares['user_permissions'] if x.get('owner'))) - results.append([shared_folder_uid, record_uid, owner, status.get('status')]) + sfur = folder_pb2.SharedFolderUpdateRecord() + sfur.recordUid = utils.base64_url_decode(record_uid) + sfur.sharedFolderUid = utils.base64_url_decode(shared_folder_uid) + sfur.encryptedRecordKey = crypto.encrypt_aes_v1(record_key, shared_folder_key) + sfur.canEdit = folder_pb2.BOOLEAN_FALSE + sfur.canShare = folder_pb2.BOOLEAN_TRUE + + sfu_rqs = None # type: Optional[folder_pb2.SharedFolderUpdateV3RequestV2] + left = 0 + while len(rqs) > 0 or sfu_rqs is not None: + if sfu_rqs is None: + sfu_rqs = folder_pb2.SharedFolderUpdateV3RequestV2() + left = 990 + shared_folder_uid = next(iter(rqs.keys())) + sfu_records = rqs.pop(shared_folder_uid) + sfu_rq = folder_pb2.SharedFolderUpdateV3Request() + sfu_rq.sharedFolderUid = utils.base64_url_decode(shared_folder_uid) + sfu_rq.forceUpdate = True + if len(sfu_records) < left: + sfu_rq.sharedFolderAddRecord.extend(sfu_records) + left -= len(sfu_records) + if left > 10: + continue + else: + chunk = sfu_records[:left] + sfu_records = sfu_records[left:] + sfu_rq.sharedFolderAddRecord.extend(chunk) + rqs[shared_folder_uid] = sfu_records + + try: + sfu_rss = api.communicate_rest(params, sfu_rqs, 'vault/shared_folder_update_v3', + rs_type=folder_pb2.SharedFolderUpdateV3ResponseV2, payload_version=1) + for sfu_rs in sfu_rss.sharedFolderUpdateV3Response: + shared_folder_uid = utils.base64_url_encode(sfu_rs.sharedFolderUid) + for sfu_status in sfu_rs.sharedFolderAddRecordStatus: + if sfu_status.status.lower() == 'success': + continue + record_uid = utils.base64_url_encode(sfu_status.recordUid) + api.get_record_shares(params, [record_uid]) + owner = '' + rec = params.record_cache.get(record_uid) + if rec and 'shares' in rec: + shares = rec['shares'] + if 'user_permissions' in shares: + owner = next((x.get('username') for x in shares['user_permissions'] if x.get('owner'))) + results.append([shared_folder_uid, record_uid, owner, sfu_status.status]) + except: + pass + finally: + sfu_rqs = None + if results: headers = ['Shared Folder UID', 'Record UID', 'Record Owner', 'Error code'] dump_report_data(results, headers=headers, title='V2 Record key errors') diff --git a/keepercommander/convert_keys.py b/keepercommander/convert_keys.py new file mode 100644 index 000000000..aecd23403 --- /dev/null +++ b/keepercommander/convert_keys.py @@ -0,0 +1,86 @@ +import logging + +from . import api, utils, crypto +from .params import KeeperParams +from .proto import APIRequest_pb2, enterprise_pb2 + + +def change_key_types(params): # type: (KeeperParams) -> None + if not params.forbid_rsa: + return + + get_rq = APIRequest_pb2.GetChangeKeyTypesRequest() + get_rq.onlyTheseObjects.extend((APIRequest_pb2.EOT_RECORD_KEY, APIRequest_pb2.EOT_SHARED_FOLDER_USER_KEY, APIRequest_pb2.EOT_SHARED_FOLDER_TEAM_KEY, + APIRequest_pb2.EOT_TEAM_USER_KEY, APIRequest_pb2.EOT_USER_FOLDER_KEY)) + get_rs = api.communicate_rest(params, get_rq, 'vault/get_change_key_types', rs_type=APIRequest_pb2.GetChangeKeyTypesResponse) + set_rq = APIRequest_pb2.ChangeKeyTypes() + + for key in get_rs.keys: + try: + if key.objectType == APIRequest_pb2.EOT_RECORD_KEY: + record_uid = utils.base64_url_encode(key.uid) + record = params.record_cache.get(record_uid) + if record and 'record_key_unencrypted' in record: + record_key = record['record_key_unencrypted'] + ckt_rq = APIRequest_pb2.ChangeKeyType() + ckt_rq.objectType = key.objectType + ckt_rq.uid = key.uid + ckt_rq.keyType = enterprise_pb2.KT_ENCRYPTED_BY_DATA_KEY_GCM + ckt_rq.key = crypto.encrypt_aes_v2(record_key, params.data_key) + set_rq.keys.append(ckt_rq) + elif key.objectType == APIRequest_pb2.EOT_SHARED_FOLDER_USER_KEY: + shared_folder_uid = utils.base64_url_encode(key.uid) + shared_folder = params.shared_folder_cache.get(shared_folder_uid) + if shared_folder and 'shared_folder_key_unencrypted' in shared_folder: + shared_folder_key = shared_folder['shared_folder_key_unencrypted'] + ckt_rq = APIRequest_pb2.ChangeKeyType() + ckt_rq.objectType = key.objectType + ckt_rq.uid = key.uid + ckt_rq.keyType = enterprise_pb2.KT_ENCRYPTED_BY_DATA_KEY_GCM + ckt_rq.key = crypto.encrypt_aes_v2(shared_folder_key, params.data_key) + set_rq.keys.append(ckt_rq) + elif key.objectType == APIRequest_pb2.EOT_TEAM_USER_KEY: + team_uid = utils.base64_url_encode(key.uid) + team = params.team_cache.get(team_uid) + if team and 'team_key_unencrypted' in team: + team_key = team['team_key_unencrypted'] + ckt_rq = APIRequest_pb2.ChangeKeyType() + ckt_rq.objectType = key.objectType + ckt_rq.uid = key.uid + ckt_rq.keyType = enterprise_pb2.KT_ENCRYPTED_BY_DATA_KEY_GCM + ckt_rq.key = crypto.encrypt_aes_v2(team_key, params.data_key) + set_rq.keys.append(ckt_rq) + elif key.objectType == APIRequest_pb2.EOT_USER_FOLDER_KEY: + folder_uid = utils.base64_url_encode(key.uid) + folder = params.folder_cache.get(folder_uid) + if folder and 'folder_key_unencrypted' in folder: + folder_key = folder['folder_key_unencrypted'] + ckt_rq = APIRequest_pb2.ChangeKeyType() + ckt_rq.objectType = key.objectType + ckt_rq.uid = key.uid + ckt_rq.keyType = enterprise_pb2.KT_ENCRYPTED_BY_DATA_KEY_GCM + ckt_rq.key = crypto.encrypt_aes_v2(folder_key, params.data_key) + set_rq.keys.append(ckt_rq) + elif key.objectType == APIRequest_pb2.EOT_SHARED_FOLDER_TEAM_KEY: + shared_folder_uid = utils.base64_url_encode(key.uid) + team_uid = utils.base64_url_encode(key.secondaryUid) + shared_folder = params.shared_folder_cache.get(shared_folder_uid) + team = params.team_cache.get(team_uid) + if shared_folder and team and 'shared_folder_key_unencrypted' in shared_folder and 'team_key_unencrypted' in team: + shared_folder_key = shared_folder['shared_folder_key_unencrypted'] + team_key = team['team_key_unencrypted'] + ckt_rq = APIRequest_pb2.ChangeKeyType() + ckt_rq.objectType = key.objectType + ckt_rq.uid = key.uid + ckt_rq.keyType = enterprise_pb2.KT_ENCRYPTED_BY_DATA_KEY_GCM + ckt_rq.key = crypto.encrypt_aes_v2(shared_folder_key, team_key) + set_rq.keys.append(ckt_rq) + except Exception as e: + logging.debug('change_key_types encryption error: %s', e) + try: + if len(set_rq.keys) > 0: + api.communicate_rest(params, set_rq, 'vault/change_key_types', rs_type=APIRequest_pb2.ChangeKeyTypes) + + except Exception as e: + logging.debug('change_key_types error: %s', e) + diff --git a/keepercommander/enterprise.py b/keepercommander/enterprise.py index 76ebbab46..5acf34ecb 100644 --- a/keepercommander/enterprise.py +++ b/keepercommander/enterprise.py @@ -147,7 +147,7 @@ def load(self, params): # type: (KeeperParams) -> None keys['ecc_public_key'] = utils.base64_url_encode(rs.enterpriseKeys.eccPublicKey) keys['ecc_encrypted_private_key'] = \ utils.base64_url_encode(rs.enterpriseKeys.eccEncryptedPrivateKey) - if 'rsa_encrypted_private_key' not in keys: + if 'rsa_encrypted_private_key' not in keys and not params.forbid_rsa: rsa_private, rsa_public = crypto.generate_rsa_key() rsa_private_key = crypto.unload_rsa_private_key(rsa_private) rsa_encrypted_private_key = crypto.encrypt_aes_v2(rsa_private_key, self._enterprise.tree_key) diff --git a/keepercommander/importer/imp_exp.py b/keepercommander/importer/imp_exp.py index 3184a8890..28447b100 100644 --- a/keepercommander/importer/imp_exp.py +++ b/keepercommander/importer/imp_exp.py @@ -550,16 +550,24 @@ def import_teams(params, teams, full_sync=False): # type: (KeeperParams, List[ user_public_keys = params.key_cache[email] if team_key.aes and user_public_keys.rsa: try: - rsa_key = crypto.load_rsa_public_key(user_public_keys.rsa) - team_key = team_key.aes - - rqs.append({ + rq = { 'command': 'team_enterprise_user_add', 'team_uid': team_uid, 'enterprise_user_id': user_lookup[email], 'user_type': 0, - 'team_key': utils.base64_url_encode(crypto.encrypt_rsa(team_key, rsa_key)) - }) + } + team_key = team_key.aes + if params.forbid_rsa and user_public_keys.ec: + ec_key = crypto.load_ec_public_key(user_public_keys.ec) + rq['team_key'] = utils.base64_url_encode(crypto.encrypt_ec(team_key, ec_key)) + rq['team_key_type'] = 'encrypted_by_public_key_ecc' + elif not params.forbid_rsa and user_public_keys.rsa: + rsa_key = crypto.load_rsa_public_key(user_public_keys.rsa) + rq['team_key'] = utils.base64_url_encode(crypto.encrypt_rsa(team_key, rsa_key)) + rq['team_key_type'] = 'encrypted_by_public_key' + else: + raise Exception('user public key is not available') + rqs.append(rq) except Exception as e: logging.debug('Add user to team error: %s', str(e)) @@ -1125,9 +1133,41 @@ def _import(params, file_format, filename, **kwargs): # adjust shared folder permissions shared_update = prepare_record_permission(params, records) - if shared_update: - api.execute_batch(params, shared_update) - sync_down.sync_down(params) + left = 0 + sfu_rqs = None # type: Optional[folder_pb2.SharedFolderUpdateV3RequestV2] + while len(shared_update) > 0 or sfu_rqs is not None: + if sfu_rqs is None: + sfu_rqs = folder_pb2.SharedFolderUpdateV3RequestV2() + left = 990 + if len(shared_update) > 0: + shared_folder_uid = next(iter(shared_update.keys())) + record_updates = shared_update.pop(shared_folder_uid) + sfu_rq = folder_pb2.SharedFolderUpdateV3Request() + sfu_rq.sharedFolderUid = utils.base64_url_decode(shared_folder_uid) + sfu_rq.forceUpdate = True + if len(record_updates) < left: + sfu_rq.sharedFolderUpdateRecord.extend(record_updates) + sfu_rqs.sharedFoldersUpdateV3.append(sfu_rq) + left -= len(record_updates) + if left > 10: + continue + else: + chunk = record_updates[:left] + record_updates = record_updates[left:] + sfu_rq.sharedFolderUpdateRecord.extend(chunk) + sfu_rqs.sharedFolderUpdateV3Request.append(sfu_rq) + shared_update[shared_folder_uid] = record_updates + left = 0 + + try: + sfu_rss = api.communicate_rest(params, sfu_rqs, 'vault/shared_folder_update_v3', rs_type=folder_pb2.SharedFolderUpdateV3ResponseV2, + payload_version=1) + except Exception as e: + logging.debug('Update record permissions error: %s', e) + finally: + sfu_rqs = None + + sync_down.sync_down(params) # upload attachments v2_atts = [] @@ -2386,10 +2426,20 @@ def prepare_folder_permission(params, folders, full_sync): elif team_uid in params.key_cache: team_keys = params.key_cache[team_uid] if team_keys.aes: - sft.sharedFolderKey = crypto.encrypt_aes_v1(shared_folder_key, team_keys.aes) - elif team_keys.rsa: + if params.forbid_rsa: + sft.typedSharedFolderKey.encryptedKey = crypto.encrypt_aes_v2(shared_folder_key, team_keys.aes) + sft.typedSharedFolderKey.encryptedKeyType = folder_pb2.encrypted_by_data_key_gcm + else: + sft.typedSharedFolderKey.encryptedKey = crypto.encrypt_aes_v1(shared_folder_key, team_keys.aes) + sft.typedSharedFolderKey.encryptedKeyType = folder_pb2.encrypted_by_data_key + elif params.forbid_rsa and team_keys.ec: + ec_key = crypto.load_ec_public_key(team_keys.ec) + sft.typedSharedFolderKey.encryptedKey = crypto.encrypt_ec(shared_folder_key, ec_key) + sft.typedSharedFolderKey.encryptedKeyType = folder_pb2.encrypted_by_public_key_ecc + elif not params.forbid_rsa and team_keys.rsa: rsa_key = crypto.load_rsa_public_key(team_keys.rsa) - sft.sharedFolderKey = crypto.encrypt_rsa(shared_folder_key, rsa_key) + sft.typedSharedFolderKey.encryptedKey = crypto.encrypt_rsa(shared_folder_key, rsa_key) + sft.typedSharedFolderKey.encryptedKeyType = folder_pb2.encrypted_by_public_key else: continue add_teams.append(sft) @@ -2416,12 +2466,19 @@ def prepare_folder_permission(params, folders, full_sync): else: if username in params.key_cache: public_keys = params.key_cache[username] - if public_keys.rsa: + if params.forbid_rsa and public_keys.ec: + ec_key = crypto.load_ec_public_key(public_keys.ec) + sfu.typedSharedFolderKey.encryptedKey = crypto.encrypt_ec(shared_folder_key, ec_key) + sfu.typedSharedFolderKey.encryptedKeyType = folder_pb2.encrypted_by_public_key_ecc keep_users.add(username) - + add_users.append(sfu) + elif not params.forbid_rsa and public_keys.rsa: rsa_key = crypto.load_rsa_public_key(public_keys.rsa) - sfu.sharedFolderKey = crypto.encrypt_rsa(shared_folder_key, rsa_key) + sfu.typedSharedFolderKey.encryptedKey = crypto.encrypt_rsa(shared_folder_key, rsa_key) + sfu.typedSharedFolderKey.encryptedKeyType = folder_pb2.encrypted_by_public_key + keep_users.add(username) add_users.append(sfu) + continue except Exception as e: logging.debug(e) @@ -2483,9 +2540,9 @@ def prepare_folder_permission(params, folders, full_sync): return folder_permissions -def prepare_record_permission(params, records): +def prepare_record_permission(params, records): # type: (KeeperParams, List[ImportRecord]) -> Dict[str, List[folder_pb2.SharedFolderUpdateRecord]] """Prepare a list of API interactions for changes to record permissions.""" - shared_update = [] + shared_update = {} # type: Dict[str, List[folder_pb2.SharedFolderUpdateRecord]] for rec in records: if rec.folders and rec.uid: if rec.uid in params.record_cache: @@ -2506,20 +2563,14 @@ def prepare_record_permission(params, records): for sfr in sf['records']: if sfr['record_uid'] == rec.uid: if sfr['can_share'] != fol.can_share or sfr['can_edit'] != fol.can_edit: - req = { - 'command': 'shared_folder_update', - 'pt': 'Commander', - 'operation': 'update', - 'shared_folder_uid': sf_uid, - 'force_update': True, - 'update_records': [{ - 'record_uid': rec.uid, - 'shared_folder_uid': sf_uid, - 'can_edit': fol.can_edit or False, - 'can_share': fol.can_share or False - }] - } - shared_update.append(req) + sfur = folder_pb2.SharedFolderUpdateRecord() + sfur.recordUid = utils.base64_url_decode(rec.uid) + sfur.sharedFolderUid = utils.base64_url_decode(sf_uid) + sfur.canEdit = folder_pb2.BOOLEAN_TRUE if fol.can_edit else folder_pb2.BOOLEAN_FALSE + sfur.canShare = folder_pb2.BOOLEAN_TRUE if fol.can_share else folder_pb2.BOOLEAN_FALSE + if sf_uid not in shared_update: + shared_update[sf_uid] = [] + shared_update[sf_uid].append(sfur) break return shared_update diff --git a/keepercommander/params.py b/keepercommander/params.py index 9f9f5483e..545a7df12 100644 --- a/keepercommander/params.py +++ b/keepercommander/params.py @@ -7,10 +7,9 @@ # Keeper Commander # Contact: ops@keepersecurity.com # -import threading import warnings from datetime import datetime -from typing import Dict, NamedTuple, Optional, List, Set +from typing import Dict, NamedTuple, Optional, Set from urllib.parse import urlparse, urlunparse from urllib3.exceptions import InsecureRequestWarning @@ -163,6 +162,7 @@ def __init__(self, config_filename='', config=None, server='keepersecurity.com') self.ws = None self.tunnel_threads = {} self.tunnel_threads_queue = {} # add ability to tail tunnel process + self.forbid_rsa = False # TODO check if it can be deleted self.salt = None self.iterations = 0 @@ -230,6 +230,7 @@ def clear_session(self): self.ssh_agent = None self.tunnel_threads.clear() self.tunnel_threads_queue = {} + self.forbid_rsa = False def __get_rest_context(self): # type: () -> RestApiContext return self.__rest_context diff --git a/keepercommander/proto/APIRequest_pb2.py b/keepercommander/proto/APIRequest_pb2.py index 31153c59b..2f07a3661 100644 --- a/keepercommander/proto/APIRequest_pb2.py +++ b/keepercommander/proto/APIRequest_pb2.py @@ -16,7 +16,7 @@ from . import enterprise_pb2 as enterprise__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10\x41PIRequest.proto\x12\x0e\x41uthentication\x1a\x10\x65nterprise.proto\"\xb0\x01\n\nApiRequest\x12 \n\x18\x65ncryptedTransmissionKey\x18\x01 \x01(\x0c\x12\x13\n\x0bpublicKeyId\x18\x02 \x01(\x05\x12\x0e\n\x06locale\x18\x03 \x01(\t\x12\x18\n\x10\x65ncryptedPayload\x18\x04 \x01(\x0c\x12\x16\n\x0e\x65ncryptionType\x18\x05 \x01(\x05\x12\x11\n\trecaptcha\x18\x06 \x01(\t\x12\x16\n\x0esubEnvironment\x18\x07 \x01(\t\"j\n\x11\x41piRequestPayload\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\x1d\n\x15\x65ncryptedSessionToken\x18\x02 \x01(\x0c\x12\x11\n\ttimeToken\x18\x03 \x01(\x0c\x12\x12\n\napiVersion\x18\x04 \x01(\x05\"6\n\tTransform\x12\x0b\n\x03key\x18\x01 \x01(\x0c\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x02 \x01(\x0c\":\n\rDeviceRequest\x12\x15\n\rclientVersion\x18\x01 \x01(\t\x12\x12\n\ndeviceName\x18\x02 \x01(\t\"T\n\x0b\x41uthRequest\x12\x15\n\rclientVersion\x18\x01 \x01(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x03 \x01(\x0c\"\xab\x01\n\x14NewUserMinimumParams\x12\x19\n\x11minimumIterations\x18\x01 \x01(\x05\x12\x1a\n\x12passwordMatchRegex\x18\x02 \x03(\t\x12 \n\x18passwordMatchDescription\x18\x03 \x03(\t\x12\x1a\n\x12isEnterpriseDomain\x18\x04 \x01(\x08\x12\x1e\n\x16\x65nterpriseEccPublicKey\x18\x05 \x01(\x0c\"\x89\x01\n\x0fPreLoginRequest\x12\x30\n\x0b\x61uthRequest\x18\x01 \x01(\x0b\x32\x1b.Authentication.AuthRequest\x12,\n\tloginType\x18\x02 \x01(\x0e\x32\x19.Authentication.LoginType\x12\x16\n\x0etwoFactorToken\x18\x03 \x01(\x0c\"\x80\x02\n\x0cLoginRequest\x12\x30\n\x0b\x61uthRequest\x18\x01 \x01(\x0b\x32\x1b.Authentication.AuthRequest\x12,\n\tloginType\x18\x02 \x01(\x0e\x32\x19.Authentication.LoginType\x12\x1f\n\x17\x61uthenticationHashPrime\x18\x03 \x01(\x0c\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x04 \x01(\x0c\x12\x14\n\x0c\x61uthResponse\x18\x05 \x01(\x0c\x12\x16\n\x0emcEnterpriseId\x18\x06 \x01(\x05\x12\x12\n\npush_token\x18\x07 \x01(\t\x12\x10\n\x08platform\x18\x08 \x01(\t\"\\\n\x0e\x44\x65viceResponse\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x01 \x01(\x0c\x12,\n\x06status\x18\x02 \x01(\x0e\x32\x1c.Authentication.DeviceStatus\"V\n\x04Salt\x12\x12\n\niterations\x18\x01 \x01(\x05\x12\x0c\n\x04salt\x18\x02 \x01(\x0c\x12\x11\n\talgorithm\x18\x03 \x01(\x05\x12\x0b\n\x03uid\x18\x04 \x01(\x0c\x12\x0c\n\x04name\x18\x05 \x01(\t\" \n\x10TwoFactorChannel\x12\x0c\n\x04type\x18\x01 \x01(\x05\"\xe2\x02\n\x11StartLoginRequest\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x01 \x01(\x0c\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x15\n\rclientVersion\x18\x03 \x01(\t\x12\x19\n\x11messageSessionUid\x18\x04 \x01(\x0c\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x05 \x01(\x0c\x12,\n\tloginType\x18\x06 \x01(\x0e\x32\x19.Authentication.LoginType\x12\x16\n\x0emcEnterpriseId\x18\x07 \x01(\x05\x12\x30\n\x0bloginMethod\x18\x08 \x01(\x0e\x32\x1b.Authentication.LoginMethod\x12\x15\n\rforceNewLogin\x18\t \x01(\x08\x12\x11\n\tcloneCode\x18\n \x01(\x0c\x12\x18\n\x10v2TwoFactorToken\x18\x0b \x01(\t\x12\x12\n\naccountUid\x18\x0c \x01(\x0c\"\xa7\x04\n\rLoginResponse\x12.\n\nloginState\x18\x01 \x01(\x0e\x32\x1a.Authentication.LoginState\x12\x12\n\naccountUid\x18\x02 \x01(\x0c\x12\x17\n\x0fprimaryUsername\x18\x03 \x01(\t\x12\x18\n\x10\x65ncryptedDataKey\x18\x04 \x01(\x0c\x12\x42\n\x14\x65ncryptedDataKeyType\x18\x05 \x01(\x0e\x32$.Authentication.EncryptedDataKeyType\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x06 \x01(\x0c\x12\x1d\n\x15\x65ncryptedSessionToken\x18\x07 \x01(\x0c\x12:\n\x10sessionTokenType\x18\x08 \x01(\x0e\x32 .Authentication.SessionTokenType\x12\x0f\n\x07message\x18\t \x01(\t\x12\x0b\n\x03url\x18\n \x01(\t\x12\x36\n\x08\x63hannels\x18\x0b \x03(\x0b\x32$.Authentication.TwoFactorChannelInfo\x12\"\n\x04salt\x18\x0c \x03(\x0b\x32\x14.Authentication.Salt\x12\x11\n\tcloneCode\x18\r \x01(\x0c\x12\x1a\n\x12stateSpecificValue\x18\x0e \x01(\t\x12\x18\n\x10ssoClientVersion\x18\x0f \x01(\t\x12 \n\x18sessionTokenTypeModifier\x18\x10 \x01(\t\"\x8c\x01\n\x0bSsoUserInfo\x12\x13\n\x0b\x63ompanyName\x18\x01 \x01(\t\x12\x13\n\x0bsamlRequest\x18\x02 \x01(\t\x12\x17\n\x0fsamlRequestType\x18\x03 \x01(\t\x12\x15\n\rssoDomainName\x18\x04 \x01(\t\x12\x10\n\x08loginUrl\x18\x05 \x01(\t\x12\x11\n\tlogoutUrl\x18\x06 \x01(\t\"\xd6\x01\n\x10PreLoginResponse\x12\x32\n\x0c\x64\x65viceStatus\x18\x01 \x01(\x0e\x32\x1c.Authentication.DeviceStatus\x12\"\n\x04salt\x18\x02 \x03(\x0b\x32\x14.Authentication.Salt\x12\x38\n\x0eOBSOLETE_FIELD\x18\x03 \x03(\x0b\x32 .Authentication.TwoFactorChannel\x12\x30\n\x0bssoUserInfo\x18\x04 \x01(\x0b\x32\x1b.Authentication.SsoUserInfo\"&\n\x12LoginAsUserRequest\x12\x10\n\x08username\x18\x01 \x01(\t\"W\n\x13LoginAsUserResponse\x12\x1d\n\x15\x65ncryptedSessionToken\x18\x01 \x01(\x0c\x12!\n\x19\x65ncryptedSharedAccountKey\x18\x02 \x01(\x0c\"\x84\x01\n\x17ValidateAuthHashRequest\x12\x36\n\x0epasswordMethod\x18\x01 \x01(\x0e\x32\x1e.Authentication.PasswordMethod\x12\x14\n\x0c\x61uthResponse\x18\x02 \x01(\x0c\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x03 \x01(\x0c\"\xc4\x02\n\x14TwoFactorChannelInfo\x12\x39\n\x0b\x63hannelType\x18\x01 \x01(\x0e\x32$.Authentication.TwoFactorChannelType\x12\x13\n\x0b\x63hannel_uid\x18\x02 \x01(\x0c\x12\x13\n\x0b\x63hannelName\x18\x03 \x01(\t\x12\x11\n\tchallenge\x18\x04 \x01(\t\x12\x14\n\x0c\x63\x61pabilities\x18\x05 \x03(\t\x12\x13\n\x0bphoneNumber\x18\x06 \x01(\t\x12:\n\rmaxExpiration\x18\x07 \x01(\x0e\x32#.Authentication.TwoFactorExpiration\x12\x11\n\tcreatedOn\x18\x08 \x01(\x03\x12:\n\rlastFrequency\x18\t \x01(\x0e\x32#.Authentication.TwoFactorExpiration\"d\n\x12TwoFactorDuoStatus\x12\x14\n\x0c\x63\x61pabilities\x18\x01 \x03(\t\x12\x13\n\x0bphoneNumber\x18\x02 \x01(\t\x12\x12\n\nenroll_url\x18\x03 \x01(\t\x12\x0f\n\x07message\x18\x04 \x01(\t\"\xc7\x01\n\x13TwoFactorAddRequest\x12\x39\n\x0b\x63hannelType\x18\x01 \x01(\x0e\x32$.Authentication.TwoFactorChannelType\x12\x13\n\x0b\x63hannel_uid\x18\x02 \x01(\x0c\x12\x13\n\x0b\x63hannelName\x18\x03 \x01(\t\x12\x13\n\x0bphoneNumber\x18\x04 \x01(\t\x12\x36\n\x0b\x64uoPushType\x18\x05 \x01(\x0e\x32!.Authentication.TwoFactorPushType\"B\n\x16TwoFactorRenameRequest\x12\x13\n\x0b\x63hannel_uid\x18\x01 \x01(\x0c\x12\x13\n\x0b\x63hannelName\x18\x02 \x01(\t\"=\n\x14TwoFactorAddResponse\x12\x11\n\tchallenge\x18\x01 \x01(\t\x12\x12\n\nbackupKeys\x18\x02 \x03(\t\"-\n\x16TwoFactorDeleteRequest\x12\x13\n\x0b\x63hannel_uid\x18\x01 \x01(\x0c\"a\n\x15TwoFactorListResponse\x12\x36\n\x08\x63hannels\x18\x01 \x03(\x0b\x32$.Authentication.TwoFactorChannelInfo\x12\x10\n\x08\x65xpireOn\x18\x02 \x01(\x03\"Y\n TwoFactorUpdateExpirationRequest\x12\x35\n\x08\x65xpireIn\x18\x01 \x01(\x0e\x32#.Authentication.TwoFactorExpiration\"\xc9\x01\n\x18TwoFactorValidateRequest\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x01 \x01(\x0c\x12\x35\n\tvalueType\x18\x02 \x01(\x0e\x32\".Authentication.TwoFactorValueType\x12\r\n\x05value\x18\x03 \x01(\t\x12\x13\n\x0b\x63hannel_uid\x18\x04 \x01(\x0c\x12\x35\n\x08\x65xpireIn\x18\x05 \x01(\x0e\x32#.Authentication.TwoFactorExpiration\"8\n\x19TwoFactorValidateResponse\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x01 \x01(\x0c\"\xb8\x01\n\x18TwoFactorSendPushRequest\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x01 \x01(\x0c\x12\x33\n\x08pushType\x18\x02 \x01(\x0e\x32!.Authentication.TwoFactorPushType\x12\x13\n\x0b\x63hannel_uid\x18\x03 \x01(\x0c\x12\x35\n\x08\x65xpireIn\x18\x04 \x01(\x0e\x32#.Authentication.TwoFactorExpiration\"\x83\x01\n\x07License\x12\x0f\n\x07\x63reated\x18\x01 \x01(\x03\x12\x12\n\nexpiration\x18\x02 \x01(\x03\x12\x34\n\rlicenseStatus\x18\x03 \x01(\x0e\x32\x1d.Authentication.LicenseStatus\x12\x0c\n\x04paid\x18\x04 \x01(\x08\x12\x0f\n\x07message\x18\x05 \x01(\t\"G\n\x0fOwnerlessRecord\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x11\n\trecordKey\x18\x02 \x01(\x0c\x12\x0e\n\x06status\x18\x03 \x01(\x05\"L\n\x10OwnerlessRecords\x12\x38\n\x0fownerlessRecord\x18\x01 \x03(\x0b\x32\x1f.Authentication.OwnerlessRecord\"\xd7\x01\n\x0fUserAuthRequest\x12\x0b\n\x03uid\x18\x01 \x01(\x0c\x12\x0c\n\x04salt\x18\x02 \x01(\x0c\x12\x12\n\niterations\x18\x03 \x01(\x05\x12\x1a\n\x12\x65ncryptedClientKey\x18\x04 \x01(\x0c\x12\x10\n\x08\x61uthHash\x18\x05 \x01(\x0c\x12\x18\n\x10\x65ncryptedDataKey\x18\x06 \x01(\x0c\x12,\n\tloginType\x18\x07 \x01(\x0e\x32\x19.Authentication.LoginType\x12\x0c\n\x04name\x18\x08 \x01(\t\x12\x11\n\talgorithm\x18\t \x01(\x05\"\x19\n\nUidRequest\x12\x0b\n\x03uid\x18\x01 \x03(\x0c\"\xab\x01\n\x13\x44\x65viceUpdateRequest\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x01 \x01(\x0c\x12\x15\n\rclientVersion\x18\x02 \x01(\t\x12\x12\n\ndeviceName\x18\x03 \x01(\t\x12\x17\n\x0f\x64\x65vicePublicKey\x18\x04 \x01(\x0c\x12\x32\n\x0c\x64\x65viceStatus\x18\x05 \x01(\x0e\x32\x1c.Authentication.DeviceStatus\"\x81\x01\n\x1dRegisterDeviceInRegionRequest\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x01 \x01(\x0c\x12\x15\n\rclientVersion\x18\x02 \x01(\t\x12\x12\n\ndeviceName\x18\x03 \x01(\t\x12\x17\n\x0f\x64\x65vicePublicKey\x18\x04 \x01(\x0c\"\xf8\x02\n\x13RegistrationRequest\x12\x30\n\x0b\x61uthRequest\x18\x01 \x01(\x0b\x32\x1b.Authentication.AuthRequest\x12\x38\n\x0fuserAuthRequest\x18\x02 \x01(\x0b\x32\x1f.Authentication.UserAuthRequest\x12\x1a\n\x12\x65ncryptedClientKey\x18\x03 \x01(\x0c\x12\x1b\n\x13\x65ncryptedPrivateKey\x18\x04 \x01(\x0c\x12\x11\n\tpublicKey\x18\x05 \x01(\x0c\x12\x18\n\x10verificationCode\x18\x06 \x01(\t\x12\x1e\n\x16\x64\x65precatedAuthHashHash\x18\x07 \x01(\x0c\x12$\n\x1c\x64\x65precatedEncryptedClientKey\x18\x08 \x01(\x0c\x12%\n\x1d\x64\x65precatedEncryptedPrivateKey\x18\t \x01(\x0c\x12\"\n\x1a\x64\x65precatedEncryptionParams\x18\n \x01(\x0c\"\xd0\x01\n\x16\x43onvertUserToV3Request\x12\x30\n\x0b\x61uthRequest\x18\x01 \x01(\x0b\x32\x1b.Authentication.AuthRequest\x12\x38\n\x0fuserAuthRequest\x18\x02 \x01(\x0b\x32\x1f.Authentication.UserAuthRequest\x12\x1a\n\x12\x65ncryptedClientKey\x18\x03 \x01(\x0c\x12\x1b\n\x13\x65ncryptedPrivateKey\x18\x04 \x01(\x0c\x12\x11\n\tpublicKey\x18\x05 \x01(\x0c\"$\n\x10RevisionResponse\x12\x10\n\x08revision\x18\x01 \x01(\x03\"&\n\x12\x43hangeEmailRequest\x12\x10\n\x08newEmail\x18\x01 \x01(\t\"8\n\x13\x43hangeEmailResponse\x12!\n\x19\x65ncryptedChangeEmailToken\x18\x01 \x01(\x0c\"6\n\x1d\x45mailVerificationLinkResponse\x12\x15\n\remailVerified\x18\x01 \x01(\x08\")\n\x0cSecurityData\x12\x0b\n\x03uid\x18\x01 \x01(\x0c\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\xc7\x01\n\x13SecurityDataRequest\x12\x38\n\x12recordSecurityData\x18\x01 \x03(\x0b\x32\x1c.Authentication.SecurityData\x12@\n\x1amasterPasswordSecurityData\x18\x02 \x03(\x0b\x32\x1c.Authentication.SecurityData\x12\x34\n\x0e\x65ncryptionType\x18\x03 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\"\xb3\x02\n\x1dSecurityReportIncrementalData\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x1b\n\x13\x63urrentSecurityData\x18\x02 \x01(\x0c\x12#\n\x1b\x63urrentSecurityDataRevision\x18\x03 \x01(\x03\x12\x17\n\x0foldSecurityData\x18\x04 \x01(\x0c\x12\x1f\n\x17oldSecurityDataRevision\x18\x05 \x01(\x03\x12?\n\x19\x63urrentDataEncryptionType\x18\x06 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\x12;\n\x15oldDataEncryptionType\x18\x07 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\"\x9f\x02\n\x0eSecurityReport\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x1b\n\x13\x65ncryptedReportData\x18\x02 \x01(\x0c\x12\x10\n\x08revision\x18\x03 \x01(\x03\x12\x11\n\ttwoFactor\x18\x04 \x01(\t\x12\x11\n\tlastLogin\x18\x05 \x01(\x03\x12\x1e\n\x16numberOfReusedPassword\x18\x06 \x01(\x05\x12T\n\x1dsecurityReportIncrementalData\x18\x07 \x03(\x0b\x32-.Authentication.SecurityReportIncrementalData\x12\x0e\n\x06userId\x18\x08 \x01(\x05\x12\x18\n\x10hasOldEncryption\x18\t \x01(\x08\"S\n\x19SecurityReportSaveRequest\x12\x36\n\x0esecurityReport\x18\x01 \x03(\x0b\x32\x1e.Authentication.SecurityReport\")\n\x15SecurityReportRequest\x12\x10\n\x08\x66romPage\x18\x01 \x01(\x03\"\xd9\x01\n\x16SecurityReportResponse\x12\x1c\n\x14\x65nterprisePrivateKey\x18\x01 \x01(\x0c\x12\x36\n\x0esecurityReport\x18\x02 \x03(\x0b\x32\x1e.Authentication.SecurityReport\x12\x14\n\x0c\x61sOfRevision\x18\x03 \x01(\x03\x12\x10\n\x08\x66romPage\x18\x04 \x01(\x03\x12\x0e\n\x06toPage\x18\x05 \x01(\x03\x12\x10\n\x08\x63omplete\x18\x06 \x01(\x08\x12\x1f\n\x17\x65nterpriseEccPrivateKey\x18\x07 \x01(\x0c\"\'\n\x16ReusedPasswordsRequest\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\">\n\x14SummaryConsoleReport\x12\x12\n\nreportType\x18\x01 \x01(\x05\x12\x12\n\nreportData\x18\x02 \x01(\x0c\"|\n\x12\x43hangeToKeyTypeOne\x12/\n\nobjectType\x18\x01 \x01(\x0e\x32\x1b.Authentication.ObjectTypes\x12\x12\n\nprimaryUid\x18\x02 \x01(\x0c\x12\x14\n\x0csecondaryUid\x18\x03 \x01(\x0c\x12\x0b\n\x03key\x18\x04 \x01(\x0c\"[\n\x19\x43hangeToKeyTypeOneRequest\x12>\n\x12\x63hangeToKeyTypeOne\x18\x01 \x03(\x0b\x32\".Authentication.ChangeToKeyTypeOne\"U\n\x18\x43hangeToKeyTypeOneStatus\x12\x0b\n\x03uid\x18\x01 \x01(\x0c\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x0e\n\x06reason\x18\x04 \x01(\t\"h\n\x1a\x43hangeToKeyTypeOneResponse\x12J\n\x18\x63hangeToKeyTypeOneStatus\x18\x01 \x03(\x0b\x32(.Authentication.ChangeToKeyTypeOneStatus\"\xb9\x01\n\x18GetChangeKeyTypesRequest\x12=\n\x10onlyTheseObjects\x18\x01 \x03(\x0e\x32#.Authentication.EncryptedObjectType\x12\r\n\x05limit\x18\x02 \x01(\x05\x12\x1a\n\x12includeRecommended\x18\x03 \x01(\x08\x12\x13\n\x0bincludeKeys\x18\x04 \x01(\x08\x12\x1e\n\x16includeAllowedKeyTypes\x18\x05 \x01(\x08\"\x82\x01\n\x19GetChangeKeyTypesResponse\x12+\n\x04keys\x18\x01 \x03(\x0b\x32\x1d.Authentication.ChangeKeyType\x12\x38\n\x0f\x61llowedKeyTypes\x18\x02 \x03(\x0b\x32\x1f.Authentication.AllowedKeyTypes\"\x81\x01\n\x0f\x41llowedKeyTypes\x12\x37\n\nobjectType\x18\x01 \x01(\x0e\x32#.Authentication.EncryptedObjectType\x12\x35\n\x0f\x61llowedKeyTypes\x18\x02 \x03(\x0e\x32\x1c.Enterprise.EncryptedKeyType\"=\n\x0e\x43hangeKeyTypes\x12+\n\x04keys\x18\x01 \x03(\x0b\x32\x1d.Authentication.ChangeKeyType\"\xd6\x01\n\rChangeKeyType\x12\x37\n\nobjectType\x18\x01 \x01(\x0e\x32#.Authentication.EncryptedObjectType\x12\x0b\n\x03uid\x18\x02 \x01(\x0c\x12\x14\n\x0csecondaryUid\x18\x03 \x01(\x0c\x12\x0b\n\x03key\x18\x04 \x01(\x0c\x12-\n\x07keyType\x18\x05 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\x12-\n\x06status\x18\x06 \x01(\x0e\x32\x1d.Authentication.GenericStatus\"!\n\x06SetKey\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0b\n\x03key\x18\x02 \x01(\x0c\"5\n\rSetKeyRequest\x12$\n\x04keys\x18\x01 \x03(\x0b\x32\x16.Authentication.SetKey\"\x92\x05\n\x11\x43reateUserRequest\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x14\n\x0c\x61uthVerifier\x18\x02 \x01(\x0c\x12\x18\n\x10\x65ncryptionParams\x18\x03 \x01(\x0c\x12\x14\n\x0crsaPublicKey\x18\x04 \x01(\x0c\x12\x1e\n\x16rsaEncryptedPrivateKey\x18\x05 \x01(\x0c\x12\x14\n\x0c\x65\x63\x63PublicKey\x18\x06 \x01(\x0c\x12\x1e\n\x16\x65\x63\x63\x45ncryptedPrivateKey\x18\x07 \x01(\x0c\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x08 \x01(\x0c\x12\x1a\n\x12\x65ncryptedClientKey\x18\t \x01(\x0c\x12\x15\n\rclientVersion\x18\n \x01(\t\x12\x1e\n\x16\x65ncryptedDeviceDataKey\x18\x0b \x01(\x0c\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x0c \x01(\x0c\x12\x19\n\x11messageSessionUid\x18\r \x01(\x0c\x12\x17\n\x0finstallReferrer\x18\x0e \x01(\t\x12\x0e\n\x06mccMNC\x18\x0f \x01(\x05\x12\x0b\n\x03mfg\x18\x10 \x01(\t\x12\r\n\x05model\x18\x11 \x01(\t\x12\r\n\x05\x62rand\x18\x12 \x01(\t\x12\x0f\n\x07product\x18\x13 \x01(\t\x12\x0e\n\x06\x64\x65vice\x18\x14 \x01(\t\x12\x0f\n\x07\x63\x61rrier\x18\x15 \x01(\t\x12\x18\n\x10verificationCode\x18\x16 \x01(\t\x12\x42\n\x16\x65nterpriseRegistration\x18\x17 \x01(\x0b\x32\".Enterprise.EnterpriseRegistration\x12\"\n\x1a\x65ncryptedVerificationToken\x18\x18 \x01(\x0c\x12\x1e\n\x16\x65nterpriseUsersDataKey\x18\x19 \x01(\x0c\"W\n!NodeEnforcementAddOrUpdateRequest\x12\x0e\n\x06nodeId\x18\x01 \x01(\x03\x12\x13\n\x0b\x65nforcement\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\"C\n\x1cNodeEnforcementRemoveRequest\x12\x0e\n\x06nodeId\x18\x01 \x01(\x03\x12\x13\n\x0b\x65nforcement\x18\x02 \x01(\t\"\x9f\x01\n\x0f\x41piRequestByKey\x12\r\n\x05keyId\x18\x01 \x01(\x05\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\x12\x10\n\x08username\x18\x03 \x01(\t\x12\x0e\n\x06locale\x18\x04 \x01(\t\x12<\n\x11supportedLanguage\x18\x05 \x01(\x0e\x32!.Authentication.SupportedLanguage\x12\x0c\n\x04type\x18\x06 \x01(\x05\"\xc7\x01\n\x15\x41piRequestByKAtoKAKey\x12,\n\x0csourceRegion\x18\x01 \x01(\x0e\x32\x16.Authentication.Region\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\x12<\n\x11supportedLanguage\x18\x03 \x01(\x0e\x32!.Authentication.SupportedLanguage\x12\x31\n\x11\x64\x65stinationRegion\x18\x04 \x01(\x0e\x32\x16.Authentication.Region\".\n\x0fMemcacheRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06userId\x18\x02 \x01(\x05\".\n\x10MemcacheResponse\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"w\n\x1cMasterPasswordReentryRequest\x12\x16\n\x0epbkdf2Password\x18\x01 \x01(\t\x12?\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32/.Authentication.MasterPasswordReentryActionType\"\\\n\x1dMasterPasswordReentryResponse\x12;\n\x06status\x18\x01 \x01(\x0e\x32+.Authentication.MasterPasswordReentryStatus\"_\n\x19\x44\x65viceRegistrationRequest\x12\x15\n\rclientVersion\x18\x01 \x01(\t\x12\x12\n\ndeviceName\x18\x02 \x01(\t\x12\x17\n\x0f\x64\x65vicePublicKey\x18\x03 \x01(\x0c\"\x9a\x01\n\x19\x44\x65viceVerificationRequest\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x01 \x01(\x0c\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x1b\n\x13verificationChannel\x18\x03 \x01(\t\x12\x19\n\x11messageSessionUid\x18\x04 \x01(\x0c\x12\x15\n\rclientVersion\x18\x05 \x01(\t\"\xb2\x01\n\x1a\x44\x65viceVerificationResponse\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x01 \x01(\x0c\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x19\n\x11messageSessionUid\x18\x03 \x01(\x0c\x12\x15\n\rclientVersion\x18\x04 \x01(\t\x12\x32\n\x0c\x64\x65viceStatus\x18\x05 \x01(\x0e\x32\x1c.Authentication.DeviceStatus\"\xc8\x01\n\x15\x44\x65viceApprovalRequest\x12\r\n\x05\x65mail\x18\x01 \x01(\t\x12\x18\n\x10twoFactorChannel\x18\x02 \x01(\t\x12\x15\n\rclientVersion\x18\x03 \x01(\t\x12\x0e\n\x06locale\x18\x04 \x01(\t\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x05 \x01(\x0c\x12\x10\n\x08totpCode\x18\x06 \x01(\t\x12\x10\n\x08\x64\x65viceIp\x18\x07 \x01(\t\x12\x1d\n\x15\x64\x65viceTokenExpireDays\x18\x08 \x01(\t\"9\n\x16\x44\x65viceApprovalResponse\x12\x1f\n\x17\x65ncryptedTwoFactorToken\x18\x01 \x01(\x0c\"~\n\x14\x41pproveDeviceRequest\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x01 \x01(\x0c\x12\x1e\n\x16\x65ncryptedDeviceDataKey\x18\x02 \x01(\x0c\x12\x14\n\x0c\x64\x65nyApproval\x18\x03 \x01(\x08\x12\x12\n\nlinkDevice\x18\x04 \x01(\x08\"E\n\x1a\x45nterpriseUserAliasRequest\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\r\n\x05\x61lias\x18\x02 \x01(\t\"Y\n\x1d\x45nterpriseUserAddAliasRequest\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\r\n\x05\x61lias\x18\x02 \x01(\t\x12\x0f\n\x07primary\x18\x03 \x01(\x08\"w\n\x1f\x45nterpriseUserAddAliasRequestV2\x12T\n\x1d\x65nterpriseUserAddAliasRequest\x18\x01 \x03(\x0b\x32-.Authentication.EnterpriseUserAddAliasRequest\"H\n\x1c\x45nterpriseUserAddAliasStatus\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x0e\n\x06status\x18\x02 \x01(\t\"^\n\x1e\x45nterpriseUserAddAliasResponse\x12<\n\x06status\x18\x01 \x03(\x0b\x32,.Authentication.EnterpriseUserAddAliasStatus\"&\n\x06\x44\x65vice\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x01 \x01(\x0c\"\\\n\x1cRegisterDeviceDataKeyRequest\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x01 \x01(\x0c\x12\x1e\n\x16\x65ncryptedDeviceDataKey\x18\x02 \x01(\x0c\"n\n)ValidateCreateUserVerificationCodeRequest\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x15\n\rclientVersion\x18\x02 \x01(\t\x12\x18\n\x10verificationCode\x18\x03 \x01(\t\"\xa3\x01\n%ValidateDeviceVerificationCodeRequest\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x15\n\rclientVersion\x18\x02 \x01(\t\x12\x18\n\x10verificationCode\x18\x03 \x01(\t\x12\x19\n\x11messageSessionUid\x18\x04 \x01(\x0c\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x05 \x01(\x0c\"Y\n\x19SendSessionMessageRequest\x12\x19\n\x11messageSessionUid\x18\x01 \x01(\x0c\x12\x0f\n\x07\x63ommand\x18\x02 \x01(\t\x12\x10\n\x08username\x18\x03 \x01(\t\"M\n\x11GlobalUserAccount\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x12\n\naccountUid\x18\x02 \x01(\x0c\x12\x12\n\nregionName\x18\x03 \x01(\t\"7\n\x0f\x41\x63\x63ountUsername\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x12\n\ndateActive\x18\x02 \x01(\t\"P\n\x19SsoServiceProviderRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x15\n\rclientVersion\x18\x02 \x01(\t\x12\x0e\n\x06locale\x18\x03 \x01(\t\"a\n\x1aSsoServiceProviderResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05spUrl\x18\x02 \x01(\t\x12\x0f\n\x07isCloud\x18\x03 \x01(\x08\x12\x15\n\rclientVersion\x18\x04 \x01(\t\"4\n\x12UserSettingRequest\x12\x0f\n\x07setting\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"f\n\rThrottleState\x12*\n\x04type\x18\x01 \x01(\x0e\x32\x1c.Authentication.ThrottleType\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\x12\r\n\x05state\x18\x04 \x01(\x08\"\xb5\x01\n\x0eThrottleState2\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x16\n\x0ekeyDescription\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\x12\x18\n\x10valueDescription\x18\x04 \x01(\t\x12\x12\n\nidentifier\x18\x05 \x01(\t\x12\x0e\n\x06locked\x18\x06 \x01(\x08\x12\x1a\n\x12includedInAllClear\x18\x07 \x01(\x08\x12\x15\n\rexpireSeconds\x18\x08 \x01(\x05\"\x97\x01\n\x11\x44\x65viceInformation\x12\x10\n\x08\x64\x65viceId\x18\x01 \x01(\x03\x12\x12\n\ndeviceName\x18\x02 \x01(\t\x12\x15\n\rclientVersion\x18\x03 \x01(\t\x12\x11\n\tlastLogin\x18\x04 \x01(\x03\x12\x32\n\x0c\x64\x65viceStatus\x18\x05 \x01(\x0e\x32\x1c.Authentication.DeviceStatus\"*\n\x0bUserSetting\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08\".\n\x12UserDataKeyRequest\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x03(\x03\"\x80\x01\n\x1b\x45nterpriseUserIdDataKeyPair\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x18\n\x10\x65ncryptedDataKey\x18\x02 \x01(\x0c\x12-\n\x07keyType\x18\x03 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\"\x95\x01\n\x0bUserDataKey\x12\x0e\n\x06roleId\x18\x01 \x01(\x03\x12\x0f\n\x07roleKey\x18\x02 \x01(\x0c\x12\x12\n\nprivateKey\x18\x03 \x01(\t\x12Q\n\x1c\x65nterpriseUserIdDataKeyPairs\x18\x04 \x03(\x0b\x32+.Authentication.EnterpriseUserIdDataKeyPair\"z\n\x13UserDataKeyResponse\x12\x31\n\x0cuserDataKeys\x18\x01 \x03(\x0b\x32\x1b.Authentication.UserDataKey\x12\x14\n\x0c\x61\x63\x63\x65ssDenied\x18\x02 \x03(\x03\x12\x1a\n\x12noEncryptedDataKey\x18\x03 \x03(\x03\"H\n)MasterPasswordRecoveryVerificationRequest\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x01 \x01(\x0c\"U\n\x1cGetSecurityQuestionV3Request\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x01 \x01(\x0c\x12\x18\n\x10verificationCode\x18\x02 \x01(\t\"r\n\x1dGetSecurityQuestionV3Response\x12\x18\n\x10securityQuestion\x18\x01 \x01(\t\x12\x15\n\rbackupKeyDate\x18\x02 \x01(\x03\x12\x0c\n\x04salt\x18\x03 \x01(\x0c\x12\x12\n\niterations\x18\x04 \x01(\x05\"n\n\x19GetDataKeyBackupV3Request\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x01 \x01(\x0c\x12\x18\n\x10verificationCode\x18\x02 \x01(\t\x12\x1a\n\x12securityAnswerHash\x18\x03 \x01(\x0c\"v\n\rPasswordRules\x12\x10\n\x08ruleType\x18\x01 \x01(\t\x12\r\n\x05match\x18\x02 \x01(\x08\x12\x0f\n\x07pattern\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x0f\n\x07minimum\x18\x05 \x01(\x05\x12\r\n\x05value\x18\x06 \x01(\t\"\xa3\x02\n\x1aGetDataKeyBackupV3Response\x12\x15\n\rdataKeyBackup\x18\x01 \x01(\x0c\x12\x19\n\x11\x64\x61taKeyBackupDate\x18\x02 \x01(\x03\x12\x11\n\tpublicKey\x18\x03 \x01(\x0c\x12\x1b\n\x13\x65ncryptedPrivateKey\x18\x04 \x01(\x0c\x12\x11\n\tclientKey\x18\x05 \x01(\x0c\x12\x1d\n\x15\x65ncryptedSessionToken\x18\x06 \x01(\x0c\x12\x34\n\rpasswordRules\x18\x07 \x03(\x0b\x32\x1d.Authentication.PasswordRules\x12\x1a\n\x12passwordRulesIntro\x18\x08 \x01(\t\x12\x1f\n\x17minimumPbkdf2Iterations\x18\t \x01(\x05\")\n\x14GetPublicKeysRequest\x12\x11\n\tusernames\x18\x01 \x03(\t\"r\n\x11PublicKeyResponse\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x11\n\tpublicKey\x18\x02 \x01(\x0c\x12\x14\n\x0cpublicEccKey\x18\x03 \x01(\x0c\x12\x0f\n\x07message\x18\x04 \x01(\t\x12\x11\n\terrorCode\x18\x05 \x01(\t\"P\n\x15GetPublicKeysResponse\x12\x37\n\x0ckeyResponses\x18\x01 \x03(\x0b\x32!.Authentication.PublicKeyResponse\"F\n\x14SetEccKeyPairRequest\x12\x11\n\tpublicKey\x18\x01 \x01(\x0c\x12\x1b\n\x13\x65ncryptedPrivateKey\x18\x02 \x01(\x0c\"I\n\x15SetEccKeyPairsRequest\x12\x30\n\x08teamKeys\x18\x01 \x03(\x0b\x32\x1e.Authentication.TeamEccKeyPair\"R\n\x16SetEccKeyPairsResponse\x12\x38\n\x08teamKeys\x18\x01 \x03(\x0b\x32&.Authentication.TeamEccKeyPairResponse\"Q\n\x0eTeamEccKeyPair\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x11\n\tpublicKey\x18\x02 \x01(\x0c\x12\x1b\n\x13\x65ncryptedPrivateKey\x18\x03 \x01(\x0c\"X\n\x16TeamEccKeyPairResponse\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12-\n\x06status\x18\x02 \x01(\x0e\x32\x1d.Authentication.GenericStatus\"D\n\x17GetKsmPublicKeysRequest\x12\x11\n\tclientIds\x18\x01 \x03(\x0c\x12\x16\n\x0e\x63ontrollerUids\x18\x02 \x03(\x0c\"U\n\x17\x44\x65vicePublicKeyResponse\x12\x10\n\x08\x63lientId\x18\x01 \x01(\x0c\x12\x11\n\tpublicKey\x18\x02 \x01(\x0c\x12\x15\n\rcontrollerUid\x18\x03 \x01(\x0c\"Y\n\x18GetKsmPublicKeysResponse\x12=\n\x0ckeyResponses\x18\x01 \x03(\x0b\x32\'.Authentication.DevicePublicKeyResponse\"X\n\x13\x41\x64\x64\x41ppSharesRequest\x12\x14\n\x0c\x61ppRecordUid\x18\x01 \x01(\x0c\x12+\n\x06shares\x18\x02 \x03(\x0b\x32\x1b.Authentication.AppShareAdd\">\n\x16RemoveAppSharesRequest\x12\x14\n\x0c\x61ppRecordUid\x18\x01 \x01(\x0c\x12\x0e\n\x06shares\x18\x02 \x03(\x0c\"\x87\x01\n\x0b\x41ppShareAdd\x12\x11\n\tsecretUid\x18\x02 \x01(\x0c\x12\x37\n\tshareType\x18\x03 \x01(\x0e\x32$.Authentication.ApplicationShareType\x12\x1a\n\x12\x65ncryptedSecretKey\x18\x04 \x01(\x0c\x12\x10\n\x08\x65\x64itable\x18\x05 \x01(\x08\"\x89\x01\n\x08\x41ppShare\x12\x11\n\tsecretUid\x18\x01 \x01(\x0c\x12\x37\n\tshareType\x18\x02 \x01(\x0e\x32$.Authentication.ApplicationShareType\x12\x10\n\x08\x65\x64itable\x18\x03 \x01(\x08\x12\x11\n\tcreatedOn\x18\x04 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x05 \x01(\x0c\"\xd9\x01\n\x13\x41\x64\x64\x41ppClientRequest\x12\x14\n\x0c\x61ppRecordUid\x18\x01 \x01(\x0c\x12\x17\n\x0f\x65ncryptedAppKey\x18\x02 \x01(\x0c\x12\x10\n\x08\x63lientId\x18\x03 \x01(\x0c\x12\x0e\n\x06lockIp\x18\x04 \x01(\x08\x12\x1b\n\x13\x66irstAccessExpireOn\x18\x05 \x01(\x03\x12\x16\n\x0e\x61\x63\x63\x65ssExpireOn\x18\x06 \x01(\x03\x12\n\n\x02id\x18\x07 \x01(\t\x12\x30\n\rappClientType\x18\x08 \x01(\x0e\x32\x19.Enterprise.AppClientType\"@\n\x17RemoveAppClientsRequest\x12\x14\n\x0c\x61ppRecordUid\x18\x01 \x01(\x0c\x12\x0f\n\x07\x63lients\x18\x02 \x03(\x0c\"\x96\x01\n\x17\x41\x64\x64\x45xternalShareRequest\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x1a\n\x12\x65ncryptedRecordKey\x18\x02 \x01(\x0c\x12\x10\n\x08\x63lientId\x18\x03 \x01(\x0c\x12\x16\n\x0e\x61\x63\x63\x65ssExpireOn\x18\x04 \x01(\x03\x12\n\n\x02id\x18\x05 \x01(\t\x12\x16\n\x0eisSelfDestruct\x18\x06 \x01(\x08\"\x82\x02\n\tAppClient\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08\x63lientId\x18\x02 \x01(\x0c\x12\x11\n\tcreatedOn\x18\x03 \x01(\x03\x12\x13\n\x0b\x66irstAccess\x18\x04 \x01(\x03\x12\x12\n\nlastAccess\x18\x05 \x01(\x03\x12\x11\n\tpublicKey\x18\x06 \x01(\x0c\x12\x0e\n\x06lockIp\x18\x07 \x01(\x08\x12\x11\n\tipAddress\x18\x08 \x01(\t\x12\x1b\n\x13\x66irstAccessExpireOn\x18\t \x01(\x03\x12\x16\n\x0e\x61\x63\x63\x65ssExpireOn\x18\n \x01(\x03\x12\x30\n\rappClientType\x18\x0b \x01(\x0e\x32\x19.Enterprise.AppClientType\")\n\x11GetAppInfoRequest\x12\x14\n\x0c\x61ppRecordUid\x18\x01 \x03(\x0c\"\x8e\x01\n\x07\x41ppInfo\x12\x14\n\x0c\x61ppRecordUid\x18\x01 \x01(\x0c\x12(\n\x06shares\x18\x02 \x03(\x0b\x32\x18.Authentication.AppShare\x12*\n\x07\x63lients\x18\x03 \x03(\x0b\x32\x19.Authentication.AppClient\x12\x17\n\x0fisExternalShare\x18\x04 \x01(\x08\">\n\x12GetAppInfoResponse\x12(\n\x07\x61ppInfo\x18\x01 \x03(\x0b\x32\x17.Authentication.AppInfo\"\xd5\x01\n\x12\x41pplicationSummary\x12\x14\n\x0c\x61ppRecordUid\x18\x01 \x01(\x0c\x12\x12\n\nlastAccess\x18\x02 \x01(\x03\x12\x14\n\x0crecordShares\x18\x03 \x01(\x05\x12\x14\n\x0c\x66olderShares\x18\x04 \x01(\x05\x12\x15\n\rfolderRecords\x18\x05 \x01(\x05\x12\x13\n\x0b\x63lientCount\x18\x06 \x01(\x05\x12\x1a\n\x12\x65xpiredClientCount\x18\x07 \x01(\x05\x12\x10\n\x08username\x18\x08 \x01(\t\x12\x0f\n\x07\x61ppData\x18\t \x01(\x0c\"`\n\x1eGetApplicationsSummaryResponse\x12>\n\x12\x61pplicationSummary\x18\x01 \x03(\x0b\x32\".Authentication.ApplicationSummary\"/\n\x1bGetVerificationTokenRequest\x12\x10\n\x08username\x18\x01 \x01(\t\"B\n\x1cGetVerificationTokenResponse\x12\"\n\x1a\x65ncryptedVerificationToken\x18\x01 \x01(\x0c\"\'\n\x16SendShareInviteRequest\x12\r\n\x05\x65mail\x18\x01 \x01(\t\"\xc5\x01\n\x18TimeLimitedAccessRequest\x12\x12\n\naccountUid\x18\x01 \x03(\x0c\x12\x0f\n\x07teamUid\x18\x02 \x03(\x0c\x12\x11\n\trecordUid\x18\x03 \x03(\x0c\x12\x17\n\x0fsharedObjectUid\x18\x04 \x01(\x0c\x12\x44\n\x15timeLimitedAccessType\x18\x05 \x01(\x0e\x32%.Authentication.TimeLimitedAccessType\x12\x12\n\nexpiration\x18\x06 \x01(\x03\"7\n\x17TimeLimitedAccessStatus\x12\x0b\n\x03uid\x18\x01 \x01(\x0c\x12\x0f\n\x07message\x18\x02 \x01(\t\"\xf8\x01\n\x19TimeLimitedAccessResponse\x12\x10\n\x08revision\x18\x01 \x01(\x03\x12\x41\n\x10userAccessStatus\x18\x02 \x03(\x0b\x32\'.Authentication.TimeLimitedAccessStatus\x12\x41\n\x10teamAccessStatus\x18\x03 \x03(\x0b\x32\'.Authentication.TimeLimitedAccessStatus\x12\x43\n\x12recordAccessStatus\x18\x04 \x03(\x0b\x32\'.Authentication.TimeLimitedAccessStatus\"+\n\x16RequestDownloadRequest\x12\x11\n\tfileNames\x18\x01 \x03(\t\"g\n\x17RequestDownloadResponse\x12\x0e\n\x06result\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\x12+\n\tdownloads\x18\x03 \x03(\x0b\x32\x18.Authentication.Download\"D\n\x08\x44ownload\x12\x10\n\x08\x66ileName\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x19\n\x11successStatusCode\x18\x03 \x01(\x05\"#\n\x11\x44\x65leteUserRequest\x12\x0e\n\x06reason\x18\x01 \x01(\t\"\x84\x01\n\x1b\x43hangeMasterPasswordRequest\x12\x14\n\x0c\x61uthVerifier\x18\x01 \x01(\x0c\x12\x18\n\x10\x65ncryptionParams\x18\x02 \x01(\x0c\x12\x1b\n\x13\x66romServiceProvider\x18\x03 \x01(\x08\x12\x18\n\x10iterationsChange\x18\x04 \x01(\x08\"=\n\x1c\x43hangeMasterPasswordResponse\x12\x1d\n\x15\x65ncryptedSessionToken\x18\x01 \x01(\x0c\"Y\n\x1b\x41\x63\x63ountRecoverySetupRequest\x12 \n\x18recoveryEncryptedDataKey\x18\x01 \x01(\x0c\x12\x18\n\x10recoveryAuthHash\x18\x02 \x01(\x0c\"\xac\x01\n!AccountRecoveryVerifyCodeResponse\x12\x34\n\rbackupKeyType\x18\x01 \x01(\x0e\x32\x1d.Authentication.BackupKeyType\x12\x15\n\rbackupKeyDate\x18\x02 \x01(\x03\x12\x18\n\x10securityQuestion\x18\x03 \x01(\t\x12\x0c\n\x04salt\x18\x04 \x01(\x0c\x12\x12\n\niterations\x18\x05 \x01(\x05\",\n\x1b\x45mergencyAccessLoginRequest\x12\r\n\x05owner\x18\x01 \x01(\t\"\xb5\x01\n\x1c\x45mergencyAccessLoginResponse\x12\x14\n\x0csessionToken\x18\x01 \x01(\x0c\x12%\n\x07\x64\x61taKey\x18\x02 \x01(\x0b\x32\x14.Enterprise.TypedKey\x12+\n\rrsaPrivateKey\x18\x03 \x01(\x0b\x32\x14.Enterprise.TypedKey\x12+\n\reccPrivateKey\x18\x04 \x01(\x0b\x32\x14.Enterprise.TypedKey\"\xb2\x01\n\x0bUserTeamKey\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x18\n\x10\x65nterpriseUserId\x18\x03 \x01(\x03\x12\x1b\n\x13\x65ncryptedTeamKeyRSA\x18\x04 \x01(\x0c\x12\x1a\n\x12\x65ncryptedTeamKeyEC\x18\x05 \x01(\x0c\x12-\n\x06status\x18\x06 \x01(\x0e\x32\x1d.Authentication.GenericStatus\")\n\x16GenericRequestResponse\x12\x0f\n\x07request\x18\x01 \x03(\x0c*\xb9\x02\n\x11SupportedLanguage\x12\x0b\n\x07\x45NGLISH\x10\x00\x12\n\n\x06\x41RABIC\x10\x01\x12\x0b\n\x07\x42RITISH\x10\x02\x12\x0b\n\x07\x43HINESE\x10\x03\x12\x15\n\x11\x43HINESE_HONG_KONG\x10\x04\x12\x12\n\x0e\x43HINESE_TAIWAN\x10\x05\x12\t\n\x05\x44UTCH\x10\x06\x12\n\n\x06\x46RENCH\x10\x07\x12\n\n\x06GERMAN\x10\x08\x12\t\n\x05GREEK\x10\t\x12\n\n\x06HEBREW\x10\n\x12\x0b\n\x07ITALIAN\x10\x0b\x12\x0c\n\x08JAPANESE\x10\x0c\x12\n\n\x06KOREAN\x10\r\x12\n\n\x06POLISH\x10\x0e\x12\x0e\n\nPORTUGUESE\x10\x0f\x12\x15\n\x11PORTUGUESE_BRAZIL\x10\x10\x12\x0c\n\x08ROMANIAN\x10\x11\x12\x0b\n\x07RUSSIAN\x10\x12\x12\n\n\x06SLOVAK\x10\x13\x12\x0b\n\x07SPANISH\x10\x14*Z\n\tLoginType\x12\n\n\x06NORMAL\x10\x00\x12\x07\n\x03SSO\x10\x01\x12\x07\n\x03\x42IO\x10\x02\x12\r\n\tALTERNATE\x10\x03\x12\x0b\n\x07OFFLINE\x10\x04\x12\x13\n\x0f\x46ORGOT_PASSWORD\x10\x05*q\n\x0c\x44\x65viceStatus\x12\x19\n\x15\x44\x45VICE_NEEDS_APPROVAL\x10\x00\x12\r\n\tDEVICE_OK\x10\x01\x12\x1b\n\x17\x44\x45VICE_DISABLED_BY_USER\x10\x02\x12\x1a\n\x16\x44\x45VICE_LOCKED_BY_ADMIN\x10\x03*A\n\rLicenseStatus\x12\t\n\x05OTHER\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x01\x12\x0b\n\x07\x45XPIRED\x10\x02\x12\x0c\n\x08\x44ISABLED\x10\x03*7\n\x0b\x41\x63\x63ountType\x12\x0c\n\x08\x43ONSUMER\x10\x00\x12\n\n\x06\x46\x41MILY\x10\x01\x12\x0e\n\nENTERPRISE\x10\x02*\xfc\x01\n\x10SessionTokenType\x12\x12\n\x0eNO_RESTRICTION\x10\x00\x12\x14\n\x10\x41\x43\x43OUNT_RECOVERY\x10\x01\x12\x11\n\rSHARE_ACCOUNT\x10\x02\x12\x0c\n\x08PURCHASE\x10\x03\x12\x0c\n\x08RESTRICT\x10\x04\x12\x11\n\rACCEPT_INVITE\x10\x05\x12\x12\n\x0eSUPPORT_SERVER\x10\x06\x12\x17\n\x13\x45NTERPRISE_CREATION\x10\x07\x12\x1f\n\x1b\x45XPIRED_BUT_ALLOWED_TO_SYNC\x10\x08\x12\x18\n\x14\x41\x43\x43\x45PT_FAMILY_INVITE\x10\t\x12\x14\n\x10\x45MERGENCY_ACCESS\x10\n*G\n\x07Version\x12\x13\n\x0finvalid_version\x10\x00\x12\x13\n\x0f\x64\x65\x66\x61ult_version\x10\x01\x12\x12\n\x0esecond_version\x10\x02*7\n\x1fMasterPasswordReentryActionType\x12\n\n\x06UNMASK\x10\x00\x12\x08\n\x04\x43OPY\x10\x01*l\n\x0bLoginMethod\x12\x17\n\x13INVALID_LOGINMETHOD\x10\x00\x12\x14\n\x10\x45XISTING_ACCOUNT\x10\x01\x12\x0e\n\nSSO_DOMAIN\x10\x02\x12\r\n\tAFTER_SSO\x10\x03\x12\x0f\n\x0bNEW_ACCOUNT\x10\x04*\xc7\x03\n\nLoginState\x12\x16\n\x12INVALID_LOGINSTATE\x10\x00\x12\x0e\n\nLOGGED_OUT\x10\x01\x12\x1c\n\x18\x44\x45VICE_APPROVAL_REQUIRED\x10\x02\x12\x11\n\rDEVICE_LOCKED\x10\x03\x12\x12\n\x0e\x41\x43\x43OUNT_LOCKED\x10\x04\x12\x19\n\x15\x44\x45VICE_ACCOUNT_LOCKED\x10\x05\x12\x0b\n\x07UPGRADE\x10\x06\x12\x13\n\x0fLICENSE_EXPIRED\x10\x07\x12\x13\n\x0fREGION_REDIRECT\x10\x08\x12\x16\n\x12REDIRECT_CLOUD_SSO\x10\t\x12\x17\n\x13REDIRECT_ONSITE_SSO\x10\n\x12\x10\n\x0cREQUIRES_2FA\x10\x0c\x12\x16\n\x12REQUIRES_AUTH_HASH\x10\r\x12\x15\n\x11REQUIRES_USERNAME\x10\x0e\x12\x19\n\x15\x41\x46TER_CLOUD_SSO_LOGIN\x10\x0f\x12\x1d\n\x19REQUIRES_ACCOUNT_CREATION\x10\x10\x12&\n\"REQUIRES_DEVICE_ENCRYPTED_DATA_KEY\x10\x11\x12\x17\n\x13LOGIN_TOKEN_EXPIRED\x10\x12\x12\r\n\tLOGGED_IN\x10\x63*k\n\x14\x45ncryptedDataKeyType\x12\n\n\x06NO_KEY\x10\x00\x12\x18\n\x14\x42Y_DEVICE_PUBLIC_KEY\x10\x01\x12\x0f\n\x0b\x42Y_PASSWORD\x10\x02\x12\x10\n\x0c\x42Y_ALTERNATE\x10\x03\x12\n\n\x06\x42Y_BIO\x10\x04*-\n\x0ePasswordMethod\x12\x0b\n\x07\x45NTERED\x10\x00\x12\x0e\n\nBIOMETRICS\x10\x01*\xb9\x01\n\x11TwoFactorPushType\x12\x14\n\x10TWO_FA_PUSH_NONE\x10\x00\x12\x13\n\x0fTWO_FA_PUSH_SMS\x10\x01\x12\x16\n\x12TWO_FA_PUSH_KEEPER\x10\x02\x12\x18\n\x14TWO_FA_PUSH_DUO_PUSH\x10\x03\x12\x18\n\x14TWO_FA_PUSH_DUO_TEXT\x10\x04\x12\x18\n\x14TWO_FA_PUSH_DUO_CALL\x10\x05\x12\x13\n\x0fTWO_FA_PUSH_DNA\x10\x06*\xc3\x01\n\x12TwoFactorValueType\x12\x14\n\x10TWO_FA_CODE_NONE\x10\x00\x12\x14\n\x10TWO_FA_CODE_TOTP\x10\x01\x12\x13\n\x0fTWO_FA_CODE_SMS\x10\x02\x12\x13\n\x0fTWO_FA_CODE_DUO\x10\x03\x12\x13\n\x0fTWO_FA_CODE_RSA\x10\x04\x12\x13\n\x0fTWO_FA_RESP_U2F\x10\x05\x12\x18\n\x14TWO_FA_RESP_WEBAUTHN\x10\x06\x12\x13\n\x0fTWO_FA_CODE_DNA\x10\x07*\xe1\x01\n\x14TwoFactorChannelType\x12\x12\n\x0eTWO_FA_CT_NONE\x10\x00\x12\x12\n\x0eTWO_FA_CT_TOTP\x10\x01\x12\x11\n\rTWO_FA_CT_SMS\x10\x02\x12\x11\n\rTWO_FA_CT_DUO\x10\x03\x12\x11\n\rTWO_FA_CT_RSA\x10\x04\x12\x14\n\x10TWO_FA_CT_BACKUP\x10\x05\x12\x11\n\rTWO_FA_CT_U2F\x10\x06\x12\x16\n\x12TWO_FA_CT_WEBAUTHN\x10\x07\x12\x14\n\x10TWO_FA_CT_KEEPER\x10\x08\x12\x11\n\rTWO_FA_CT_DNA\x10\t*\xab\x01\n\x13TwoFactorExpiration\x12\x1a\n\x16TWO_FA_EXP_IMMEDIATELY\x10\x00\x12\x18\n\x14TWO_FA_EXP_5_MINUTES\x10\x01\x12\x17\n\x13TWO_FA_EXP_12_HOURS\x10\x02\x12\x17\n\x13TWO_FA_EXP_24_HOURS\x10\x03\x12\x16\n\x12TWO_FA_EXP_30_DAYS\x10\x04\x12\x14\n\x10TWO_FA_EXP_NEVER\x10\x05*@\n\x0bLicenseType\x12\t\n\x05VAULT\x10\x00\x12\x08\n\x04\x43HAT\x10\x01\x12\x0b\n\x07STORAGE\x10\x02\x12\x0f\n\x0b\x42REACHWATCH\x10\x03*i\n\x0bObjectTypes\x12\n\n\x06RECORD\x10\x00\x12\x16\n\x12SHARED_FOLDER_USER\x10\x01\x12\x16\n\x12SHARED_FOLDER_TEAM\x10\x02\x12\x0f\n\x0bUSER_FOLDER\x10\x03\x12\r\n\tTEAM_USER\x10\x04*\x8a\x02\n\x13\x45ncryptedObjectType\x12\x13\n\x0f\x45OT_UNSPECIFIED\x10\x00\x12\x12\n\x0e\x45OT_RECORD_KEY\x10\x01\x12\x1e\n\x1a\x45OT_SHARED_FOLDER_USER_KEY\x10\x02\x12\x1e\n\x1a\x45OT_SHARED_FOLDER_TEAM_KEY\x10\x03\x12\x15\n\x11\x45OT_TEAM_USER_KEY\x10\x04\x12\x17\n\x13\x45OT_USER_FOLDER_KEY\x10\x05\x12\x15\n\x11\x45OT_SECURITY_DATA\x10\x06\x12%\n!EOT_SECURITY_DATA_MASTER_PASSWORD\x10\x07\x12\x1c\n\x18\x45OT_EMERGENCY_ACCESS_KEY\x10\x08*M\n\x1bMasterPasswordReentryStatus\x12\x0e\n\nMP_UNKNOWN\x10\x00\x12\x0e\n\nMP_SUCCESS\x10\x01\x12\x0e\n\nMP_FAILURE\x10\x02*`\n\x1b\x41lternateAuthenticationType\x12\x1d\n\x19\x41LTERNATE_MASTER_PASSWORD\x10\x00\x12\r\n\tBIOMETRIC\x10\x01\x12\x13\n\x0f\x41\x43\x43OUNT_RECOVER\x10\x02*\x9a\x02\n\x0cThrottleType\x12\x1b\n\x17PASSWORD_RETRY_THROTTLE\x10\x00\x12\"\n\x1ePASSWORD_RETRY_LEGACY_THROTTLE\x10\x01\x12\x13\n\x0fTWO_FA_THROTTLE\x10\x02\x12\x1a\n\x16TWO_FA_LEGACY_THROTTLE\x10\x03\x12\x15\n\x11QA_RETRY_THROTTLE\x10\x04\x12\x1c\n\x18\x41\x43\x43OUNT_RECOVER_THROTTLE\x10\x05\x12.\n*VALIDATE_DEVICE_VERIFICATION_CODE_THROTTLE\x10\x06\x12\x33\n/VALIDATE_CREATE_USER_VERIFICATION_CODE_THROTTLE\x10\x07*H\n\x06Region\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x06\n\x02\x65u\x10\x01\x12\x06\n\x02us\x10\x02\x12\t\n\x05usgov\x10\x03\x12\x06\n\x02\x61u\x10\x04\x12\x06\n\x02jp\x10\x05\x12\x06\n\x02\x63\x61\x10\x06*D\n\x14\x41pplicationShareType\x12\x15\n\x11SHARE_TYPE_RECORD\x10\x00\x12\x15\n\x11SHARE_TYPE_FOLDER\x10\x01*\xa4\x01\n\x15TimeLimitedAccessType\x12$\n INVALID_TIME_LIMITED_ACCESS_TYPE\x10\x00\x12\x19\n\x15USER_ACCESS_TO_RECORD\x10\x01\x12\'\n#USER_OR_TEAM_ACCESS_TO_SHAREDFOLDER\x10\x02\x12!\n\x1dRECORD_ACCESS_TO_SHAREDFOLDER\x10\x03*<\n\rBackupKeyType\x12\x12\n\x0e\x42KT_SEC_ANSWER\x10\x00\x12\x17\n\x13\x42KT_PASSPHRASE_HASH\x10\x01*W\n\rGenericStatus\x12\x0b\n\x07SUCCESS\x10\x00\x12\x12\n\x0eINVALID_OBJECT\x10\x01\x12\x12\n\x0e\x41LREADY_EXISTS\x10\x02\x12\x11\n\rACCESS_DENIED\x10\x03\x42*\n\x18\x63om.keepersecurity.protoB\x0e\x41uthenticationb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10\x41PIRequest.proto\x12\x0e\x41uthentication\x1a\x10\x65nterprise.proto\"\xb0\x01\n\nApiRequest\x12 \n\x18\x65ncryptedTransmissionKey\x18\x01 \x01(\x0c\x12\x13\n\x0bpublicKeyId\x18\x02 \x01(\x05\x12\x0e\n\x06locale\x18\x03 \x01(\t\x12\x18\n\x10\x65ncryptedPayload\x18\x04 \x01(\x0c\x12\x16\n\x0e\x65ncryptionType\x18\x05 \x01(\x05\x12\x11\n\trecaptcha\x18\x06 \x01(\t\x12\x16\n\x0esubEnvironment\x18\x07 \x01(\t\"j\n\x11\x41piRequestPayload\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\x1d\n\x15\x65ncryptedSessionToken\x18\x02 \x01(\x0c\x12\x11\n\ttimeToken\x18\x03 \x01(\x0c\x12\x12\n\napiVersion\x18\x04 \x01(\x05\"6\n\tTransform\x12\x0b\n\x03key\x18\x01 \x01(\x0c\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x02 \x01(\x0c\":\n\rDeviceRequest\x12\x15\n\rclientVersion\x18\x01 \x01(\t\x12\x12\n\ndeviceName\x18\x02 \x01(\t\"T\n\x0b\x41uthRequest\x12\x15\n\rclientVersion\x18\x01 \x01(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x03 \x01(\x0c\"\xc3\x01\n\x14NewUserMinimumParams\x12\x19\n\x11minimumIterations\x18\x01 \x01(\x05\x12\x1a\n\x12passwordMatchRegex\x18\x02 \x03(\t\x12 \n\x18passwordMatchDescription\x18\x03 \x03(\t\x12\x1a\n\x12isEnterpriseDomain\x18\x04 \x01(\x08\x12\x1e\n\x16\x65nterpriseEccPublicKey\x18\x05 \x01(\x0c\x12\x16\n\x0e\x66orbidKeyType2\x18\x06 \x01(\x08\"\x89\x01\n\x0fPreLoginRequest\x12\x30\n\x0b\x61uthRequest\x18\x01 \x01(\x0b\x32\x1b.Authentication.AuthRequest\x12,\n\tloginType\x18\x02 \x01(\x0e\x32\x19.Authentication.LoginType\x12\x16\n\x0etwoFactorToken\x18\x03 \x01(\x0c\"\x80\x02\n\x0cLoginRequest\x12\x30\n\x0b\x61uthRequest\x18\x01 \x01(\x0b\x32\x1b.Authentication.AuthRequest\x12,\n\tloginType\x18\x02 \x01(\x0e\x32\x19.Authentication.LoginType\x12\x1f\n\x17\x61uthenticationHashPrime\x18\x03 \x01(\x0c\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x04 \x01(\x0c\x12\x14\n\x0c\x61uthResponse\x18\x05 \x01(\x0c\x12\x16\n\x0emcEnterpriseId\x18\x06 \x01(\x05\x12\x12\n\npush_token\x18\x07 \x01(\t\x12\x10\n\x08platform\x18\x08 \x01(\t\"\\\n\x0e\x44\x65viceResponse\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x01 \x01(\x0c\x12,\n\x06status\x18\x02 \x01(\x0e\x32\x1c.Authentication.DeviceStatus\"V\n\x04Salt\x12\x12\n\niterations\x18\x01 \x01(\x05\x12\x0c\n\x04salt\x18\x02 \x01(\x0c\x12\x11\n\talgorithm\x18\x03 \x01(\x05\x12\x0b\n\x03uid\x18\x04 \x01(\x0c\x12\x0c\n\x04name\x18\x05 \x01(\t\" \n\x10TwoFactorChannel\x12\x0c\n\x04type\x18\x01 \x01(\x05\"\xe2\x02\n\x11StartLoginRequest\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x01 \x01(\x0c\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x15\n\rclientVersion\x18\x03 \x01(\t\x12\x19\n\x11messageSessionUid\x18\x04 \x01(\x0c\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x05 \x01(\x0c\x12,\n\tloginType\x18\x06 \x01(\x0e\x32\x19.Authentication.LoginType\x12\x16\n\x0emcEnterpriseId\x18\x07 \x01(\x05\x12\x30\n\x0bloginMethod\x18\x08 \x01(\x0e\x32\x1b.Authentication.LoginMethod\x12\x15\n\rforceNewLogin\x18\t \x01(\x08\x12\x11\n\tcloneCode\x18\n \x01(\x0c\x12\x18\n\x10v2TwoFactorToken\x18\x0b \x01(\t\x12\x12\n\naccountUid\x18\x0c \x01(\x0c\"\xa7\x04\n\rLoginResponse\x12.\n\nloginState\x18\x01 \x01(\x0e\x32\x1a.Authentication.LoginState\x12\x12\n\naccountUid\x18\x02 \x01(\x0c\x12\x17\n\x0fprimaryUsername\x18\x03 \x01(\t\x12\x18\n\x10\x65ncryptedDataKey\x18\x04 \x01(\x0c\x12\x42\n\x14\x65ncryptedDataKeyType\x18\x05 \x01(\x0e\x32$.Authentication.EncryptedDataKeyType\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x06 \x01(\x0c\x12\x1d\n\x15\x65ncryptedSessionToken\x18\x07 \x01(\x0c\x12:\n\x10sessionTokenType\x18\x08 \x01(\x0e\x32 .Authentication.SessionTokenType\x12\x0f\n\x07message\x18\t \x01(\t\x12\x0b\n\x03url\x18\n \x01(\t\x12\x36\n\x08\x63hannels\x18\x0b \x03(\x0b\x32$.Authentication.TwoFactorChannelInfo\x12\"\n\x04salt\x18\x0c \x03(\x0b\x32\x14.Authentication.Salt\x12\x11\n\tcloneCode\x18\r \x01(\x0c\x12\x1a\n\x12stateSpecificValue\x18\x0e \x01(\t\x12\x18\n\x10ssoClientVersion\x18\x0f \x01(\t\x12 \n\x18sessionTokenTypeModifier\x18\x10 \x01(\t\"\x8c\x01\n\x0bSsoUserInfo\x12\x13\n\x0b\x63ompanyName\x18\x01 \x01(\t\x12\x13\n\x0bsamlRequest\x18\x02 \x01(\t\x12\x17\n\x0fsamlRequestType\x18\x03 \x01(\t\x12\x15\n\rssoDomainName\x18\x04 \x01(\t\x12\x10\n\x08loginUrl\x18\x05 \x01(\t\x12\x11\n\tlogoutUrl\x18\x06 \x01(\t\"\xd6\x01\n\x10PreLoginResponse\x12\x32\n\x0c\x64\x65viceStatus\x18\x01 \x01(\x0e\x32\x1c.Authentication.DeviceStatus\x12\"\n\x04salt\x18\x02 \x03(\x0b\x32\x14.Authentication.Salt\x12\x38\n\x0eOBSOLETE_FIELD\x18\x03 \x03(\x0b\x32 .Authentication.TwoFactorChannel\x12\x30\n\x0bssoUserInfo\x18\x04 \x01(\x0b\x32\x1b.Authentication.SsoUserInfo\"&\n\x12LoginAsUserRequest\x12\x10\n\x08username\x18\x01 \x01(\t\"W\n\x13LoginAsUserResponse\x12\x1d\n\x15\x65ncryptedSessionToken\x18\x01 \x01(\x0c\x12!\n\x19\x65ncryptedSharedAccountKey\x18\x02 \x01(\x0c\"\x84\x01\n\x17ValidateAuthHashRequest\x12\x36\n\x0epasswordMethod\x18\x01 \x01(\x0e\x32\x1e.Authentication.PasswordMethod\x12\x14\n\x0c\x61uthResponse\x18\x02 \x01(\x0c\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x03 \x01(\x0c\"\xc4\x02\n\x14TwoFactorChannelInfo\x12\x39\n\x0b\x63hannelType\x18\x01 \x01(\x0e\x32$.Authentication.TwoFactorChannelType\x12\x13\n\x0b\x63hannel_uid\x18\x02 \x01(\x0c\x12\x13\n\x0b\x63hannelName\x18\x03 \x01(\t\x12\x11\n\tchallenge\x18\x04 \x01(\t\x12\x14\n\x0c\x63\x61pabilities\x18\x05 \x03(\t\x12\x13\n\x0bphoneNumber\x18\x06 \x01(\t\x12:\n\rmaxExpiration\x18\x07 \x01(\x0e\x32#.Authentication.TwoFactorExpiration\x12\x11\n\tcreatedOn\x18\x08 \x01(\x03\x12:\n\rlastFrequency\x18\t \x01(\x0e\x32#.Authentication.TwoFactorExpiration\"d\n\x12TwoFactorDuoStatus\x12\x14\n\x0c\x63\x61pabilities\x18\x01 \x03(\t\x12\x13\n\x0bphoneNumber\x18\x02 \x01(\t\x12\x12\n\nenroll_url\x18\x03 \x01(\t\x12\x0f\n\x07message\x18\x04 \x01(\t\"\xc7\x01\n\x13TwoFactorAddRequest\x12\x39\n\x0b\x63hannelType\x18\x01 \x01(\x0e\x32$.Authentication.TwoFactorChannelType\x12\x13\n\x0b\x63hannel_uid\x18\x02 \x01(\x0c\x12\x13\n\x0b\x63hannelName\x18\x03 \x01(\t\x12\x13\n\x0bphoneNumber\x18\x04 \x01(\t\x12\x36\n\x0b\x64uoPushType\x18\x05 \x01(\x0e\x32!.Authentication.TwoFactorPushType\"B\n\x16TwoFactorRenameRequest\x12\x13\n\x0b\x63hannel_uid\x18\x01 \x01(\x0c\x12\x13\n\x0b\x63hannelName\x18\x02 \x01(\t\"=\n\x14TwoFactorAddResponse\x12\x11\n\tchallenge\x18\x01 \x01(\t\x12\x12\n\nbackupKeys\x18\x02 \x03(\t\"-\n\x16TwoFactorDeleteRequest\x12\x13\n\x0b\x63hannel_uid\x18\x01 \x01(\x0c\"a\n\x15TwoFactorListResponse\x12\x36\n\x08\x63hannels\x18\x01 \x03(\x0b\x32$.Authentication.TwoFactorChannelInfo\x12\x10\n\x08\x65xpireOn\x18\x02 \x01(\x03\"Y\n TwoFactorUpdateExpirationRequest\x12\x35\n\x08\x65xpireIn\x18\x01 \x01(\x0e\x32#.Authentication.TwoFactorExpiration\"\xc9\x01\n\x18TwoFactorValidateRequest\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x01 \x01(\x0c\x12\x35\n\tvalueType\x18\x02 \x01(\x0e\x32\".Authentication.TwoFactorValueType\x12\r\n\x05value\x18\x03 \x01(\t\x12\x13\n\x0b\x63hannel_uid\x18\x04 \x01(\x0c\x12\x35\n\x08\x65xpireIn\x18\x05 \x01(\x0e\x32#.Authentication.TwoFactorExpiration\"8\n\x19TwoFactorValidateResponse\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x01 \x01(\x0c\"\xb8\x01\n\x18TwoFactorSendPushRequest\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x01 \x01(\x0c\x12\x33\n\x08pushType\x18\x02 \x01(\x0e\x32!.Authentication.TwoFactorPushType\x12\x13\n\x0b\x63hannel_uid\x18\x03 \x01(\x0c\x12\x35\n\x08\x65xpireIn\x18\x04 \x01(\x0e\x32#.Authentication.TwoFactorExpiration\"\x83\x01\n\x07License\x12\x0f\n\x07\x63reated\x18\x01 \x01(\x03\x12\x12\n\nexpiration\x18\x02 \x01(\x03\x12\x34\n\rlicenseStatus\x18\x03 \x01(\x0e\x32\x1d.Authentication.LicenseStatus\x12\x0c\n\x04paid\x18\x04 \x01(\x08\x12\x0f\n\x07message\x18\x05 \x01(\t\"G\n\x0fOwnerlessRecord\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x11\n\trecordKey\x18\x02 \x01(\x0c\x12\x0e\n\x06status\x18\x03 \x01(\x05\"L\n\x10OwnerlessRecords\x12\x38\n\x0fownerlessRecord\x18\x01 \x03(\x0b\x32\x1f.Authentication.OwnerlessRecord\"\xd7\x01\n\x0fUserAuthRequest\x12\x0b\n\x03uid\x18\x01 \x01(\x0c\x12\x0c\n\x04salt\x18\x02 \x01(\x0c\x12\x12\n\niterations\x18\x03 \x01(\x05\x12\x1a\n\x12\x65ncryptedClientKey\x18\x04 \x01(\x0c\x12\x10\n\x08\x61uthHash\x18\x05 \x01(\x0c\x12\x18\n\x10\x65ncryptedDataKey\x18\x06 \x01(\x0c\x12,\n\tloginType\x18\x07 \x01(\x0e\x32\x19.Authentication.LoginType\x12\x0c\n\x04name\x18\x08 \x01(\t\x12\x11\n\talgorithm\x18\t \x01(\x05\"\x19\n\nUidRequest\x12\x0b\n\x03uid\x18\x01 \x03(\x0c\"\xab\x01\n\x13\x44\x65viceUpdateRequest\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x01 \x01(\x0c\x12\x15\n\rclientVersion\x18\x02 \x01(\t\x12\x12\n\ndeviceName\x18\x03 \x01(\t\x12\x17\n\x0f\x64\x65vicePublicKey\x18\x04 \x01(\x0c\x12\x32\n\x0c\x64\x65viceStatus\x18\x05 \x01(\x0e\x32\x1c.Authentication.DeviceStatus\"\x81\x01\n\x1dRegisterDeviceInRegionRequest\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x01 \x01(\x0c\x12\x15\n\rclientVersion\x18\x02 \x01(\t\x12\x12\n\ndeviceName\x18\x03 \x01(\t\x12\x17\n\x0f\x64\x65vicePublicKey\x18\x04 \x01(\x0c\"\xf8\x02\n\x13RegistrationRequest\x12\x30\n\x0b\x61uthRequest\x18\x01 \x01(\x0b\x32\x1b.Authentication.AuthRequest\x12\x38\n\x0fuserAuthRequest\x18\x02 \x01(\x0b\x32\x1f.Authentication.UserAuthRequest\x12\x1a\n\x12\x65ncryptedClientKey\x18\x03 \x01(\x0c\x12\x1b\n\x13\x65ncryptedPrivateKey\x18\x04 \x01(\x0c\x12\x11\n\tpublicKey\x18\x05 \x01(\x0c\x12\x18\n\x10verificationCode\x18\x06 \x01(\t\x12\x1e\n\x16\x64\x65precatedAuthHashHash\x18\x07 \x01(\x0c\x12$\n\x1c\x64\x65precatedEncryptedClientKey\x18\x08 \x01(\x0c\x12%\n\x1d\x64\x65precatedEncryptedPrivateKey\x18\t \x01(\x0c\x12\"\n\x1a\x64\x65precatedEncryptionParams\x18\n \x01(\x0c\"\xd0\x01\n\x16\x43onvertUserToV3Request\x12\x30\n\x0b\x61uthRequest\x18\x01 \x01(\x0b\x32\x1b.Authentication.AuthRequest\x12\x38\n\x0fuserAuthRequest\x18\x02 \x01(\x0b\x32\x1f.Authentication.UserAuthRequest\x12\x1a\n\x12\x65ncryptedClientKey\x18\x03 \x01(\x0c\x12\x1b\n\x13\x65ncryptedPrivateKey\x18\x04 \x01(\x0c\x12\x11\n\tpublicKey\x18\x05 \x01(\x0c\"$\n\x10RevisionResponse\x12\x10\n\x08revision\x18\x01 \x01(\x03\"&\n\x12\x43hangeEmailRequest\x12\x10\n\x08newEmail\x18\x01 \x01(\t\"8\n\x13\x43hangeEmailResponse\x12!\n\x19\x65ncryptedChangeEmailToken\x18\x01 \x01(\x0c\"6\n\x1d\x45mailVerificationLinkResponse\x12\x15\n\remailVerified\x18\x01 \x01(\x08\")\n\x0cSecurityData\x12\x0b\n\x03uid\x18\x01 \x01(\x0c\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\xc7\x01\n\x13SecurityDataRequest\x12\x38\n\x12recordSecurityData\x18\x01 \x03(\x0b\x32\x1c.Authentication.SecurityData\x12@\n\x1amasterPasswordSecurityData\x18\x02 \x03(\x0b\x32\x1c.Authentication.SecurityData\x12\x34\n\x0e\x65ncryptionType\x18\x03 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\"\xb3\x02\n\x1dSecurityReportIncrementalData\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x1b\n\x13\x63urrentSecurityData\x18\x02 \x01(\x0c\x12#\n\x1b\x63urrentSecurityDataRevision\x18\x03 \x01(\x03\x12\x17\n\x0foldSecurityData\x18\x04 \x01(\x0c\x12\x1f\n\x17oldSecurityDataRevision\x18\x05 \x01(\x03\x12?\n\x19\x63urrentDataEncryptionType\x18\x06 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\x12;\n\x15oldDataEncryptionType\x18\x07 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\"\x9f\x02\n\x0eSecurityReport\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x1b\n\x13\x65ncryptedReportData\x18\x02 \x01(\x0c\x12\x10\n\x08revision\x18\x03 \x01(\x03\x12\x11\n\ttwoFactor\x18\x04 \x01(\t\x12\x11\n\tlastLogin\x18\x05 \x01(\x03\x12\x1e\n\x16numberOfReusedPassword\x18\x06 \x01(\x05\x12T\n\x1dsecurityReportIncrementalData\x18\x07 \x03(\x0b\x32-.Authentication.SecurityReportIncrementalData\x12\x0e\n\x06userId\x18\x08 \x01(\x05\x12\x18\n\x10hasOldEncryption\x18\t \x01(\x08\"S\n\x19SecurityReportSaveRequest\x12\x36\n\x0esecurityReport\x18\x01 \x03(\x0b\x32\x1e.Authentication.SecurityReport\")\n\x15SecurityReportRequest\x12\x10\n\x08\x66romPage\x18\x01 \x01(\x03\"\xd9\x01\n\x16SecurityReportResponse\x12\x1c\n\x14\x65nterprisePrivateKey\x18\x01 \x01(\x0c\x12\x36\n\x0esecurityReport\x18\x02 \x03(\x0b\x32\x1e.Authentication.SecurityReport\x12\x14\n\x0c\x61sOfRevision\x18\x03 \x01(\x03\x12\x10\n\x08\x66romPage\x18\x04 \x01(\x03\x12\x0e\n\x06toPage\x18\x05 \x01(\x03\x12\x10\n\x08\x63omplete\x18\x06 \x01(\x08\x12\x1f\n\x17\x65nterpriseEccPrivateKey\x18\x07 \x01(\x0c\"\'\n\x16ReusedPasswordsRequest\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\">\n\x14SummaryConsoleReport\x12\x12\n\nreportType\x18\x01 \x01(\x05\x12\x12\n\nreportData\x18\x02 \x01(\x0c\"|\n\x12\x43hangeToKeyTypeOne\x12/\n\nobjectType\x18\x01 \x01(\x0e\x32\x1b.Authentication.ObjectTypes\x12\x12\n\nprimaryUid\x18\x02 \x01(\x0c\x12\x14\n\x0csecondaryUid\x18\x03 \x01(\x0c\x12\x0b\n\x03key\x18\x04 \x01(\x0c\"[\n\x19\x43hangeToKeyTypeOneRequest\x12>\n\x12\x63hangeToKeyTypeOne\x18\x01 \x03(\x0b\x32\".Authentication.ChangeToKeyTypeOne\"U\n\x18\x43hangeToKeyTypeOneStatus\x12\x0b\n\x03uid\x18\x01 \x01(\x0c\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x0e\n\x06reason\x18\x04 \x01(\t\"h\n\x1a\x43hangeToKeyTypeOneResponse\x12J\n\x18\x63hangeToKeyTypeOneStatus\x18\x01 \x03(\x0b\x32(.Authentication.ChangeToKeyTypeOneStatus\"\xb9\x01\n\x18GetChangeKeyTypesRequest\x12=\n\x10onlyTheseObjects\x18\x01 \x03(\x0e\x32#.Authentication.EncryptedObjectType\x12\r\n\x05limit\x18\x02 \x01(\x05\x12\x1a\n\x12includeRecommended\x18\x03 \x01(\x08\x12\x13\n\x0bincludeKeys\x18\x04 \x01(\x08\x12\x1e\n\x16includeAllowedKeyTypes\x18\x05 \x01(\x08\"\x82\x01\n\x19GetChangeKeyTypesResponse\x12+\n\x04keys\x18\x01 \x03(\x0b\x32\x1d.Authentication.ChangeKeyType\x12\x38\n\x0f\x61llowedKeyTypes\x18\x02 \x03(\x0b\x32\x1f.Authentication.AllowedKeyTypes\"\x81\x01\n\x0f\x41llowedKeyTypes\x12\x37\n\nobjectType\x18\x01 \x01(\x0e\x32#.Authentication.EncryptedObjectType\x12\x35\n\x0f\x61llowedKeyTypes\x18\x02 \x03(\x0e\x32\x1c.Enterprise.EncryptedKeyType\"=\n\x0e\x43hangeKeyTypes\x12+\n\x04keys\x18\x01 \x03(\x0b\x32\x1d.Authentication.ChangeKeyType\"\xd6\x01\n\rChangeKeyType\x12\x37\n\nobjectType\x18\x01 \x01(\x0e\x32#.Authentication.EncryptedObjectType\x12\x0b\n\x03uid\x18\x02 \x01(\x0c\x12\x14\n\x0csecondaryUid\x18\x03 \x01(\x0c\x12\x0b\n\x03key\x18\x04 \x01(\x0c\x12-\n\x07keyType\x18\x05 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\x12-\n\x06status\x18\x06 \x01(\x0e\x32\x1d.Authentication.GenericStatus\"!\n\x06SetKey\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0b\n\x03key\x18\x02 \x01(\x0c\"5\n\rSetKeyRequest\x12$\n\x04keys\x18\x01 \x03(\x0b\x32\x16.Authentication.SetKey\"\x92\x05\n\x11\x43reateUserRequest\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x14\n\x0c\x61uthVerifier\x18\x02 \x01(\x0c\x12\x18\n\x10\x65ncryptionParams\x18\x03 \x01(\x0c\x12\x14\n\x0crsaPublicKey\x18\x04 \x01(\x0c\x12\x1e\n\x16rsaEncryptedPrivateKey\x18\x05 \x01(\x0c\x12\x14\n\x0c\x65\x63\x63PublicKey\x18\x06 \x01(\x0c\x12\x1e\n\x16\x65\x63\x63\x45ncryptedPrivateKey\x18\x07 \x01(\x0c\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x08 \x01(\x0c\x12\x1a\n\x12\x65ncryptedClientKey\x18\t \x01(\x0c\x12\x15\n\rclientVersion\x18\n \x01(\t\x12\x1e\n\x16\x65ncryptedDeviceDataKey\x18\x0b \x01(\x0c\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x0c \x01(\x0c\x12\x19\n\x11messageSessionUid\x18\r \x01(\x0c\x12\x17\n\x0finstallReferrer\x18\x0e \x01(\t\x12\x0e\n\x06mccMNC\x18\x0f \x01(\x05\x12\x0b\n\x03mfg\x18\x10 \x01(\t\x12\r\n\x05model\x18\x11 \x01(\t\x12\r\n\x05\x62rand\x18\x12 \x01(\t\x12\x0f\n\x07product\x18\x13 \x01(\t\x12\x0e\n\x06\x64\x65vice\x18\x14 \x01(\t\x12\x0f\n\x07\x63\x61rrier\x18\x15 \x01(\t\x12\x18\n\x10verificationCode\x18\x16 \x01(\t\x12\x42\n\x16\x65nterpriseRegistration\x18\x17 \x01(\x0b\x32\".Enterprise.EnterpriseRegistration\x12\"\n\x1a\x65ncryptedVerificationToken\x18\x18 \x01(\x0c\x12\x1e\n\x16\x65nterpriseUsersDataKey\x18\x19 \x01(\x0c\"W\n!NodeEnforcementAddOrUpdateRequest\x12\x0e\n\x06nodeId\x18\x01 \x01(\x03\x12\x13\n\x0b\x65nforcement\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\"C\n\x1cNodeEnforcementRemoveRequest\x12\x0e\n\x06nodeId\x18\x01 \x01(\x03\x12\x13\n\x0b\x65nforcement\x18\x02 \x01(\t\"\x9f\x01\n\x0f\x41piRequestByKey\x12\r\n\x05keyId\x18\x01 \x01(\x05\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\x12\x10\n\x08username\x18\x03 \x01(\t\x12\x0e\n\x06locale\x18\x04 \x01(\t\x12<\n\x11supportedLanguage\x18\x05 \x01(\x0e\x32!.Authentication.SupportedLanguage\x12\x0c\n\x04type\x18\x06 \x01(\x05\"\xc7\x01\n\x15\x41piRequestByKAtoKAKey\x12,\n\x0csourceRegion\x18\x01 \x01(\x0e\x32\x16.Authentication.Region\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\x12<\n\x11supportedLanguage\x18\x03 \x01(\x0e\x32!.Authentication.SupportedLanguage\x12\x31\n\x11\x64\x65stinationRegion\x18\x04 \x01(\x0e\x32\x16.Authentication.Region\".\n\x0fMemcacheRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0e\n\x06userId\x18\x02 \x01(\x05\".\n\x10MemcacheResponse\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"w\n\x1cMasterPasswordReentryRequest\x12\x16\n\x0epbkdf2Password\x18\x01 \x01(\t\x12?\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32/.Authentication.MasterPasswordReentryActionType\"\\\n\x1dMasterPasswordReentryResponse\x12;\n\x06status\x18\x01 \x01(\x0e\x32+.Authentication.MasterPasswordReentryStatus\"_\n\x19\x44\x65viceRegistrationRequest\x12\x15\n\rclientVersion\x18\x01 \x01(\t\x12\x12\n\ndeviceName\x18\x02 \x01(\t\x12\x17\n\x0f\x64\x65vicePublicKey\x18\x03 \x01(\x0c\"\x9a\x01\n\x19\x44\x65viceVerificationRequest\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x01 \x01(\x0c\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x1b\n\x13verificationChannel\x18\x03 \x01(\t\x12\x19\n\x11messageSessionUid\x18\x04 \x01(\x0c\x12\x15\n\rclientVersion\x18\x05 \x01(\t\"\xb2\x01\n\x1a\x44\x65viceVerificationResponse\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x01 \x01(\x0c\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x19\n\x11messageSessionUid\x18\x03 \x01(\x0c\x12\x15\n\rclientVersion\x18\x04 \x01(\t\x12\x32\n\x0c\x64\x65viceStatus\x18\x05 \x01(\x0e\x32\x1c.Authentication.DeviceStatus\"\xc8\x01\n\x15\x44\x65viceApprovalRequest\x12\r\n\x05\x65mail\x18\x01 \x01(\t\x12\x18\n\x10twoFactorChannel\x18\x02 \x01(\t\x12\x15\n\rclientVersion\x18\x03 \x01(\t\x12\x0e\n\x06locale\x18\x04 \x01(\t\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x05 \x01(\x0c\x12\x10\n\x08totpCode\x18\x06 \x01(\t\x12\x10\n\x08\x64\x65viceIp\x18\x07 \x01(\t\x12\x1d\n\x15\x64\x65viceTokenExpireDays\x18\x08 \x01(\t\"9\n\x16\x44\x65viceApprovalResponse\x12\x1f\n\x17\x65ncryptedTwoFactorToken\x18\x01 \x01(\x0c\"~\n\x14\x41pproveDeviceRequest\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x01 \x01(\x0c\x12\x1e\n\x16\x65ncryptedDeviceDataKey\x18\x02 \x01(\x0c\x12\x14\n\x0c\x64\x65nyApproval\x18\x03 \x01(\x08\x12\x12\n\nlinkDevice\x18\x04 \x01(\x08\"E\n\x1a\x45nterpriseUserAliasRequest\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\r\n\x05\x61lias\x18\x02 \x01(\t\"Y\n\x1d\x45nterpriseUserAddAliasRequest\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\r\n\x05\x61lias\x18\x02 \x01(\t\x12\x0f\n\x07primary\x18\x03 \x01(\x08\"w\n\x1f\x45nterpriseUserAddAliasRequestV2\x12T\n\x1d\x65nterpriseUserAddAliasRequest\x18\x01 \x03(\x0b\x32-.Authentication.EnterpriseUserAddAliasRequest\"H\n\x1c\x45nterpriseUserAddAliasStatus\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x0e\n\x06status\x18\x02 \x01(\t\"^\n\x1e\x45nterpriseUserAddAliasResponse\x12<\n\x06status\x18\x01 \x03(\x0b\x32,.Authentication.EnterpriseUserAddAliasStatus\"&\n\x06\x44\x65vice\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x01 \x01(\x0c\"\\\n\x1cRegisterDeviceDataKeyRequest\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x01 \x01(\x0c\x12\x1e\n\x16\x65ncryptedDeviceDataKey\x18\x02 \x01(\x0c\"n\n)ValidateCreateUserVerificationCodeRequest\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x15\n\rclientVersion\x18\x02 \x01(\t\x12\x18\n\x10verificationCode\x18\x03 \x01(\t\"\xa3\x01\n%ValidateDeviceVerificationCodeRequest\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x15\n\rclientVersion\x18\x02 \x01(\t\x12\x18\n\x10verificationCode\x18\x03 \x01(\t\x12\x19\n\x11messageSessionUid\x18\x04 \x01(\x0c\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x05 \x01(\x0c\"Y\n\x19SendSessionMessageRequest\x12\x19\n\x11messageSessionUid\x18\x01 \x01(\x0c\x12\x0f\n\x07\x63ommand\x18\x02 \x01(\t\x12\x10\n\x08username\x18\x03 \x01(\t\"M\n\x11GlobalUserAccount\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x12\n\naccountUid\x18\x02 \x01(\x0c\x12\x12\n\nregionName\x18\x03 \x01(\t\"7\n\x0f\x41\x63\x63ountUsername\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x12\n\ndateActive\x18\x02 \x01(\t\"P\n\x19SsoServiceProviderRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x15\n\rclientVersion\x18\x02 \x01(\t\x12\x0e\n\x06locale\x18\x03 \x01(\t\"a\n\x1aSsoServiceProviderResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05spUrl\x18\x02 \x01(\t\x12\x0f\n\x07isCloud\x18\x03 \x01(\x08\x12\x15\n\rclientVersion\x18\x04 \x01(\t\"4\n\x12UserSettingRequest\x12\x0f\n\x07setting\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"f\n\rThrottleState\x12*\n\x04type\x18\x01 \x01(\x0e\x32\x1c.Authentication.ThrottleType\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\x12\r\n\x05state\x18\x04 \x01(\x08\"\xb5\x01\n\x0eThrottleState2\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x16\n\x0ekeyDescription\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\x12\x18\n\x10valueDescription\x18\x04 \x01(\t\x12\x12\n\nidentifier\x18\x05 \x01(\t\x12\x0e\n\x06locked\x18\x06 \x01(\x08\x12\x1a\n\x12includedInAllClear\x18\x07 \x01(\x08\x12\x15\n\rexpireSeconds\x18\x08 \x01(\x05\"\x97\x01\n\x11\x44\x65viceInformation\x12\x10\n\x08\x64\x65viceId\x18\x01 \x01(\x03\x12\x12\n\ndeviceName\x18\x02 \x01(\t\x12\x15\n\rclientVersion\x18\x03 \x01(\t\x12\x11\n\tlastLogin\x18\x04 \x01(\x03\x12\x32\n\x0c\x64\x65viceStatus\x18\x05 \x01(\x0e\x32\x1c.Authentication.DeviceStatus\"*\n\x0bUserSetting\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08\".\n\x12UserDataKeyRequest\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x03(\x03\"\x80\x01\n\x1b\x45nterpriseUserIdDataKeyPair\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x18\n\x10\x65ncryptedDataKey\x18\x02 \x01(\x0c\x12-\n\x07keyType\x18\x03 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\"\x95\x01\n\x0bUserDataKey\x12\x0e\n\x06roleId\x18\x01 \x01(\x03\x12\x0f\n\x07roleKey\x18\x02 \x01(\x0c\x12\x12\n\nprivateKey\x18\x03 \x01(\t\x12Q\n\x1c\x65nterpriseUserIdDataKeyPairs\x18\x04 \x03(\x0b\x32+.Authentication.EnterpriseUserIdDataKeyPair\"z\n\x13UserDataKeyResponse\x12\x31\n\x0cuserDataKeys\x18\x01 \x03(\x0b\x32\x1b.Authentication.UserDataKey\x12\x14\n\x0c\x61\x63\x63\x65ssDenied\x18\x02 \x03(\x03\x12\x1a\n\x12noEncryptedDataKey\x18\x03 \x03(\x03\"H\n)MasterPasswordRecoveryVerificationRequest\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x01 \x01(\x0c\"U\n\x1cGetSecurityQuestionV3Request\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x01 \x01(\x0c\x12\x18\n\x10verificationCode\x18\x02 \x01(\t\"r\n\x1dGetSecurityQuestionV3Response\x12\x18\n\x10securityQuestion\x18\x01 \x01(\t\x12\x15\n\rbackupKeyDate\x18\x02 \x01(\x03\x12\x0c\n\x04salt\x18\x03 \x01(\x0c\x12\x12\n\niterations\x18\x04 \x01(\x05\"n\n\x19GetDataKeyBackupV3Request\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x01 \x01(\x0c\x12\x18\n\x10verificationCode\x18\x02 \x01(\t\x12\x1a\n\x12securityAnswerHash\x18\x03 \x01(\x0c\"v\n\rPasswordRules\x12\x10\n\x08ruleType\x18\x01 \x01(\t\x12\r\n\x05match\x18\x02 \x01(\x08\x12\x0f\n\x07pattern\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x0f\n\x07minimum\x18\x05 \x01(\x05\x12\r\n\x05value\x18\x06 \x01(\t\"\xc9\x02\n\x1aGetDataKeyBackupV3Response\x12\x15\n\rdataKeyBackup\x18\x01 \x01(\x0c\x12\x19\n\x11\x64\x61taKeyBackupDate\x18\x02 \x01(\x03\x12\x11\n\tpublicKey\x18\x03 \x01(\x0c\x12\x1b\n\x13\x65ncryptedPrivateKey\x18\x04 \x01(\x0c\x12\x11\n\tclientKey\x18\x05 \x01(\x0c\x12\x1d\n\x15\x65ncryptedSessionToken\x18\x06 \x01(\x0c\x12\x34\n\rpasswordRules\x18\x07 \x03(\x0b\x32\x1d.Authentication.PasswordRules\x12\x1a\n\x12passwordRulesIntro\x18\x08 \x01(\t\x12\x1f\n\x17minimumPbkdf2Iterations\x18\t \x01(\x05\x12$\n\x07keyType\x18\n \x01(\x0e\x32\x13.Enterprise.KeyType\")\n\x14GetPublicKeysRequest\x12\x11\n\tusernames\x18\x01 \x03(\t\"r\n\x11PublicKeyResponse\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x11\n\tpublicKey\x18\x02 \x01(\x0c\x12\x14\n\x0cpublicEccKey\x18\x03 \x01(\x0c\x12\x0f\n\x07message\x18\x04 \x01(\t\x12\x11\n\terrorCode\x18\x05 \x01(\t\"P\n\x15GetPublicKeysResponse\x12\x37\n\x0ckeyResponses\x18\x01 \x03(\x0b\x32!.Authentication.PublicKeyResponse\"F\n\x14SetEccKeyPairRequest\x12\x11\n\tpublicKey\x18\x01 \x01(\x0c\x12\x1b\n\x13\x65ncryptedPrivateKey\x18\x02 \x01(\x0c\"I\n\x15SetEccKeyPairsRequest\x12\x30\n\x08teamKeys\x18\x01 \x03(\x0b\x32\x1e.Authentication.TeamEccKeyPair\"R\n\x16SetEccKeyPairsResponse\x12\x38\n\x08teamKeys\x18\x01 \x03(\x0b\x32&.Authentication.TeamEccKeyPairResponse\"Q\n\x0eTeamEccKeyPair\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x11\n\tpublicKey\x18\x02 \x01(\x0c\x12\x1b\n\x13\x65ncryptedPrivateKey\x18\x03 \x01(\x0c\"X\n\x16TeamEccKeyPairResponse\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12-\n\x06status\x18\x02 \x01(\x0e\x32\x1d.Authentication.GenericStatus\"D\n\x17GetKsmPublicKeysRequest\x12\x11\n\tclientIds\x18\x01 \x03(\x0c\x12\x16\n\x0e\x63ontrollerUids\x18\x02 \x03(\x0c\"U\n\x17\x44\x65vicePublicKeyResponse\x12\x10\n\x08\x63lientId\x18\x01 \x01(\x0c\x12\x11\n\tpublicKey\x18\x02 \x01(\x0c\x12\x15\n\rcontrollerUid\x18\x03 \x01(\x0c\"Y\n\x18GetKsmPublicKeysResponse\x12=\n\x0ckeyResponses\x18\x01 \x03(\x0b\x32\'.Authentication.DevicePublicKeyResponse\"X\n\x13\x41\x64\x64\x41ppSharesRequest\x12\x14\n\x0c\x61ppRecordUid\x18\x01 \x01(\x0c\x12+\n\x06shares\x18\x02 \x03(\x0b\x32\x1b.Authentication.AppShareAdd\">\n\x16RemoveAppSharesRequest\x12\x14\n\x0c\x61ppRecordUid\x18\x01 \x01(\x0c\x12\x0e\n\x06shares\x18\x02 \x03(\x0c\"\x87\x01\n\x0b\x41ppShareAdd\x12\x11\n\tsecretUid\x18\x02 \x01(\x0c\x12\x37\n\tshareType\x18\x03 \x01(\x0e\x32$.Authentication.ApplicationShareType\x12\x1a\n\x12\x65ncryptedSecretKey\x18\x04 \x01(\x0c\x12\x10\n\x08\x65\x64itable\x18\x05 \x01(\x08\"\x89\x01\n\x08\x41ppShare\x12\x11\n\tsecretUid\x18\x01 \x01(\x0c\x12\x37\n\tshareType\x18\x02 \x01(\x0e\x32$.Authentication.ApplicationShareType\x12\x10\n\x08\x65\x64itable\x18\x03 \x01(\x08\x12\x11\n\tcreatedOn\x18\x04 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x05 \x01(\x0c\"\xd9\x01\n\x13\x41\x64\x64\x41ppClientRequest\x12\x14\n\x0c\x61ppRecordUid\x18\x01 \x01(\x0c\x12\x17\n\x0f\x65ncryptedAppKey\x18\x02 \x01(\x0c\x12\x10\n\x08\x63lientId\x18\x03 \x01(\x0c\x12\x0e\n\x06lockIp\x18\x04 \x01(\x08\x12\x1b\n\x13\x66irstAccessExpireOn\x18\x05 \x01(\x03\x12\x16\n\x0e\x61\x63\x63\x65ssExpireOn\x18\x06 \x01(\x03\x12\n\n\x02id\x18\x07 \x01(\t\x12\x30\n\rappClientType\x18\x08 \x01(\x0e\x32\x19.Enterprise.AppClientType\"@\n\x17RemoveAppClientsRequest\x12\x14\n\x0c\x61ppRecordUid\x18\x01 \x01(\x0c\x12\x0f\n\x07\x63lients\x18\x02 \x03(\x0c\"\x96\x01\n\x17\x41\x64\x64\x45xternalShareRequest\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x1a\n\x12\x65ncryptedRecordKey\x18\x02 \x01(\x0c\x12\x10\n\x08\x63lientId\x18\x03 \x01(\x0c\x12\x16\n\x0e\x61\x63\x63\x65ssExpireOn\x18\x04 \x01(\x03\x12\n\n\x02id\x18\x05 \x01(\t\x12\x16\n\x0eisSelfDestruct\x18\x06 \x01(\x08\"\x82\x02\n\tAppClient\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08\x63lientId\x18\x02 \x01(\x0c\x12\x11\n\tcreatedOn\x18\x03 \x01(\x03\x12\x13\n\x0b\x66irstAccess\x18\x04 \x01(\x03\x12\x12\n\nlastAccess\x18\x05 \x01(\x03\x12\x11\n\tpublicKey\x18\x06 \x01(\x0c\x12\x0e\n\x06lockIp\x18\x07 \x01(\x08\x12\x11\n\tipAddress\x18\x08 \x01(\t\x12\x1b\n\x13\x66irstAccessExpireOn\x18\t \x01(\x03\x12\x16\n\x0e\x61\x63\x63\x65ssExpireOn\x18\n \x01(\x03\x12\x30\n\rappClientType\x18\x0b \x01(\x0e\x32\x19.Enterprise.AppClientType\")\n\x11GetAppInfoRequest\x12\x14\n\x0c\x61ppRecordUid\x18\x01 \x03(\x0c\"\x8e\x01\n\x07\x41ppInfo\x12\x14\n\x0c\x61ppRecordUid\x18\x01 \x01(\x0c\x12(\n\x06shares\x18\x02 \x03(\x0b\x32\x18.Authentication.AppShare\x12*\n\x07\x63lients\x18\x03 \x03(\x0b\x32\x19.Authentication.AppClient\x12\x17\n\x0fisExternalShare\x18\x04 \x01(\x08\">\n\x12GetAppInfoResponse\x12(\n\x07\x61ppInfo\x18\x01 \x03(\x0b\x32\x17.Authentication.AppInfo\"\xd5\x01\n\x12\x41pplicationSummary\x12\x14\n\x0c\x61ppRecordUid\x18\x01 \x01(\x0c\x12\x12\n\nlastAccess\x18\x02 \x01(\x03\x12\x14\n\x0crecordShares\x18\x03 \x01(\x05\x12\x14\n\x0c\x66olderShares\x18\x04 \x01(\x05\x12\x15\n\rfolderRecords\x18\x05 \x01(\x05\x12\x13\n\x0b\x63lientCount\x18\x06 \x01(\x05\x12\x1a\n\x12\x65xpiredClientCount\x18\x07 \x01(\x05\x12\x10\n\x08username\x18\x08 \x01(\t\x12\x0f\n\x07\x61ppData\x18\t \x01(\x0c\"`\n\x1eGetApplicationsSummaryResponse\x12>\n\x12\x61pplicationSummary\x18\x01 \x03(\x0b\x32\".Authentication.ApplicationSummary\"/\n\x1bGetVerificationTokenRequest\x12\x10\n\x08username\x18\x01 \x01(\t\"B\n\x1cGetVerificationTokenResponse\x12\"\n\x1a\x65ncryptedVerificationToken\x18\x01 \x01(\x0c\"\'\n\x16SendShareInviteRequest\x12\r\n\x05\x65mail\x18\x01 \x01(\t\"\xc5\x01\n\x18TimeLimitedAccessRequest\x12\x12\n\naccountUid\x18\x01 \x03(\x0c\x12\x0f\n\x07teamUid\x18\x02 \x03(\x0c\x12\x11\n\trecordUid\x18\x03 \x03(\x0c\x12\x17\n\x0fsharedObjectUid\x18\x04 \x01(\x0c\x12\x44\n\x15timeLimitedAccessType\x18\x05 \x01(\x0e\x32%.Authentication.TimeLimitedAccessType\x12\x12\n\nexpiration\x18\x06 \x01(\x03\"7\n\x17TimeLimitedAccessStatus\x12\x0b\n\x03uid\x18\x01 \x01(\x0c\x12\x0f\n\x07message\x18\x02 \x01(\t\"\xf8\x01\n\x19TimeLimitedAccessResponse\x12\x10\n\x08revision\x18\x01 \x01(\x03\x12\x41\n\x10userAccessStatus\x18\x02 \x03(\x0b\x32\'.Authentication.TimeLimitedAccessStatus\x12\x41\n\x10teamAccessStatus\x18\x03 \x03(\x0b\x32\'.Authentication.TimeLimitedAccessStatus\x12\x43\n\x12recordAccessStatus\x18\x04 \x03(\x0b\x32\'.Authentication.TimeLimitedAccessStatus\"+\n\x16RequestDownloadRequest\x12\x11\n\tfileNames\x18\x01 \x03(\t\"g\n\x17RequestDownloadResponse\x12\x0e\n\x06result\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\x12+\n\tdownloads\x18\x03 \x03(\x0b\x32\x18.Authentication.Download\"D\n\x08\x44ownload\x12\x10\n\x08\x66ileName\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x19\n\x11successStatusCode\x18\x03 \x01(\x05\"#\n\x11\x44\x65leteUserRequest\x12\x0e\n\x06reason\x18\x01 \x01(\t\"\x84\x01\n\x1b\x43hangeMasterPasswordRequest\x12\x14\n\x0c\x61uthVerifier\x18\x01 \x01(\x0c\x12\x18\n\x10\x65ncryptionParams\x18\x02 \x01(\x0c\x12\x1b\n\x13\x66romServiceProvider\x18\x03 \x01(\x08\x12\x18\n\x10iterationsChange\x18\x04 \x01(\x08\"=\n\x1c\x43hangeMasterPasswordResponse\x12\x1d\n\x15\x65ncryptedSessionToken\x18\x01 \x01(\x0c\"Y\n\x1b\x41\x63\x63ountRecoverySetupRequest\x12 \n\x18recoveryEncryptedDataKey\x18\x01 \x01(\x0c\x12\x18\n\x10recoveryAuthHash\x18\x02 \x01(\x0c\"\xac\x01\n!AccountRecoveryVerifyCodeResponse\x12\x34\n\rbackupKeyType\x18\x01 \x01(\x0e\x32\x1d.Authentication.BackupKeyType\x12\x15\n\rbackupKeyDate\x18\x02 \x01(\x03\x12\x18\n\x10securityQuestion\x18\x03 \x01(\t\x12\x0c\n\x04salt\x18\x04 \x01(\x0c\x12\x12\n\niterations\x18\x05 \x01(\x05\",\n\x1b\x45mergencyAccessLoginRequest\x12\r\n\x05owner\x18\x01 \x01(\t\"\xb5\x01\n\x1c\x45mergencyAccessLoginResponse\x12\x14\n\x0csessionToken\x18\x01 \x01(\x0c\x12%\n\x07\x64\x61taKey\x18\x02 \x01(\x0b\x32\x14.Enterprise.TypedKey\x12+\n\rrsaPrivateKey\x18\x03 \x01(\x0b\x32\x14.Enterprise.TypedKey\x12+\n\reccPrivateKey\x18\x04 \x01(\x0b\x32\x14.Enterprise.TypedKey\"\xb2\x01\n\x0bUserTeamKey\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x18\n\x10\x65nterpriseUserId\x18\x03 \x01(\x03\x12\x1b\n\x13\x65ncryptedTeamKeyRSA\x18\x04 \x01(\x0c\x12\x1a\n\x12\x65ncryptedTeamKeyEC\x18\x05 \x01(\x0c\x12-\n\x06status\x18\x06 \x01(\x0e\x32\x1d.Authentication.GenericStatus\")\n\x16GenericRequestResponse\x12\x0f\n\x07request\x18\x01 \x03(\x0c*\xb9\x02\n\x11SupportedLanguage\x12\x0b\n\x07\x45NGLISH\x10\x00\x12\n\n\x06\x41RABIC\x10\x01\x12\x0b\n\x07\x42RITISH\x10\x02\x12\x0b\n\x07\x43HINESE\x10\x03\x12\x15\n\x11\x43HINESE_HONG_KONG\x10\x04\x12\x12\n\x0e\x43HINESE_TAIWAN\x10\x05\x12\t\n\x05\x44UTCH\x10\x06\x12\n\n\x06\x46RENCH\x10\x07\x12\n\n\x06GERMAN\x10\x08\x12\t\n\x05GREEK\x10\t\x12\n\n\x06HEBREW\x10\n\x12\x0b\n\x07ITALIAN\x10\x0b\x12\x0c\n\x08JAPANESE\x10\x0c\x12\n\n\x06KOREAN\x10\r\x12\n\n\x06POLISH\x10\x0e\x12\x0e\n\nPORTUGUESE\x10\x0f\x12\x15\n\x11PORTUGUESE_BRAZIL\x10\x10\x12\x0c\n\x08ROMANIAN\x10\x11\x12\x0b\n\x07RUSSIAN\x10\x12\x12\n\n\x06SLOVAK\x10\x13\x12\x0b\n\x07SPANISH\x10\x14*Z\n\tLoginType\x12\n\n\x06NORMAL\x10\x00\x12\x07\n\x03SSO\x10\x01\x12\x07\n\x03\x42IO\x10\x02\x12\r\n\tALTERNATE\x10\x03\x12\x0b\n\x07OFFLINE\x10\x04\x12\x13\n\x0f\x46ORGOT_PASSWORD\x10\x05*q\n\x0c\x44\x65viceStatus\x12\x19\n\x15\x44\x45VICE_NEEDS_APPROVAL\x10\x00\x12\r\n\tDEVICE_OK\x10\x01\x12\x1b\n\x17\x44\x45VICE_DISABLED_BY_USER\x10\x02\x12\x1a\n\x16\x44\x45VICE_LOCKED_BY_ADMIN\x10\x03*A\n\rLicenseStatus\x12\t\n\x05OTHER\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x01\x12\x0b\n\x07\x45XPIRED\x10\x02\x12\x0c\n\x08\x44ISABLED\x10\x03*7\n\x0b\x41\x63\x63ountType\x12\x0c\n\x08\x43ONSUMER\x10\x00\x12\n\n\x06\x46\x41MILY\x10\x01\x12\x0e\n\nENTERPRISE\x10\x02*\x9f\x02\n\x10SessionTokenType\x12\x12\n\x0eNO_RESTRICTION\x10\x00\x12\x14\n\x10\x41\x43\x43OUNT_RECOVERY\x10\x01\x12\x11\n\rSHARE_ACCOUNT\x10\x02\x12\x0c\n\x08PURCHASE\x10\x03\x12\x0c\n\x08RESTRICT\x10\x04\x12\x11\n\rACCEPT_INVITE\x10\x05\x12\x12\n\x0eSUPPORT_SERVER\x10\x06\x12\x17\n\x13\x45NTERPRISE_CREATION\x10\x07\x12\x1f\n\x1b\x45XPIRED_BUT_ALLOWED_TO_SYNC\x10\x08\x12\x18\n\x14\x41\x43\x43\x45PT_FAMILY_INVITE\x10\t\x12!\n\x1d\x45NTERPRISE_CREATION_PURCHASED\x10\n\x12\x14\n\x10\x45MERGENCY_ACCESS\x10\x0b*G\n\x07Version\x12\x13\n\x0finvalid_version\x10\x00\x12\x13\n\x0f\x64\x65\x66\x61ult_version\x10\x01\x12\x12\n\x0esecond_version\x10\x02*7\n\x1fMasterPasswordReentryActionType\x12\n\n\x06UNMASK\x10\x00\x12\x08\n\x04\x43OPY\x10\x01*l\n\x0bLoginMethod\x12\x17\n\x13INVALID_LOGINMETHOD\x10\x00\x12\x14\n\x10\x45XISTING_ACCOUNT\x10\x01\x12\x0e\n\nSSO_DOMAIN\x10\x02\x12\r\n\tAFTER_SSO\x10\x03\x12\x0f\n\x0bNEW_ACCOUNT\x10\x04*\xc7\x03\n\nLoginState\x12\x16\n\x12INVALID_LOGINSTATE\x10\x00\x12\x0e\n\nLOGGED_OUT\x10\x01\x12\x1c\n\x18\x44\x45VICE_APPROVAL_REQUIRED\x10\x02\x12\x11\n\rDEVICE_LOCKED\x10\x03\x12\x12\n\x0e\x41\x43\x43OUNT_LOCKED\x10\x04\x12\x19\n\x15\x44\x45VICE_ACCOUNT_LOCKED\x10\x05\x12\x0b\n\x07UPGRADE\x10\x06\x12\x13\n\x0fLICENSE_EXPIRED\x10\x07\x12\x13\n\x0fREGION_REDIRECT\x10\x08\x12\x16\n\x12REDIRECT_CLOUD_SSO\x10\t\x12\x17\n\x13REDIRECT_ONSITE_SSO\x10\n\x12\x10\n\x0cREQUIRES_2FA\x10\x0c\x12\x16\n\x12REQUIRES_AUTH_HASH\x10\r\x12\x15\n\x11REQUIRES_USERNAME\x10\x0e\x12\x19\n\x15\x41\x46TER_CLOUD_SSO_LOGIN\x10\x0f\x12\x1d\n\x19REQUIRES_ACCOUNT_CREATION\x10\x10\x12&\n\"REQUIRES_DEVICE_ENCRYPTED_DATA_KEY\x10\x11\x12\x17\n\x13LOGIN_TOKEN_EXPIRED\x10\x12\x12\r\n\tLOGGED_IN\x10\x63*k\n\x14\x45ncryptedDataKeyType\x12\n\n\x06NO_KEY\x10\x00\x12\x18\n\x14\x42Y_DEVICE_PUBLIC_KEY\x10\x01\x12\x0f\n\x0b\x42Y_PASSWORD\x10\x02\x12\x10\n\x0c\x42Y_ALTERNATE\x10\x03\x12\n\n\x06\x42Y_BIO\x10\x04*-\n\x0ePasswordMethod\x12\x0b\n\x07\x45NTERED\x10\x00\x12\x0e\n\nBIOMETRICS\x10\x01*\xb9\x01\n\x11TwoFactorPushType\x12\x14\n\x10TWO_FA_PUSH_NONE\x10\x00\x12\x13\n\x0fTWO_FA_PUSH_SMS\x10\x01\x12\x16\n\x12TWO_FA_PUSH_KEEPER\x10\x02\x12\x18\n\x14TWO_FA_PUSH_DUO_PUSH\x10\x03\x12\x18\n\x14TWO_FA_PUSH_DUO_TEXT\x10\x04\x12\x18\n\x14TWO_FA_PUSH_DUO_CALL\x10\x05\x12\x13\n\x0fTWO_FA_PUSH_DNA\x10\x06*\xc3\x01\n\x12TwoFactorValueType\x12\x14\n\x10TWO_FA_CODE_NONE\x10\x00\x12\x14\n\x10TWO_FA_CODE_TOTP\x10\x01\x12\x13\n\x0fTWO_FA_CODE_SMS\x10\x02\x12\x13\n\x0fTWO_FA_CODE_DUO\x10\x03\x12\x13\n\x0fTWO_FA_CODE_RSA\x10\x04\x12\x13\n\x0fTWO_FA_RESP_U2F\x10\x05\x12\x18\n\x14TWO_FA_RESP_WEBAUTHN\x10\x06\x12\x13\n\x0fTWO_FA_CODE_DNA\x10\x07*\xe1\x01\n\x14TwoFactorChannelType\x12\x12\n\x0eTWO_FA_CT_NONE\x10\x00\x12\x12\n\x0eTWO_FA_CT_TOTP\x10\x01\x12\x11\n\rTWO_FA_CT_SMS\x10\x02\x12\x11\n\rTWO_FA_CT_DUO\x10\x03\x12\x11\n\rTWO_FA_CT_RSA\x10\x04\x12\x14\n\x10TWO_FA_CT_BACKUP\x10\x05\x12\x11\n\rTWO_FA_CT_U2F\x10\x06\x12\x16\n\x12TWO_FA_CT_WEBAUTHN\x10\x07\x12\x14\n\x10TWO_FA_CT_KEEPER\x10\x08\x12\x11\n\rTWO_FA_CT_DNA\x10\t*\xab\x01\n\x13TwoFactorExpiration\x12\x1a\n\x16TWO_FA_EXP_IMMEDIATELY\x10\x00\x12\x18\n\x14TWO_FA_EXP_5_MINUTES\x10\x01\x12\x17\n\x13TWO_FA_EXP_12_HOURS\x10\x02\x12\x17\n\x13TWO_FA_EXP_24_HOURS\x10\x03\x12\x16\n\x12TWO_FA_EXP_30_DAYS\x10\x04\x12\x14\n\x10TWO_FA_EXP_NEVER\x10\x05*@\n\x0bLicenseType\x12\t\n\x05VAULT\x10\x00\x12\x08\n\x04\x43HAT\x10\x01\x12\x0b\n\x07STORAGE\x10\x02\x12\x0f\n\x0b\x42REACHWATCH\x10\x03*i\n\x0bObjectTypes\x12\n\n\x06RECORD\x10\x00\x12\x16\n\x12SHARED_FOLDER_USER\x10\x01\x12\x16\n\x12SHARED_FOLDER_TEAM\x10\x02\x12\x0f\n\x0bUSER_FOLDER\x10\x03\x12\r\n\tTEAM_USER\x10\x04*\xa1\x02\n\x13\x45ncryptedObjectType\x12\x13\n\x0f\x45OT_UNSPECIFIED\x10\x00\x12\x12\n\x0e\x45OT_RECORD_KEY\x10\x01\x12\x1e\n\x1a\x45OT_SHARED_FOLDER_USER_KEY\x10\x02\x12\x1e\n\x1a\x45OT_SHARED_FOLDER_TEAM_KEY\x10\x03\x12\x15\n\x11\x45OT_TEAM_USER_KEY\x10\x04\x12\x17\n\x13\x45OT_USER_FOLDER_KEY\x10\x05\x12\x15\n\x11\x45OT_SECURITY_DATA\x10\x06\x12%\n!EOT_SECURITY_DATA_MASTER_PASSWORD\x10\x07\x12\x1c\n\x18\x45OT_EMERGENCY_ACCESS_KEY\x10\x08\x12\x15\n\x11\x45OT_V2_RECORD_KEY\x10\t*M\n\x1bMasterPasswordReentryStatus\x12\x0e\n\nMP_UNKNOWN\x10\x00\x12\x0e\n\nMP_SUCCESS\x10\x01\x12\x0e\n\nMP_FAILURE\x10\x02*`\n\x1b\x41lternateAuthenticationType\x12\x1d\n\x19\x41LTERNATE_MASTER_PASSWORD\x10\x00\x12\r\n\tBIOMETRIC\x10\x01\x12\x13\n\x0f\x41\x43\x43OUNT_RECOVER\x10\x02*\x9a\x02\n\x0cThrottleType\x12\x1b\n\x17PASSWORD_RETRY_THROTTLE\x10\x00\x12\"\n\x1ePASSWORD_RETRY_LEGACY_THROTTLE\x10\x01\x12\x13\n\x0fTWO_FA_THROTTLE\x10\x02\x12\x1a\n\x16TWO_FA_LEGACY_THROTTLE\x10\x03\x12\x15\n\x11QA_RETRY_THROTTLE\x10\x04\x12\x1c\n\x18\x41\x43\x43OUNT_RECOVER_THROTTLE\x10\x05\x12.\n*VALIDATE_DEVICE_VERIFICATION_CODE_THROTTLE\x10\x06\x12\x33\n/VALIDATE_CREATE_USER_VERIFICATION_CODE_THROTTLE\x10\x07*H\n\x06Region\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x06\n\x02\x65u\x10\x01\x12\x06\n\x02us\x10\x02\x12\t\n\x05usgov\x10\x03\x12\x06\n\x02\x61u\x10\x04\x12\x06\n\x02jp\x10\x05\x12\x06\n\x02\x63\x61\x10\x06*D\n\x14\x41pplicationShareType\x12\x15\n\x11SHARE_TYPE_RECORD\x10\x00\x12\x15\n\x11SHARE_TYPE_FOLDER\x10\x01*\xa4\x01\n\x15TimeLimitedAccessType\x12$\n INVALID_TIME_LIMITED_ACCESS_TYPE\x10\x00\x12\x19\n\x15USER_ACCESS_TO_RECORD\x10\x01\x12\'\n#USER_OR_TEAM_ACCESS_TO_SHAREDFOLDER\x10\x02\x12!\n\x1dRECORD_ACCESS_TO_SHAREDFOLDER\x10\x03*<\n\rBackupKeyType\x12\x12\n\x0e\x42KT_SEC_ANSWER\x10\x00\x12\x17\n\x13\x42KT_PASSPHRASE_HASH\x10\x01*W\n\rGenericStatus\x12\x0b\n\x07SUCCESS\x10\x00\x12\x12\n\x0eINVALID_OBJECT\x10\x01\x12\x12\n\x0e\x41LREADY_EXISTS\x10\x02\x12\x11\n\rACCESS_DENIED\x10\x03\x42*\n\x18\x63om.keepersecurity.protoB\x0e\x41uthenticationb\x06proto3') _SUPPORTEDLANGUAGE = DESCRIPTOR.enum_types_by_name['SupportedLanguage'] SupportedLanguage = enum_type_wrapper.EnumTypeWrapper(_SUPPORTEDLANGUAGE) @@ -120,7 +120,8 @@ ENTERPRISE_CREATION = 7 EXPIRED_BUT_ALLOWED_TO_SYNC = 8 ACCEPT_FAMILY_INVITE = 9 -EMERGENCY_ACCESS = 10 +ENTERPRISE_CREATION_PURCHASED = 10 +EMERGENCY_ACCESS = 11 invalid_version = 0 default_version = 1 second_version = 2 @@ -206,6 +207,7 @@ EOT_SECURITY_DATA = 6 EOT_SECURITY_DATA_MASTER_PASSWORD = 7 EOT_EMERGENCY_ACCESS_KEY = 8 +EOT_V2_RECORD_KEY = 9 MP_UNKNOWN = 0 MP_SUCCESS = 1 MP_FAILURE = 2 @@ -1429,60 +1431,60 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\030com.keepersecurity.protoB\016Authentication' - _SUPPORTEDLANGUAGE._serialized_start=18289 - _SUPPORTEDLANGUAGE._serialized_end=18602 - _LOGINTYPE._serialized_start=18604 - _LOGINTYPE._serialized_end=18694 - _DEVICESTATUS._serialized_start=18696 - _DEVICESTATUS._serialized_end=18809 - _LICENSESTATUS._serialized_start=18811 - _LICENSESTATUS._serialized_end=18876 - _ACCOUNTTYPE._serialized_start=18878 - _ACCOUNTTYPE._serialized_end=18933 - _SESSIONTOKENTYPE._serialized_start=18936 - _SESSIONTOKENTYPE._serialized_end=19188 - _VERSION._serialized_start=19190 - _VERSION._serialized_end=19261 - _MASTERPASSWORDREENTRYACTIONTYPE._serialized_start=19263 - _MASTERPASSWORDREENTRYACTIONTYPE._serialized_end=19318 - _LOGINMETHOD._serialized_start=19320 - _LOGINMETHOD._serialized_end=19428 - _LOGINSTATE._serialized_start=19431 - _LOGINSTATE._serialized_end=19886 - _ENCRYPTEDDATAKEYTYPE._serialized_start=19888 - _ENCRYPTEDDATAKEYTYPE._serialized_end=19995 - _PASSWORDMETHOD._serialized_start=19997 - _PASSWORDMETHOD._serialized_end=20042 - _TWOFACTORPUSHTYPE._serialized_start=20045 - _TWOFACTORPUSHTYPE._serialized_end=20230 - _TWOFACTORVALUETYPE._serialized_start=20233 - _TWOFACTORVALUETYPE._serialized_end=20428 - _TWOFACTORCHANNELTYPE._serialized_start=20431 - _TWOFACTORCHANNELTYPE._serialized_end=20656 - _TWOFACTOREXPIRATION._serialized_start=20659 - _TWOFACTOREXPIRATION._serialized_end=20830 - _LICENSETYPE._serialized_start=20832 - _LICENSETYPE._serialized_end=20896 - _OBJECTTYPES._serialized_start=20898 - _OBJECTTYPES._serialized_end=21003 - _ENCRYPTEDOBJECTTYPE._serialized_start=21006 - _ENCRYPTEDOBJECTTYPE._serialized_end=21272 - _MASTERPASSWORDREENTRYSTATUS._serialized_start=21274 - _MASTERPASSWORDREENTRYSTATUS._serialized_end=21351 - _ALTERNATEAUTHENTICATIONTYPE._serialized_start=21353 - _ALTERNATEAUTHENTICATIONTYPE._serialized_end=21449 - _THROTTLETYPE._serialized_start=21452 - _THROTTLETYPE._serialized_end=21734 - _REGION._serialized_start=21736 - _REGION._serialized_end=21808 - _APPLICATIONSHARETYPE._serialized_start=21810 - _APPLICATIONSHARETYPE._serialized_end=21878 - _TIMELIMITEDACCESSTYPE._serialized_start=21881 - _TIMELIMITEDACCESSTYPE._serialized_end=22045 - _BACKUPKEYTYPE._serialized_start=22047 - _BACKUPKEYTYPE._serialized_end=22107 - _GENERICSTATUS._serialized_start=22109 - _GENERICSTATUS._serialized_end=22196 + _SUPPORTEDLANGUAGE._serialized_start=18351 + _SUPPORTEDLANGUAGE._serialized_end=18664 + _LOGINTYPE._serialized_start=18666 + _LOGINTYPE._serialized_end=18756 + _DEVICESTATUS._serialized_start=18758 + _DEVICESTATUS._serialized_end=18871 + _LICENSESTATUS._serialized_start=18873 + _LICENSESTATUS._serialized_end=18938 + _ACCOUNTTYPE._serialized_start=18940 + _ACCOUNTTYPE._serialized_end=18995 + _SESSIONTOKENTYPE._serialized_start=18998 + _SESSIONTOKENTYPE._serialized_end=19285 + _VERSION._serialized_start=19287 + _VERSION._serialized_end=19358 + _MASTERPASSWORDREENTRYACTIONTYPE._serialized_start=19360 + _MASTERPASSWORDREENTRYACTIONTYPE._serialized_end=19415 + _LOGINMETHOD._serialized_start=19417 + _LOGINMETHOD._serialized_end=19525 + _LOGINSTATE._serialized_start=19528 + _LOGINSTATE._serialized_end=19983 + _ENCRYPTEDDATAKEYTYPE._serialized_start=19985 + _ENCRYPTEDDATAKEYTYPE._serialized_end=20092 + _PASSWORDMETHOD._serialized_start=20094 + _PASSWORDMETHOD._serialized_end=20139 + _TWOFACTORPUSHTYPE._serialized_start=20142 + _TWOFACTORPUSHTYPE._serialized_end=20327 + _TWOFACTORVALUETYPE._serialized_start=20330 + _TWOFACTORVALUETYPE._serialized_end=20525 + _TWOFACTORCHANNELTYPE._serialized_start=20528 + _TWOFACTORCHANNELTYPE._serialized_end=20753 + _TWOFACTOREXPIRATION._serialized_start=20756 + _TWOFACTOREXPIRATION._serialized_end=20927 + _LICENSETYPE._serialized_start=20929 + _LICENSETYPE._serialized_end=20993 + _OBJECTTYPES._serialized_start=20995 + _OBJECTTYPES._serialized_end=21100 + _ENCRYPTEDOBJECTTYPE._serialized_start=21103 + _ENCRYPTEDOBJECTTYPE._serialized_end=21392 + _MASTERPASSWORDREENTRYSTATUS._serialized_start=21394 + _MASTERPASSWORDREENTRYSTATUS._serialized_end=21471 + _ALTERNATEAUTHENTICATIONTYPE._serialized_start=21473 + _ALTERNATEAUTHENTICATIONTYPE._serialized_end=21569 + _THROTTLETYPE._serialized_start=21572 + _THROTTLETYPE._serialized_end=21854 + _REGION._serialized_start=21856 + _REGION._serialized_end=21928 + _APPLICATIONSHARETYPE._serialized_start=21930 + _APPLICATIONSHARETYPE._serialized_end=21998 + _TIMELIMITEDACCESSTYPE._serialized_start=22001 + _TIMELIMITEDACCESSTYPE._serialized_end=22165 + _BACKUPKEYTYPE._serialized_start=22167 + _BACKUPKEYTYPE._serialized_end=22227 + _GENERICSTATUS._serialized_start=22229 + _GENERICSTATUS._serialized_end=22316 _APIREQUEST._serialized_start=55 _APIREQUEST._serialized_end=231 _APIREQUESTPAYLOAD._serialized_start=233 @@ -1494,289 +1496,289 @@ _AUTHREQUEST._serialized_start=457 _AUTHREQUEST._serialized_end=541 _NEWUSERMINIMUMPARAMS._serialized_start=544 - _NEWUSERMINIMUMPARAMS._serialized_end=715 - _PRELOGINREQUEST._serialized_start=718 - _PRELOGINREQUEST._serialized_end=855 - _LOGINREQUEST._serialized_start=858 - _LOGINREQUEST._serialized_end=1114 - _DEVICERESPONSE._serialized_start=1116 - _DEVICERESPONSE._serialized_end=1208 - _SALT._serialized_start=1210 - _SALT._serialized_end=1296 - _TWOFACTORCHANNEL._serialized_start=1298 - _TWOFACTORCHANNEL._serialized_end=1330 - _STARTLOGINREQUEST._serialized_start=1333 - _STARTLOGINREQUEST._serialized_end=1687 - _LOGINRESPONSE._serialized_start=1690 - _LOGINRESPONSE._serialized_end=2241 - _SSOUSERINFO._serialized_start=2244 - _SSOUSERINFO._serialized_end=2384 - _PRELOGINRESPONSE._serialized_start=2387 - _PRELOGINRESPONSE._serialized_end=2601 - _LOGINASUSERREQUEST._serialized_start=2603 - _LOGINASUSERREQUEST._serialized_end=2641 - _LOGINASUSERRESPONSE._serialized_start=2643 - _LOGINASUSERRESPONSE._serialized_end=2730 - _VALIDATEAUTHHASHREQUEST._serialized_start=2733 - _VALIDATEAUTHHASHREQUEST._serialized_end=2865 - _TWOFACTORCHANNELINFO._serialized_start=2868 - _TWOFACTORCHANNELINFO._serialized_end=3192 - _TWOFACTORDUOSTATUS._serialized_start=3194 - _TWOFACTORDUOSTATUS._serialized_end=3294 - _TWOFACTORADDREQUEST._serialized_start=3297 - _TWOFACTORADDREQUEST._serialized_end=3496 - _TWOFACTORRENAMEREQUEST._serialized_start=3498 - _TWOFACTORRENAMEREQUEST._serialized_end=3564 - _TWOFACTORADDRESPONSE._serialized_start=3566 - _TWOFACTORADDRESPONSE._serialized_end=3627 - _TWOFACTORDELETEREQUEST._serialized_start=3629 - _TWOFACTORDELETEREQUEST._serialized_end=3674 - _TWOFACTORLISTRESPONSE._serialized_start=3676 - _TWOFACTORLISTRESPONSE._serialized_end=3773 - _TWOFACTORUPDATEEXPIRATIONREQUEST._serialized_start=3775 - _TWOFACTORUPDATEEXPIRATIONREQUEST._serialized_end=3864 - _TWOFACTORVALIDATEREQUEST._serialized_start=3867 - _TWOFACTORVALIDATEREQUEST._serialized_end=4068 - _TWOFACTORVALIDATERESPONSE._serialized_start=4070 - _TWOFACTORVALIDATERESPONSE._serialized_end=4126 - _TWOFACTORSENDPUSHREQUEST._serialized_start=4129 - _TWOFACTORSENDPUSHREQUEST._serialized_end=4313 - _LICENSE._serialized_start=4316 - _LICENSE._serialized_end=4447 - _OWNERLESSRECORD._serialized_start=4449 - _OWNERLESSRECORD._serialized_end=4520 - _OWNERLESSRECORDS._serialized_start=4522 - _OWNERLESSRECORDS._serialized_end=4598 - _USERAUTHREQUEST._serialized_start=4601 - _USERAUTHREQUEST._serialized_end=4816 - _UIDREQUEST._serialized_start=4818 - _UIDREQUEST._serialized_end=4843 - _DEVICEUPDATEREQUEST._serialized_start=4846 - _DEVICEUPDATEREQUEST._serialized_end=5017 - _REGISTERDEVICEINREGIONREQUEST._serialized_start=5020 - _REGISTERDEVICEINREGIONREQUEST._serialized_end=5149 - _REGISTRATIONREQUEST._serialized_start=5152 - _REGISTRATIONREQUEST._serialized_end=5528 - _CONVERTUSERTOV3REQUEST._serialized_start=5531 - _CONVERTUSERTOV3REQUEST._serialized_end=5739 - _REVISIONRESPONSE._serialized_start=5741 - _REVISIONRESPONSE._serialized_end=5777 - _CHANGEEMAILREQUEST._serialized_start=5779 - _CHANGEEMAILREQUEST._serialized_end=5817 - _CHANGEEMAILRESPONSE._serialized_start=5819 - _CHANGEEMAILRESPONSE._serialized_end=5875 - _EMAILVERIFICATIONLINKRESPONSE._serialized_start=5877 - _EMAILVERIFICATIONLINKRESPONSE._serialized_end=5931 - _SECURITYDATA._serialized_start=5933 - _SECURITYDATA._serialized_end=5974 - _SECURITYDATAREQUEST._serialized_start=5977 - _SECURITYDATAREQUEST._serialized_end=6176 - _SECURITYREPORTINCREMENTALDATA._serialized_start=6179 - _SECURITYREPORTINCREMENTALDATA._serialized_end=6486 - _SECURITYREPORT._serialized_start=6489 - _SECURITYREPORT._serialized_end=6776 - _SECURITYREPORTSAVEREQUEST._serialized_start=6778 - _SECURITYREPORTSAVEREQUEST._serialized_end=6861 - _SECURITYREPORTREQUEST._serialized_start=6863 - _SECURITYREPORTREQUEST._serialized_end=6904 - _SECURITYREPORTRESPONSE._serialized_start=6907 - _SECURITYREPORTRESPONSE._serialized_end=7124 - _REUSEDPASSWORDSREQUEST._serialized_start=7126 - _REUSEDPASSWORDSREQUEST._serialized_end=7165 - _SUMMARYCONSOLEREPORT._serialized_start=7167 - _SUMMARYCONSOLEREPORT._serialized_end=7229 - _CHANGETOKEYTYPEONE._serialized_start=7231 - _CHANGETOKEYTYPEONE._serialized_end=7355 - _CHANGETOKEYTYPEONEREQUEST._serialized_start=7357 - _CHANGETOKEYTYPEONEREQUEST._serialized_end=7448 - _CHANGETOKEYTYPEONESTATUS._serialized_start=7450 - _CHANGETOKEYTYPEONESTATUS._serialized_end=7535 - _CHANGETOKEYTYPEONERESPONSE._serialized_start=7537 - _CHANGETOKEYTYPEONERESPONSE._serialized_end=7641 - _GETCHANGEKEYTYPESREQUEST._serialized_start=7644 - _GETCHANGEKEYTYPESREQUEST._serialized_end=7829 - _GETCHANGEKEYTYPESRESPONSE._serialized_start=7832 - _GETCHANGEKEYTYPESRESPONSE._serialized_end=7962 - _ALLOWEDKEYTYPES._serialized_start=7965 - _ALLOWEDKEYTYPES._serialized_end=8094 - _CHANGEKEYTYPES._serialized_start=8096 - _CHANGEKEYTYPES._serialized_end=8157 - _CHANGEKEYTYPE._serialized_start=8160 - _CHANGEKEYTYPE._serialized_end=8374 - _SETKEY._serialized_start=8376 - _SETKEY._serialized_end=8409 - _SETKEYREQUEST._serialized_start=8411 - _SETKEYREQUEST._serialized_end=8464 - _CREATEUSERREQUEST._serialized_start=8467 - _CREATEUSERREQUEST._serialized_end=9125 - _NODEENFORCEMENTADDORUPDATEREQUEST._serialized_start=9127 - _NODEENFORCEMENTADDORUPDATEREQUEST._serialized_end=9214 - _NODEENFORCEMENTREMOVEREQUEST._serialized_start=9216 - _NODEENFORCEMENTREMOVEREQUEST._serialized_end=9283 - _APIREQUESTBYKEY._serialized_start=9286 - _APIREQUESTBYKEY._serialized_end=9445 - _APIREQUESTBYKATOKAKEY._serialized_start=9448 - _APIREQUESTBYKATOKAKEY._serialized_end=9647 - _MEMCACHEREQUEST._serialized_start=9649 - _MEMCACHEREQUEST._serialized_end=9695 - _MEMCACHERESPONSE._serialized_start=9697 - _MEMCACHERESPONSE._serialized_end=9743 - _MASTERPASSWORDREENTRYREQUEST._serialized_start=9745 - _MASTERPASSWORDREENTRYREQUEST._serialized_end=9864 - _MASTERPASSWORDREENTRYRESPONSE._serialized_start=9866 - _MASTERPASSWORDREENTRYRESPONSE._serialized_end=9958 - _DEVICEREGISTRATIONREQUEST._serialized_start=9960 - _DEVICEREGISTRATIONREQUEST._serialized_end=10055 - _DEVICEVERIFICATIONREQUEST._serialized_start=10058 - _DEVICEVERIFICATIONREQUEST._serialized_end=10212 - _DEVICEVERIFICATIONRESPONSE._serialized_start=10215 - _DEVICEVERIFICATIONRESPONSE._serialized_end=10393 - _DEVICEAPPROVALREQUEST._serialized_start=10396 - _DEVICEAPPROVALREQUEST._serialized_end=10596 - _DEVICEAPPROVALRESPONSE._serialized_start=10598 - _DEVICEAPPROVALRESPONSE._serialized_end=10655 - _APPROVEDEVICEREQUEST._serialized_start=10657 - _APPROVEDEVICEREQUEST._serialized_end=10783 - _ENTERPRISEUSERALIASREQUEST._serialized_start=10785 - _ENTERPRISEUSERALIASREQUEST._serialized_end=10854 - _ENTERPRISEUSERADDALIASREQUEST._serialized_start=10856 - _ENTERPRISEUSERADDALIASREQUEST._serialized_end=10945 - _ENTERPRISEUSERADDALIASREQUESTV2._serialized_start=10947 - _ENTERPRISEUSERADDALIASREQUESTV2._serialized_end=11066 - _ENTERPRISEUSERADDALIASSTATUS._serialized_start=11068 - _ENTERPRISEUSERADDALIASSTATUS._serialized_end=11140 - _ENTERPRISEUSERADDALIASRESPONSE._serialized_start=11142 - _ENTERPRISEUSERADDALIASRESPONSE._serialized_end=11236 - _DEVICE._serialized_start=11238 - _DEVICE._serialized_end=11276 - _REGISTERDEVICEDATAKEYREQUEST._serialized_start=11278 - _REGISTERDEVICEDATAKEYREQUEST._serialized_end=11370 - _VALIDATECREATEUSERVERIFICATIONCODEREQUEST._serialized_start=11372 - _VALIDATECREATEUSERVERIFICATIONCODEREQUEST._serialized_end=11482 - _VALIDATEDEVICEVERIFICATIONCODEREQUEST._serialized_start=11485 - _VALIDATEDEVICEVERIFICATIONCODEREQUEST._serialized_end=11648 - _SENDSESSIONMESSAGEREQUEST._serialized_start=11650 - _SENDSESSIONMESSAGEREQUEST._serialized_end=11739 - _GLOBALUSERACCOUNT._serialized_start=11741 - _GLOBALUSERACCOUNT._serialized_end=11818 - _ACCOUNTUSERNAME._serialized_start=11820 - _ACCOUNTUSERNAME._serialized_end=11875 - _SSOSERVICEPROVIDERREQUEST._serialized_start=11877 - _SSOSERVICEPROVIDERREQUEST._serialized_end=11957 - _SSOSERVICEPROVIDERRESPONSE._serialized_start=11959 - _SSOSERVICEPROVIDERRESPONSE._serialized_end=12056 - _USERSETTINGREQUEST._serialized_start=12058 - _USERSETTINGREQUEST._serialized_end=12110 - _THROTTLESTATE._serialized_start=12112 - _THROTTLESTATE._serialized_end=12214 - _THROTTLESTATE2._serialized_start=12217 - _THROTTLESTATE2._serialized_end=12398 - _DEVICEINFORMATION._serialized_start=12401 - _DEVICEINFORMATION._serialized_end=12552 - _USERSETTING._serialized_start=12554 - _USERSETTING._serialized_end=12596 - _USERDATAKEYREQUEST._serialized_start=12598 - _USERDATAKEYREQUEST._serialized_end=12644 - _ENTERPRISEUSERIDDATAKEYPAIR._serialized_start=12647 - _ENTERPRISEUSERIDDATAKEYPAIR._serialized_end=12775 - _USERDATAKEY._serialized_start=12778 - _USERDATAKEY._serialized_end=12927 - _USERDATAKEYRESPONSE._serialized_start=12929 - _USERDATAKEYRESPONSE._serialized_end=13051 - _MASTERPASSWORDRECOVERYVERIFICATIONREQUEST._serialized_start=13053 - _MASTERPASSWORDRECOVERYVERIFICATIONREQUEST._serialized_end=13125 - _GETSECURITYQUESTIONV3REQUEST._serialized_start=13127 - _GETSECURITYQUESTIONV3REQUEST._serialized_end=13212 - _GETSECURITYQUESTIONV3RESPONSE._serialized_start=13214 - _GETSECURITYQUESTIONV3RESPONSE._serialized_end=13328 - _GETDATAKEYBACKUPV3REQUEST._serialized_start=13330 - _GETDATAKEYBACKUPV3REQUEST._serialized_end=13440 - _PASSWORDRULES._serialized_start=13442 - _PASSWORDRULES._serialized_end=13560 - _GETDATAKEYBACKUPV3RESPONSE._serialized_start=13563 - _GETDATAKEYBACKUPV3RESPONSE._serialized_end=13854 - _GETPUBLICKEYSREQUEST._serialized_start=13856 - _GETPUBLICKEYSREQUEST._serialized_end=13897 - _PUBLICKEYRESPONSE._serialized_start=13899 - _PUBLICKEYRESPONSE._serialized_end=14013 - _GETPUBLICKEYSRESPONSE._serialized_start=14015 - _GETPUBLICKEYSRESPONSE._serialized_end=14095 - _SETECCKEYPAIRREQUEST._serialized_start=14097 - _SETECCKEYPAIRREQUEST._serialized_end=14167 - _SETECCKEYPAIRSREQUEST._serialized_start=14169 - _SETECCKEYPAIRSREQUEST._serialized_end=14242 - _SETECCKEYPAIRSRESPONSE._serialized_start=14244 - _SETECCKEYPAIRSRESPONSE._serialized_end=14326 - _TEAMECCKEYPAIR._serialized_start=14328 - _TEAMECCKEYPAIR._serialized_end=14409 - _TEAMECCKEYPAIRRESPONSE._serialized_start=14411 - _TEAMECCKEYPAIRRESPONSE._serialized_end=14499 - _GETKSMPUBLICKEYSREQUEST._serialized_start=14501 - _GETKSMPUBLICKEYSREQUEST._serialized_end=14569 - _DEVICEPUBLICKEYRESPONSE._serialized_start=14571 - _DEVICEPUBLICKEYRESPONSE._serialized_end=14656 - _GETKSMPUBLICKEYSRESPONSE._serialized_start=14658 - _GETKSMPUBLICKEYSRESPONSE._serialized_end=14747 - _ADDAPPSHARESREQUEST._serialized_start=14749 - _ADDAPPSHARESREQUEST._serialized_end=14837 - _REMOVEAPPSHARESREQUEST._serialized_start=14839 - _REMOVEAPPSHARESREQUEST._serialized_end=14901 - _APPSHAREADD._serialized_start=14904 - _APPSHAREADD._serialized_end=15039 - _APPSHARE._serialized_start=15042 - _APPSHARE._serialized_end=15179 - _ADDAPPCLIENTREQUEST._serialized_start=15182 - _ADDAPPCLIENTREQUEST._serialized_end=15399 - _REMOVEAPPCLIENTSREQUEST._serialized_start=15401 - _REMOVEAPPCLIENTSREQUEST._serialized_end=15465 - _ADDEXTERNALSHAREREQUEST._serialized_start=15468 - _ADDEXTERNALSHAREREQUEST._serialized_end=15618 - _APPCLIENT._serialized_start=15621 - _APPCLIENT._serialized_end=15879 - _GETAPPINFOREQUEST._serialized_start=15881 - _GETAPPINFOREQUEST._serialized_end=15922 - _APPINFO._serialized_start=15925 - _APPINFO._serialized_end=16067 - _GETAPPINFORESPONSE._serialized_start=16069 - _GETAPPINFORESPONSE._serialized_end=16131 - _APPLICATIONSUMMARY._serialized_start=16134 - _APPLICATIONSUMMARY._serialized_end=16347 - _GETAPPLICATIONSSUMMARYRESPONSE._serialized_start=16349 - _GETAPPLICATIONSSUMMARYRESPONSE._serialized_end=16445 - _GETVERIFICATIONTOKENREQUEST._serialized_start=16447 - _GETVERIFICATIONTOKENREQUEST._serialized_end=16494 - _GETVERIFICATIONTOKENRESPONSE._serialized_start=16496 - _GETVERIFICATIONTOKENRESPONSE._serialized_end=16562 - _SENDSHAREINVITEREQUEST._serialized_start=16564 - _SENDSHAREINVITEREQUEST._serialized_end=16603 - _TIMELIMITEDACCESSREQUEST._serialized_start=16606 - _TIMELIMITEDACCESSREQUEST._serialized_end=16803 - _TIMELIMITEDACCESSSTATUS._serialized_start=16805 - _TIMELIMITEDACCESSSTATUS._serialized_end=16860 - _TIMELIMITEDACCESSRESPONSE._serialized_start=16863 - _TIMELIMITEDACCESSRESPONSE._serialized_end=17111 - _REQUESTDOWNLOADREQUEST._serialized_start=17113 - _REQUESTDOWNLOADREQUEST._serialized_end=17156 - _REQUESTDOWNLOADRESPONSE._serialized_start=17158 - _REQUESTDOWNLOADRESPONSE._serialized_end=17261 - _DOWNLOAD._serialized_start=17263 - _DOWNLOAD._serialized_end=17331 - _DELETEUSERREQUEST._serialized_start=17333 - _DELETEUSERREQUEST._serialized_end=17368 - _CHANGEMASTERPASSWORDREQUEST._serialized_start=17371 - _CHANGEMASTERPASSWORDREQUEST._serialized_end=17503 - _CHANGEMASTERPASSWORDRESPONSE._serialized_start=17505 - _CHANGEMASTERPASSWORDRESPONSE._serialized_end=17566 - _ACCOUNTRECOVERYSETUPREQUEST._serialized_start=17568 - _ACCOUNTRECOVERYSETUPREQUEST._serialized_end=17657 - _ACCOUNTRECOVERYVERIFYCODERESPONSE._serialized_start=17660 - _ACCOUNTRECOVERYVERIFYCODERESPONSE._serialized_end=17832 - _EMERGENCYACCESSLOGINREQUEST._serialized_start=17834 - _EMERGENCYACCESSLOGINREQUEST._serialized_end=17878 - _EMERGENCYACCESSLOGINRESPONSE._serialized_start=17881 - _EMERGENCYACCESSLOGINRESPONSE._serialized_end=18062 - _USERTEAMKEY._serialized_start=18065 - _USERTEAMKEY._serialized_end=18243 - _GENERICREQUESTRESPONSE._serialized_start=18245 - _GENERICREQUESTRESPONSE._serialized_end=18286 + _NEWUSERMINIMUMPARAMS._serialized_end=739 + _PRELOGINREQUEST._serialized_start=742 + _PRELOGINREQUEST._serialized_end=879 + _LOGINREQUEST._serialized_start=882 + _LOGINREQUEST._serialized_end=1138 + _DEVICERESPONSE._serialized_start=1140 + _DEVICERESPONSE._serialized_end=1232 + _SALT._serialized_start=1234 + _SALT._serialized_end=1320 + _TWOFACTORCHANNEL._serialized_start=1322 + _TWOFACTORCHANNEL._serialized_end=1354 + _STARTLOGINREQUEST._serialized_start=1357 + _STARTLOGINREQUEST._serialized_end=1711 + _LOGINRESPONSE._serialized_start=1714 + _LOGINRESPONSE._serialized_end=2265 + _SSOUSERINFO._serialized_start=2268 + _SSOUSERINFO._serialized_end=2408 + _PRELOGINRESPONSE._serialized_start=2411 + _PRELOGINRESPONSE._serialized_end=2625 + _LOGINASUSERREQUEST._serialized_start=2627 + _LOGINASUSERREQUEST._serialized_end=2665 + _LOGINASUSERRESPONSE._serialized_start=2667 + _LOGINASUSERRESPONSE._serialized_end=2754 + _VALIDATEAUTHHASHREQUEST._serialized_start=2757 + _VALIDATEAUTHHASHREQUEST._serialized_end=2889 + _TWOFACTORCHANNELINFO._serialized_start=2892 + _TWOFACTORCHANNELINFO._serialized_end=3216 + _TWOFACTORDUOSTATUS._serialized_start=3218 + _TWOFACTORDUOSTATUS._serialized_end=3318 + _TWOFACTORADDREQUEST._serialized_start=3321 + _TWOFACTORADDREQUEST._serialized_end=3520 + _TWOFACTORRENAMEREQUEST._serialized_start=3522 + _TWOFACTORRENAMEREQUEST._serialized_end=3588 + _TWOFACTORADDRESPONSE._serialized_start=3590 + _TWOFACTORADDRESPONSE._serialized_end=3651 + _TWOFACTORDELETEREQUEST._serialized_start=3653 + _TWOFACTORDELETEREQUEST._serialized_end=3698 + _TWOFACTORLISTRESPONSE._serialized_start=3700 + _TWOFACTORLISTRESPONSE._serialized_end=3797 + _TWOFACTORUPDATEEXPIRATIONREQUEST._serialized_start=3799 + _TWOFACTORUPDATEEXPIRATIONREQUEST._serialized_end=3888 + _TWOFACTORVALIDATEREQUEST._serialized_start=3891 + _TWOFACTORVALIDATEREQUEST._serialized_end=4092 + _TWOFACTORVALIDATERESPONSE._serialized_start=4094 + _TWOFACTORVALIDATERESPONSE._serialized_end=4150 + _TWOFACTORSENDPUSHREQUEST._serialized_start=4153 + _TWOFACTORSENDPUSHREQUEST._serialized_end=4337 + _LICENSE._serialized_start=4340 + _LICENSE._serialized_end=4471 + _OWNERLESSRECORD._serialized_start=4473 + _OWNERLESSRECORD._serialized_end=4544 + _OWNERLESSRECORDS._serialized_start=4546 + _OWNERLESSRECORDS._serialized_end=4622 + _USERAUTHREQUEST._serialized_start=4625 + _USERAUTHREQUEST._serialized_end=4840 + _UIDREQUEST._serialized_start=4842 + _UIDREQUEST._serialized_end=4867 + _DEVICEUPDATEREQUEST._serialized_start=4870 + _DEVICEUPDATEREQUEST._serialized_end=5041 + _REGISTERDEVICEINREGIONREQUEST._serialized_start=5044 + _REGISTERDEVICEINREGIONREQUEST._serialized_end=5173 + _REGISTRATIONREQUEST._serialized_start=5176 + _REGISTRATIONREQUEST._serialized_end=5552 + _CONVERTUSERTOV3REQUEST._serialized_start=5555 + _CONVERTUSERTOV3REQUEST._serialized_end=5763 + _REVISIONRESPONSE._serialized_start=5765 + _REVISIONRESPONSE._serialized_end=5801 + _CHANGEEMAILREQUEST._serialized_start=5803 + _CHANGEEMAILREQUEST._serialized_end=5841 + _CHANGEEMAILRESPONSE._serialized_start=5843 + _CHANGEEMAILRESPONSE._serialized_end=5899 + _EMAILVERIFICATIONLINKRESPONSE._serialized_start=5901 + _EMAILVERIFICATIONLINKRESPONSE._serialized_end=5955 + _SECURITYDATA._serialized_start=5957 + _SECURITYDATA._serialized_end=5998 + _SECURITYDATAREQUEST._serialized_start=6001 + _SECURITYDATAREQUEST._serialized_end=6200 + _SECURITYREPORTINCREMENTALDATA._serialized_start=6203 + _SECURITYREPORTINCREMENTALDATA._serialized_end=6510 + _SECURITYREPORT._serialized_start=6513 + _SECURITYREPORT._serialized_end=6800 + _SECURITYREPORTSAVEREQUEST._serialized_start=6802 + _SECURITYREPORTSAVEREQUEST._serialized_end=6885 + _SECURITYREPORTREQUEST._serialized_start=6887 + _SECURITYREPORTREQUEST._serialized_end=6928 + _SECURITYREPORTRESPONSE._serialized_start=6931 + _SECURITYREPORTRESPONSE._serialized_end=7148 + _REUSEDPASSWORDSREQUEST._serialized_start=7150 + _REUSEDPASSWORDSREQUEST._serialized_end=7189 + _SUMMARYCONSOLEREPORT._serialized_start=7191 + _SUMMARYCONSOLEREPORT._serialized_end=7253 + _CHANGETOKEYTYPEONE._serialized_start=7255 + _CHANGETOKEYTYPEONE._serialized_end=7379 + _CHANGETOKEYTYPEONEREQUEST._serialized_start=7381 + _CHANGETOKEYTYPEONEREQUEST._serialized_end=7472 + _CHANGETOKEYTYPEONESTATUS._serialized_start=7474 + _CHANGETOKEYTYPEONESTATUS._serialized_end=7559 + _CHANGETOKEYTYPEONERESPONSE._serialized_start=7561 + _CHANGETOKEYTYPEONERESPONSE._serialized_end=7665 + _GETCHANGEKEYTYPESREQUEST._serialized_start=7668 + _GETCHANGEKEYTYPESREQUEST._serialized_end=7853 + _GETCHANGEKEYTYPESRESPONSE._serialized_start=7856 + _GETCHANGEKEYTYPESRESPONSE._serialized_end=7986 + _ALLOWEDKEYTYPES._serialized_start=7989 + _ALLOWEDKEYTYPES._serialized_end=8118 + _CHANGEKEYTYPES._serialized_start=8120 + _CHANGEKEYTYPES._serialized_end=8181 + _CHANGEKEYTYPE._serialized_start=8184 + _CHANGEKEYTYPE._serialized_end=8398 + _SETKEY._serialized_start=8400 + _SETKEY._serialized_end=8433 + _SETKEYREQUEST._serialized_start=8435 + _SETKEYREQUEST._serialized_end=8488 + _CREATEUSERREQUEST._serialized_start=8491 + _CREATEUSERREQUEST._serialized_end=9149 + _NODEENFORCEMENTADDORUPDATEREQUEST._serialized_start=9151 + _NODEENFORCEMENTADDORUPDATEREQUEST._serialized_end=9238 + _NODEENFORCEMENTREMOVEREQUEST._serialized_start=9240 + _NODEENFORCEMENTREMOVEREQUEST._serialized_end=9307 + _APIREQUESTBYKEY._serialized_start=9310 + _APIREQUESTBYKEY._serialized_end=9469 + _APIREQUESTBYKATOKAKEY._serialized_start=9472 + _APIREQUESTBYKATOKAKEY._serialized_end=9671 + _MEMCACHEREQUEST._serialized_start=9673 + _MEMCACHEREQUEST._serialized_end=9719 + _MEMCACHERESPONSE._serialized_start=9721 + _MEMCACHERESPONSE._serialized_end=9767 + _MASTERPASSWORDREENTRYREQUEST._serialized_start=9769 + _MASTERPASSWORDREENTRYREQUEST._serialized_end=9888 + _MASTERPASSWORDREENTRYRESPONSE._serialized_start=9890 + _MASTERPASSWORDREENTRYRESPONSE._serialized_end=9982 + _DEVICEREGISTRATIONREQUEST._serialized_start=9984 + _DEVICEREGISTRATIONREQUEST._serialized_end=10079 + _DEVICEVERIFICATIONREQUEST._serialized_start=10082 + _DEVICEVERIFICATIONREQUEST._serialized_end=10236 + _DEVICEVERIFICATIONRESPONSE._serialized_start=10239 + _DEVICEVERIFICATIONRESPONSE._serialized_end=10417 + _DEVICEAPPROVALREQUEST._serialized_start=10420 + _DEVICEAPPROVALREQUEST._serialized_end=10620 + _DEVICEAPPROVALRESPONSE._serialized_start=10622 + _DEVICEAPPROVALRESPONSE._serialized_end=10679 + _APPROVEDEVICEREQUEST._serialized_start=10681 + _APPROVEDEVICEREQUEST._serialized_end=10807 + _ENTERPRISEUSERALIASREQUEST._serialized_start=10809 + _ENTERPRISEUSERALIASREQUEST._serialized_end=10878 + _ENTERPRISEUSERADDALIASREQUEST._serialized_start=10880 + _ENTERPRISEUSERADDALIASREQUEST._serialized_end=10969 + _ENTERPRISEUSERADDALIASREQUESTV2._serialized_start=10971 + _ENTERPRISEUSERADDALIASREQUESTV2._serialized_end=11090 + _ENTERPRISEUSERADDALIASSTATUS._serialized_start=11092 + _ENTERPRISEUSERADDALIASSTATUS._serialized_end=11164 + _ENTERPRISEUSERADDALIASRESPONSE._serialized_start=11166 + _ENTERPRISEUSERADDALIASRESPONSE._serialized_end=11260 + _DEVICE._serialized_start=11262 + _DEVICE._serialized_end=11300 + _REGISTERDEVICEDATAKEYREQUEST._serialized_start=11302 + _REGISTERDEVICEDATAKEYREQUEST._serialized_end=11394 + _VALIDATECREATEUSERVERIFICATIONCODEREQUEST._serialized_start=11396 + _VALIDATECREATEUSERVERIFICATIONCODEREQUEST._serialized_end=11506 + _VALIDATEDEVICEVERIFICATIONCODEREQUEST._serialized_start=11509 + _VALIDATEDEVICEVERIFICATIONCODEREQUEST._serialized_end=11672 + _SENDSESSIONMESSAGEREQUEST._serialized_start=11674 + _SENDSESSIONMESSAGEREQUEST._serialized_end=11763 + _GLOBALUSERACCOUNT._serialized_start=11765 + _GLOBALUSERACCOUNT._serialized_end=11842 + _ACCOUNTUSERNAME._serialized_start=11844 + _ACCOUNTUSERNAME._serialized_end=11899 + _SSOSERVICEPROVIDERREQUEST._serialized_start=11901 + _SSOSERVICEPROVIDERREQUEST._serialized_end=11981 + _SSOSERVICEPROVIDERRESPONSE._serialized_start=11983 + _SSOSERVICEPROVIDERRESPONSE._serialized_end=12080 + _USERSETTINGREQUEST._serialized_start=12082 + _USERSETTINGREQUEST._serialized_end=12134 + _THROTTLESTATE._serialized_start=12136 + _THROTTLESTATE._serialized_end=12238 + _THROTTLESTATE2._serialized_start=12241 + _THROTTLESTATE2._serialized_end=12422 + _DEVICEINFORMATION._serialized_start=12425 + _DEVICEINFORMATION._serialized_end=12576 + _USERSETTING._serialized_start=12578 + _USERSETTING._serialized_end=12620 + _USERDATAKEYREQUEST._serialized_start=12622 + _USERDATAKEYREQUEST._serialized_end=12668 + _ENTERPRISEUSERIDDATAKEYPAIR._serialized_start=12671 + _ENTERPRISEUSERIDDATAKEYPAIR._serialized_end=12799 + _USERDATAKEY._serialized_start=12802 + _USERDATAKEY._serialized_end=12951 + _USERDATAKEYRESPONSE._serialized_start=12953 + _USERDATAKEYRESPONSE._serialized_end=13075 + _MASTERPASSWORDRECOVERYVERIFICATIONREQUEST._serialized_start=13077 + _MASTERPASSWORDRECOVERYVERIFICATIONREQUEST._serialized_end=13149 + _GETSECURITYQUESTIONV3REQUEST._serialized_start=13151 + _GETSECURITYQUESTIONV3REQUEST._serialized_end=13236 + _GETSECURITYQUESTIONV3RESPONSE._serialized_start=13238 + _GETSECURITYQUESTIONV3RESPONSE._serialized_end=13352 + _GETDATAKEYBACKUPV3REQUEST._serialized_start=13354 + _GETDATAKEYBACKUPV3REQUEST._serialized_end=13464 + _PASSWORDRULES._serialized_start=13466 + _PASSWORDRULES._serialized_end=13584 + _GETDATAKEYBACKUPV3RESPONSE._serialized_start=13587 + _GETDATAKEYBACKUPV3RESPONSE._serialized_end=13916 + _GETPUBLICKEYSREQUEST._serialized_start=13918 + _GETPUBLICKEYSREQUEST._serialized_end=13959 + _PUBLICKEYRESPONSE._serialized_start=13961 + _PUBLICKEYRESPONSE._serialized_end=14075 + _GETPUBLICKEYSRESPONSE._serialized_start=14077 + _GETPUBLICKEYSRESPONSE._serialized_end=14157 + _SETECCKEYPAIRREQUEST._serialized_start=14159 + _SETECCKEYPAIRREQUEST._serialized_end=14229 + _SETECCKEYPAIRSREQUEST._serialized_start=14231 + _SETECCKEYPAIRSREQUEST._serialized_end=14304 + _SETECCKEYPAIRSRESPONSE._serialized_start=14306 + _SETECCKEYPAIRSRESPONSE._serialized_end=14388 + _TEAMECCKEYPAIR._serialized_start=14390 + _TEAMECCKEYPAIR._serialized_end=14471 + _TEAMECCKEYPAIRRESPONSE._serialized_start=14473 + _TEAMECCKEYPAIRRESPONSE._serialized_end=14561 + _GETKSMPUBLICKEYSREQUEST._serialized_start=14563 + _GETKSMPUBLICKEYSREQUEST._serialized_end=14631 + _DEVICEPUBLICKEYRESPONSE._serialized_start=14633 + _DEVICEPUBLICKEYRESPONSE._serialized_end=14718 + _GETKSMPUBLICKEYSRESPONSE._serialized_start=14720 + _GETKSMPUBLICKEYSRESPONSE._serialized_end=14809 + _ADDAPPSHARESREQUEST._serialized_start=14811 + _ADDAPPSHARESREQUEST._serialized_end=14899 + _REMOVEAPPSHARESREQUEST._serialized_start=14901 + _REMOVEAPPSHARESREQUEST._serialized_end=14963 + _APPSHAREADD._serialized_start=14966 + _APPSHAREADD._serialized_end=15101 + _APPSHARE._serialized_start=15104 + _APPSHARE._serialized_end=15241 + _ADDAPPCLIENTREQUEST._serialized_start=15244 + _ADDAPPCLIENTREQUEST._serialized_end=15461 + _REMOVEAPPCLIENTSREQUEST._serialized_start=15463 + _REMOVEAPPCLIENTSREQUEST._serialized_end=15527 + _ADDEXTERNALSHAREREQUEST._serialized_start=15530 + _ADDEXTERNALSHAREREQUEST._serialized_end=15680 + _APPCLIENT._serialized_start=15683 + _APPCLIENT._serialized_end=15941 + _GETAPPINFOREQUEST._serialized_start=15943 + _GETAPPINFOREQUEST._serialized_end=15984 + _APPINFO._serialized_start=15987 + _APPINFO._serialized_end=16129 + _GETAPPINFORESPONSE._serialized_start=16131 + _GETAPPINFORESPONSE._serialized_end=16193 + _APPLICATIONSUMMARY._serialized_start=16196 + _APPLICATIONSUMMARY._serialized_end=16409 + _GETAPPLICATIONSSUMMARYRESPONSE._serialized_start=16411 + _GETAPPLICATIONSSUMMARYRESPONSE._serialized_end=16507 + _GETVERIFICATIONTOKENREQUEST._serialized_start=16509 + _GETVERIFICATIONTOKENREQUEST._serialized_end=16556 + _GETVERIFICATIONTOKENRESPONSE._serialized_start=16558 + _GETVERIFICATIONTOKENRESPONSE._serialized_end=16624 + _SENDSHAREINVITEREQUEST._serialized_start=16626 + _SENDSHAREINVITEREQUEST._serialized_end=16665 + _TIMELIMITEDACCESSREQUEST._serialized_start=16668 + _TIMELIMITEDACCESSREQUEST._serialized_end=16865 + _TIMELIMITEDACCESSSTATUS._serialized_start=16867 + _TIMELIMITEDACCESSSTATUS._serialized_end=16922 + _TIMELIMITEDACCESSRESPONSE._serialized_start=16925 + _TIMELIMITEDACCESSRESPONSE._serialized_end=17173 + _REQUESTDOWNLOADREQUEST._serialized_start=17175 + _REQUESTDOWNLOADREQUEST._serialized_end=17218 + _REQUESTDOWNLOADRESPONSE._serialized_start=17220 + _REQUESTDOWNLOADRESPONSE._serialized_end=17323 + _DOWNLOAD._serialized_start=17325 + _DOWNLOAD._serialized_end=17393 + _DELETEUSERREQUEST._serialized_start=17395 + _DELETEUSERREQUEST._serialized_end=17430 + _CHANGEMASTERPASSWORDREQUEST._serialized_start=17433 + _CHANGEMASTERPASSWORDREQUEST._serialized_end=17565 + _CHANGEMASTERPASSWORDRESPONSE._serialized_start=17567 + _CHANGEMASTERPASSWORDRESPONSE._serialized_end=17628 + _ACCOUNTRECOVERYSETUPREQUEST._serialized_start=17630 + _ACCOUNTRECOVERYSETUPREQUEST._serialized_end=17719 + _ACCOUNTRECOVERYVERIFYCODERESPONSE._serialized_start=17722 + _ACCOUNTRECOVERYVERIFYCODERESPONSE._serialized_end=17894 + _EMERGENCYACCESSLOGINREQUEST._serialized_start=17896 + _EMERGENCYACCESSLOGINREQUEST._serialized_end=17940 + _EMERGENCYACCESSLOGINRESPONSE._serialized_start=17943 + _EMERGENCYACCESSLOGINRESPONSE._serialized_end=18124 + _USERTEAMKEY._serialized_start=18127 + _USERTEAMKEY._serialized_end=18305 + _GENERICREQUESTRESPONSE._serialized_start=18307 + _GENERICREQUESTRESPONSE._serialized_end=18348 # @@protoc_insertion_point(module_scope) diff --git a/keepercommander/proto/AccountSummary_pb2.py b/keepercommander/proto/AccountSummary_pb2.py index a2df3982f..c0379bc0f 100644 --- a/keepercommander/proto/AccountSummary_pb2.py +++ b/keepercommander/proto/AccountSummary_pb2.py @@ -15,7 +15,7 @@ from . import APIRequest_pb2 as APIRequest__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x41\x63\x63ountSummary.proto\x12\x0e\x41\x63\x63ountSummary\x1a\x10\x41PIRequest.proto\"N\n\x15\x41\x63\x63ountSummaryRequest\x12\x16\n\x0esummaryVersion\x18\x01 \x01(\x05\x12\x1d\n\x15includeRecentActivity\x18\x02 \x01(\x08\"\x80\x05\n\x16\x41\x63\x63ountSummaryElements\x12\x11\n\tclientKey\x18\x01 \x01(\x0c\x12*\n\x08settings\x18\x02 \x01(\x0b\x32\x18.AccountSummary.Settings\x12*\n\x08keysInfo\x18\x03 \x01(\x0b\x32\x18.AccountSummary.KeysInfo\x12)\n\x08syncLogs\x18\x04 \x03(\x0b\x32\x17.AccountSummary.SyncLog\x12\x19\n\x11isEnterpriseAdmin\x18\x05 \x01(\x08\x12(\n\x07license\x18\x06 \x01(\x0b\x32\x17.AccountSummary.License\x12$\n\x05group\x18\x07 \x01(\x0b\x32\x15.AccountSummary.Group\x12\x32\n\x0c\x45nforcements\x18\x08 \x01(\x0b\x32\x1c.AccountSummary.Enforcements\x12(\n\x06Images\x18\t \x03(\x0b\x32\x18.AccountSummary.KeyValue\x12\x30\n\x0fpersonalLicense\x18\n \x01(\x0b\x32\x17.AccountSummary.License\x12\x1e\n\x16\x66ixSharedFolderRecords\x18\x0b \x01(\x08\x12\x11\n\tusernames\x18\x0c \x03(\t\x12+\n\x07\x64\x65vices\x18\r \x03(\x0b\x32\x1a.AccountSummary.DeviceInfo\x12\x14\n\x0cisShareAdmin\x18\x0e \x01(\x08\x12\x17\n\x0f\x61\x63\x63ountRecovery\x18\x0f \x01(\x08\x12\x1d\n\x15\x61\x63\x63ountRecoveryPrompt\x18\x10 \x01(\x08\x12\'\n\x1fminMasterPasswordLengthNoPrompt\x18\x11 \x01(\x05\"\xb7\x02\n\nDeviceInfo\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x01 \x01(\x0c\x12\x12\n\ndeviceName\x18\x02 \x01(\t\x12\x32\n\x0c\x64\x65viceStatus\x18\x03 \x01(\x0e\x32\x1c.Authentication.DeviceStatus\x12\x17\n\x0f\x64\x65vicePublicKey\x18\x04 \x01(\x0c\x12 \n\x18\x65ncryptedDataKeyDoNotUse\x18\x05 \x01(\x0c\x12\x15\n\rclientVersion\x18\x06 \x01(\t\x12\x10\n\x08username\x18\x07 \x01(\t\x12\x11\n\tipAddress\x18\x08 \x01(\t\x12\x1a\n\x12\x61pproveRequestTime\x18\t \x01(\x03\x12\x1f\n\x17\x65ncryptedDataKeyPresent\x18\n \x01(\x08\x12\x0f\n\x07groupId\x18\x0b \x01(\x03\"\xc1\x01\n\x08KeysInfo\x12\x18\n\x10\x65ncryptionParams\x18\x01 \x01(\x0c\x12\x18\n\x10\x65ncryptedDataKey\x18\x02 \x01(\x0c\x12\x19\n\x11\x64\x61taKeyBackupDate\x18\x03 \x01(\x01\x12\x13\n\x0buserAuthUid\x18\x04 \x01(\x0c\x12\x1b\n\x13\x65ncryptedPrivateKey\x18\x05 \x01(\x0c\x12\x1e\n\x16\x65ncryptedEccPrivateKey\x18\x06 \x01(\x0c\x12\x14\n\x0c\x65\x63\x63PublicKey\x18\x07 \x01(\x0c\"\x81\x01\n\x07SyncLog\x12\x13\n\x0b\x63ountryName\x18\x01 \x01(\t\x12\x12\n\nsecondsAgo\x18\x02 \x01(\x03\x12\x12\n\ndeviceName\x18\x03 \x01(\t\x12\x13\n\x0b\x63ountryCode\x18\x04 \x01(\t\x12\x11\n\tdeviceUID\x18\x05 \x01(\x0c\x12\x11\n\tipAddress\x18\x06 \x01(\t\"\xe2\x05\n\x07License\x12\x18\n\x10subscriptionCode\x18\x01 \x01(\t\x12\x15\n\rproductTypeId\x18\x02 \x01(\x05\x12\x17\n\x0fproductTypeName\x18\x03 \x01(\t\x12\x16\n\x0e\x65xpirationDate\x18\x04 \x01(\t\x12\x1e\n\x16secondsUntilExpiration\x18\x05 \x01(\x03\x12\x12\n\nmaxDevices\x18\x06 \x01(\x05\x12\x14\n\x0c\x66ilePlanType\x18\x07 \x01(\x05\x12\x11\n\tbytesUsed\x18\x08 \x01(\x03\x12\x12\n\nbytesTotal\x18\t \x01(\x03\x12%\n\x1dsecondsUntilStorageExpiration\x18\n \x01(\x03\x12\x1d\n\x15storageExpirationDate\x18\x0b \x01(\t\x12,\n$hasAutoRenewableAppstoreSubscription\x18\x0c \x01(\x08\x12\x13\n\x0b\x61\x63\x63ountType\x18\r \x01(\x05\x12\x18\n\x10uploadsRemaining\x18\x0e \x01(\x05\x12\x14\n\x0c\x65nterpriseId\x18\x0f \x01(\x05\x12\x13\n\x0b\x63hatEnabled\x18\x10 \x01(\x08\x12 \n\x18\x61uditAndReportingEnabled\x18\x11 \x01(\x08\x12!\n\x19\x62reachWatchFeatureDisable\x18\x12 \x01(\x08\x12\x12\n\naccountUid\x18\x13 \x01(\x0c\x12\x1c\n\x14\x61llowPersonalLicense\x18\x14 \x01(\x08\x12\x12\n\nlicensedBy\x18\x15 \x01(\t\x12\r\n\x05\x65mail\x18\x16 \x01(\t\x12\x1a\n\x12\x62reachWatchEnabled\x18\x17 \x01(\x08\x12\x1a\n\x12\x62reachWatchScanned\x18\x18 \x01(\x08\x12\x1d\n\x15\x62reachWatchExpiration\x18\x19 \x01(\x03\x12\x1e\n\x16\x62reachWatchDateCreated\x18\x1a \x01(\x03\x12%\n\x05\x65rror\x18\x1b \x01(\x0b\x32\x16.AccountSummary.Result\"\xa3\x01\n\x05\x41\x64\x64On\x12\x14\n\x0clicenseKeyId\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x16\n\x0e\x65xpirationDate\x18\x03 \x01(\x03\x12\x13\n\x0b\x63reatedDate\x18\x04 \x01(\x03\x12\x0f\n\x07isTrial\x18\x05 \x01(\x08\x12\x0f\n\x07\x65nabled\x18\x06 \x01(\x08\x12\x0f\n\x07scanned\x18\x07 \x01(\x08\x12\x16\n\x0e\x66\x65\x61tureDisable\x18\x08 \x01(\x08\"\xea\x08\n\x08Settings\x12\r\n\x05\x61udit\x18\x01 \x01(\x08\x12!\n\x19mustPerformAccountShareBy\x18\x02 \x01(\x03\x12>\n\x0eshareAccountTo\x18\x03 \x03(\x0b\x32&.AccountSummary.MissingAccountShareKey\x12+\n\x05rules\x18\x04 \x03(\x0b\x32\x1c.AccountSummary.PasswordRule\x12\x1a\n\x12passwordRulesIntro\x18\x05 \x01(\t\x12\x16\n\x0e\x61utoBackupDays\x18\x06 \x01(\x05\x12\r\n\x05theme\x18\x07 \x01(\t\x12\x0f\n\x07\x63hannel\x18\x08 \x01(\t\x12\x14\n\x0c\x63hannelValue\x18\t \x01(\t\x12\x15\n\rrsaConfigured\x18\n \x01(\x08\x12\x15\n\remailVerified\x18\x0b \x01(\x08\x12\"\n\x1amasterPasswordLastModified\x18\x0c \x01(\x01\x12\x18\n\x10\x61\x63\x63ountFolderKey\x18\r \x01(\x0c\x12\x31\n\x0csecurityKeys\x18\x0e \x03(\x0b\x32\x1b.AccountSummary.SecurityKey\x12+\n\tkeyValues\x18\x0f \x03(\x0b\x32\x18.AccountSummary.KeyValue\x12\x0f\n\x07ssoUser\x18\x10 \x01(\x08\x12\x18\n\x10onlineAccessOnly\x18\x11 \x01(\x08\x12\x1c\n\x14masterPasswordExpiry\x18\x12 \x01(\x05\x12\x19\n\x11twoFactorRequired\x18\x13 \x01(\x08\x12\x16\n\x0e\x64isallowExport\x18\x14 \x01(\x08\x12\x15\n\rrestrictFiles\x18\x15 \x01(\x08\x12\x1a\n\x12restrictAllSharing\x18\x16 \x01(\x08\x12\x17\n\x0frestrictSharing\x18\x17 \x01(\x08\x12\"\n\x1arestrictSharingIncomingAll\x18\x18 \x01(\x08\x12)\n!restrictSharingIncomingEnterprise\x18\x19 \x01(\x08\x12\x13\n\x0blogoutTimer\x18\x1a \x01(\x03\x12\x17\n\x0fpersistentLogin\x18\x1b \x01(\x08\x12\x1c\n\x14ipDisableAutoApprove\x18\x1c \x01(\x08\x12$\n\x1cshareDataKeyWithEccPublicKey\x18\x1d \x01(\x08\x12\'\n\x1fshareDataKeyWithDevicePublicKey\x18\x1e \x01(\x08\x12\x1a\n\x12RecordTypesCounter\x18\x1f \x01(\x05\x12$\n\x1cRecordTypesEnterpriseCounter\x18 \x01(\x05\x12\x1a\n\x12recordTypesEnabled\x18! \x01(\x08\x12\x1c\n\x14\x63\x61nManageRecordTypes\x18\" \x01(\x08\x12\x1d\n\x15recordTypesPAMCounter\x18# \x01(\x05\x12\x1a\n\x12logoutTimerMinutes\x18$ \x01(\x05\x12 \n\x18securityKeysNoUserVerify\x18% \x01(\x08\"&\n\x08KeyValue\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"-\n\x0fKeyValueBoolean\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08\"*\n\x0cKeyValueLong\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03\"=\n\x06Result\x12\x12\n\nresultCode\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x0e\n\x06result\x18\x03 \x01(\t\"\xc2\x01\n\x0c\x45nforcements\x12)\n\x07strings\x18\x01 \x03(\x0b\x32\x18.AccountSummary.KeyValue\x12\x31\n\x08\x62ooleans\x18\x02 \x03(\x0b\x32\x1f.AccountSummary.KeyValueBoolean\x12+\n\x05longs\x18\x03 \x03(\x0b\x32\x1c.AccountSummary.KeyValueLong\x12\'\n\x05jsons\x18\x04 \x03(\x0b\x32\x18.AccountSummary.KeyValue\"<\n\x16MissingAccountShareKey\x12\x0f\n\x07role_id\x18\x01 \x01(\x03\x12\x11\n\tpublicKey\x18\x02 \x01(\x0c\"u\n\x0cPasswordRule\x12\x10\n\x08ruleType\x18\x01 \x01(\t\x12\x0f\n\x07pattern\x18\x02 \x01(\t\x12\r\n\x05match\x18\x03 \x01(\x08\x12\x0f\n\x07minimum\x18\x04 \x01(\x05\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12\r\n\x05value\x18\x06 \x01(\t\"\x97\x01\n\x0bSecurityKey\x12\x10\n\x08\x64\x65viceId\x18\x01 \x01(\x03\x12\x12\n\ndeviceName\x18\x02 \x01(\t\x12\x11\n\tdateAdded\x18\x03 \x01(\x03\x12\x0f\n\x07isValid\x18\x04 \x01(\x08\x12>\n\x12\x64\x65viceRegistration\x18\x05 \x01(\x0b\x32\".AccountSummary.DeviceRegistration\"y\n\x12\x44\x65viceRegistration\x12\x11\n\tkeyHandle\x18\x01 \x01(\t\x12\x11\n\tpublicKey\x18\x02 \x01(\x0c\x12\x17\n\x0f\x61ttestationCert\x18\x03 \x01(\t\x12\x0f\n\x07\x63ounter\x18\x04 \x01(\x03\x12\x13\n\x0b\x63ompromised\x18\x05 \x01(\x08\"k\n\x05Group\x12\r\n\x05\x61\x64min\x18\x01 \x01(\x08\x12\x1d\n\x15groupVerificationCode\x18\x02 \x01(\t\x12\x34\n\radministrator\x18\x04 \x01(\x0b\x32\x1d.AccountSummary.Administrator\"\xc0\x01\n\rAdministrator\x12\x11\n\tfirstName\x18\x01 \x01(\t\x12\x10\n\x08lastName\x18\x02 \x01(\t\x12\r\n\x05\x65mail\x18\x03 \x01(\t\x12\x1c\n\x14\x63urrentNumberOfUsers\x18\x04 \x01(\x05\x12\x15\n\rnumberOfUsers\x18\x05 \x01(\x05\x12\x18\n\x10subscriptionCode\x18\x07 \x01(\t\x12\x16\n\x0e\x65xpirationDate\x18\x08 \x01(\t\x12\x14\n\x0cpurchaseDate\x18\t \x01(\tB*\n\x18\x63om.keepersecurity.protoB\x0e\x41\x63\x63ountSummaryb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x41\x63\x63ountSummary.proto\x12\x0e\x41\x63\x63ountSummary\x1a\x10\x41PIRequest.proto\"N\n\x15\x41\x63\x63ountSummaryRequest\x12\x16\n\x0esummaryVersion\x18\x01 \x01(\x05\x12\x1d\n\x15includeRecentActivity\x18\x02 \x01(\x08\"\x98\x05\n\x16\x41\x63\x63ountSummaryElements\x12\x11\n\tclientKey\x18\x01 \x01(\x0c\x12*\n\x08settings\x18\x02 \x01(\x0b\x32\x18.AccountSummary.Settings\x12*\n\x08keysInfo\x18\x03 \x01(\x0b\x32\x18.AccountSummary.KeysInfo\x12)\n\x08syncLogs\x18\x04 \x03(\x0b\x32\x17.AccountSummary.SyncLog\x12\x19\n\x11isEnterpriseAdmin\x18\x05 \x01(\x08\x12(\n\x07license\x18\x06 \x01(\x0b\x32\x17.AccountSummary.License\x12$\n\x05group\x18\x07 \x01(\x0b\x32\x15.AccountSummary.Group\x12\x32\n\x0c\x45nforcements\x18\x08 \x01(\x0b\x32\x1c.AccountSummary.Enforcements\x12(\n\x06Images\x18\t \x03(\x0b\x32\x18.AccountSummary.KeyValue\x12\x30\n\x0fpersonalLicense\x18\n \x01(\x0b\x32\x17.AccountSummary.License\x12\x1e\n\x16\x66ixSharedFolderRecords\x18\x0b \x01(\x08\x12\x11\n\tusernames\x18\x0c \x03(\t\x12+\n\x07\x64\x65vices\x18\r \x03(\x0b\x32\x1a.AccountSummary.DeviceInfo\x12\x14\n\x0cisShareAdmin\x18\x0e \x01(\x08\x12\x17\n\x0f\x61\x63\x63ountRecovery\x18\x0f \x01(\x08\x12\x1d\n\x15\x61\x63\x63ountRecoveryPrompt\x18\x10 \x01(\x08\x12\'\n\x1fminMasterPasswordLengthNoPrompt\x18\x11 \x01(\x05\x12\x16\n\x0e\x66orbidKeyType2\x18\x12 \x01(\x08\"\xb7\x02\n\nDeviceInfo\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x01 \x01(\x0c\x12\x12\n\ndeviceName\x18\x02 \x01(\t\x12\x32\n\x0c\x64\x65viceStatus\x18\x03 \x01(\x0e\x32\x1c.Authentication.DeviceStatus\x12\x17\n\x0f\x64\x65vicePublicKey\x18\x04 \x01(\x0c\x12 \n\x18\x65ncryptedDataKeyDoNotUse\x18\x05 \x01(\x0c\x12\x15\n\rclientVersion\x18\x06 \x01(\t\x12\x10\n\x08username\x18\x07 \x01(\t\x12\x11\n\tipAddress\x18\x08 \x01(\t\x12\x1a\n\x12\x61pproveRequestTime\x18\t \x01(\x03\x12\x1f\n\x17\x65ncryptedDataKeyPresent\x18\n \x01(\x08\x12\x0f\n\x07groupId\x18\x0b \x01(\x03\"\xc1\x01\n\x08KeysInfo\x12\x18\n\x10\x65ncryptionParams\x18\x01 \x01(\x0c\x12\x18\n\x10\x65ncryptedDataKey\x18\x02 \x01(\x0c\x12\x19\n\x11\x64\x61taKeyBackupDate\x18\x03 \x01(\x01\x12\x13\n\x0buserAuthUid\x18\x04 \x01(\x0c\x12\x1b\n\x13\x65ncryptedPrivateKey\x18\x05 \x01(\x0c\x12\x1e\n\x16\x65ncryptedEccPrivateKey\x18\x06 \x01(\x0c\x12\x14\n\x0c\x65\x63\x63PublicKey\x18\x07 \x01(\x0c\"\x81\x01\n\x07SyncLog\x12\x13\n\x0b\x63ountryName\x18\x01 \x01(\t\x12\x12\n\nsecondsAgo\x18\x02 \x01(\x03\x12\x12\n\ndeviceName\x18\x03 \x01(\t\x12\x13\n\x0b\x63ountryCode\x18\x04 \x01(\t\x12\x11\n\tdeviceUID\x18\x05 \x01(\x0c\x12\x11\n\tipAddress\x18\x06 \x01(\t\"\xd1\x06\n\x07License\x12\x18\n\x10subscriptionCode\x18\x01 \x01(\t\x12\x15\n\rproductTypeId\x18\x02 \x01(\x05\x12\x17\n\x0fproductTypeName\x18\x03 \x01(\t\x12\x16\n\x0e\x65xpirationDate\x18\x04 \x01(\t\x12\x1e\n\x16secondsUntilExpiration\x18\x05 \x01(\x03\x12\x12\n\nmaxDevices\x18\x06 \x01(\x05\x12\x14\n\x0c\x66ilePlanType\x18\x07 \x01(\x05\x12\x11\n\tbytesUsed\x18\x08 \x01(\x03\x12\x12\n\nbytesTotal\x18\t \x01(\x03\x12%\n\x1dsecondsUntilStorageExpiration\x18\n \x01(\x03\x12\x1d\n\x15storageExpirationDate\x18\x0b \x01(\t\x12,\n$hasAutoRenewableAppstoreSubscription\x18\x0c \x01(\x08\x12\x13\n\x0b\x61\x63\x63ountType\x18\r \x01(\x05\x12\x18\n\x10uploadsRemaining\x18\x0e \x01(\x05\x12\x14\n\x0c\x65nterpriseId\x18\x0f \x01(\x05\x12\x13\n\x0b\x63hatEnabled\x18\x10 \x01(\x08\x12 \n\x18\x61uditAndReportingEnabled\x18\x11 \x01(\x08\x12!\n\x19\x62reachWatchFeatureDisable\x18\x12 \x01(\x08\x12\x12\n\naccountUid\x18\x13 \x01(\x0c\x12\x1c\n\x14\x61llowPersonalLicense\x18\x14 \x01(\x08\x12\x12\n\nlicensedBy\x18\x15 \x01(\t\x12\r\n\x05\x65mail\x18\x16 \x01(\t\x12\x1a\n\x12\x62reachWatchEnabled\x18\x17 \x01(\x08\x12\x1a\n\x12\x62reachWatchScanned\x18\x18 \x01(\x08\x12\x1d\n\x15\x62reachWatchExpiration\x18\x19 \x01(\x03\x12\x1e\n\x16\x62reachWatchDateCreated\x18\x1a \x01(\x03\x12%\n\x05\x65rror\x18\x1b \x01(\x0b\x32\x16.AccountSummary.Result\x12\x12\n\nexpiration\x18\x1d \x01(\x03\x12\x19\n\x11storageExpiration\x18\x1e \x01(\x03\x12\x14\n\x0cuploadsCount\x18\x1f \x01(\x05\x12\r\n\x05units\x18 \x01(\x05\x12\x19\n\x11pendingEnterprise\x18! \x01(\x08\"\xa3\x01\n\x05\x41\x64\x64On\x12\x14\n\x0clicenseKeyId\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x16\n\x0e\x65xpirationDate\x18\x03 \x01(\x03\x12\x13\n\x0b\x63reatedDate\x18\x04 \x01(\x03\x12\x0f\n\x07isTrial\x18\x05 \x01(\x08\x12\x0f\n\x07\x65nabled\x18\x06 \x01(\x08\x12\x0f\n\x07scanned\x18\x07 \x01(\x08\x12\x16\n\x0e\x66\x65\x61tureDisable\x18\x08 \x01(\x08\"\xa2\t\n\x08Settings\x12\r\n\x05\x61udit\x18\x01 \x01(\x08\x12!\n\x19mustPerformAccountShareBy\x18\x02 \x01(\x03\x12>\n\x0eshareAccountTo\x18\x03 \x03(\x0b\x32&.AccountSummary.MissingAccountShareKey\x12+\n\x05rules\x18\x04 \x03(\x0b\x32\x1c.AccountSummary.PasswordRule\x12\x1a\n\x12passwordRulesIntro\x18\x05 \x01(\t\x12\x16\n\x0e\x61utoBackupDays\x18\x06 \x01(\x05\x12\r\n\x05theme\x18\x07 \x01(\t\x12\x0f\n\x07\x63hannel\x18\x08 \x01(\t\x12\x14\n\x0c\x63hannelValue\x18\t \x01(\t\x12\x15\n\rrsaConfigured\x18\n \x01(\x08\x12\x15\n\remailVerified\x18\x0b \x01(\x08\x12\"\n\x1amasterPasswordLastModified\x18\x0c \x01(\x01\x12\x18\n\x10\x61\x63\x63ountFolderKey\x18\r \x01(\x0c\x12\x31\n\x0csecurityKeys\x18\x0e \x03(\x0b\x32\x1b.AccountSummary.SecurityKey\x12+\n\tkeyValues\x18\x0f \x03(\x0b\x32\x18.AccountSummary.KeyValue\x12\x0f\n\x07ssoUser\x18\x10 \x01(\x08\x12\x18\n\x10onlineAccessOnly\x18\x11 \x01(\x08\x12\x1c\n\x14masterPasswordExpiry\x18\x12 \x01(\x05\x12\x19\n\x11twoFactorRequired\x18\x13 \x01(\x08\x12\x16\n\x0e\x64isallowExport\x18\x14 \x01(\x08\x12\x15\n\rrestrictFiles\x18\x15 \x01(\x08\x12\x1a\n\x12restrictAllSharing\x18\x16 \x01(\x08\x12\x17\n\x0frestrictSharing\x18\x17 \x01(\x08\x12\"\n\x1arestrictSharingIncomingAll\x18\x18 \x01(\x08\x12)\n!restrictSharingIncomingEnterprise\x18\x19 \x01(\x08\x12\x13\n\x0blogoutTimer\x18\x1a \x01(\x03\x12\x17\n\x0fpersistentLogin\x18\x1b \x01(\x08\x12\x1c\n\x14ipDisableAutoApprove\x18\x1c \x01(\x08\x12$\n\x1cshareDataKeyWithEccPublicKey\x18\x1d \x01(\x08\x12\'\n\x1fshareDataKeyWithDevicePublicKey\x18\x1e \x01(\x08\x12\x1a\n\x12RecordTypesCounter\x18\x1f \x01(\x05\x12$\n\x1cRecordTypesEnterpriseCounter\x18 \x01(\x05\x12\x1a\n\x12recordTypesEnabled\x18! \x01(\x08\x12\x1c\n\x14\x63\x61nManageRecordTypes\x18\" \x01(\x08\x12\x1d\n\x15recordTypesPAMCounter\x18# \x01(\x05\x12\x1a\n\x12logoutTimerMinutes\x18$ \x01(\x05\x12 \n\x18securityKeysNoUserVerify\x18% \x01(\x08\x12\x36\n\x08\x63hannels\x18& \x03(\x0e\x32$.Authentication.TwoFactorChannelType\"&\n\x08KeyValue\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"-\n\x0fKeyValueBoolean\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08\"*\n\x0cKeyValueLong\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03\"=\n\x06Result\x12\x12\n\nresultCode\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x0e\n\x06result\x18\x03 \x01(\t\"\xc2\x01\n\x0c\x45nforcements\x12)\n\x07strings\x18\x01 \x03(\x0b\x32\x18.AccountSummary.KeyValue\x12\x31\n\x08\x62ooleans\x18\x02 \x03(\x0b\x32\x1f.AccountSummary.KeyValueBoolean\x12+\n\x05longs\x18\x03 \x03(\x0b\x32\x1c.AccountSummary.KeyValueLong\x12\'\n\x05jsons\x18\x04 \x03(\x0b\x32\x18.AccountSummary.KeyValue\"<\n\x16MissingAccountShareKey\x12\x0f\n\x07role_id\x18\x01 \x01(\x03\x12\x11\n\tpublicKey\x18\x02 \x01(\x0c\"u\n\x0cPasswordRule\x12\x10\n\x08ruleType\x18\x01 \x01(\t\x12\x0f\n\x07pattern\x18\x02 \x01(\t\x12\r\n\x05match\x18\x03 \x01(\x08\x12\x0f\n\x07minimum\x18\x04 \x01(\x05\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12\r\n\x05value\x18\x06 \x01(\t\"\x97\x01\n\x0bSecurityKey\x12\x10\n\x08\x64\x65viceId\x18\x01 \x01(\x03\x12\x12\n\ndeviceName\x18\x02 \x01(\t\x12\x11\n\tdateAdded\x18\x03 \x01(\x03\x12\x0f\n\x07isValid\x18\x04 \x01(\x08\x12>\n\x12\x64\x65viceRegistration\x18\x05 \x01(\x0b\x32\".AccountSummary.DeviceRegistration\"y\n\x12\x44\x65viceRegistration\x12\x11\n\tkeyHandle\x18\x01 \x01(\t\x12\x11\n\tpublicKey\x18\x02 \x01(\x0c\x12\x17\n\x0f\x61ttestationCert\x18\x03 \x01(\t\x12\x0f\n\x07\x63ounter\x18\x04 \x01(\x03\x12\x13\n\x0b\x63ompromised\x18\x05 \x01(\x08\"k\n\x05Group\x12\r\n\x05\x61\x64min\x18\x01 \x01(\x08\x12\x1d\n\x15groupVerificationCode\x18\x02 \x01(\t\x12\x34\n\radministrator\x18\x04 \x01(\x0b\x32\x1d.AccountSummary.Administrator\"\xc0\x01\n\rAdministrator\x12\x11\n\tfirstName\x18\x01 \x01(\t\x12\x10\n\x08lastName\x18\x02 \x01(\t\x12\r\n\x05\x65mail\x18\x03 \x01(\t\x12\x1c\n\x14\x63urrentNumberOfUsers\x18\x04 \x01(\x05\x12\x15\n\rnumberOfUsers\x18\x05 \x01(\x05\x12\x18\n\x10subscriptionCode\x18\x07 \x01(\t\x12\x16\n\x0e\x65xpirationDate\x18\x08 \x01(\t\x12\x14\n\x0cpurchaseDate\x18\t \x01(\tB*\n\x18\x63om.keepersecurity.protoB\x0e\x41\x63\x63ountSummaryb\x06proto3') @@ -178,39 +178,39 @@ _ACCOUNTSUMMARYREQUEST._serialized_start=58 _ACCOUNTSUMMARYREQUEST._serialized_end=136 _ACCOUNTSUMMARYELEMENTS._serialized_start=139 - _ACCOUNTSUMMARYELEMENTS._serialized_end=779 - _DEVICEINFO._serialized_start=782 - _DEVICEINFO._serialized_end=1093 - _KEYSINFO._serialized_start=1096 - _KEYSINFO._serialized_end=1289 - _SYNCLOG._serialized_start=1292 - _SYNCLOG._serialized_end=1421 - _LICENSE._serialized_start=1424 - _LICENSE._serialized_end=2162 - _ADDON._serialized_start=2165 - _ADDON._serialized_end=2328 - _SETTINGS._serialized_start=2331 - _SETTINGS._serialized_end=3461 - _KEYVALUE._serialized_start=3463 - _KEYVALUE._serialized_end=3501 - _KEYVALUEBOOLEAN._serialized_start=3503 - _KEYVALUEBOOLEAN._serialized_end=3548 - _KEYVALUELONG._serialized_start=3550 - _KEYVALUELONG._serialized_end=3592 - _RESULT._serialized_start=3594 - _RESULT._serialized_end=3655 - _ENFORCEMENTS._serialized_start=3658 - _ENFORCEMENTS._serialized_end=3852 - _MISSINGACCOUNTSHAREKEY._serialized_start=3854 - _MISSINGACCOUNTSHAREKEY._serialized_end=3914 - _PASSWORDRULE._serialized_start=3916 - _PASSWORDRULE._serialized_end=4033 - _SECURITYKEY._serialized_start=4036 - _SECURITYKEY._serialized_end=4187 - _DEVICEREGISTRATION._serialized_start=4189 - _DEVICEREGISTRATION._serialized_end=4310 - _GROUP._serialized_start=4312 - _GROUP._serialized_end=4419 - _ADMINISTRATOR._serialized_start=4422 - _ADMINISTRATOR._serialized_end=4614 + _ACCOUNTSUMMARYELEMENTS._serialized_end=803 + _DEVICEINFO._serialized_start=806 + _DEVICEINFO._serialized_end=1117 + _KEYSINFO._serialized_start=1120 + _KEYSINFO._serialized_end=1313 + _SYNCLOG._serialized_start=1316 + _SYNCLOG._serialized_end=1445 + _LICENSE._serialized_start=1448 + _LICENSE._serialized_end=2297 + _ADDON._serialized_start=2300 + _ADDON._serialized_end=2463 + _SETTINGS._serialized_start=2466 + _SETTINGS._serialized_end=3652 + _KEYVALUE._serialized_start=3654 + _KEYVALUE._serialized_end=3692 + _KEYVALUEBOOLEAN._serialized_start=3694 + _KEYVALUEBOOLEAN._serialized_end=3739 + _KEYVALUELONG._serialized_start=3741 + _KEYVALUELONG._serialized_end=3783 + _RESULT._serialized_start=3785 + _RESULT._serialized_end=3846 + _ENFORCEMENTS._serialized_start=3849 + _ENFORCEMENTS._serialized_end=4043 + _MISSINGACCOUNTSHAREKEY._serialized_start=4045 + _MISSINGACCOUNTSHAREKEY._serialized_end=4105 + _PASSWORDRULE._serialized_start=4107 + _PASSWORDRULE._serialized_end=4224 + _SECURITYKEY._serialized_start=4227 + _SECURITYKEY._serialized_end=4378 + _DEVICEREGISTRATION._serialized_start=4380 + _DEVICEREGISTRATION._serialized_end=4501 + _GROUP._serialized_start=4503 + _GROUP._serialized_end=4610 + _ADMINISTRATOR._serialized_start=4613 + _ADMINISTRATOR._serialized_end=4805 # @@protoc_insertion_point(module_scope) diff --git a/keepercommander/proto/BI_pb2.py b/keepercommander/proto/BI_pb2.py index 50a760a24..ef16e35b0 100644 --- a/keepercommander/proto/BI_pb2.py +++ b/keepercommander/proto/BI_pb2.py @@ -15,7 +15,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x08\x42I.proto\x12\x02\x42I\"f\n\x1bValidateSessionTokenRequest\x12\x1d\n\x15\x65ncryptedSessionToken\x18\x01 \x01(\x0c\x12\x1c\n\x14returnMcEnterpiseIds\x18\x02 \x01(\x08\x12\n\n\x02ip\x18\x03 \x01(\t\"\xda\x02\n\x1cValidateSessionTokenResponse\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x0e\n\x06userId\x18\x02 \x01(\x05\x12\x18\n\x10\x65nterpriseUserId\x18\x03 \x01(\x03\x12\x37\n\x06status\x18\x04 \x01(\x0e\x32\'.BI.ValidateSessionTokenResponse.Status\x12\x15\n\rstatusMessage\x18\x05 \x01(\t\x12\x17\n\x0fmcEnterpriseIds\x18\x06 \x03(\x05\x12\x18\n\x10hasMSPPermission\x18\x07 \x01(\x08\x12\x1e\n\x16\x64\x65letedMcEnterpriseIds\x18\x08 \x03(\x05\"[\n\x06Status\x12\t\n\x05VALID\x10\x00\x12\r\n\tNOT_VALID\x10\x01\x12\x0b\n\x07\x45XPIRED\x10\x02\x12\x0e\n\nIP_BLOCKED\x10\x03\x12\x1a\n\x16INVALID_CLIENT_VERSION\x10\x04\"\x1b\n\x19SubscriptionStatusRequest\"\xaf\x02\n\x1aSubscriptionStatusResponse\x12$\n\x0b\x61utoRenewal\x18\x01 \x01(\x0b\x32\x0f.BI.AutoRenewal\x12/\n\x14\x63urrentPaymentMethod\x18\x02 \x01(\x0b\x32\x11.BI.PaymentMethod\x12\x14\n\x0c\x63heckoutLink\x18\x03 \x01(\t\x12\x19\n\x11licenseCreateDate\x18\x04 \x01(\x03\x12\x15\n\risDistributor\x18\x05 \x01(\x08\x12\x13\n\x0bisLegacyMsp\x18\x06 \x01(\x08\x12&\n\x0clicenseStats\x18\x08 \x03(\x0b\x32\x10.BI.LicenseStats\x12\x35\n\x0egradientStatus\x18\t \x01(\x0e\x32\x1d.BI.GradientIntegrationStatus\"\xd7\x01\n\x0cLicenseStats\x12#\n\x04type\x18\x01 \x01(\x0e\x32\x15.BI.LicenseStats.Type\x12\x11\n\tavailable\x18\x02 \x01(\x05\x12\x0c\n\x04used\x18\x03 \x01(\x05\"\x80\x01\n\x04Type\x12\x18\n\x14LICENSE_STAT_UNKNOWN\x10\x00\x12\x0c\n\x08MSP_BASE\x10\x01\x12\x0f\n\x0bMC_BUSINESS\x10\x02\x12\x14\n\x10MC_BUSINESS_PLUS\x10\x03\x12\x11\n\rMC_ENTERPRISE\x10\x04\x12\x16\n\x12MC_ENTERPRISE_PLUS\x10\x05\"@\n\x0b\x41utoRenewal\x12\x0e\n\x06nextOn\x18\x01 \x01(\x03\x12\x10\n\x08\x64\x61ysLeft\x18\x02 \x01(\x05\x12\x0f\n\x07isTrial\x18\x03 \x01(\x08\"\x84\x04\n\rPaymentMethod\x12$\n\x04type\x18\x01 \x01(\x0e\x32\x16.BI.PaymentMethod.Type\x12$\n\x04\x63\x61rd\x18\x02 \x01(\x0b\x32\x16.BI.PaymentMethod.Card\x12$\n\x04sepa\x18\x03 \x01(\x0b\x32\x16.BI.PaymentMethod.Sepa\x12(\n\x06paypal\x18\x04 \x01(\x0b\x32\x18.BI.PaymentMethod.Paypal\x12\x15\n\rfailedBilling\x18\x05 \x01(\x08\x12(\n\x06vendor\x18\x06 \x01(\x0b\x32\x18.BI.PaymentMethod.Vendor\x12\x36\n\rpurchaseOrder\x18\x07 \x01(\x0b\x32\x1f.BI.PaymentMethod.PurchaseOrder\x1a$\n\x04\x43\x61rd\x12\r\n\x05last4\x18\x01 \x01(\t\x12\r\n\x05\x62rand\x18\x02 \x01(\t\x1a&\n\x04Sepa\x12\r\n\x05last4\x18\x01 \x01(\t\x12\x0f\n\x07\x63ountry\x18\x02 \x01(\t\x1a\x08\n\x06Paypal\x1a\x16\n\x06Vendor\x12\x0c\n\x04name\x18\x01 \x01(\t\x1a\x1d\n\rPurchaseOrder\x12\x0c\n\x04name\x18\x01 \x01(\t\"O\n\x04Type\x12\x08\n\x04\x43\x41RD\x10\x00\x12\x08\n\x04SEPA\x10\x01\x12\n\n\x06PAYPAL\x10\x02\x12\x08\n\x04NONE\x10\x03\x12\n\n\x06VENDOR\x10\x04\x12\x11\n\rPURCHASEORDER\x10\x05\"\x1f\n\x1dSubscriptionMspPricingRequest\"\\\n\x1eSubscriptionMspPricingResponse\x12\x19\n\x06\x61\x64\x64ons\x18\x02 \x03(\x0b\x32\t.BI.Addon\x12\x1f\n\tfilePlans\x18\x03 \x03(\x0b\x32\x0c.BI.FilePlan\"\x1e\n\x1cSubscriptionMcPricingRequest\"|\n\x1dSubscriptionMcPricingResponse\x12\x1f\n\tbasePlans\x18\x01 \x03(\x0b\x32\x0c.BI.BasePlan\x12\x19\n\x06\x61\x64\x64ons\x18\x02 \x03(\x0b\x32\t.BI.Addon\x12\x1f\n\tfilePlans\x18\x03 \x03(\x0b\x32\x0c.BI.FilePlan\".\n\x08\x42\x61sePlan\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x16\n\x04\x63ost\x18\x02 \x01(\x0b\x32\x08.BI.Cost\"C\n\x05\x41\x64\x64on\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x16\n\x04\x63ost\x18\x02 \x01(\x0b\x32\x08.BI.Cost\x12\x16\n\x0e\x61mountConsumed\x18\x03 \x01(\x03\".\n\x08\x46ilePlan\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x16\n\x04\x63ost\x18\x02 \x01(\x0b\x32\x08.BI.Cost\"\xab\x01\n\x04\x43ost\x12\x0e\n\x06\x61mount\x18\x03 \x01(\x01\x12%\n\tamountPer\x18\x04 \x01(\x0e\x32\x12.BI.Cost.AmountPer\x12\x1e\n\x08\x63urrency\x18\x05 \x01(\x0e\x32\x0c.BI.Currency\"L\n\tAmountPer\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05MONTH\x10\x01\x12\x0e\n\nUSER_MONTH\x10\x02\x12\x17\n\x13USER_CONSUMED_MONTH\x10\x03\"=\n\x14InvoiceSearchRequest\x12\x0c\n\x04size\x18\x01 \x01(\x05\x12\x17\n\x0fstartingAfterId\x18\x02 \x01(\x05\"6\n\x15InvoiceSearchResponse\x12\x1d\n\x08invoices\x18\x01 \x03(\x0b\x32\x0b.BI.Invoice\"\xbe\x02\n\x07Invoice\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x15\n\rinvoiceNumber\x18\x02 \x01(\t\x12\x13\n\x0binvoiceDate\x18\x03 \x01(\x03\x12\x14\n\x0clicenseCount\x18\x04 \x01(\x05\x12#\n\ttotalCost\x18\x05 \x01(\x0b\x32\x10.BI.Invoice.Cost\x12%\n\x0binvoiceType\x18\x06 \x01(\x0e\x32\x10.BI.Invoice.Type\x1a\x36\n\x04\x43ost\x12\x0e\n\x06\x61mount\x18\x01 \x01(\x01\x12\x1e\n\x08\x63urrency\x18\x02 \x01(\x0e\x32\x0c.BI.Currency\"a\n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03NEW\x10\x01\x12\x0b\n\x07RENEWAL\x10\x02\x12\x0b\n\x07UPGRADE\x10\x03\x12\x0b\n\x07RESTORE\x10\x04\x12\x0f\n\x0b\x41SSOCIATION\x10\x05\x12\x0b\n\x07OVERAGE\x10\x06\"/\n\x16InvoiceDownloadRequest\x12\x15\n\rinvoiceNumber\x18\x01 \x01(\t\"9\n\x17InvoiceDownloadResponse\x12\x0c\n\x04link\x18\x01 \x01(\t\x12\x10\n\x08\x66ileName\x18\x02 \x01(\t\"<\n\x1dReportingDailySnapshotRequest\x12\r\n\x05month\x18\x01 \x01(\x05\x12\x0c\n\x04year\x18\x02 \x01(\x05\"v\n\x1eReportingDailySnapshotResponse\x12#\n\x07records\x18\x01 \x03(\x0b\x32\x12.BI.SnapshotRecord\x12/\n\rmcEnterprises\x18\x02 \x03(\x0b\x32\x18.BI.SnapshotMcEnterprise\"\xd7\x01\n\x0eSnapshotRecord\x12\x0c\n\x04\x64\x61te\x18\x01 \x01(\x03\x12\x16\n\x0emcEnterpriseId\x18\x02 \x01(\x05\x12\x17\n\x0fmaxLicenseCount\x18\x04 \x01(\x05\x12\x19\n\x11maxFilePlanTypeId\x18\x05 \x01(\x05\x12\x15\n\rmaxBasePlanId\x18\x06 \x01(\x05\x12(\n\x06\x61\x64\x64ons\x18\x07 \x03(\x0b\x32\x18.BI.SnapshotRecord.Addon\x1a*\n\x05\x41\x64\x64on\x12\x12\n\nmaxAddonId\x18\x01 \x01(\x05\x12\r\n\x05units\x18\x02 \x01(\x03\"0\n\x14SnapshotMcEnterprise\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\"\x16\n\x14MappingAddonsRequest\"\\\n\x15MappingAddonsResponse\x12\x1f\n\x06\x61\x64\x64ons\x18\x01 \x03(\x0b\x32\x0f.BI.MappingItem\x12\"\n\tfilePlans\x18\x02 \x03(\x0b\x32\x0f.BI.MappingItem\"\'\n\x0bMappingItem\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\"1\n\x1aGradientValidateKeyRequest\x12\x13\n\x0bgradientKey\x18\x01 \x01(\t\"?\n\x1bGradientValidateKeyResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\"E\n\x19GradientAddServiceRequest\x12\x13\n\x0bserviceName\x18\x01 \x01(\t\x12\x13\n\x0bserviceDesc\x18\x02 \x01(\t\">\n\x1aGradientAddServiceResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\"D\n\x13GradientSaveRequest\x12\x13\n\x0bgradientKey\x18\x01 \x01(\t\x12\x18\n\x10\x65nterpriseUserId\x18\x02 \x01(\x03\"g\n\x14GradientSaveResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12-\n\x06status\x18\x02 \x01(\x0e\x32\x1d.BI.GradientIntegrationStatus\x12\x0f\n\x07message\x18\x03 \x01(\t\"1\n\x15GradientRemoveRequest\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\":\n\x16GradientRemoveResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\"/\n\x13GradientSyncRequest\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\"g\n\x14GradientSyncResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12-\n\x06status\x18\x02 \x01(\x0e\x32\x1d.BI.GradientIntegrationStatus\x12\x0f\n\x07message\x18\x03 \x01(\t*D\n\x08\x43urrency\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03USD\x10\x01\x12\x07\n\x03GBP\x10\x02\x12\x07\n\x03JPY\x10\x03\x12\x07\n\x03\x45UR\x10\x04\x12\x07\n\x03\x41UD\x10\x05*S\n\x19GradientIntegrationStatus\x12\x10\n\x0cNOTCONNECTED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\r\n\tCONNECTED\x10\x02\x12\x08\n\x04NONE\x10\x03\x42\x1e\n\x18\x63om.keepersecurity.protoB\x02\x42Ib\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x08\x42I.proto\x12\x02\x42I\"f\n\x1bValidateSessionTokenRequest\x12\x1d\n\x15\x65ncryptedSessionToken\x18\x01 \x01(\x0c\x12\x1c\n\x14returnMcEnterpiseIds\x18\x02 \x01(\x08\x12\n\n\x02ip\x18\x03 \x01(\t\"\xda\x02\n\x1cValidateSessionTokenResponse\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x0e\n\x06userId\x18\x02 \x01(\x05\x12\x18\n\x10\x65nterpriseUserId\x18\x03 \x01(\x03\x12\x37\n\x06status\x18\x04 \x01(\x0e\x32\'.BI.ValidateSessionTokenResponse.Status\x12\x15\n\rstatusMessage\x18\x05 \x01(\t\x12\x17\n\x0fmcEnterpriseIds\x18\x06 \x03(\x05\x12\x18\n\x10hasMSPPermission\x18\x07 \x01(\x08\x12\x1e\n\x16\x64\x65letedMcEnterpriseIds\x18\x08 \x03(\x05\"[\n\x06Status\x12\t\n\x05VALID\x10\x00\x12\r\n\tNOT_VALID\x10\x01\x12\x0b\n\x07\x45XPIRED\x10\x02\x12\x0e\n\nIP_BLOCKED\x10\x03\x12\x1a\n\x16INVALID_CLIENT_VERSION\x10\x04\"\x1b\n\x19SubscriptionStatusRequest\"\xa6\x03\n\x1aSubscriptionStatusResponse\x12$\n\x0b\x61utoRenewal\x18\x01 \x01(\x0b\x32\x0f.BI.AutoRenewal\x12/\n\x14\x63urrentPaymentMethod\x18\x02 \x01(\x0b\x32\x11.BI.PaymentMethod\x12\x14\n\x0c\x63heckoutLink\x18\x03 \x01(\t\x12\x19\n\x11licenseCreateDate\x18\x04 \x01(\x03\x12\x15\n\risDistributor\x18\x05 \x01(\x08\x12\x13\n\x0bisLegacyMsp\x18\x06 \x01(\x08\x12&\n\x0clicenseStats\x18\x08 \x03(\x0b\x32\x10.BI.LicenseStats\x12\x35\n\x0egradientStatus\x18\t \x01(\x0e\x32\x1d.BI.GradientIntegrationStatus\x12\x17\n\x0fhideTrialBanner\x18\n \x01(\x08\x12\x1c\n\x14gradientLastSyncDate\x18\x0b \x01(\t\x12\x1c\n\x14gradientNextSyncDate\x18\x0c \x01(\t\x12 \n\x18isGradientMappingPending\x18\r \x01(\x08\"\xd7\x01\n\x0cLicenseStats\x12#\n\x04type\x18\x01 \x01(\x0e\x32\x15.BI.LicenseStats.Type\x12\x11\n\tavailable\x18\x02 \x01(\x05\x12\x0c\n\x04used\x18\x03 \x01(\x05\"\x80\x01\n\x04Type\x12\x18\n\x14LICENSE_STAT_UNKNOWN\x10\x00\x12\x0c\n\x08MSP_BASE\x10\x01\x12\x0f\n\x0bMC_BUSINESS\x10\x02\x12\x14\n\x10MC_BUSINESS_PLUS\x10\x03\x12\x11\n\rMC_ENTERPRISE\x10\x04\x12\x16\n\x12MC_ENTERPRISE_PLUS\x10\x05\"@\n\x0b\x41utoRenewal\x12\x0e\n\x06nextOn\x18\x01 \x01(\x03\x12\x10\n\x08\x64\x61ysLeft\x18\x02 \x01(\x05\x12\x0f\n\x07isTrial\x18\x03 \x01(\x08\"\x84\x04\n\rPaymentMethod\x12$\n\x04type\x18\x01 \x01(\x0e\x32\x16.BI.PaymentMethod.Type\x12$\n\x04\x63\x61rd\x18\x02 \x01(\x0b\x32\x16.BI.PaymentMethod.Card\x12$\n\x04sepa\x18\x03 \x01(\x0b\x32\x16.BI.PaymentMethod.Sepa\x12(\n\x06paypal\x18\x04 \x01(\x0b\x32\x18.BI.PaymentMethod.Paypal\x12\x15\n\rfailedBilling\x18\x05 \x01(\x08\x12(\n\x06vendor\x18\x06 \x01(\x0b\x32\x18.BI.PaymentMethod.Vendor\x12\x36\n\rpurchaseOrder\x18\x07 \x01(\x0b\x32\x1f.BI.PaymentMethod.PurchaseOrder\x1a$\n\x04\x43\x61rd\x12\r\n\x05last4\x18\x01 \x01(\t\x12\r\n\x05\x62rand\x18\x02 \x01(\t\x1a&\n\x04Sepa\x12\r\n\x05last4\x18\x01 \x01(\t\x12\x0f\n\x07\x63ountry\x18\x02 \x01(\t\x1a\x08\n\x06Paypal\x1a\x16\n\x06Vendor\x12\x0c\n\x04name\x18\x01 \x01(\t\x1a\x1d\n\rPurchaseOrder\x12\x0c\n\x04name\x18\x01 \x01(\t\"O\n\x04Type\x12\x08\n\x04\x43\x41RD\x10\x00\x12\x08\n\x04SEPA\x10\x01\x12\n\n\x06PAYPAL\x10\x02\x12\x08\n\x04NONE\x10\x03\x12\n\n\x06VENDOR\x10\x04\x12\x11\n\rPURCHASEORDER\x10\x05\"\x1f\n\x1dSubscriptionMspPricingRequest\"\\\n\x1eSubscriptionMspPricingResponse\x12\x19\n\x06\x61\x64\x64ons\x18\x02 \x03(\x0b\x32\t.BI.Addon\x12\x1f\n\tfilePlans\x18\x03 \x03(\x0b\x32\x0c.BI.FilePlan\"\x1e\n\x1cSubscriptionMcPricingRequest\"|\n\x1dSubscriptionMcPricingResponse\x12\x1f\n\tbasePlans\x18\x01 \x03(\x0b\x32\x0c.BI.BasePlan\x12\x19\n\x06\x61\x64\x64ons\x18\x02 \x03(\x0b\x32\t.BI.Addon\x12\x1f\n\tfilePlans\x18\x03 \x03(\x0b\x32\x0c.BI.FilePlan\".\n\x08\x42\x61sePlan\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x16\n\x04\x63ost\x18\x02 \x01(\x0b\x32\x08.BI.Cost\"C\n\x05\x41\x64\x64on\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x16\n\x04\x63ost\x18\x02 \x01(\x0b\x32\x08.BI.Cost\x12\x16\n\x0e\x61mountConsumed\x18\x03 \x01(\x03\".\n\x08\x46ilePlan\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x16\n\x04\x63ost\x18\x02 \x01(\x0b\x32\x08.BI.Cost\"\xab\x01\n\x04\x43ost\x12\x0e\n\x06\x61mount\x18\x03 \x01(\x01\x12%\n\tamountPer\x18\x04 \x01(\x0e\x32\x12.BI.Cost.AmountPer\x12\x1e\n\x08\x63urrency\x18\x05 \x01(\x0e\x32\x0c.BI.Currency\"L\n\tAmountPer\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05MONTH\x10\x01\x12\x0e\n\nUSER_MONTH\x10\x02\x12\x17\n\x13USER_CONSUMED_MONTH\x10\x03\"\\\n\x14InvoiceSearchRequest\x12\x0c\n\x04size\x18\x01 \x01(\x05\x12\x17\n\x0fstartingAfterId\x18\x02 \x01(\x05\x12\x1d\n\x15\x61llInvoicesUnfiltered\x18\x03 \x01(\x08\"6\n\x15InvoiceSearchResponse\x12\x1d\n\x08invoices\x18\x01 \x03(\x0b\x32\x0b.BI.Invoice\"\xbe\x02\n\x07Invoice\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x15\n\rinvoiceNumber\x18\x02 \x01(\t\x12\x13\n\x0binvoiceDate\x18\x03 \x01(\x03\x12\x14\n\x0clicenseCount\x18\x04 \x01(\x05\x12#\n\ttotalCost\x18\x05 \x01(\x0b\x32\x10.BI.Invoice.Cost\x12%\n\x0binvoiceType\x18\x06 \x01(\x0e\x32\x10.BI.Invoice.Type\x1a\x36\n\x04\x43ost\x12\x0e\n\x06\x61mount\x18\x01 \x01(\x01\x12\x1e\n\x08\x63urrency\x18\x02 \x01(\x0e\x32\x0c.BI.Currency\"a\n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03NEW\x10\x01\x12\x0b\n\x07RENEWAL\x10\x02\x12\x0b\n\x07UPGRADE\x10\x03\x12\x0b\n\x07RESTORE\x10\x04\x12\x0f\n\x0b\x41SSOCIATION\x10\x05\x12\x0b\n\x07OVERAGE\x10\x06\"/\n\x16InvoiceDownloadRequest\x12\x15\n\rinvoiceNumber\x18\x01 \x01(\t\"9\n\x17InvoiceDownloadResponse\x12\x0c\n\x04link\x18\x01 \x01(\t\x12\x10\n\x08\x66ileName\x18\x02 \x01(\t\"<\n\x1dReportingDailySnapshotRequest\x12\r\n\x05month\x18\x01 \x01(\x05\x12\x0c\n\x04year\x18\x02 \x01(\x05\"v\n\x1eReportingDailySnapshotResponse\x12#\n\x07records\x18\x01 \x03(\x0b\x32\x12.BI.SnapshotRecord\x12/\n\rmcEnterprises\x18\x02 \x03(\x0b\x32\x18.BI.SnapshotMcEnterprise\"\xd7\x01\n\x0eSnapshotRecord\x12\x0c\n\x04\x64\x61te\x18\x01 \x01(\x03\x12\x16\n\x0emcEnterpriseId\x18\x02 \x01(\x05\x12\x17\n\x0fmaxLicenseCount\x18\x04 \x01(\x05\x12\x19\n\x11maxFilePlanTypeId\x18\x05 \x01(\x05\x12\x15\n\rmaxBasePlanId\x18\x06 \x01(\x05\x12(\n\x06\x61\x64\x64ons\x18\x07 \x03(\x0b\x32\x18.BI.SnapshotRecord.Addon\x1a*\n\x05\x41\x64\x64on\x12\x12\n\nmaxAddonId\x18\x01 \x01(\x05\x12\r\n\x05units\x18\x02 \x01(\x03\"0\n\x14SnapshotMcEnterprise\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\"\x16\n\x14MappingAddonsRequest\"\\\n\x15MappingAddonsResponse\x12\x1f\n\x06\x61\x64\x64ons\x18\x01 \x03(\x0b\x32\x0f.BI.MappingItem\x12\"\n\tfilePlans\x18\x02 \x03(\x0b\x32\x0f.BI.MappingItem\"\'\n\x0bMappingItem\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\"1\n\x1aGradientValidateKeyRequest\x12\x13\n\x0bgradientKey\x18\x01 \x01(\t\"?\n\x1bGradientValidateKeyResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\"D\n\x13GradientSaveRequest\x12\x13\n\x0bgradientKey\x18\x01 \x01(\t\x12\x18\n\x10\x65nterpriseUserId\x18\x02 \x01(\x03\"g\n\x14GradientSaveResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12-\n\x06status\x18\x02 \x01(\x0e\x32\x1d.BI.GradientIntegrationStatus\x12\x0f\n\x07message\x18\x03 \x01(\t\"1\n\x15GradientRemoveRequest\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\":\n\x16GradientRemoveResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\"/\n\x13GradientSyncRequest\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\"g\n\x14GradientSyncResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12-\n\x06status\x18\x02 \x01(\x0e\x32\x1d.BI.GradientIntegrationStatus\x12\x0f\n\x07message\x18\x03 \x01(\t\"N\n\'NetPromoterScoreSurveySubmissionRequest\x12\x14\n\x0csurvey_score\x18\x01 \x01(\x05\x12\r\n\x05notes\x18\x02 \x01(\t\"*\n(NetPromoterScoreSurveySubmissionResponse\"&\n$NetPromoterScorePopupScheduleRequest\";\n%NetPromoterScorePopupScheduleResponse\x12\x12\n\nshow_popup\x18\x01 \x01(\x08\"\'\n%NetPromoterScorePopupDismissalRequest\"(\n&NetPromoterScorePopupDismissalResponse\"-\n\x11KCMLicenseRequest\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\"%\n\x12KCMLicenseResponse\x12\x0f\n\x07message\x18\x01 \x01(\t*D\n\x08\x43urrency\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03USD\x10\x01\x12\x07\n\x03GBP\x10\x02\x12\x07\n\x03JPY\x10\x03\x12\x07\n\x03\x45UR\x10\x04\x12\x07\n\x03\x41UD\x10\x05*S\n\x19GradientIntegrationStatus\x12\x10\n\x0cNOTCONNECTED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\r\n\tCONNECTED\x10\x02\x12\x08\n\x04NONE\x10\x03\x42\x1e\n\x18\x63om.keepersecurity.protoB\x02\x42Ib\x06proto3') _CURRENCY = DESCRIPTOR.enum_types_by_name['Currency'] Currency = enum_type_wrapper.EnumTypeWrapper(_CURRENCY) @@ -69,14 +69,20 @@ _MAPPINGITEM = DESCRIPTOR.message_types_by_name['MappingItem'] _GRADIENTVALIDATEKEYREQUEST = DESCRIPTOR.message_types_by_name['GradientValidateKeyRequest'] _GRADIENTVALIDATEKEYRESPONSE = DESCRIPTOR.message_types_by_name['GradientValidateKeyResponse'] -_GRADIENTADDSERVICEREQUEST = DESCRIPTOR.message_types_by_name['GradientAddServiceRequest'] -_GRADIENTADDSERVICERESPONSE = DESCRIPTOR.message_types_by_name['GradientAddServiceResponse'] _GRADIENTSAVEREQUEST = DESCRIPTOR.message_types_by_name['GradientSaveRequest'] _GRADIENTSAVERESPONSE = DESCRIPTOR.message_types_by_name['GradientSaveResponse'] _GRADIENTREMOVEREQUEST = DESCRIPTOR.message_types_by_name['GradientRemoveRequest'] _GRADIENTREMOVERESPONSE = DESCRIPTOR.message_types_by_name['GradientRemoveResponse'] _GRADIENTSYNCREQUEST = DESCRIPTOR.message_types_by_name['GradientSyncRequest'] _GRADIENTSYNCRESPONSE = DESCRIPTOR.message_types_by_name['GradientSyncResponse'] +_NETPROMOTERSCORESURVEYSUBMISSIONREQUEST = DESCRIPTOR.message_types_by_name['NetPromoterScoreSurveySubmissionRequest'] +_NETPROMOTERSCORESURVEYSUBMISSIONRESPONSE = DESCRIPTOR.message_types_by_name['NetPromoterScoreSurveySubmissionResponse'] +_NETPROMOTERSCOREPOPUPSCHEDULEREQUEST = DESCRIPTOR.message_types_by_name['NetPromoterScorePopupScheduleRequest'] +_NETPROMOTERSCOREPOPUPSCHEDULERESPONSE = DESCRIPTOR.message_types_by_name['NetPromoterScorePopupScheduleResponse'] +_NETPROMOTERSCOREPOPUPDISMISSALREQUEST = DESCRIPTOR.message_types_by_name['NetPromoterScorePopupDismissalRequest'] +_NETPROMOTERSCOREPOPUPDISMISSALRESPONSE = DESCRIPTOR.message_types_by_name['NetPromoterScorePopupDismissalResponse'] +_KCMLICENSEREQUEST = DESCRIPTOR.message_types_by_name['KCMLicenseRequest'] +_KCMLICENSERESPONSE = DESCRIPTOR.message_types_by_name['KCMLicenseResponse'] _VALIDATESESSIONTOKENRESPONSE_STATUS = _VALIDATESESSIONTOKENRESPONSE.enum_types_by_name['Status'] _LICENSESTATS_TYPE = _LICENSESTATS.enum_types_by_name['Type'] _PAYMENTMETHOD_TYPE = _PAYMENTMETHOD.enum_types_by_name['Type'] @@ -341,20 +347,6 @@ }) _sym_db.RegisterMessage(GradientValidateKeyResponse) -GradientAddServiceRequest = _reflection.GeneratedProtocolMessageType('GradientAddServiceRequest', (_message.Message,), { - 'DESCRIPTOR' : _GRADIENTADDSERVICEREQUEST, - '__module__' : 'BI_pb2' - # @@protoc_insertion_point(class_scope:BI.GradientAddServiceRequest) - }) -_sym_db.RegisterMessage(GradientAddServiceRequest) - -GradientAddServiceResponse = _reflection.GeneratedProtocolMessageType('GradientAddServiceResponse', (_message.Message,), { - 'DESCRIPTOR' : _GRADIENTADDSERVICERESPONSE, - '__module__' : 'BI_pb2' - # @@protoc_insertion_point(class_scope:BI.GradientAddServiceResponse) - }) -_sym_db.RegisterMessage(GradientAddServiceResponse) - GradientSaveRequest = _reflection.GeneratedProtocolMessageType('GradientSaveRequest', (_message.Message,), { 'DESCRIPTOR' : _GRADIENTSAVEREQUEST, '__module__' : 'BI_pb2' @@ -397,14 +389,70 @@ }) _sym_db.RegisterMessage(GradientSyncResponse) +NetPromoterScoreSurveySubmissionRequest = _reflection.GeneratedProtocolMessageType('NetPromoterScoreSurveySubmissionRequest', (_message.Message,), { + 'DESCRIPTOR' : _NETPROMOTERSCORESURVEYSUBMISSIONREQUEST, + '__module__' : 'BI_pb2' + # @@protoc_insertion_point(class_scope:BI.NetPromoterScoreSurveySubmissionRequest) + }) +_sym_db.RegisterMessage(NetPromoterScoreSurveySubmissionRequest) + +NetPromoterScoreSurveySubmissionResponse = _reflection.GeneratedProtocolMessageType('NetPromoterScoreSurveySubmissionResponse', (_message.Message,), { + 'DESCRIPTOR' : _NETPROMOTERSCORESURVEYSUBMISSIONRESPONSE, + '__module__' : 'BI_pb2' + # @@protoc_insertion_point(class_scope:BI.NetPromoterScoreSurveySubmissionResponse) + }) +_sym_db.RegisterMessage(NetPromoterScoreSurveySubmissionResponse) + +NetPromoterScorePopupScheduleRequest = _reflection.GeneratedProtocolMessageType('NetPromoterScorePopupScheduleRequest', (_message.Message,), { + 'DESCRIPTOR' : _NETPROMOTERSCOREPOPUPSCHEDULEREQUEST, + '__module__' : 'BI_pb2' + # @@protoc_insertion_point(class_scope:BI.NetPromoterScorePopupScheduleRequest) + }) +_sym_db.RegisterMessage(NetPromoterScorePopupScheduleRequest) + +NetPromoterScorePopupScheduleResponse = _reflection.GeneratedProtocolMessageType('NetPromoterScorePopupScheduleResponse', (_message.Message,), { + 'DESCRIPTOR' : _NETPROMOTERSCOREPOPUPSCHEDULERESPONSE, + '__module__' : 'BI_pb2' + # @@protoc_insertion_point(class_scope:BI.NetPromoterScorePopupScheduleResponse) + }) +_sym_db.RegisterMessage(NetPromoterScorePopupScheduleResponse) + +NetPromoterScorePopupDismissalRequest = _reflection.GeneratedProtocolMessageType('NetPromoterScorePopupDismissalRequest', (_message.Message,), { + 'DESCRIPTOR' : _NETPROMOTERSCOREPOPUPDISMISSALREQUEST, + '__module__' : 'BI_pb2' + # @@protoc_insertion_point(class_scope:BI.NetPromoterScorePopupDismissalRequest) + }) +_sym_db.RegisterMessage(NetPromoterScorePopupDismissalRequest) + +NetPromoterScorePopupDismissalResponse = _reflection.GeneratedProtocolMessageType('NetPromoterScorePopupDismissalResponse', (_message.Message,), { + 'DESCRIPTOR' : _NETPROMOTERSCOREPOPUPDISMISSALRESPONSE, + '__module__' : 'BI_pb2' + # @@protoc_insertion_point(class_scope:BI.NetPromoterScorePopupDismissalResponse) + }) +_sym_db.RegisterMessage(NetPromoterScorePopupDismissalResponse) + +KCMLicenseRequest = _reflection.GeneratedProtocolMessageType('KCMLicenseRequest', (_message.Message,), { + 'DESCRIPTOR' : _KCMLICENSEREQUEST, + '__module__' : 'BI_pb2' + # @@protoc_insertion_point(class_scope:BI.KCMLicenseRequest) + }) +_sym_db.RegisterMessage(KCMLicenseRequest) + +KCMLicenseResponse = _reflection.GeneratedProtocolMessageType('KCMLicenseResponse', (_message.Message,), { + 'DESCRIPTOR' : _KCMLICENSERESPONSE, + '__module__' : 'BI_pb2' + # @@protoc_insertion_point(class_scope:BI.KCMLicenseResponse) + }) +_sym_db.RegisterMessage(KCMLicenseResponse) + if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\030com.keepersecurity.protoB\002BI' - _CURRENCY._serialized_start=4079 - _CURRENCY._serialized_end=4147 - _GRADIENTINTEGRATIONSTATUS._serialized_start=4149 - _GRADIENTINTEGRATIONSTATUS._serialized_end=4232 + _CURRENCY._serialized_start=4488 + _CURRENCY._serialized_end=4556 + _GRADIENTINTEGRATIONSTATUS._serialized_start=4558 + _GRADIENTINTEGRATIONSTATUS._serialized_end=4641 _VALIDATESESSIONTOKENREQUEST._serialized_start=16 _VALIDATESESSIONTOKENREQUEST._serialized_end=118 _VALIDATESESSIONTOKENRESPONSE._serialized_start=121 @@ -414,93 +462,105 @@ _SUBSCRIPTIONSTATUSREQUEST._serialized_start=469 _SUBSCRIPTIONSTATUSREQUEST._serialized_end=496 _SUBSCRIPTIONSTATUSRESPONSE._serialized_start=499 - _SUBSCRIPTIONSTATUSRESPONSE._serialized_end=802 - _LICENSESTATS._serialized_start=805 - _LICENSESTATS._serialized_end=1020 - _LICENSESTATS_TYPE._serialized_start=892 - _LICENSESTATS_TYPE._serialized_end=1020 - _AUTORENEWAL._serialized_start=1022 - _AUTORENEWAL._serialized_end=1086 - _PAYMENTMETHOD._serialized_start=1089 - _PAYMENTMETHOD._serialized_end=1605 - _PAYMENTMETHOD_CARD._serialized_start=1383 - _PAYMENTMETHOD_CARD._serialized_end=1419 - _PAYMENTMETHOD_SEPA._serialized_start=1421 - _PAYMENTMETHOD_SEPA._serialized_end=1459 - _PAYMENTMETHOD_PAYPAL._serialized_start=1461 - _PAYMENTMETHOD_PAYPAL._serialized_end=1469 - _PAYMENTMETHOD_VENDOR._serialized_start=1471 - _PAYMENTMETHOD_VENDOR._serialized_end=1493 - _PAYMENTMETHOD_PURCHASEORDER._serialized_start=1495 - _PAYMENTMETHOD_PURCHASEORDER._serialized_end=1524 - _PAYMENTMETHOD_TYPE._serialized_start=1526 - _PAYMENTMETHOD_TYPE._serialized_end=1605 - _SUBSCRIPTIONMSPPRICINGREQUEST._serialized_start=1607 - _SUBSCRIPTIONMSPPRICINGREQUEST._serialized_end=1638 - _SUBSCRIPTIONMSPPRICINGRESPONSE._serialized_start=1640 - _SUBSCRIPTIONMSPPRICINGRESPONSE._serialized_end=1732 - _SUBSCRIPTIONMCPRICINGREQUEST._serialized_start=1734 - _SUBSCRIPTIONMCPRICINGREQUEST._serialized_end=1764 - _SUBSCRIPTIONMCPRICINGRESPONSE._serialized_start=1766 - _SUBSCRIPTIONMCPRICINGRESPONSE._serialized_end=1890 - _BASEPLAN._serialized_start=1892 - _BASEPLAN._serialized_end=1938 - _ADDON._serialized_start=1940 - _ADDON._serialized_end=2007 - _FILEPLAN._serialized_start=2009 - _FILEPLAN._serialized_end=2055 - _COST._serialized_start=2058 - _COST._serialized_end=2229 - _COST_AMOUNTPER._serialized_start=2153 - _COST_AMOUNTPER._serialized_end=2229 - _INVOICESEARCHREQUEST._serialized_start=2231 - _INVOICESEARCHREQUEST._serialized_end=2292 - _INVOICESEARCHRESPONSE._serialized_start=2294 - _INVOICESEARCHRESPONSE._serialized_end=2348 - _INVOICE._serialized_start=2351 - _INVOICE._serialized_end=2669 - _INVOICE_COST._serialized_start=2516 - _INVOICE_COST._serialized_end=2570 - _INVOICE_TYPE._serialized_start=2572 - _INVOICE_TYPE._serialized_end=2669 - _INVOICEDOWNLOADREQUEST._serialized_start=2671 - _INVOICEDOWNLOADREQUEST._serialized_end=2718 - _INVOICEDOWNLOADRESPONSE._serialized_start=2720 - _INVOICEDOWNLOADRESPONSE._serialized_end=2777 - _REPORTINGDAILYSNAPSHOTREQUEST._serialized_start=2779 - _REPORTINGDAILYSNAPSHOTREQUEST._serialized_end=2839 - _REPORTINGDAILYSNAPSHOTRESPONSE._serialized_start=2841 - _REPORTINGDAILYSNAPSHOTRESPONSE._serialized_end=2959 - _SNAPSHOTRECORD._serialized_start=2962 - _SNAPSHOTRECORD._serialized_end=3177 - _SNAPSHOTRECORD_ADDON._serialized_start=3135 - _SNAPSHOTRECORD_ADDON._serialized_end=3177 - _SNAPSHOTMCENTERPRISE._serialized_start=3179 - _SNAPSHOTMCENTERPRISE._serialized_end=3227 - _MAPPINGADDONSREQUEST._serialized_start=3229 - _MAPPINGADDONSREQUEST._serialized_end=3251 - _MAPPINGADDONSRESPONSE._serialized_start=3253 - _MAPPINGADDONSRESPONSE._serialized_end=3345 - _MAPPINGITEM._serialized_start=3347 - _MAPPINGITEM._serialized_end=3386 - _GRADIENTVALIDATEKEYREQUEST._serialized_start=3388 - _GRADIENTVALIDATEKEYREQUEST._serialized_end=3437 - _GRADIENTVALIDATEKEYRESPONSE._serialized_start=3439 - _GRADIENTVALIDATEKEYRESPONSE._serialized_end=3502 - _GRADIENTADDSERVICEREQUEST._serialized_start=3504 - _GRADIENTADDSERVICEREQUEST._serialized_end=3573 - _GRADIENTADDSERVICERESPONSE._serialized_start=3575 - _GRADIENTADDSERVICERESPONSE._serialized_end=3637 - _GRADIENTSAVEREQUEST._serialized_start=3639 - _GRADIENTSAVEREQUEST._serialized_end=3707 - _GRADIENTSAVERESPONSE._serialized_start=3709 - _GRADIENTSAVERESPONSE._serialized_end=3812 - _GRADIENTREMOVEREQUEST._serialized_start=3814 - _GRADIENTREMOVEREQUEST._serialized_end=3863 - _GRADIENTREMOVERESPONSE._serialized_start=3865 - _GRADIENTREMOVERESPONSE._serialized_end=3923 - _GRADIENTSYNCREQUEST._serialized_start=3925 - _GRADIENTSYNCREQUEST._serialized_end=3972 - _GRADIENTSYNCRESPONSE._serialized_start=3974 - _GRADIENTSYNCRESPONSE._serialized_end=4077 + _SUBSCRIPTIONSTATUSRESPONSE._serialized_end=921 + _LICENSESTATS._serialized_start=924 + _LICENSESTATS._serialized_end=1139 + _LICENSESTATS_TYPE._serialized_start=1011 + _LICENSESTATS_TYPE._serialized_end=1139 + _AUTORENEWAL._serialized_start=1141 + _AUTORENEWAL._serialized_end=1205 + _PAYMENTMETHOD._serialized_start=1208 + _PAYMENTMETHOD._serialized_end=1724 + _PAYMENTMETHOD_CARD._serialized_start=1502 + _PAYMENTMETHOD_CARD._serialized_end=1538 + _PAYMENTMETHOD_SEPA._serialized_start=1540 + _PAYMENTMETHOD_SEPA._serialized_end=1578 + _PAYMENTMETHOD_PAYPAL._serialized_start=1580 + _PAYMENTMETHOD_PAYPAL._serialized_end=1588 + _PAYMENTMETHOD_VENDOR._serialized_start=1590 + _PAYMENTMETHOD_VENDOR._serialized_end=1612 + _PAYMENTMETHOD_PURCHASEORDER._serialized_start=1614 + _PAYMENTMETHOD_PURCHASEORDER._serialized_end=1643 + _PAYMENTMETHOD_TYPE._serialized_start=1645 + _PAYMENTMETHOD_TYPE._serialized_end=1724 + _SUBSCRIPTIONMSPPRICINGREQUEST._serialized_start=1726 + _SUBSCRIPTIONMSPPRICINGREQUEST._serialized_end=1757 + _SUBSCRIPTIONMSPPRICINGRESPONSE._serialized_start=1759 + _SUBSCRIPTIONMSPPRICINGRESPONSE._serialized_end=1851 + _SUBSCRIPTIONMCPRICINGREQUEST._serialized_start=1853 + _SUBSCRIPTIONMCPRICINGREQUEST._serialized_end=1883 + _SUBSCRIPTIONMCPRICINGRESPONSE._serialized_start=1885 + _SUBSCRIPTIONMCPRICINGRESPONSE._serialized_end=2009 + _BASEPLAN._serialized_start=2011 + _BASEPLAN._serialized_end=2057 + _ADDON._serialized_start=2059 + _ADDON._serialized_end=2126 + _FILEPLAN._serialized_start=2128 + _FILEPLAN._serialized_end=2174 + _COST._serialized_start=2177 + _COST._serialized_end=2348 + _COST_AMOUNTPER._serialized_start=2272 + _COST_AMOUNTPER._serialized_end=2348 + _INVOICESEARCHREQUEST._serialized_start=2350 + _INVOICESEARCHREQUEST._serialized_end=2442 + _INVOICESEARCHRESPONSE._serialized_start=2444 + _INVOICESEARCHRESPONSE._serialized_end=2498 + _INVOICE._serialized_start=2501 + _INVOICE._serialized_end=2819 + _INVOICE_COST._serialized_start=2666 + _INVOICE_COST._serialized_end=2720 + _INVOICE_TYPE._serialized_start=2722 + _INVOICE_TYPE._serialized_end=2819 + _INVOICEDOWNLOADREQUEST._serialized_start=2821 + _INVOICEDOWNLOADREQUEST._serialized_end=2868 + _INVOICEDOWNLOADRESPONSE._serialized_start=2870 + _INVOICEDOWNLOADRESPONSE._serialized_end=2927 + _REPORTINGDAILYSNAPSHOTREQUEST._serialized_start=2929 + _REPORTINGDAILYSNAPSHOTREQUEST._serialized_end=2989 + _REPORTINGDAILYSNAPSHOTRESPONSE._serialized_start=2991 + _REPORTINGDAILYSNAPSHOTRESPONSE._serialized_end=3109 + _SNAPSHOTRECORD._serialized_start=3112 + _SNAPSHOTRECORD._serialized_end=3327 + _SNAPSHOTRECORD_ADDON._serialized_start=3285 + _SNAPSHOTRECORD_ADDON._serialized_end=3327 + _SNAPSHOTMCENTERPRISE._serialized_start=3329 + _SNAPSHOTMCENTERPRISE._serialized_end=3377 + _MAPPINGADDONSREQUEST._serialized_start=3379 + _MAPPINGADDONSREQUEST._serialized_end=3401 + _MAPPINGADDONSRESPONSE._serialized_start=3403 + _MAPPINGADDONSRESPONSE._serialized_end=3495 + _MAPPINGITEM._serialized_start=3497 + _MAPPINGITEM._serialized_end=3536 + _GRADIENTVALIDATEKEYREQUEST._serialized_start=3538 + _GRADIENTVALIDATEKEYREQUEST._serialized_end=3587 + _GRADIENTVALIDATEKEYRESPONSE._serialized_start=3589 + _GRADIENTVALIDATEKEYRESPONSE._serialized_end=3652 + _GRADIENTSAVEREQUEST._serialized_start=3654 + _GRADIENTSAVEREQUEST._serialized_end=3722 + _GRADIENTSAVERESPONSE._serialized_start=3724 + _GRADIENTSAVERESPONSE._serialized_end=3827 + _GRADIENTREMOVEREQUEST._serialized_start=3829 + _GRADIENTREMOVEREQUEST._serialized_end=3878 + _GRADIENTREMOVERESPONSE._serialized_start=3880 + _GRADIENTREMOVERESPONSE._serialized_end=3938 + _GRADIENTSYNCREQUEST._serialized_start=3940 + _GRADIENTSYNCREQUEST._serialized_end=3987 + _GRADIENTSYNCRESPONSE._serialized_start=3989 + _GRADIENTSYNCRESPONSE._serialized_end=4092 + _NETPROMOTERSCORESURVEYSUBMISSIONREQUEST._serialized_start=4094 + _NETPROMOTERSCORESURVEYSUBMISSIONREQUEST._serialized_end=4172 + _NETPROMOTERSCORESURVEYSUBMISSIONRESPONSE._serialized_start=4174 + _NETPROMOTERSCORESURVEYSUBMISSIONRESPONSE._serialized_end=4216 + _NETPROMOTERSCOREPOPUPSCHEDULEREQUEST._serialized_start=4218 + _NETPROMOTERSCOREPOPUPSCHEDULEREQUEST._serialized_end=4256 + _NETPROMOTERSCOREPOPUPSCHEDULERESPONSE._serialized_start=4258 + _NETPROMOTERSCOREPOPUPSCHEDULERESPONSE._serialized_end=4317 + _NETPROMOTERSCOREPOPUPDISMISSALREQUEST._serialized_start=4319 + _NETPROMOTERSCOREPOPUPDISMISSALREQUEST._serialized_end=4358 + _NETPROMOTERSCOREPOPUPDISMISSALRESPONSE._serialized_start=4360 + _NETPROMOTERSCOREPOPUPDISMISSALRESPONSE._serialized_end=4400 + _KCMLICENSEREQUEST._serialized_start=4402 + _KCMLICENSEREQUEST._serialized_end=4447 + _KCMLICENSERESPONSE._serialized_start=4449 + _KCMLICENSERESPONSE._serialized_end=4486 # @@protoc_insertion_point(module_scope) diff --git a/keepercommander/proto/SyncDown_pb2.py b/keepercommander/proto/SyncDown_pb2.py index 6cba03d73..9ec05b6e5 100644 --- a/keepercommander/proto/SyncDown_pb2.py +++ b/keepercommander/proto/SyncDown_pb2.py @@ -16,9 +16,10 @@ from . import record_pb2 as record__pb2 from . import breachwatch_pb2 as breachwatch__pb2 from . import APIRequest_pb2 as APIRequest__pb2 +from . import enterprise_pb2 as enterprise__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eSyncDown.proto\x12\x05Vault\x1a\x0crecord.proto\x1a\x11\x62reachwatch.proto\x1a\x10\x41PIRequest.proto\",\n\x0fSyncDownRequest\x12\x19\n\x11\x63ontinuationToken\x18\x01 \x01(\x0c\"\x89\x10\n\x10SyncDownResponse\x12\x19\n\x11\x63ontinuationToken\x18\x01 \x01(\x0c\x12\x0f\n\x07hasMore\x18\x02 \x01(\x08\x12\'\n\x0b\x63\x61\x63heStatus\x18\x03 \x01(\x0e\x32\x12.Vault.CacheStatus\x12&\n\x0buserFolders\x18\x04 \x03(\x0b\x32\x11.Vault.UserFolder\x12*\n\rsharedFolders\x18\x05 \x03(\x0b\x32\x13.Vault.SharedFolder\x12>\n\x17userFolderSharedFolders\x18\x06 \x03(\x0b\x32\x1d.Vault.UserFolderSharedFolder\x12\x36\n\x13sharedFolderFolders\x18\x07 \x03(\x0b\x32\x19.Vault.SharedFolderFolder\x12\x1e\n\x07records\x18\x08 \x03(\x0b\x32\r.Vault.Record\x12-\n\x0erecordMetaData\x18\t \x03(\x0b\x32\x15.Vault.RecordMetaData\x12+\n\rnonSharedData\x18\n \x03(\x0b\x32\x14.Vault.NonSharedData\x12&\n\x0brecordLinks\x18\x0b \x03(\x0b\x32\x11.Vault.RecordLink\x12\x32\n\x11userFolderRecords\x18\x0c \x03(\x0b\x32\x17.Vault.UserFolderRecord\x12\x36\n\x13sharedFolderRecords\x18\r \x03(\x0b\x32\x19.Vault.SharedFolderRecord\x12\x42\n\x19sharedFolderFolderRecords\x18\x0e \x03(\x0b\x32\x1f.Vault.SharedFolderFolderRecord\x12\x32\n\x11sharedFolderUsers\x18\x0f \x03(\x0b\x32\x17.Vault.SharedFolderUser\x12\x32\n\x11sharedFolderTeams\x18\x10 \x03(\x0b\x32\x17.Vault.SharedFolderTeam\x12\x1a\n\x12recordAddAuditData\x18\x11 \x03(\x0c\x12\x1a\n\x05teams\x18\x12 \x03(\x0b\x32\x0b.Vault.Team\x12,\n\x0esharingChanges\x18\x13 \x03(\x0b\x32\x14.Vault.SharingChange\x12\x1f\n\x07profile\x18\x14 \x01(\x0b\x32\x0e.Vault.Profile\x12%\n\nprofilePic\x18\x15 \x01(\x0b\x32\x11.Vault.ProfilePic\x12\x34\n\x12pendingTeamMembers\x18\x16 \x03(\x0b\x32\x18.Vault.PendingTeamMember\x12\x34\n\x12\x62reachWatchRecords\x18\x17 \x03(\x0b\x32\x18.Vault.BreachWatchRecord\x12\"\n\tuserAuths\x18\x18 \x03(\x0b\x32\x0f.Vault.UserAuth\x12?\n\x17\x62reachWatchSecurityData\x18\x19 \x03(\x0b\x32\x1e.Vault.BreachWatchSecurityData\x12/\n\x0freusedPasswords\x18\x1a \x01(\x0b\x32\x16.Vault.ReusedPasswords\x12\x1a\n\x12removedUserFolders\x18\x1b \x03(\x0c\x12\x1c\n\x14removedSharedFolders\x18\x1c \x03(\x0c\x12\x45\n\x1eremovedUserFolderSharedFolders\x18\x1d \x03(\x0b\x32\x1d.Vault.UserFolderSharedFolder\x12=\n\x1aremovedSharedFolderFolders\x18\x1e \x03(\x0b\x32\x19.Vault.SharedFolderFolder\x12\x16\n\x0eremovedRecords\x18\x1f \x03(\x0c\x12-\n\x12removedRecordLinks\x18 \x03(\x0b\x32\x11.Vault.RecordLink\x12\x39\n\x18removedUserFolderRecords\x18! \x03(\x0b\x32\x17.Vault.UserFolderRecord\x12=\n\x1aremovedSharedFolderRecords\x18\" \x03(\x0b\x32\x19.Vault.SharedFolderRecord\x12I\n removedSharedFolderFolderRecords\x18# \x03(\x0b\x32\x1f.Vault.SharedFolderFolderRecord\x12\x39\n\x18removedSharedFolderUsers\x18$ \x03(\x0b\x32\x17.Vault.SharedFolderUser\x12\x39\n\x18removedSharedFolderTeams\x18% \x03(\x0b\x32\x17.Vault.SharedFolderTeam\x12\x14\n\x0cremovedTeams\x18& \x03(\x0c\x12&\n\x0cksmAppShares\x18\' \x03(\x0b\x32\x10.Vault.KsmChange\x12\'\n\rksmAppClients\x18( \x03(\x0b\x32\x10.Vault.KsmChange\x12\x30\n\x10shareInvitations\x18) \x03(\x0b\x32\x16.Vault.ShareInvitation\x12+\n\x0b\x64iagnostics\x18* \x01(\x0b\x32\x16.Vault.SyncDiagnostics\x12.\n\x0frecordRotations\x18+ \x03(\x0b\x32\x15.Vault.RecordRotation\x12\x1a\n\x05users\x18, \x03(\x0b\x32\x0b.Vault.User\x12\x14\n\x0cremovedUsers\x18- \x03(\x0c\"\x92\x01\n\nUserFolder\x12\x11\n\tfolderUid\x18\x01 \x01(\x0c\x12\x11\n\tparentUid\x18\x02 \x01(\x0c\x12\x15\n\ruserFolderKey\x18\x03 \x01(\x0c\x12\'\n\x07keyType\x18\x04 \x01(\x0e\x32\x16.Records.RecordKeyType\x12\x10\n\x08revision\x18\x05 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x06 \x01(\x0c\"\xd5\x02\n\x0cSharedFolder\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x10\n\x08revision\x18\x02 \x01(\x03\x12\x17\n\x0fsharedFolderKey\x18\x03 \x01(\x0c\x12\'\n\x07keyType\x18\x04 \x01(\x0e\x32\x16.Records.RecordKeyType\x12\x0c\n\x04\x64\x61ta\x18\x05 \x01(\x0c\x12\x1c\n\x14\x64\x65\x66\x61ultManageRecords\x18\x06 \x01(\x08\x12\x1a\n\x12\x64\x65\x66\x61ultManageUsers\x18\x07 \x01(\x08\x12\x16\n\x0e\x64\x65\x66\x61ultCanEdit\x18\x08 \x01(\x08\x12\x19\n\x11\x64\x65\x66\x61ultCanReshare\x18\t \x01(\x08\x12\'\n\x0b\x63\x61\x63heStatus\x18\n \x01(\x0e\x32\x12.Vault.CacheStatus\x12\r\n\x05owner\x18\x0b \x01(\t\x12\x17\n\x0fownerAccountUid\x18\x0c \x01(\x0c\x12\x0c\n\x04name\x18\r \x01(\x0c\"V\n\x16UserFolderSharedFolder\x12\x11\n\tfolderUid\x18\x01 \x01(\x0c\x12\x17\n\x0fsharedFolderUid\x18\x02 \x01(\x0c\x12\x10\n\x08revision\x18\x03 \x01(\x03\"\xbb\x01\n\x12SharedFolderFolder\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x11\n\tfolderUid\x18\x02 \x01(\x0c\x12\x11\n\tparentUid\x18\x03 \x01(\x0c\x12\x1d\n\x15sharedFolderFolderKey\x18\x04 \x01(\x0c\x12\'\n\x07keyType\x18\x05 \x01(\x0e\x32\x16.Records.RecordKeyType\x12\x10\n\x08revision\x18\x06 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x07 \x01(\x0c\"l\n\x0fSharedFolderKey\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x17\n\x0fsharedFolderKey\x18\x02 \x01(\x0c\x12\'\n\x07keyType\x18\x03 \x01(\x0e\x32\x16.Records.RecordKeyType\"\x8e\x02\n\x04Team\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0f\n\x07teamKey\x18\x03 \x01(\x0c\x12+\n\x0bteamKeyType\x18\x04 \x01(\x0e\x32\x16.Records.RecordKeyType\x12\x16\n\x0eteamPrivateKey\x18\x05 \x01(\x0c\x12\x14\n\x0crestrictEdit\x18\x06 \x01(\x08\x12\x15\n\rrestrictShare\x18\x07 \x01(\x08\x12\x14\n\x0crestrictView\x18\x08 \x01(\x08\x12\x1c\n\x14removedSharedFolders\x18\t \x03(\x0c\x12\x30\n\x10sharedFolderKeys\x18\n \x03(\x0b\x32\x16.Vault.SharedFolderKey\"\xbf\x01\n\x06Record\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x10\n\x08revision\x18\x02 \x01(\x03\x12\x0f\n\x07version\x18\x03 \x01(\x05\x12\x0e\n\x06shared\x18\x04 \x01(\x08\x12\x1a\n\x12\x63lientModifiedTime\x18\x05 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x06 \x01(\x0c\x12\r\n\x05\x65xtra\x18\x07 \x01(\x0c\x12\r\n\x05udata\x18\x08 \x01(\t\x12\x10\n\x08\x66ileSize\x18\t \x01(\x03\x12\x15\n\rthumbnailSize\x18\n \x01(\x03\"b\n\nRecordLink\x12\x17\n\x0fparentRecordUid\x18\x01 \x01(\x0c\x12\x16\n\x0e\x63hildRecordUid\x18\x02 \x01(\x0c\x12\x11\n\trecordKey\x18\x03 \x01(\x0c\x12\x10\n\x08revision\x18\x04 \x01(\x03\"J\n\x10UserFolderRecord\x12\x11\n\tfolderUid\x18\x01 \x01(\x0c\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\x12\x10\n\x08revision\x18\x03 \x01(\x03\"Y\n\x18SharedFolderFolderRecord\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x11\n\tfolderUid\x18\x02 \x01(\x0c\x12\x11\n\trecordUid\x18\x03 \x01(\x0c\"0\n\rNonSharedData\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\xc4\x01\n\x0eRecordMetaData\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\r\n\x05owner\x18\x02 \x01(\x08\x12\x11\n\trecordKey\x18\x03 \x01(\x0c\x12-\n\rrecordKeyType\x18\x04 \x01(\x0e\x32\x16.Records.RecordKeyType\x12\x10\n\x08\x63\x61nShare\x18\x05 \x01(\x08\x12\x0f\n\x07\x63\x61nEdit\x18\x06 \x01(\x08\x12\x17\n\x0fownerAccountUid\x18\x07 \x01(\x0c\x12\x12\n\nexpiration\x18\x08 \x01(\x03\"2\n\rSharingChange\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x0e\n\x06shared\x18\x02 \x01(\x08\">\n\x07Profile\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x13\n\x0bprofileName\x18\x02 \x01(\t\x12\x10\n\x08revision\x18\x03 \x01(\x03\"+\n\nProfilePic\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08revision\x18\x02 \x01(\x03\"V\n\x11PendingTeamMember\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x15\n\ruserPublicKey\x18\x02 \x01(\x0c\x12\x10\n\x08teamUids\x18\x03 \x03(\x0c\"\xa6\x01\n\x11\x42reachWatchRecord\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12.\n\x04type\x18\x03 \x01(\x0e\x32 .BreachWatch.BreachWatchInfoType\x12\x11\n\tscannedBy\x18\x04 \x01(\t\x12\x10\n\x08revision\x18\x05 \x01(\x03\x12\x1b\n\x13scannedByAccountUid\x18\x06 \x01(\x0c\"\xb4\x01\n\x08UserAuth\x12\x0b\n\x03uid\x18\x01 \x01(\x0c\x12,\n\tloginType\x18\x02 \x01(\x0e\x32\x19.Authentication.LoginType\x12\x0f\n\x07\x64\x65leted\x18\x03 \x01(\x08\x12\x12\n\niterations\x18\x04 \x01(\x05\x12\x0c\n\x04salt\x18\x05 \x01(\x0c\x12\x1a\n\x12\x65ncryptedClientKey\x18\x06 \x01(\x0c\x12\x10\n\x08revision\x18\x07 \x01(\x03\x12\x0c\n\x04name\x18\x08 \x01(\t\">\n\x17\x42reachWatchSecurityData\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x10\n\x08revision\x18\x02 \x01(\x03\"2\n\x0fReusedPasswords\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\x12\x10\n\x08revision\x18\x02 \x01(\x03\"\xb2\x01\n\x12SharedFolderRecord\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\x12\x11\n\trecordKey\x18\x03 \x01(\x0c\x12\x10\n\x08\x63\x61nShare\x18\x04 \x01(\x08\x12\x0f\n\x07\x63\x61nEdit\x18\x05 \x01(\x08\x12\x17\n\x0fownerAccountUid\x18\x06 \x01(\x0c\x12\x12\n\nexpiration\x18\x07 \x01(\x03\x12\r\n\x05owner\x18\x08 \x01(\x08\"\x91\x01\n\x10SharedFolderUser\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x15\n\rmanageRecords\x18\x03 \x01(\x08\x12\x13\n\x0bmanageUsers\x18\x04 \x01(\x08\x12\x12\n\naccountUid\x18\x05 \x01(\x0c\x12\x12\n\nexpiration\x18\x06 \x01(\x03\"\x8a\x01\n\x10SharedFolderTeam\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x0f\n\x07teamUid\x18\x02 \x01(\x0c\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x15\n\rmanageRecords\x18\x04 \x01(\x08\x12\x13\n\x0bmanageUsers\x18\x05 \x01(\x08\x12\x12\n\nexpiration\x18\x06 \x01(\x03\"D\n\tKsmChange\x12\x14\n\x0c\x61ppRecordUid\x18\x01 \x01(\x0c\x12\x10\n\x08\x64\x65tailId\x18\x02 \x01(\x0c\x12\x0f\n\x07removed\x18\x03 \x01(\x08\"#\n\x0fShareInvitation\x12\x10\n\x08username\x18\x01 \x01(\t\",\n\x04User\x12\x12\n\naccountUid\x18\x01 \x01(\x0c\x12\x10\n\x08username\x18\x02 \x01(\t\"{\n\x0fSyncDiagnostics\x12\x19\n\x11\x63ontinuationToken\x18\x01 \x01(\x0c\x12\x0e\n\x06userId\x18\x02 \x01(\x05\x12\x18\n\x10\x65nterpriseUserId\x18\x03 \x01(\x03\x12\x10\n\x08syncedTo\x18\x04 \x01(\x03\x12\x11\n\tsyncingTo\x18\x05 \x01(\x03\"\xee\x01\n\x0eRecordRotation\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x10\n\x08revision\x18\x02 \x01(\x03\x12\x18\n\x10\x63onfigurationUid\x18\x03 \x01(\x0c\x12\x10\n\x08schedule\x18\x04 \x01(\t\x12\x15\n\rpwdComplexity\x18\x05 \x01(\x0c\x12\x10\n\x08\x64isabled\x18\x06 \x01(\x08\x12\x13\n\x0bresourceUid\x18\x07 \x01(\x0c\x12\x14\n\x0clastRotation\x18\x08 \x01(\x03\x12\x37\n\x12lastRotationStatus\x18\t \x01(\x0e\x32\x1b.Vault.RecordRotationStatus\"3\n\x1d\x42reachWatchGetSyncDataRequest\x12\x12\n\nrecordUids\x18\x01 \x03(\x0c\"\xb3\x01\n\x1e\x42reachWatchGetSyncDataResponse\x12\x34\n\x12\x62reachWatchRecords\x18\x01 \x03(\x0b\x32\x18.Vault.BreachWatchRecord\x12?\n\x17\x62reachWatchSecurityData\x18\x02 \x03(\x0b\x32\x1e.Vault.BreachWatchSecurityData\x12\x1a\n\x05users\x18\x03 \x03(\x0b\x32\x0b.Vault.User*\"\n\x0b\x43\x61\x63heStatus\x12\x08\n\x04KEEP\x10\x00\x12\t\n\x05\x43LEAR\x10\x01*f\n\x14RecordRotationStatus\x12\x14\n\x10RRST_NOT_ROTATED\x10\x00\x12\x14\n\x10RRST_IN_PROGRESS\x10\x01\x12\x10\n\x0cRRST_SUCCESS\x10\x02\x12\x10\n\x0cRRST_FAILURE\x10\x03\x42!\n\x18\x63om.keepersecurity.protoB\x05Vaultb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eSyncDown.proto\x12\x05Vault\x1a\x0crecord.proto\x1a\x11\x62reachwatch.proto\x1a\x10\x41PIRequest.proto\x1a\x10\x65nterprise.proto\"A\n\x0fSyncDownRequest\x12\x19\n\x11\x63ontinuationToken\x18\x01 \x01(\x0c\x12\x13\n\x0b\x64\x61taVersion\x18\x02 \x01(\x05\"\x89\x10\n\x10SyncDownResponse\x12\x19\n\x11\x63ontinuationToken\x18\x01 \x01(\x0c\x12\x0f\n\x07hasMore\x18\x02 \x01(\x08\x12\'\n\x0b\x63\x61\x63heStatus\x18\x03 \x01(\x0e\x32\x12.Vault.CacheStatus\x12&\n\x0buserFolders\x18\x04 \x03(\x0b\x32\x11.Vault.UserFolder\x12*\n\rsharedFolders\x18\x05 \x03(\x0b\x32\x13.Vault.SharedFolder\x12>\n\x17userFolderSharedFolders\x18\x06 \x03(\x0b\x32\x1d.Vault.UserFolderSharedFolder\x12\x36\n\x13sharedFolderFolders\x18\x07 \x03(\x0b\x32\x19.Vault.SharedFolderFolder\x12\x1e\n\x07records\x18\x08 \x03(\x0b\x32\r.Vault.Record\x12-\n\x0erecordMetaData\x18\t \x03(\x0b\x32\x15.Vault.RecordMetaData\x12+\n\rnonSharedData\x18\n \x03(\x0b\x32\x14.Vault.NonSharedData\x12&\n\x0brecordLinks\x18\x0b \x03(\x0b\x32\x11.Vault.RecordLink\x12\x32\n\x11userFolderRecords\x18\x0c \x03(\x0b\x32\x17.Vault.UserFolderRecord\x12\x36\n\x13sharedFolderRecords\x18\r \x03(\x0b\x32\x19.Vault.SharedFolderRecord\x12\x42\n\x19sharedFolderFolderRecords\x18\x0e \x03(\x0b\x32\x1f.Vault.SharedFolderFolderRecord\x12\x32\n\x11sharedFolderUsers\x18\x0f \x03(\x0b\x32\x17.Vault.SharedFolderUser\x12\x32\n\x11sharedFolderTeams\x18\x10 \x03(\x0b\x32\x17.Vault.SharedFolderTeam\x12\x1a\n\x12recordAddAuditData\x18\x11 \x03(\x0c\x12\x1a\n\x05teams\x18\x12 \x03(\x0b\x32\x0b.Vault.Team\x12,\n\x0esharingChanges\x18\x13 \x03(\x0b\x32\x14.Vault.SharingChange\x12\x1f\n\x07profile\x18\x14 \x01(\x0b\x32\x0e.Vault.Profile\x12%\n\nprofilePic\x18\x15 \x01(\x0b\x32\x11.Vault.ProfilePic\x12\x34\n\x12pendingTeamMembers\x18\x16 \x03(\x0b\x32\x18.Vault.PendingTeamMember\x12\x34\n\x12\x62reachWatchRecords\x18\x17 \x03(\x0b\x32\x18.Vault.BreachWatchRecord\x12\"\n\tuserAuths\x18\x18 \x03(\x0b\x32\x0f.Vault.UserAuth\x12?\n\x17\x62reachWatchSecurityData\x18\x19 \x03(\x0b\x32\x1e.Vault.BreachWatchSecurityData\x12/\n\x0freusedPasswords\x18\x1a \x01(\x0b\x32\x16.Vault.ReusedPasswords\x12\x1a\n\x12removedUserFolders\x18\x1b \x03(\x0c\x12\x1c\n\x14removedSharedFolders\x18\x1c \x03(\x0c\x12\x45\n\x1eremovedUserFolderSharedFolders\x18\x1d \x03(\x0b\x32\x1d.Vault.UserFolderSharedFolder\x12=\n\x1aremovedSharedFolderFolders\x18\x1e \x03(\x0b\x32\x19.Vault.SharedFolderFolder\x12\x16\n\x0eremovedRecords\x18\x1f \x03(\x0c\x12-\n\x12removedRecordLinks\x18 \x03(\x0b\x32\x11.Vault.RecordLink\x12\x39\n\x18removedUserFolderRecords\x18! \x03(\x0b\x32\x17.Vault.UserFolderRecord\x12=\n\x1aremovedSharedFolderRecords\x18\" \x03(\x0b\x32\x19.Vault.SharedFolderRecord\x12I\n removedSharedFolderFolderRecords\x18# \x03(\x0b\x32\x1f.Vault.SharedFolderFolderRecord\x12\x39\n\x18removedSharedFolderUsers\x18$ \x03(\x0b\x32\x17.Vault.SharedFolderUser\x12\x39\n\x18removedSharedFolderTeams\x18% \x03(\x0b\x32\x17.Vault.SharedFolderTeam\x12\x14\n\x0cremovedTeams\x18& \x03(\x0c\x12&\n\x0cksmAppShares\x18\' \x03(\x0b\x32\x10.Vault.KsmChange\x12\'\n\rksmAppClients\x18( \x03(\x0b\x32\x10.Vault.KsmChange\x12\x30\n\x10shareInvitations\x18) \x03(\x0b\x32\x16.Vault.ShareInvitation\x12+\n\x0b\x64iagnostics\x18* \x01(\x0b\x32\x16.Vault.SyncDiagnostics\x12.\n\x0frecordRotations\x18+ \x03(\x0b\x32\x15.Vault.RecordRotation\x12\x1a\n\x05users\x18, \x03(\x0b\x32\x0b.Vault.User\x12\x14\n\x0cremovedUsers\x18- \x03(\x0c\"\x92\x01\n\nUserFolder\x12\x11\n\tfolderUid\x18\x01 \x01(\x0c\x12\x11\n\tparentUid\x18\x02 \x01(\x0c\x12\x15\n\ruserFolderKey\x18\x03 \x01(\x0c\x12\'\n\x07keyType\x18\x04 \x01(\x0e\x32\x16.Records.RecordKeyType\x12\x10\n\x08revision\x18\x05 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x06 \x01(\x0c\"\xd5\x02\n\x0cSharedFolder\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x10\n\x08revision\x18\x02 \x01(\x03\x12\x17\n\x0fsharedFolderKey\x18\x03 \x01(\x0c\x12\'\n\x07keyType\x18\x04 \x01(\x0e\x32\x16.Records.RecordKeyType\x12\x0c\n\x04\x64\x61ta\x18\x05 \x01(\x0c\x12\x1c\n\x14\x64\x65\x66\x61ultManageRecords\x18\x06 \x01(\x08\x12\x1a\n\x12\x64\x65\x66\x61ultManageUsers\x18\x07 \x01(\x08\x12\x16\n\x0e\x64\x65\x66\x61ultCanEdit\x18\x08 \x01(\x08\x12\x19\n\x11\x64\x65\x66\x61ultCanReshare\x18\t \x01(\x08\x12\'\n\x0b\x63\x61\x63heStatus\x18\n \x01(\x0e\x32\x12.Vault.CacheStatus\x12\r\n\x05owner\x18\x0b \x01(\t\x12\x17\n\x0fownerAccountUid\x18\x0c \x01(\x0c\x12\x0c\n\x04name\x18\r \x01(\x0c\"V\n\x16UserFolderSharedFolder\x12\x11\n\tfolderUid\x18\x01 \x01(\x0c\x12\x17\n\x0fsharedFolderUid\x18\x02 \x01(\x0c\x12\x10\n\x08revision\x18\x03 \x01(\x03\"\xbb\x01\n\x12SharedFolderFolder\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x11\n\tfolderUid\x18\x02 \x01(\x0c\x12\x11\n\tparentUid\x18\x03 \x01(\x0c\x12\x1d\n\x15sharedFolderFolderKey\x18\x04 \x01(\x0c\x12\'\n\x07keyType\x18\x05 \x01(\x0e\x32\x16.Records.RecordKeyType\x12\x10\n\x08revision\x18\x06 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x07 \x01(\x0c\"l\n\x0fSharedFolderKey\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x17\n\x0fsharedFolderKey\x18\x02 \x01(\x0c\x12\'\n\x07keyType\x18\x03 \x01(\x0e\x32\x16.Records.RecordKeyType\"\xc3\x02\n\x04Team\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0f\n\x07teamKey\x18\x03 \x01(\x0c\x12+\n\x0bteamKeyType\x18\x04 \x01(\x0e\x32\x16.Records.RecordKeyType\x12\x16\n\x0eteamPrivateKey\x18\x05 \x01(\x0c\x12\x14\n\x0crestrictEdit\x18\x06 \x01(\x08\x12\x15\n\rrestrictShare\x18\x07 \x01(\x08\x12\x14\n\x0crestrictView\x18\x08 \x01(\x08\x12\x1c\n\x14removedSharedFolders\x18\t \x03(\x0c\x12\x30\n\x10sharedFolderKeys\x18\n \x03(\x0b\x32\x16.Vault.SharedFolderKey\x12\x19\n\x11teamEccPrivateKey\x18\x0b \x01(\x0c\x12\x18\n\x10teamEccPublicKey\x18\x0c \x01(\x0c\"\xbf\x01\n\x06Record\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x10\n\x08revision\x18\x02 \x01(\x03\x12\x0f\n\x07version\x18\x03 \x01(\x05\x12\x0e\n\x06shared\x18\x04 \x01(\x08\x12\x1a\n\x12\x63lientModifiedTime\x18\x05 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x06 \x01(\x0c\x12\r\n\x05\x65xtra\x18\x07 \x01(\x0c\x12\r\n\x05udata\x18\x08 \x01(\t\x12\x10\n\x08\x66ileSize\x18\t \x01(\x03\x12\x15\n\rthumbnailSize\x18\n \x01(\x03\"b\n\nRecordLink\x12\x17\n\x0fparentRecordUid\x18\x01 \x01(\x0c\x12\x16\n\x0e\x63hildRecordUid\x18\x02 \x01(\x0c\x12\x11\n\trecordKey\x18\x03 \x01(\x0c\x12\x10\n\x08revision\x18\x04 \x01(\x03\"J\n\x10UserFolderRecord\x12\x11\n\tfolderUid\x18\x01 \x01(\x0c\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\x12\x10\n\x08revision\x18\x03 \x01(\x03\"k\n\x18SharedFolderFolderRecord\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x11\n\tfolderUid\x18\x02 \x01(\x0c\x12\x11\n\trecordUid\x18\x03 \x01(\x0c\x12\x10\n\x08revision\x18\x04 \x01(\x03\"0\n\rNonSharedData\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\x9f\x02\n\x0eRecordMetaData\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\r\n\x05owner\x18\x02 \x01(\x08\x12\x11\n\trecordKey\x18\x03 \x01(\x0c\x12-\n\rrecordKeyType\x18\x04 \x01(\x0e\x32\x16.Records.RecordKeyType\x12\x10\n\x08\x63\x61nShare\x18\x05 \x01(\x08\x12\x0f\n\x07\x63\x61nEdit\x18\x06 \x01(\x08\x12\x17\n\x0fownerAccountUid\x18\x07 \x01(\x0c\x12\x12\n\nexpiration\x18\x08 \x01(\x03\x12\x42\n\x1a\x65xpirationNotificationType\x18\t \x01(\x0e\x32\x1e.Records.TimerNotificationType\x12\x15\n\rownerUsername\x18\n \x01(\t\"2\n\rSharingChange\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x0e\n\x06shared\x18\x02 \x01(\x08\">\n\x07Profile\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x13\n\x0bprofileName\x18\x02 \x01(\t\x12\x10\n\x08revision\x18\x03 \x01(\x03\"+\n\nProfilePic\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08revision\x18\x02 \x01(\x03\"p\n\x11PendingTeamMember\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x15\n\ruserPublicKey\x18\x02 \x01(\x0c\x12\x10\n\x08teamUids\x18\x03 \x03(\x0c\x12\x18\n\x10userEccPublicKey\x18\x04 \x01(\x0c\"\xa6\x01\n\x11\x42reachWatchRecord\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12.\n\x04type\x18\x03 \x01(\x0e\x32 .BreachWatch.BreachWatchInfoType\x12\x11\n\tscannedBy\x18\x04 \x01(\t\x12\x10\n\x08revision\x18\x05 \x01(\x03\x12\x1b\n\x13scannedByAccountUid\x18\x06 \x01(\x0c\"\xb4\x01\n\x08UserAuth\x12\x0b\n\x03uid\x18\x01 \x01(\x0c\x12,\n\tloginType\x18\x02 \x01(\x0e\x32\x19.Authentication.LoginType\x12\x0f\n\x07\x64\x65leted\x18\x03 \x01(\x08\x12\x12\n\niterations\x18\x04 \x01(\x05\x12\x0c\n\x04salt\x18\x05 \x01(\x0c\x12\x1a\n\x12\x65ncryptedClientKey\x18\x06 \x01(\x0c\x12\x10\n\x08revision\x18\x07 \x01(\x03\x12\x0c\n\x04name\x18\x08 \x01(\t\">\n\x17\x42reachWatchSecurityData\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x10\n\x08revision\x18\x02 \x01(\x03\"2\n\x0fReusedPasswords\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\x12\x10\n\x08revision\x18\x02 \x01(\x03\"\x8d\x02\n\x12SharedFolderRecord\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\x12\x11\n\trecordKey\x18\x03 \x01(\x0c\x12\x10\n\x08\x63\x61nShare\x18\x04 \x01(\x08\x12\x0f\n\x07\x63\x61nEdit\x18\x05 \x01(\x08\x12\x17\n\x0fownerAccountUid\x18\x06 \x01(\x0c\x12\x12\n\nexpiration\x18\x07 \x01(\x03\x12\r\n\x05owner\x18\x08 \x01(\x08\x12\x42\n\x1a\x65xpirationNotificationType\x18\t \x01(\x0e\x32\x1e.Records.TimerNotificationType\x12\x15\n\rownerUsername\x18\n \x01(\t\"\xd5\x01\n\x10SharedFolderUser\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x15\n\rmanageRecords\x18\x03 \x01(\x08\x12\x13\n\x0bmanageUsers\x18\x04 \x01(\x08\x12\x12\n\naccountUid\x18\x05 \x01(\x0c\x12\x12\n\nexpiration\x18\x06 \x01(\x03\x12\x42\n\x1a\x65xpirationNotificationType\x18\x07 \x01(\x0e\x32\x1e.Records.TimerNotificationType\"\xce\x01\n\x10SharedFolderTeam\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x0f\n\x07teamUid\x18\x02 \x01(\x0c\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x15\n\rmanageRecords\x18\x04 \x01(\x08\x12\x13\n\x0bmanageUsers\x18\x05 \x01(\x08\x12\x12\n\nexpiration\x18\x06 \x01(\x03\x12\x42\n\x1a\x65xpirationNotificationType\x18\x07 \x01(\x0e\x32\x1e.Records.TimerNotificationType\"\x8a\x01\n\tKsmChange\x12\x14\n\x0c\x61ppRecordUid\x18\x01 \x01(\x0c\x12\x10\n\x08\x64\x65tailId\x18\x02 \x01(\x0c\x12\x0f\n\x07removed\x18\x03 \x01(\x08\x12\x30\n\rappClientType\x18\x04 \x01(\x0e\x32\x19.Enterprise.AppClientType\x12\x12\n\nexpiration\x18\x05 \x01(\x03\"#\n\x0fShareInvitation\x12\x10\n\x08username\x18\x01 \x01(\t\",\n\x04User\x12\x12\n\naccountUid\x18\x01 \x01(\x0c\x12\x10\n\x08username\x18\x02 \x01(\t\"{\n\x0fSyncDiagnostics\x12\x19\n\x11\x63ontinuationToken\x18\x01 \x01(\x0c\x12\x0e\n\x06userId\x18\x02 \x01(\x05\x12\x18\n\x10\x65nterpriseUserId\x18\x03 \x01(\x03\x12\x10\n\x08syncedTo\x18\x04 \x01(\x03\x12\x11\n\tsyncingTo\x18\x05 \x01(\x03\"\xee\x01\n\x0eRecordRotation\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x10\n\x08revision\x18\x02 \x01(\x03\x12\x18\n\x10\x63onfigurationUid\x18\x03 \x01(\x0c\x12\x10\n\x08schedule\x18\x04 \x01(\t\x12\x15\n\rpwdComplexity\x18\x05 \x01(\x0c\x12\x10\n\x08\x64isabled\x18\x06 \x01(\x08\x12\x13\n\x0bresourceUid\x18\x07 \x01(\x0c\x12\x14\n\x0clastRotation\x18\x08 \x01(\x03\x12\x37\n\x12lastRotationStatus\x18\t \x01(\x0e\x32\x1b.Vault.RecordRotationStatus\"3\n\x1d\x42reachWatchGetSyncDataRequest\x12\x12\n\nrecordUids\x18\x01 \x03(\x0c\"\xb3\x01\n\x1e\x42reachWatchGetSyncDataResponse\x12\x34\n\x12\x62reachWatchRecords\x18\x01 \x03(\x0b\x32\x18.Vault.BreachWatchRecord\x12?\n\x17\x62reachWatchSecurityData\x18\x02 \x03(\x0b\x32\x1e.Vault.BreachWatchSecurityData\x12\x1a\n\x05users\x18\x03 \x03(\x0b\x32\x0b.Vault.User*\"\n\x0b\x43\x61\x63heStatus\x12\x08\n\x04KEEP\x10\x00\x12\t\n\x05\x43LEAR\x10\x01*f\n\x14RecordRotationStatus\x12\x14\n\x10RRST_NOT_ROTATED\x10\x00\x12\x14\n\x10RRST_IN_PROGRESS\x10\x01\x12\x10\n\x0cRRST_SUCCESS\x10\x02\x12\x10\n\x0cRRST_FAILURE\x10\x03\x42!\n\x18\x63om.keepersecurity.protoB\x05Vaultb\x06proto3') _CACHESTATUS = DESCRIPTOR.enum_types_by_name['CacheStatus'] CacheStatus = enum_type_wrapper.EnumTypeWrapper(_CACHESTATUS) @@ -292,72 +293,72 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\030com.keepersecurity.protoB\005Vault' - _CACHESTATUS._serialized_start=5987 - _CACHESTATUS._serialized_end=6021 - _RECORDROTATIONSTATUS._serialized_start=6023 - _RECORDROTATIONSTATUS._serialized_end=6125 - _SYNCDOWNREQUEST._serialized_start=76 - _SYNCDOWNREQUEST._serialized_end=120 - _SYNCDOWNRESPONSE._serialized_start=123 - _SYNCDOWNRESPONSE._serialized_end=2180 - _USERFOLDER._serialized_start=2183 - _USERFOLDER._serialized_end=2329 - _SHAREDFOLDER._serialized_start=2332 - _SHAREDFOLDER._serialized_end=2673 - _USERFOLDERSHAREDFOLDER._serialized_start=2675 - _USERFOLDERSHAREDFOLDER._serialized_end=2761 - _SHAREDFOLDERFOLDER._serialized_start=2764 - _SHAREDFOLDERFOLDER._serialized_end=2951 - _SHAREDFOLDERKEY._serialized_start=2953 - _SHAREDFOLDERKEY._serialized_end=3061 - _TEAM._serialized_start=3064 - _TEAM._serialized_end=3334 - _RECORD._serialized_start=3337 - _RECORD._serialized_end=3528 - _RECORDLINK._serialized_start=3530 - _RECORDLINK._serialized_end=3628 - _USERFOLDERRECORD._serialized_start=3630 - _USERFOLDERRECORD._serialized_end=3704 - _SHAREDFOLDERFOLDERRECORD._serialized_start=3706 - _SHAREDFOLDERFOLDERRECORD._serialized_end=3795 - _NONSHAREDDATA._serialized_start=3797 - _NONSHAREDDATA._serialized_end=3845 - _RECORDMETADATA._serialized_start=3848 - _RECORDMETADATA._serialized_end=4044 - _SHARINGCHANGE._serialized_start=4046 - _SHARINGCHANGE._serialized_end=4096 - _PROFILE._serialized_start=4098 - _PROFILE._serialized_end=4160 - _PROFILEPIC._serialized_start=4162 - _PROFILEPIC._serialized_end=4205 - _PENDINGTEAMMEMBER._serialized_start=4207 - _PENDINGTEAMMEMBER._serialized_end=4293 - _BREACHWATCHRECORD._serialized_start=4296 - _BREACHWATCHRECORD._serialized_end=4462 - _USERAUTH._serialized_start=4465 - _USERAUTH._serialized_end=4645 - _BREACHWATCHSECURITYDATA._serialized_start=4647 - _BREACHWATCHSECURITYDATA._serialized_end=4709 - _REUSEDPASSWORDS._serialized_start=4711 - _REUSEDPASSWORDS._serialized_end=4761 - _SHAREDFOLDERRECORD._serialized_start=4764 - _SHAREDFOLDERRECORD._serialized_end=4942 - _SHAREDFOLDERUSER._serialized_start=4945 - _SHAREDFOLDERUSER._serialized_end=5090 - _SHAREDFOLDERTEAM._serialized_start=5093 - _SHAREDFOLDERTEAM._serialized_end=5231 - _KSMCHANGE._serialized_start=5233 - _KSMCHANGE._serialized_end=5301 - _SHAREINVITATION._serialized_start=5303 - _SHAREINVITATION._serialized_end=5338 - _USER._serialized_start=5340 - _USER._serialized_end=5384 - _SYNCDIAGNOSTICS._serialized_start=5386 - _SYNCDIAGNOSTICS._serialized_end=5509 - _RECORDROTATION._serialized_start=5512 - _RECORDROTATION._serialized_end=5750 - _BREACHWATCHGETSYNCDATAREQUEST._serialized_start=5752 - _BREACHWATCHGETSYNCDATAREQUEST._serialized_end=5803 - _BREACHWATCHGETSYNCDATARESPONSE._serialized_start=5806 - _BREACHWATCHGETSYNCDATARESPONSE._serialized_end=5985 + _CACHESTATUS._serialized_start=6512 + _CACHESTATUS._serialized_end=6546 + _RECORDROTATIONSTATUS._serialized_start=6548 + _RECORDROTATIONSTATUS._serialized_end=6650 + _SYNCDOWNREQUEST._serialized_start=94 + _SYNCDOWNREQUEST._serialized_end=159 + _SYNCDOWNRESPONSE._serialized_start=162 + _SYNCDOWNRESPONSE._serialized_end=2219 + _USERFOLDER._serialized_start=2222 + _USERFOLDER._serialized_end=2368 + _SHAREDFOLDER._serialized_start=2371 + _SHAREDFOLDER._serialized_end=2712 + _USERFOLDERSHAREDFOLDER._serialized_start=2714 + _USERFOLDERSHAREDFOLDER._serialized_end=2800 + _SHAREDFOLDERFOLDER._serialized_start=2803 + _SHAREDFOLDERFOLDER._serialized_end=2990 + _SHAREDFOLDERKEY._serialized_start=2992 + _SHAREDFOLDERKEY._serialized_end=3100 + _TEAM._serialized_start=3103 + _TEAM._serialized_end=3426 + _RECORD._serialized_start=3429 + _RECORD._serialized_end=3620 + _RECORDLINK._serialized_start=3622 + _RECORDLINK._serialized_end=3720 + _USERFOLDERRECORD._serialized_start=3722 + _USERFOLDERRECORD._serialized_end=3796 + _SHAREDFOLDERFOLDERRECORD._serialized_start=3798 + _SHAREDFOLDERFOLDERRECORD._serialized_end=3905 + _NONSHAREDDATA._serialized_start=3907 + _NONSHAREDDATA._serialized_end=3955 + _RECORDMETADATA._serialized_start=3958 + _RECORDMETADATA._serialized_end=4245 + _SHARINGCHANGE._serialized_start=4247 + _SHARINGCHANGE._serialized_end=4297 + _PROFILE._serialized_start=4299 + _PROFILE._serialized_end=4361 + _PROFILEPIC._serialized_start=4363 + _PROFILEPIC._serialized_end=4406 + _PENDINGTEAMMEMBER._serialized_start=4408 + _PENDINGTEAMMEMBER._serialized_end=4520 + _BREACHWATCHRECORD._serialized_start=4523 + _BREACHWATCHRECORD._serialized_end=4689 + _USERAUTH._serialized_start=4692 + _USERAUTH._serialized_end=4872 + _BREACHWATCHSECURITYDATA._serialized_start=4874 + _BREACHWATCHSECURITYDATA._serialized_end=4936 + _REUSEDPASSWORDS._serialized_start=4938 + _REUSEDPASSWORDS._serialized_end=4988 + _SHAREDFOLDERRECORD._serialized_start=4991 + _SHAREDFOLDERRECORD._serialized_end=5260 + _SHAREDFOLDERUSER._serialized_start=5263 + _SHAREDFOLDERUSER._serialized_end=5476 + _SHAREDFOLDERTEAM._serialized_start=5479 + _SHAREDFOLDERTEAM._serialized_end=5685 + _KSMCHANGE._serialized_start=5688 + _KSMCHANGE._serialized_end=5826 + _SHAREINVITATION._serialized_start=5828 + _SHAREINVITATION._serialized_end=5863 + _USER._serialized_start=5865 + _USER._serialized_end=5909 + _SYNCDIAGNOSTICS._serialized_start=5911 + _SYNCDIAGNOSTICS._serialized_end=6034 + _RECORDROTATION._serialized_start=6037 + _RECORDROTATION._serialized_end=6275 + _BREACHWATCHGETSYNCDATAREQUEST._serialized_start=6277 + _BREACHWATCHGETSYNCDATAREQUEST._serialized_end=6328 + _BREACHWATCHGETSYNCDATARESPONSE._serialized_start=6331 + _BREACHWATCHGETSYNCDATARESPONSE._serialized_end=6510 # @@protoc_insertion_point(module_scope) diff --git a/keepercommander/proto/automator_pb2.py b/keepercommander/proto/automator_pb2.py index 3140df16f..a7834a528 100644 --- a/keepercommander/proto/automator_pb2.py +++ b/keepercommander/proto/automator_pb2.py @@ -18,7 +18,7 @@ from . import version_pb2 as version__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0f\x61utomator.proto\x12\tAutomator\x1a\x0essocloud.proto\x1a\x10\x65nterprise.proto\x1a\rversion.proto\"\xbf\x02\n\x15\x41utomatorSettingValue\x12\x11\n\tsettingId\x18\x01 \x01(\x03\x12\x15\n\rsettingTypeId\x18\x02 \x01(\x05\x12\x12\n\nsettingTag\x18\x03 \x01(\t\x12\x13\n\x0bsettingName\x18\x04 \x01(\t\x12\x14\n\x0csettingValue\x18\x05 \x01(\t\x12$\n\x08\x64\x61taType\x18\x06 \x01(\x0e\x32\x12.SsoCloud.DataType\x12\x14\n\x0clastModified\x18\x07 \x01(\t\x12\x10\n\x08\x66romFile\x18\x08 \x01(\x08\x12\x11\n\tencrypted\x18\t \x01(\x08\x12\x0f\n\x07\x65ncoded\x18\n \x01(\x08\x12\x10\n\x08\x65\x64itable\x18\x0b \x01(\x08\x12\x12\n\ntranslated\x18\x0c \x01(\x08\x12\x13\n\x0buserVisible\x18\r \x01(\x08\x12\x10\n\x08required\x18\x0e \x01(\x08\"\xee\x02\n\x14\x41pproveDeviceRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12O\n\x1dssoAuthenticationProtocolType\x18\x02 \x01(\x0e\x32(.Automator.SsoAuthenticationProtocolType\x12\x13\n\x0b\x61uthMessage\x18\x03 \x01(\t\x12\r\n\x05\x65mail\x18\x04 \x01(\t\x12\x17\n\x0f\x64\x65vicePublicKey\x18\x05 \x01(\x0c\x12\x1c\n\x14serverEccPublicKeyId\x18\x06 \x01(\x05\x12\x1c\n\x14userEncryptedDataKey\x18\x07 \x01(\x0c\x12>\n\x18userEncryptedDataKeyType\x18\x08 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\x12\x11\n\tipAddress\x18\t \x01(\t\x12\x11\n\tisTesting\x18\n \x01(\x08\x12\x11\n\tisEccOnly\x18\x0b \x01(\x08\"\xa9\x02\n\x0cSetupRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12\x1c\n\x14serverEccPublicKeyId\x18\x02 \x01(\x05\x12\x31\n\x0e\x61utomatorState\x18\x03 \x01(\x0e\x32\x19.Automator.AutomatorState\x12(\n encryptedEnterprisePrivateEccKey\x18\x04 \x01(\x0c\x12(\n encryptedEnterprisePrivateRsaKey\x18\x05 \x01(\x0c\x12\x32\n\x0f\x61utomatorSkills\x18\x06 \x03(\x0b\x32\x19.Automator.AutomatorSkill\x12\x18\n\x10\x65ncryptedTreeKey\x18\x07 \x01(\x0c\x12\x11\n\tisEccOnly\x18\x08 \x01(\x08\"U\n\rStatusRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12\x1c\n\x14serverEccPublicKeyId\x18\x02 \x01(\x05\x12\x11\n\tisEccOnly\x18\x03 \x01(\x08\"\xa3\x04\n\x11InitializeRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12\x13\n\x0bidpMetadata\x18\x02 \x01(\t\x12\x1d\n\x15idpSigningCertificate\x18\x03 \x01(\x0c\x12\x13\n\x0bssoEntityId\x18\x04 \x01(\t\x12\x14\n\x0c\x65mailMapping\x18\x05 \x01(\t\x12\x18\n\x10\x66irstnameMapping\x18\x06 \x01(\t\x12\x17\n\x0flastnameMapping\x18\x07 \x01(\t\x12\x10\n\x08\x64isabled\x18\x08 \x01(\x08\x12\x1c\n\x14serverEccPublicKeyId\x18\t \x01(\x05\x12\x0e\n\x06\x63onfig\x18\n \x01(\x0c\x12\x0f\n\x07sslMode\x18\x0b \x01(\t\x12\x14\n\x0cpersistState\x18\x0c \x01(\x08\x12\x17\n\x0f\x64isableSniCheck\x18\r \x01(\x08\x12\x1e\n\x16sslCertificateFilename\x18\x0e \x01(\t\x12\"\n\x1asslCertificateFilePassword\x18\x0f \x01(\t\x12!\n\x19sslCertificateKeyPassword\x18\x10 \x01(\t\x12\x1e\n\x16sslCertificateContents\x18\x11 \x01(\x0c\x12\x15\n\rautomatorHost\x18\x12 \x01(\t\x12\x15\n\rautomatorPort\x18\x13 \x01(\t\x12\x0f\n\x07ipAllow\x18\x14 \x01(\t\x12\x0e\n\x06ipDeny\x18\x15 \x01(\t\x12\x11\n\tisEccOnly\x18\x16 \x01(\x08\"\xa6\x02\n\x16NotInitializedResponse\x12 \n\x18\x61utomatorTransmissionKey\x18\x01 \x01(\x0c\x12\x1a\n\x12signingCertificate\x18\x02 \x01(\x0c\x12\"\n\x1asigningCertificateFilename\x18\x03 \x01(\t\x12\"\n\x1asigningCertificatePassword\x18\x04 \x01(\t\x12\x1a\n\x12signingKeyPassword\x18\x05 \x01(\t\x12>\n\x18signingCertificateFormat\x18\x06 \x01(\x0e\x32\x1c.Automator.CertificateFormat\x12\x1a\n\x12\x61utomatorPublicKey\x18\x07 \x01(\x0c\x12\x0e\n\x06\x63onfig\x18\x08 \x01(\x0c\"\xa5\x04\n\x11\x41utomatorResponse\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12\x0f\n\x07\x65nabled\x18\x02 \x01(\x08\x12\x11\n\ttimestamp\x18\x03 \x01(\x03\x12\x39\n\rapproveDevice\x18\x04 \x01(\x0b\x32 .Automator.ApproveDeviceResponseH\x00\x12+\n\x06status\x18\x05 \x01(\x0b\x32\x19.Automator.StatusResponseH\x00\x12;\n\x0enotInitialized\x18\x06 \x01(\x0b\x32!.Automator.NotInitializedResponseH\x00\x12)\n\x05\x65rror\x18\x07 \x01(\x0b\x32\x18.Automator.ErrorResponseH\x00\x12\x45\n\x13\x61pproveTeamsForUser\x18\n \x01(\x0b\x32&.Automator.ApproveTeamsForUserResponseH\x00\x12\x37\n\x0c\x61pproveTeams\x18\x0b \x01(\x0b\x32\x1f.Automator.ApproveTeamsResponseH\x00\x12\x31\n\x0e\x61utomatorState\x18\x08 \x01(\x0e\x32\x19.Automator.AutomatorState\x12\x1d\n\x15\x61utomatorPublicEccKey\x18\t \x01(\x0c\x12)\n\x07version\x18\x0c \x01(\x0b\x32\x18.SemanticVersion.VersionB\n\n\x08response\"X\n\x15\x41pproveDeviceResponse\x12\x10\n\x08\x61pproved\x18\x01 \x01(\x08\x12\x1c\n\x14\x65ncryptedUserDataKey\x18\x02 \x01(\x0c\x12\x0f\n\x07message\x18\x03 \x01(\t\"\xd0\x03\n\x0eStatusResponse\x12\x13\n\x0binitialized\x18\x01 \x01(\x08\x12\x18\n\x10\x65nabledTimestamp\x18\x02 \x01(\x03\x12\x1c\n\x14initializedTimestamp\x18\x03 \x01(\x03\x12\x18\n\x10updatedTimestamp\x18\x04 \x01(\x03\x12\x1f\n\x17numberOfDevicesApproved\x18\x05 \x01(\x03\x12\x1d\n\x15numberOfDevicesDenied\x18\x06 \x01(\x03\x12\x16\n\x0enumberOfErrors\x18\x07 \x01(\x03\x12 \n\x18sslCertificateExpiration\x18\x08 \x01(\x03\x12\x41\n\x16notInitializedResponse\x18\t \x01(\x0b\x32!.Automator.NotInitializedResponse\x12\x0e\n\x06\x63onfig\x18\n \x01(\x0c\x12\'\n\x1fnumberOfTeamMembershipsApproved\x18\x0b \x01(\x03\x12%\n\x1dnumberOfTeamMembershipsDenied\x18\x0c \x01(\x03\x12\x1d\n\x15numberOfTeamsApproved\x18\r \x01(\x03\x12\x1b\n\x13numberOfTeamsDenied\x18\x0e \x01(\x03\" \n\rErrorResponse\x12\x0f\n\x07message\x18\x01 \x01(\t\"X\n\x08LogEntry\x12\x12\n\nserverTime\x18\x01 \x01(\t\x12\x14\n\x0cmessageLevel\x18\x02 \x01(\t\x12\x11\n\tcomponent\x18\x03 \x01(\t\x12\x0f\n\x07message\x18\x04 \x01(\t\"b\n\rAdminResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\x12/\n\rautomatorInfo\x18\x03 \x03(\x0b\x32\x18.Automator.AutomatorInfo\"\xee\x02\n\rAutomatorInfo\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0f\n\x07\x65nabled\x18\x04 \x01(\x08\x12\x0b\n\x03url\x18\x05 \x01(\t\x12\x32\n\x0f\x61utomatorSkills\x18\x06 \x03(\x0b\x32\x19.Automator.AutomatorSkill\x12@\n\x16\x61utomatorSettingValues\x18\x07 \x03(\x0b\x32 .Automator.AutomatorSettingValue\x12)\n\x06status\x18\x08 \x01(\x0b\x32\x19.Automator.StatusResponse\x12\'\n\nlogEntries\x18\t \x03(\x0b\x32\x13.Automator.LogEntry\x12\x31\n\x0e\x61utomatorState\x18\n \x01(\x0e\x32\x19.Automator.AutomatorState\x12\x0f\n\x07version\x18\x0b \x01(\t\"e\n\x1b\x41\x64minCreateAutomatorRequest\x12\x0e\n\x06nodeId\x18\x01 \x01(\x03\x12\x0c\n\x04name\x18\x02 \x01(\t\x12(\n\x05skill\x18\x03 \x01(\x0b\x32\x19.Automator.AutomatorSkill\"2\n\x1b\x41\x64minDeleteAutomatorRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\"1\n\x1f\x41\x64minGetAutomatorsOnNodeRequest\x12\x0e\n\x06nodeId\x18\x01 \x01(\x03\">\n&AdminGetAutomatorsForEnterpriseRequest\x12\x14\n\x0c\x65nterpriseId\x18\x01 \x01(\x05\"/\n\x18\x41\x64minGetAutomatorRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\"C\n\x1b\x41\x64minEnableAutomatorRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12\x0f\n\x07\x65nabled\x18\x02 \x01(\x08\"\xc8\x01\n\x19\x41\x64minEditAutomatorRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0f\n\x07\x65nabled\x18\x03 \x01(\x08\x12\x0b\n\x03url\x18\x04 \x01(\t\x12(\n\nskillTypes\x18\x05 \x03(\x0e\x32\x14.Automator.SkillType\x12@\n\x16\x61utomatorSettingValues\x18\x06 \x03(\x0b\x32 .Automator.AutomatorSettingValue\"\xfc\x01\n\x1a\x41\x64minSetupAutomatorRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12\x31\n\x0e\x61utomatorState\x18\x02 \x01(\x0e\x32\x19.Automator.AutomatorState\x12(\n encryptedEccEnterprisePrivateKey\x18\x03 \x01(\x0c\x12(\n encryptedRsaEnterprisePrivateKey\x18\x04 \x01(\x0c\x12(\n\nskillTypes\x18\x05 \x03(\x0e\x32\x14.Automator.SkillType\x12\x18\n\x10\x65ncryptedTreeKey\x18\x06 \x01(\x0c\"\xa6\x01\n\x1b\x41\x64minSetupAutomatorResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x13\n\x0b\x61utomatorId\x18\x03 \x01(\x03\x12\x31\n\x0e\x61utomatorState\x18\x04 \x01(\x0e\x32\x19.Automator.AutomatorState\x12\x1d\n\x15\x61utomatorEccPublicKey\x18\x05 \x01(\x0c\"2\n\x1b\x41\x64minAutomatorSkillsRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\"_\n\x0e\x41utomatorSkill\x12\'\n\tskillType\x18\x01 \x01(\x0e\x32\x14.Automator.SkillType\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x16\n\x0etranslatedName\x18\x03 \x01(\t\"t\n\x1c\x41\x64minAutomatorSkillsResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x32\n\x0f\x61utomatorSkills\x18\x03 \x03(\x0b\x32\x19.Automator.AutomatorSkill\"1\n\x1a\x41\x64minResetAutomatorRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\"6\n\x1f\x41\x64minInitializeAutomatorRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\"/\n\x18\x41\x64minAutomatorLogRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\"4\n\x1d\x41\x64minAutomatorLogClearRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\"\xc9\x02\n\x1a\x41pproveTeamsForUserRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12O\n\x1dssoAuthenticationProtocolType\x18\x02 \x01(\x0e\x32(.Automator.SsoAuthenticationProtocolType\x12\x13\n\x0b\x61uthMessage\x18\x03 \x01(\t\x12\r\n\x05\x65mail\x18\x04 \x01(\t\x12\x1c\n\x14serverEccPublicKeyId\x18\x05 \x01(\x05\x12\x11\n\tipAddress\x18\x06 \x01(\t\x12\x15\n\ruserPublicKey\x18\x07 \x01(\x0c\x12\x33\n\x0fteamDescription\x18\x08 \x03(\x0b\x32\x1a.Automator.TeamDescription\x12\x11\n\tisTesting\x18\t \x01(\x08\x12\x11\n\tisEccOnly\x18\n \x01(\x08\"\x8a\x01\n\x0fTeamDescription\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x10\n\x08teamName\x18\x02 \x01(\t\x12\x18\n\x10\x65ncryptedTeamKey\x18\x03 \x01(\x0c\x12:\n\x14\x65ncryptedTeamKeyType\x18\x04 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\"\x99\x01\n\x1b\x41pproveTeamsForUserResponse\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x0f\n\x07message\x18\x03 \x01(\t\x12\x45\n\x13\x61pproveTeamResponse\x18\x04 \x03(\x0b\x32(.Automator.ApproveOneTeamForUserResponse\"\xab\x02\n\x1d\x41pproveOneTeamForUserResponse\x12\x10\n\x08\x61pproved\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x0f\n\x07teamUid\x18\x03 \x01(\x0c\x12\x10\n\x08teamName\x18\x04 \x01(\t\x12\x1c\n\x14userEncryptedTeamKey\x18\x05 \x01(\x0c\x12>\n\x18userEncryptedTeamKeyType\x18\x06 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\x12!\n\x19userEncryptedTeamKeyByEcc\x18\x07 \x01(\x0c\x12\x43\n\x1duserEncryptedTeamKeyByEccType\x18\x08 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\"\xab\x02\n\x13\x41pproveTeamsRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12O\n\x1dssoAuthenticationProtocolType\x18\x02 \x01(\x0e\x32(.Automator.SsoAuthenticationProtocolType\x12\x13\n\x0b\x61uthMessage\x18\x03 \x01(\t\x12\r\n\x05\x65mail\x18\x04 \x01(\t\x12\x1c\n\x14serverEccPublicKeyId\x18\x05 \x01(\x05\x12\x11\n\tipAddress\x18\x06 \x01(\t\x12\x33\n\x0fteamDescription\x18\x07 \x03(\x0b\x32\x1a.Automator.TeamDescription\x12\x11\n\tisEccOnly\x18\x08 \x01(\x08\x12\x11\n\tisTesting\x18\t \x01(\x08\"|\n\x14\x41pproveTeamsResponse\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12\x0f\n\x07message\x18\x02 \x01(\t\x12>\n\x13\x61pproveTeamResponse\x18\x03 \x03(\x0b\x32!.Automator.ApproveOneTeamResponse\"\x9e\x04\n\x16\x41pproveOneTeamResponse\x12\x10\n\x08\x61pproved\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x0f\n\x07teamUid\x18\x03 \x01(\x0c\x12\x10\n\x08teamName\x18\x04 \x01(\t\x12\x1b\n\x13\x65ncryptedTeamKeyCbc\x18\x05 \x01(\x0c\x12=\n\x17\x65ncryptedTeamKeyCbcType\x18\x06 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\x12\x1b\n\x13\x65ncryptedTeamKeyGcm\x18\x07 \x01(\x0c\x12=\n\x17\x65ncryptedTeamKeyGcmType\x18\x08 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\x12\x18\n\x10teamPublicKeyRsa\x18\t \x01(\x0c\x12\"\n\x1a\x65ncryptedTeamPrivateKeyRsa\x18\n \x01(\x0c\x12\x44\n\x1e\x65ncryptedTeamPrivateKeyRsaType\x18\x0b \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\x12\x18\n\x10teamPublicKeyEcc\x18\x0c \x01(\x0c\x12\"\n\x1a\x65ncryptedTeamPrivateKeyEcc\x18\r \x01(\x0c\x12\x44\n\x1e\x65ncryptedTeamPrivateKeyEccType\x18\x0e \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType*@\n\x1dSsoAuthenticationProtocolType\x12\x14\n\x10UNKNOWN_PROTOCOL\x10\x00\x12\t\n\x05SAML2\x10\x01*<\n\x11\x43\x65rtificateFormat\x12\x12\n\x0eUNKNOWN_FORMAT\x10\x00\x12\n\n\x06PKCS12\x10\x01\x12\x07\n\x03JKS\x10\x02*g\n\tSkillType\x12\x16\n\x12UNKNOWN_SKILL_TYPE\x10\x00\x12\x13\n\x0f\x44\x45VICE_APPROVAL\x10\x01\x12\x11\n\rTEAM_APPROVAL\x10\x02\x12\x1a\n\x16TEAM_FOR_USER_APPROVAL\x10\x03*\x87\x01\n\x0e\x41utomatorState\x12\x11\n\rUNKNOWN_STATE\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\t\n\x05\x45RROR\x10\x02\x12\x18\n\x14NEEDS_INITIALIZATION\x10\x03\x12\x17\n\x13NEEDS_CRYPTO_STEP_1\x10\x04\x12\x17\n\x13NEEDS_CRYPTO_STEP_2\x10\x05\x42%\n\x18\x63om.keepersecurity.protoB\tAutomatorb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0f\x61utomator.proto\x12\tAutomator\x1a\x0essocloud.proto\x1a\x10\x65nterprise.proto\x1a\rversion.proto\"\xbf\x02\n\x15\x41utomatorSettingValue\x12\x11\n\tsettingId\x18\x01 \x01(\x03\x12\x15\n\rsettingTypeId\x18\x02 \x01(\x05\x12\x12\n\nsettingTag\x18\x03 \x01(\t\x12\x13\n\x0bsettingName\x18\x04 \x01(\t\x12\x14\n\x0csettingValue\x18\x05 \x01(\t\x12$\n\x08\x64\x61taType\x18\x06 \x01(\x0e\x32\x12.SsoCloud.DataType\x12\x14\n\x0clastModified\x18\x07 \x01(\t\x12\x10\n\x08\x66romFile\x18\x08 \x01(\x08\x12\x11\n\tencrypted\x18\t \x01(\x08\x12\x0f\n\x07\x65ncoded\x18\n \x01(\x08\x12\x10\n\x08\x65\x64itable\x18\x0b \x01(\x08\x12\x12\n\ntranslated\x18\x0c \x01(\x08\x12\x13\n\x0buserVisible\x18\r \x01(\x08\x12\x10\n\x08required\x18\x0e \x01(\x08\"\xee\x02\n\x14\x41pproveDeviceRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12O\n\x1dssoAuthenticationProtocolType\x18\x02 \x01(\x0e\x32(.Automator.SsoAuthenticationProtocolType\x12\x13\n\x0b\x61uthMessage\x18\x03 \x01(\t\x12\r\n\x05\x65mail\x18\x04 \x01(\t\x12\x17\n\x0f\x64\x65vicePublicKey\x18\x05 \x01(\x0c\x12\x1c\n\x14serverEccPublicKeyId\x18\x06 \x01(\x05\x12\x1c\n\x14userEncryptedDataKey\x18\x07 \x01(\x0c\x12>\n\x18userEncryptedDataKeyType\x18\x08 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\x12\x11\n\tipAddress\x18\t \x01(\t\x12\x11\n\tisTesting\x18\n \x01(\x08\x12\x11\n\tisEccOnly\x18\x0b \x01(\x08\"\xa9\x02\n\x0cSetupRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12\x1c\n\x14serverEccPublicKeyId\x18\x02 \x01(\x05\x12\x31\n\x0e\x61utomatorState\x18\x03 \x01(\x0e\x32\x19.Automator.AutomatorState\x12(\n encryptedEnterprisePrivateEccKey\x18\x04 \x01(\x0c\x12(\n encryptedEnterprisePrivateRsaKey\x18\x05 \x01(\x0c\x12\x32\n\x0f\x61utomatorSkills\x18\x06 \x03(\x0b\x32\x19.Automator.AutomatorSkill\x12\x18\n\x10\x65ncryptedTreeKey\x18\x07 \x01(\x0c\x12\x11\n\tisEccOnly\x18\x08 \x01(\x08\"U\n\rStatusRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12\x1c\n\x14serverEccPublicKeyId\x18\x02 \x01(\x05\x12\x11\n\tisEccOnly\x18\x03 \x01(\x08\"\xa3\x04\n\x11InitializeRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12\x13\n\x0bidpMetadata\x18\x02 \x01(\t\x12\x1d\n\x15idpSigningCertificate\x18\x03 \x01(\x0c\x12\x13\n\x0bssoEntityId\x18\x04 \x01(\t\x12\x14\n\x0c\x65mailMapping\x18\x05 \x01(\t\x12\x18\n\x10\x66irstnameMapping\x18\x06 \x01(\t\x12\x17\n\x0flastnameMapping\x18\x07 \x01(\t\x12\x10\n\x08\x64isabled\x18\x08 \x01(\x08\x12\x1c\n\x14serverEccPublicKeyId\x18\t \x01(\x05\x12\x0e\n\x06\x63onfig\x18\n \x01(\x0c\x12\x0f\n\x07sslMode\x18\x0b \x01(\t\x12\x14\n\x0cpersistState\x18\x0c \x01(\x08\x12\x17\n\x0f\x64isableSniCheck\x18\r \x01(\x08\x12\x1e\n\x16sslCertificateFilename\x18\x0e \x01(\t\x12\"\n\x1asslCertificateFilePassword\x18\x0f \x01(\t\x12!\n\x19sslCertificateKeyPassword\x18\x10 \x01(\t\x12\x1e\n\x16sslCertificateContents\x18\x11 \x01(\x0c\x12\x15\n\rautomatorHost\x18\x12 \x01(\t\x12\x15\n\rautomatorPort\x18\x13 \x01(\t\x12\x0f\n\x07ipAllow\x18\x14 \x01(\t\x12\x0e\n\x06ipDeny\x18\x15 \x01(\t\x12\x11\n\tisEccOnly\x18\x16 \x01(\x08\"\xa6\x02\n\x16NotInitializedResponse\x12 \n\x18\x61utomatorTransmissionKey\x18\x01 \x01(\x0c\x12\x1a\n\x12signingCertificate\x18\x02 \x01(\x0c\x12\"\n\x1asigningCertificateFilename\x18\x03 \x01(\t\x12\"\n\x1asigningCertificatePassword\x18\x04 \x01(\t\x12\x1a\n\x12signingKeyPassword\x18\x05 \x01(\t\x12>\n\x18signingCertificateFormat\x18\x06 \x01(\x0e\x32\x1c.Automator.CertificateFormat\x12\x1a\n\x12\x61utomatorPublicKey\x18\x07 \x01(\x0c\x12\x0e\n\x06\x63onfig\x18\x08 \x01(\x0c\"\xa5\x04\n\x11\x41utomatorResponse\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12\x0f\n\x07\x65nabled\x18\x02 \x01(\x08\x12\x11\n\ttimestamp\x18\x03 \x01(\x03\x12\x39\n\rapproveDevice\x18\x04 \x01(\x0b\x32 .Automator.ApproveDeviceResponseH\x00\x12+\n\x06status\x18\x05 \x01(\x0b\x32\x19.Automator.StatusResponseH\x00\x12;\n\x0enotInitialized\x18\x06 \x01(\x0b\x32!.Automator.NotInitializedResponseH\x00\x12)\n\x05\x65rror\x18\x07 \x01(\x0b\x32\x18.Automator.ErrorResponseH\x00\x12\x45\n\x13\x61pproveTeamsForUser\x18\n \x01(\x0b\x32&.Automator.ApproveTeamsForUserResponseH\x00\x12\x37\n\x0c\x61pproveTeams\x18\x0b \x01(\x0b\x32\x1f.Automator.ApproveTeamsResponseH\x00\x12\x31\n\x0e\x61utomatorState\x18\x08 \x01(\x0e\x32\x19.Automator.AutomatorState\x12\x1d\n\x15\x61utomatorPublicEccKey\x18\t \x01(\x0c\x12)\n\x07version\x18\x0c \x01(\x0b\x32\x18.SemanticVersion.VersionB\n\n\x08response\"\x98\x01\n\x15\x41pproveDeviceResponse\x12\x10\n\x08\x61pproved\x18\x01 \x01(\x08\x12\x1c\n\x14\x65ncryptedUserDataKey\x18\x02 \x01(\x0c\x12\x0f\n\x07message\x18\x03 \x01(\t\x12>\n\x18\x65ncryptedUserDataKeyType\x18\x04 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\"\xd0\x03\n\x0eStatusResponse\x12\x13\n\x0binitialized\x18\x01 \x01(\x08\x12\x18\n\x10\x65nabledTimestamp\x18\x02 \x01(\x03\x12\x1c\n\x14initializedTimestamp\x18\x03 \x01(\x03\x12\x18\n\x10updatedTimestamp\x18\x04 \x01(\x03\x12\x1f\n\x17numberOfDevicesApproved\x18\x05 \x01(\x03\x12\x1d\n\x15numberOfDevicesDenied\x18\x06 \x01(\x03\x12\x16\n\x0enumberOfErrors\x18\x07 \x01(\x03\x12 \n\x18sslCertificateExpiration\x18\x08 \x01(\x03\x12\x41\n\x16notInitializedResponse\x18\t \x01(\x0b\x32!.Automator.NotInitializedResponse\x12\x0e\n\x06\x63onfig\x18\n \x01(\x0c\x12\'\n\x1fnumberOfTeamMembershipsApproved\x18\x0b \x01(\x03\x12%\n\x1dnumberOfTeamMembershipsDenied\x18\x0c \x01(\x03\x12\x1d\n\x15numberOfTeamsApproved\x18\r \x01(\x03\x12\x1b\n\x13numberOfTeamsDenied\x18\x0e \x01(\x03\" \n\rErrorResponse\x12\x0f\n\x07message\x18\x01 \x01(\t\"X\n\x08LogEntry\x12\x12\n\nserverTime\x18\x01 \x01(\t\x12\x14\n\x0cmessageLevel\x18\x02 \x01(\t\x12\x11\n\tcomponent\x18\x03 \x01(\t\x12\x0f\n\x07message\x18\x04 \x01(\t\"b\n\rAdminResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\x12/\n\rautomatorInfo\x18\x03 \x03(\x0b\x32\x18.Automator.AutomatorInfo\"\xee\x02\n\rAutomatorInfo\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0f\n\x07\x65nabled\x18\x04 \x01(\x08\x12\x0b\n\x03url\x18\x05 \x01(\t\x12\x32\n\x0f\x61utomatorSkills\x18\x06 \x03(\x0b\x32\x19.Automator.AutomatorSkill\x12@\n\x16\x61utomatorSettingValues\x18\x07 \x03(\x0b\x32 .Automator.AutomatorSettingValue\x12)\n\x06status\x18\x08 \x01(\x0b\x32\x19.Automator.StatusResponse\x12\'\n\nlogEntries\x18\t \x03(\x0b\x32\x13.Automator.LogEntry\x12\x31\n\x0e\x61utomatorState\x18\n \x01(\x0e\x32\x19.Automator.AutomatorState\x12\x0f\n\x07version\x18\x0b \x01(\t\"e\n\x1b\x41\x64minCreateAutomatorRequest\x12\x0e\n\x06nodeId\x18\x01 \x01(\x03\x12\x0c\n\x04name\x18\x02 \x01(\t\x12(\n\x05skill\x18\x03 \x01(\x0b\x32\x19.Automator.AutomatorSkill\"2\n\x1b\x41\x64minDeleteAutomatorRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\"1\n\x1f\x41\x64minGetAutomatorsOnNodeRequest\x12\x0e\n\x06nodeId\x18\x01 \x01(\x03\">\n&AdminGetAutomatorsForEnterpriseRequest\x12\x14\n\x0c\x65nterpriseId\x18\x01 \x01(\x05\"/\n\x18\x41\x64minGetAutomatorRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\"C\n\x1b\x41\x64minEnableAutomatorRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12\x0f\n\x07\x65nabled\x18\x02 \x01(\x08\"\xc8\x01\n\x19\x41\x64minEditAutomatorRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0f\n\x07\x65nabled\x18\x03 \x01(\x08\x12\x0b\n\x03url\x18\x04 \x01(\t\x12(\n\nskillTypes\x18\x05 \x03(\x0e\x32\x14.Automator.SkillType\x12@\n\x16\x61utomatorSettingValues\x18\x06 \x03(\x0b\x32 .Automator.AutomatorSettingValue\"\xfc\x01\n\x1a\x41\x64minSetupAutomatorRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12\x31\n\x0e\x61utomatorState\x18\x02 \x01(\x0e\x32\x19.Automator.AutomatorState\x12(\n encryptedEccEnterprisePrivateKey\x18\x03 \x01(\x0c\x12(\n encryptedRsaEnterprisePrivateKey\x18\x04 \x01(\x0c\x12(\n\nskillTypes\x18\x05 \x03(\x0e\x32\x14.Automator.SkillType\x12\x18\n\x10\x65ncryptedTreeKey\x18\x06 \x01(\x0c\"\xa6\x01\n\x1b\x41\x64minSetupAutomatorResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x13\n\x0b\x61utomatorId\x18\x03 \x01(\x03\x12\x31\n\x0e\x61utomatorState\x18\x04 \x01(\x0e\x32\x19.Automator.AutomatorState\x12\x1d\n\x15\x61utomatorEccPublicKey\x18\x05 \x01(\x0c\"2\n\x1b\x41\x64minAutomatorSkillsRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\"_\n\x0e\x41utomatorSkill\x12\'\n\tskillType\x18\x01 \x01(\x0e\x32\x14.Automator.SkillType\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x16\n\x0etranslatedName\x18\x03 \x01(\t\"t\n\x1c\x41\x64minAutomatorSkillsResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x32\n\x0f\x61utomatorSkills\x18\x03 \x03(\x0b\x32\x19.Automator.AutomatorSkill\"1\n\x1a\x41\x64minResetAutomatorRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\"6\n\x1f\x41\x64minInitializeAutomatorRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\"/\n\x18\x41\x64minAutomatorLogRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\"4\n\x1d\x41\x64minAutomatorLogClearRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\"\xe3\x02\n\x1a\x41pproveTeamsForUserRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12O\n\x1dssoAuthenticationProtocolType\x18\x02 \x01(\x0e\x32(.Automator.SsoAuthenticationProtocolType\x12\x13\n\x0b\x61uthMessage\x18\x03 \x01(\t\x12\r\n\x05\x65mail\x18\x04 \x01(\t\x12\x1c\n\x14serverEccPublicKeyId\x18\x05 \x01(\x05\x12\x11\n\tipAddress\x18\x06 \x01(\t\x12\x15\n\ruserPublicKey\x18\x07 \x01(\x0c\x12\x33\n\x0fteamDescription\x18\x08 \x03(\x0b\x32\x1a.Automator.TeamDescription\x12\x11\n\tisTesting\x18\t \x01(\x08\x12\x11\n\tisEccOnly\x18\n \x01(\x08\x12\x18\n\x10userPublicKeyEcc\x18\x0b \x01(\x0c\"\x8a\x01\n\x0fTeamDescription\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x10\n\x08teamName\x18\x02 \x01(\t\x12\x18\n\x10\x65ncryptedTeamKey\x18\x03 \x01(\x0c\x12:\n\x14\x65ncryptedTeamKeyType\x18\x04 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\"\x99\x01\n\x1b\x41pproveTeamsForUserResponse\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x0f\n\x07message\x18\x03 \x01(\t\x12\x45\n\x13\x61pproveTeamResponse\x18\x04 \x03(\x0b\x32(.Automator.ApproveOneTeamForUserResponse\"\xab\x02\n\x1d\x41pproveOneTeamForUserResponse\x12\x10\n\x08\x61pproved\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x0f\n\x07teamUid\x18\x03 \x01(\x0c\x12\x10\n\x08teamName\x18\x04 \x01(\t\x12\x1c\n\x14userEncryptedTeamKey\x18\x05 \x01(\x0c\x12>\n\x18userEncryptedTeamKeyType\x18\x06 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\x12!\n\x19userEncryptedTeamKeyByEcc\x18\x07 \x01(\x0c\x12\x43\n\x1duserEncryptedTeamKeyByEccType\x18\x08 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\"\xab\x02\n\x13\x41pproveTeamsRequest\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12O\n\x1dssoAuthenticationProtocolType\x18\x02 \x01(\x0e\x32(.Automator.SsoAuthenticationProtocolType\x12\x13\n\x0b\x61uthMessage\x18\x03 \x01(\t\x12\r\n\x05\x65mail\x18\x04 \x01(\t\x12\x1c\n\x14serverEccPublicKeyId\x18\x05 \x01(\x05\x12\x11\n\tipAddress\x18\x06 \x01(\t\x12\x33\n\x0fteamDescription\x18\x07 \x03(\x0b\x32\x1a.Automator.TeamDescription\x12\x11\n\tisEccOnly\x18\x08 \x01(\x08\x12\x11\n\tisTesting\x18\t \x01(\x08\"|\n\x14\x41pproveTeamsResponse\x12\x13\n\x0b\x61utomatorId\x18\x01 \x01(\x03\x12\x0f\n\x07message\x18\x02 \x01(\t\x12>\n\x13\x61pproveTeamResponse\x18\x03 \x03(\x0b\x32!.Automator.ApproveOneTeamResponse\"\x9e\x04\n\x16\x41pproveOneTeamResponse\x12\x10\n\x08\x61pproved\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x0f\n\x07teamUid\x18\x03 \x01(\x0c\x12\x10\n\x08teamName\x18\x04 \x01(\t\x12\x1b\n\x13\x65ncryptedTeamKeyCbc\x18\x05 \x01(\x0c\x12=\n\x17\x65ncryptedTeamKeyCbcType\x18\x06 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\x12\x1b\n\x13\x65ncryptedTeamKeyGcm\x18\x07 \x01(\x0c\x12=\n\x17\x65ncryptedTeamKeyGcmType\x18\x08 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\x12\x18\n\x10teamPublicKeyRsa\x18\t \x01(\x0c\x12\"\n\x1a\x65ncryptedTeamPrivateKeyRsa\x18\n \x01(\x0c\x12\x44\n\x1e\x65ncryptedTeamPrivateKeyRsaType\x18\x0b \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\x12\x18\n\x10teamPublicKeyEcc\x18\x0c \x01(\x0c\x12\"\n\x1a\x65ncryptedTeamPrivateKeyEcc\x18\r \x01(\x0c\x12\x44\n\x1e\x65ncryptedTeamPrivateKeyEccType\x18\x0e \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType*@\n\x1dSsoAuthenticationProtocolType\x12\x14\n\x10UNKNOWN_PROTOCOL\x10\x00\x12\t\n\x05SAML2\x10\x01*<\n\x11\x43\x65rtificateFormat\x12\x12\n\x0eUNKNOWN_FORMAT\x10\x00\x12\n\n\x06PKCS12\x10\x01\x12\x07\n\x03JKS\x10\x02*g\n\tSkillType\x12\x16\n\x12UNKNOWN_SKILL_TYPE\x10\x00\x12\x13\n\x0f\x44\x45VICE_APPROVAL\x10\x01\x12\x11\n\rTEAM_APPROVAL\x10\x02\x12\x1a\n\x16TEAM_FOR_USER_APPROVAL\x10\x03*\x87\x01\n\x0e\x41utomatorState\x12\x11\n\rUNKNOWN_STATE\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\t\n\x05\x45RROR\x10\x02\x12\x18\n\x14NEEDS_INITIALIZATION\x10\x03\x12\x17\n\x13NEEDS_CRYPTO_STEP_1\x10\x04\x12\x17\n\x13NEEDS_CRYPTO_STEP_2\x10\x05\x42%\n\x18\x63om.keepersecurity.protoB\tAutomatorb\x06proto3') _SSOAUTHENTICATIONPROTOCOLTYPE = DESCRIPTOR.enum_types_by_name['SsoAuthenticationProtocolType'] SsoAuthenticationProtocolType = enum_type_wrapper.EnumTypeWrapper(_SSOAUTHENTICATIONPROTOCOLTYPE) @@ -337,14 +337,14 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\030com.keepersecurity.protoB\tAutomator' - _SSOAUTHENTICATIONPROTOCOLTYPE._serialized_start=7102 - _SSOAUTHENTICATIONPROTOCOLTYPE._serialized_end=7166 - _CERTIFICATEFORMAT._serialized_start=7168 - _CERTIFICATEFORMAT._serialized_end=7228 - _SKILLTYPE._serialized_start=7230 - _SKILLTYPE._serialized_end=7333 - _AUTOMATORSTATE._serialized_start=7336 - _AUTOMATORSTATE._serialized_end=7471 + _SSOAUTHENTICATIONPROTOCOLTYPE._serialized_start=7193 + _SSOAUTHENTICATIONPROTOCOLTYPE._serialized_end=7257 + _CERTIFICATEFORMAT._serialized_start=7259 + _CERTIFICATEFORMAT._serialized_end=7319 + _SKILLTYPE._serialized_start=7321 + _SKILLTYPE._serialized_end=7424 + _AUTOMATORSTATE._serialized_start=7427 + _AUTOMATORSTATE._serialized_end=7562 _AUTOMATORSETTINGVALUE._serialized_start=80 _AUTOMATORSETTINGVALUE._serialized_end=399 _APPROVEDEVICEREQUEST._serialized_start=402 @@ -359,62 +359,62 @@ _NOTINITIALIZEDRESPONSE._serialized_end=2002 _AUTOMATORRESPONSE._serialized_start=2005 _AUTOMATORRESPONSE._serialized_end=2554 - _APPROVEDEVICERESPONSE._serialized_start=2556 - _APPROVEDEVICERESPONSE._serialized_end=2644 - _STATUSRESPONSE._serialized_start=2647 - _STATUSRESPONSE._serialized_end=3111 - _ERRORRESPONSE._serialized_start=3113 - _ERRORRESPONSE._serialized_end=3145 - _LOGENTRY._serialized_start=3147 - _LOGENTRY._serialized_end=3235 - _ADMINRESPONSE._serialized_start=3237 - _ADMINRESPONSE._serialized_end=3335 - _AUTOMATORINFO._serialized_start=3338 - _AUTOMATORINFO._serialized_end=3704 - _ADMINCREATEAUTOMATORREQUEST._serialized_start=3706 - _ADMINCREATEAUTOMATORREQUEST._serialized_end=3807 - _ADMINDELETEAUTOMATORREQUEST._serialized_start=3809 - _ADMINDELETEAUTOMATORREQUEST._serialized_end=3859 - _ADMINGETAUTOMATORSONNODEREQUEST._serialized_start=3861 - _ADMINGETAUTOMATORSONNODEREQUEST._serialized_end=3910 - _ADMINGETAUTOMATORSFORENTERPRISEREQUEST._serialized_start=3912 - _ADMINGETAUTOMATORSFORENTERPRISEREQUEST._serialized_end=3974 - _ADMINGETAUTOMATORREQUEST._serialized_start=3976 - _ADMINGETAUTOMATORREQUEST._serialized_end=4023 - _ADMINENABLEAUTOMATORREQUEST._serialized_start=4025 - _ADMINENABLEAUTOMATORREQUEST._serialized_end=4092 - _ADMINEDITAUTOMATORREQUEST._serialized_start=4095 - _ADMINEDITAUTOMATORREQUEST._serialized_end=4295 - _ADMINSETUPAUTOMATORREQUEST._serialized_start=4298 - _ADMINSETUPAUTOMATORREQUEST._serialized_end=4550 - _ADMINSETUPAUTOMATORRESPONSE._serialized_start=4553 - _ADMINSETUPAUTOMATORRESPONSE._serialized_end=4719 - _ADMINAUTOMATORSKILLSREQUEST._serialized_start=4721 - _ADMINAUTOMATORSKILLSREQUEST._serialized_end=4771 - _AUTOMATORSKILL._serialized_start=4773 - _AUTOMATORSKILL._serialized_end=4868 - _ADMINAUTOMATORSKILLSRESPONSE._serialized_start=4870 - _ADMINAUTOMATORSKILLSRESPONSE._serialized_end=4986 - _ADMINRESETAUTOMATORREQUEST._serialized_start=4988 - _ADMINRESETAUTOMATORREQUEST._serialized_end=5037 - _ADMININITIALIZEAUTOMATORREQUEST._serialized_start=5039 - _ADMININITIALIZEAUTOMATORREQUEST._serialized_end=5093 - _ADMINAUTOMATORLOGREQUEST._serialized_start=5095 - _ADMINAUTOMATORLOGREQUEST._serialized_end=5142 - _ADMINAUTOMATORLOGCLEARREQUEST._serialized_start=5144 - _ADMINAUTOMATORLOGCLEARREQUEST._serialized_end=5196 - _APPROVETEAMSFORUSERREQUEST._serialized_start=5199 - _APPROVETEAMSFORUSERREQUEST._serialized_end=5528 - _TEAMDESCRIPTION._serialized_start=5531 - _TEAMDESCRIPTION._serialized_end=5669 - _APPROVETEAMSFORUSERRESPONSE._serialized_start=5672 - _APPROVETEAMSFORUSERRESPONSE._serialized_end=5825 - _APPROVEONETEAMFORUSERRESPONSE._serialized_start=5828 - _APPROVEONETEAMFORUSERRESPONSE._serialized_end=6127 - _APPROVETEAMSREQUEST._serialized_start=6130 - _APPROVETEAMSREQUEST._serialized_end=6429 - _APPROVETEAMSRESPONSE._serialized_start=6431 - _APPROVETEAMSRESPONSE._serialized_end=6555 - _APPROVEONETEAMRESPONSE._serialized_start=6558 - _APPROVEONETEAMRESPONSE._serialized_end=7100 + _APPROVEDEVICERESPONSE._serialized_start=2557 + _APPROVEDEVICERESPONSE._serialized_end=2709 + _STATUSRESPONSE._serialized_start=2712 + _STATUSRESPONSE._serialized_end=3176 + _ERRORRESPONSE._serialized_start=3178 + _ERRORRESPONSE._serialized_end=3210 + _LOGENTRY._serialized_start=3212 + _LOGENTRY._serialized_end=3300 + _ADMINRESPONSE._serialized_start=3302 + _ADMINRESPONSE._serialized_end=3400 + _AUTOMATORINFO._serialized_start=3403 + _AUTOMATORINFO._serialized_end=3769 + _ADMINCREATEAUTOMATORREQUEST._serialized_start=3771 + _ADMINCREATEAUTOMATORREQUEST._serialized_end=3872 + _ADMINDELETEAUTOMATORREQUEST._serialized_start=3874 + _ADMINDELETEAUTOMATORREQUEST._serialized_end=3924 + _ADMINGETAUTOMATORSONNODEREQUEST._serialized_start=3926 + _ADMINGETAUTOMATORSONNODEREQUEST._serialized_end=3975 + _ADMINGETAUTOMATORSFORENTERPRISEREQUEST._serialized_start=3977 + _ADMINGETAUTOMATORSFORENTERPRISEREQUEST._serialized_end=4039 + _ADMINGETAUTOMATORREQUEST._serialized_start=4041 + _ADMINGETAUTOMATORREQUEST._serialized_end=4088 + _ADMINENABLEAUTOMATORREQUEST._serialized_start=4090 + _ADMINENABLEAUTOMATORREQUEST._serialized_end=4157 + _ADMINEDITAUTOMATORREQUEST._serialized_start=4160 + _ADMINEDITAUTOMATORREQUEST._serialized_end=4360 + _ADMINSETUPAUTOMATORREQUEST._serialized_start=4363 + _ADMINSETUPAUTOMATORREQUEST._serialized_end=4615 + _ADMINSETUPAUTOMATORRESPONSE._serialized_start=4618 + _ADMINSETUPAUTOMATORRESPONSE._serialized_end=4784 + _ADMINAUTOMATORSKILLSREQUEST._serialized_start=4786 + _ADMINAUTOMATORSKILLSREQUEST._serialized_end=4836 + _AUTOMATORSKILL._serialized_start=4838 + _AUTOMATORSKILL._serialized_end=4933 + _ADMINAUTOMATORSKILLSRESPONSE._serialized_start=4935 + _ADMINAUTOMATORSKILLSRESPONSE._serialized_end=5051 + _ADMINRESETAUTOMATORREQUEST._serialized_start=5053 + _ADMINRESETAUTOMATORREQUEST._serialized_end=5102 + _ADMININITIALIZEAUTOMATORREQUEST._serialized_start=5104 + _ADMININITIALIZEAUTOMATORREQUEST._serialized_end=5158 + _ADMINAUTOMATORLOGREQUEST._serialized_start=5160 + _ADMINAUTOMATORLOGREQUEST._serialized_end=5207 + _ADMINAUTOMATORLOGCLEARREQUEST._serialized_start=5209 + _ADMINAUTOMATORLOGCLEARREQUEST._serialized_end=5261 + _APPROVETEAMSFORUSERREQUEST._serialized_start=5264 + _APPROVETEAMSFORUSERREQUEST._serialized_end=5619 + _TEAMDESCRIPTION._serialized_start=5622 + _TEAMDESCRIPTION._serialized_end=5760 + _APPROVETEAMSFORUSERRESPONSE._serialized_start=5763 + _APPROVETEAMSFORUSERRESPONSE._serialized_end=5916 + _APPROVEONETEAMFORUSERRESPONSE._serialized_start=5919 + _APPROVEONETEAMFORUSERRESPONSE._serialized_end=6218 + _APPROVETEAMSREQUEST._serialized_start=6221 + _APPROVETEAMSREQUEST._serialized_end=6520 + _APPROVETEAMSRESPONSE._serialized_start=6522 + _APPROVETEAMSRESPONSE._serialized_end=6646 + _APPROVEONETEAMRESPONSE._serialized_start=6649 + _APPROVEONETEAMRESPONSE._serialized_end=7191 # @@protoc_insertion_point(module_scope) diff --git a/keepercommander/proto/enterprise_pb2.py b/keepercommander/proto/enterprise_pb2.py index dec50438d..c6a93f001 100644 --- a/keepercommander/proto/enterprise_pb2.py +++ b/keepercommander/proto/enterprise_pb2.py @@ -15,10 +15,12 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10\x65nterprise.proto\x12\nEnterprise\"\x84\x01\n\x18\x45nterpriseKeyPairRequest\x12\x1b\n\x13\x65nterprisePublicKey\x18\x01 \x01(\x0c\x12%\n\x1d\x65ncryptedEnterprisePrivateKey\x18\x02 \x01(\x0c\x12$\n\x07keyType\x18\x03 \x01(\x0e\x32\x13.Enterprise.KeyType\"\'\n\x14GetTeamMemberRequest\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\"}\n\x0e\x45nterpriseUser\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x1a\n\x12\x65nterpriseUsername\x18\x03 \x01(\t\x12\x14\n\x0cisShareAdmin\x18\x04 \x01(\x08\x12\x10\n\x08username\x18\x05 \x01(\t\"K\n\x15GetTeamMemberResponse\x12\x32\n\x0e\x65nterpriseUser\x18\x01 \x03(\x0b\x32\x1a.Enterprise.EnterpriseUser\"-\n\x11\x45nterpriseUserIds\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x03(\x03\"B\n\x19\x45nterprisePersonalAccount\x12\r\n\x05\x65mail\x18\x01 \x01(\t\x12\x16\n\x0eOBSOLETE_FIELD\x18\x02 \x01(\x0c\"S\n\x17\x45ncryptedTeamKeyRequest\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x18\n\x10\x65ncryptedTeamKey\x18\x02 \x01(\x0c\x12\r\n\x05\x66orce\x18\x03 \x01(\x08\"+\n\x0fReEncryptedData\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\t\"?\n\x12ReEncryptedRoleKey\x12\x0f\n\x07role_id\x18\x01 \x01(\x03\x12\x18\n\x10\x65ncryptedRoleKey\x18\x02 \x01(\x0c\"\x9d\x02\n\x1bNodeToManagedCompanyRequest\x12\x11\n\tcompanyId\x18\x01 \x01(\x05\x12*\n\x05nodes\x18\x02 \x03(\x0b\x32\x1b.Enterprise.ReEncryptedData\x12*\n\x05roles\x18\x03 \x03(\x0b\x32\x1b.Enterprise.ReEncryptedData\x12*\n\x05users\x18\x04 \x03(\x0b\x32\x1b.Enterprise.ReEncryptedData\x12\x30\n\x08roleKeys\x18\x05 \x03(\x0b\x32\x1e.Enterprise.ReEncryptedRoleKey\x12\x35\n\x08teamKeys\x18\x06 \x03(\x0b\x32#.Enterprise.EncryptedTeamKeyRequest\",\n\x08RoleTeam\x12\x0f\n\x07role_id\x18\x01 \x01(\x03\x12\x0f\n\x07teamUid\x18\x02 \x01(\x0c\"4\n\tRoleTeams\x12\'\n\trole_team\x18\x01 \x03(\x0b\x32\x14.Enterprise.RoleTeam\"\xc1\x03\n\x16\x45nterpriseRegistration\x12\x18\n\x10\x65ncryptedTreeKey\x18\x01 \x01(\x0c\x12\x16\n\x0e\x65nterpriseName\x18\x02 \x01(\t\x12\x14\n\x0crootNodeData\x18\x03 \x01(\x0c\x12\x15\n\radminUserData\x18\x04 \x01(\x0c\x12\x11\n\tadminName\x18\x05 \x01(\t\x12\x10\n\x08roleData\x18\x06 \x01(\x0c\x12\x38\n\nrsaKeyPair\x18\x07 \x01(\x0b\x32$.Enterprise.EnterpriseKeyPairRequest\x12\x13\n\x0bnumberSeats\x18\x08 \x01(\x05\x12\x32\n\x0e\x65nterpriseType\x18\t \x01(\x0e\x32\x1a.Enterprise.EnterpriseType\x12\x15\n\rrolePublicKey\x18\n \x01(\x0c\x12*\n\"rolePrivateKeyEncryptedWithRoleKey\x18\x0b \x01(\x0c\x12#\n\x1broleKeyEncryptedWithTreeKey\x18\x0c \x01(\x0c\x12\x38\n\neccKeyPair\x18\r \x01(\x0b\x32$.Enterprise.EnterpriseKeyPairRequest\"H\n\x1a\x44omainPasswordRulesRequest\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x18\n\x10verificationCode\x18\x02 \x01(\t\"\\\n\x19\x44omainPasswordRulesFields\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x0f\n\x07minimum\x18\x02 \x01(\x05\x12\x0f\n\x07maximum\x18\x03 \x01(\x05\x12\x0f\n\x07\x61llowed\x18\x04 \x01(\x08\"E\n\x10LoginToMcRequest\x12\x16\n\x0emcEnterpriseId\x18\x01 \x01(\x05\x12\x19\n\x11messageSessionUid\x18\x02 \x01(\x0c\"L\n\x11LoginToMcResponse\x12\x1d\n\x15\x65ncryptedSessionToken\x18\x01 \x01(\x0c\x12\x18\n\x10\x65ncryptedTreeKey\x18\x02 \x01(\t\"g\n\x1b\x44omainPasswordRulesResponse\x12H\n\x19\x64omainPasswordRulesFields\x18\x01 \x03(\x0b\x32%.Enterprise.DomainPasswordRulesFields\"\x88\x01\n\x18\x41pproveUserDeviceRequest\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x02 \x01(\x0c\x12\x1e\n\x16\x65ncryptedDeviceDataKey\x18\x03 \x01(\x0c\x12\x14\n\x0c\x64\x65nyApproval\x18\x04 \x01(\x08\"t\n\x19\x41pproveUserDeviceResponse\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x02 \x01(\x0c\x12\x0e\n\x06\x66\x61iled\x18\x03 \x01(\x08\x12\x0f\n\x07message\x18\x04 \x01(\t\"Y\n\x19\x41pproveUserDevicesRequest\x12<\n\x0e\x64\x65viceRequests\x18\x01 \x03(\x0b\x32$.Enterprise.ApproveUserDeviceRequest\"\\\n\x1a\x41pproveUserDevicesResponse\x12>\n\x0f\x64\x65viceResponses\x18\x01 \x03(\x0b\x32%.Enterprise.ApproveUserDeviceResponse\"\x87\x01\n\x15\x45nterpriseUserDataKey\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x1c\n\x14userEncryptedDataKey\x18\x02 \x01(\x0c\x12\x11\n\tkeyTypeId\x18\x03 \x01(\x05\x12\x0f\n\x07roleKey\x18\x04 \x01(\x0c\x12\x12\n\nprivateKey\x18\x05 \x01(\x0c\"I\n\x16\x45nterpriseUserDataKeys\x12/\n\x04keys\x18\x01 \x03(\x0b\x32!.Enterprise.EnterpriseUserDataKey\"2\n\x15\x45nterpriseDataRequest\x12\x19\n\x11\x63ontinuationToken\x18\x01 \x01(\x0c\"0\n\x13SpecialProvisioning\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\xcc\x01\n\x11GeneralDataEntity\x12\x16\n\x0e\x65nterpriseName\x18\x01 \x01(\t\x12\x1a\n\x12restrictVisibility\x18\x02 \x01(\x08\x12<\n\x13specialProvisioning\x18\x04 \x01(\x0b\x32\x1f.Enterprise.SpecialProvisioning\x12\x30\n\ruserPrivilege\x18\x07 \x01(\x0b\x32\x19.Enterprise.UserPrivilege\x12\x13\n\x0b\x64istributor\x18\x08 \x01(\x08\"\xfd\x01\n\x04Node\x12\x0e\n\x06nodeId\x18\x01 \x01(\x03\x12\x10\n\x08parentId\x18\x02 \x01(\x03\x12\x10\n\x08\x62ridgeId\x18\x03 \x01(\x03\x12\x0e\n\x06scimId\x18\x04 \x01(\x03\x12\x11\n\tlicenseId\x18\x05 \x01(\x03\x12\x15\n\rencryptedData\x18\x06 \x01(\t\x12\x12\n\nduoEnabled\x18\x07 \x01(\x08\x12\x12\n\nrsaEnabled\x18\x08 \x01(\x08\x12 \n\x14ssoServiceProviderId\x18\t \x01(\x03\x42\x02\x18\x01\x12\x1a\n\x12restrictVisibility\x18\n \x01(\x08\x12!\n\x15ssoServiceProviderIds\x18\x0b \x03(\x03\x42\x02\x10\x01\"\x8e\x01\n\x04Role\x12\x0e\n\x06roleId\x18\x01 \x01(\x03\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x15\n\rencryptedData\x18\x03 \x01(\t\x12\x0f\n\x07keyType\x18\x04 \x01(\t\x12\x14\n\x0cvisibleBelow\x18\x05 \x01(\x08\x12\x16\n\x0enewUserInherit\x18\x06 \x01(\x08\x12\x10\n\x08roleType\x18\x07 \x01(\t\"\xb8\x02\n\x04User\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x15\n\rencryptedData\x18\x03 \x01(\t\x12\x0f\n\x07keyType\x18\x04 \x01(\t\x12\x10\n\x08username\x18\x05 \x01(\t\x12\x0e\n\x06status\x18\x06 \x01(\t\x12\x0c\n\x04lock\x18\x07 \x01(\x05\x12\x0e\n\x06userId\x18\x08 \x01(\x05\x12\x1e\n\x16\x61\x63\x63ountShareExpiration\x18\t \x01(\x03\x12\x10\n\x08\x66ullName\x18\n \x01(\t\x12\x10\n\x08jobTitle\x18\x0b \x01(\t\x12\x12\n\ntfaEnabled\x18\x0c \x01(\x08\x12\x46\n\x18transferAcceptanceStatus\x18\r \x01(\x0e\x32$.Enterprise.TransferAcceptanceStatus\"7\n\tUserAlias\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x10\n\x08username\x18\x02 \x01(\t\"\xac\x01\n\x18\x43omplianceReportMetaData\x12\x11\n\treportUid\x18\x01 \x01(\x0c\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x12\n\nreportName\x18\x03 \x01(\t\x12\x15\n\rdateGenerated\x18\x04 \x01(\x03\x12\x11\n\trunByName\x18\x05 \x01(\t\x12\x16\n\x0enumberOfOwners\x18\x07 \x01(\x05\x12\x17\n\x0fnumberOfRecords\x18\x08 \x01(\x05\"S\n\x0bManagedNode\x12\x0e\n\x06roleId\x18\x01 \x01(\x03\x12\x15\n\rmanagedNodeId\x18\x02 \x01(\x03\x12\x1d\n\x15\x63\x61scadeNodeManagement\x18\x03 \x01(\x08\"T\n\x0fUserManagedNode\x12\x0e\n\x06nodeId\x18\x01 \x01(\x03\x12\x1d\n\x15\x63\x61scadeNodeManagement\x18\x02 \x01(\x08\x12\x12\n\nprivileges\x18\x03 \x03(\t\"w\n\rUserPrivilege\x12\x35\n\x10userManagedNodes\x18\x01 \x03(\x0b\x32\x1b.Enterprise.UserManagedNode\x12\x18\n\x10\x65nterpriseUserId\x18\x02 \x01(\x03\x12\x15\n\rencryptedData\x18\x03 \x01(\t\"4\n\x08RoleUser\x12\x0e\n\x06roleId\x18\x01 \x01(\x03\x12\x18\n\x10\x65nterpriseUserId\x18\x02 \x01(\x03\"M\n\rRolePrivilege\x12\x15\n\rmanagedNodeId\x18\x01 \x01(\x03\x12\x0e\n\x06roleId\x18\x02 \x01(\x03\x12\x15\n\rprivilegeType\x18\x03 \x01(\t\"I\n\x0fRoleEnforcement\x12\x0e\n\x06roleId\x18\x01 \x01(\x03\x12\x17\n\x0f\x65nforcementType\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\"\xa9\x01\n\x04Team\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06nodeId\x18\x03 \x01(\x03\x12\x14\n\x0crestrictEdit\x18\x04 \x01(\x08\x12\x15\n\rrestrictShare\x18\x05 \x01(\x08\x12\x14\n\x0crestrictView\x18\x06 \x01(\x08\x12\x15\n\rencryptedData\x18\x07 \x01(\t\x12\x18\n\x10\x65ncryptedTeamKey\x18\x08 \x01(\t\"G\n\x08TeamUser\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x18\n\x10\x65nterpriseUserId\x18\x02 \x01(\x03\x12\x10\n\x08userType\x18\x03 \x01(\t\"K\n\x1aGetDistributorInfoResponse\x12-\n\x0c\x64istributors\x18\x01 \x03(\x0b\x32\x17.Enterprise.Distributor\"B\n\x0b\x44istributor\x12\x0c\n\x04name\x18\x01 \x01(\t\x12%\n\x08mspInfos\x18\x02 \x03(\x0b\x32\x13.Enterprise.MspInfo\"\x9d\x02\n\x07MspInfo\x12\x14\n\x0c\x65nterpriseId\x18\x01 \x01(\x05\x12\x16\n\x0e\x65nterpriseName\x18\x02 \x01(\t\x12\x19\n\x11\x61llocatedLicenses\x18\x03 \x01(\x05\x12\x19\n\x11\x61llowedMcProducts\x18\x04 \x03(\t\x12\x15\n\rallowedAddOns\x18\x05 \x03(\t\x12\x17\n\x0fmaxFilePlanType\x18\x06 \x01(\t\x12\x34\n\x10managedCompanies\x18\x07 \x03(\x0b\x32\x1a.Enterprise.ManagedCompany\x12\x1e\n\x16\x61llowUnlimitedLicenses\x18\x08 \x01(\x08\x12(\n\x06\x61\x64\x64Ons\x18\t \x03(\x0b\x32\x18.Enterprise.LicenseAddOn\"\x91\x02\n\x0eManagedCompany\x12\x16\n\x0emcEnterpriseId\x18\x01 \x01(\x05\x12\x18\n\x10mcEnterpriseName\x18\x02 \x01(\t\x12\x11\n\tmspNodeId\x18\x03 \x01(\x03\x12\x15\n\rnumberOfSeats\x18\x04 \x01(\x05\x12\x15\n\rnumberOfUsers\x18\x05 \x01(\x05\x12\x11\n\tproductId\x18\x06 \x01(\t\x12\x11\n\tisExpired\x18\x07 \x01(\x08\x12\x0f\n\x07treeKey\x18\x08 \x01(\t\x12\x15\n\rtree_key_role\x18\t \x01(\x03\x12\x14\n\x0c\x66ilePlanType\x18\n \x01(\t\x12(\n\x06\x61\x64\x64Ons\x18\x0b \x03(\x0b\x32\x18.Enterprise.LicenseAddOn\"R\n\x07MSPPool\x12\x11\n\tproductId\x18\x01 \x01(\t\x12\r\n\x05seats\x18\x02 \x01(\x05\x12\x16\n\x0e\x61vailableSeats\x18\x03 \x01(\x05\x12\r\n\x05stash\x18\x04 \x01(\x05\":\n\nMSPContact\x12\x14\n\x0c\x65nterpriseId\x18\x01 \x01(\x05\x12\x16\n\x0e\x65nterpriseName\x18\x02 \x01(\t\"\xbb\x01\n\x0cLicenseAddOn\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07\x65nabled\x18\x02 \x01(\x08\x12\x0f\n\x07isTrial\x18\x03 \x01(\x08\x12\x12\n\nexpiration\x18\x04 \x01(\x03\x12\x0f\n\x07\x63reated\x18\x05 \x01(\x03\x12\r\n\x05seats\x18\x06 \x01(\x05\x12\x16\n\x0e\x61\x63tivationTime\x18\x07 \x01(\x03\x12\x19\n\x11includedInProduct\x18\x08 \x01(\x08\x12\x14\n\x0c\x61piCallCount\x18\t \x01(\x05\"s\n\tMCDefault\x12\x11\n\tmcProduct\x18\x01 \x01(\t\x12\x0e\n\x06\x61\x64\x64Ons\x18\x02 \x03(\t\x12\x14\n\x0c\x66ilePlanType\x18\x03 \x01(\t\x12\x13\n\x0bmaxLicenses\x18\x04 \x01(\x05\x12\x18\n\x10\x66ixedMaxLicenses\x18\x05 \x01(\x08\"\xd2\x01\n\nMSPPermits\x12\x12\n\nrestricted\x18\x01 \x01(\x08\x12\x1a\n\x12maxAllowedLicenses\x18\x02 \x01(\x05\x12\x19\n\x11\x61llowedMcProducts\x18\x03 \x03(\t\x12\x15\n\rallowedAddOns\x18\x04 \x03(\t\x12\x17\n\x0fmaxFilePlanType\x18\x05 \x01(\t\x12\x1e\n\x16\x61llowUnlimitedLicenses\x18\x06 \x01(\x08\x12)\n\nmcDefaults\x18\x07 \x03(\x0b\x32\x15.Enterprise.MCDefault\"\xa0\x04\n\x07License\x12\x0c\n\x04paid\x18\x01 \x01(\x08\x12\x15\n\rnumberOfSeats\x18\x02 \x01(\x05\x12\x12\n\nexpiration\x18\x03 \x01(\x03\x12\x14\n\x0clicenseKeyId\x18\x04 \x01(\x05\x12\x15\n\rproductTypeId\x18\x05 \x01(\x05\x12\x0c\n\x04name\x18\x06 \x01(\t\x12\x1b\n\x13\x65nterpriseLicenseId\x18\x07 \x01(\x03\x12\x16\n\x0eseatsAllocated\x18\x08 \x01(\x05\x12\x14\n\x0cseatsPending\x18\t \x01(\x05\x12\x0c\n\x04tier\x18\n \x01(\x05\x12\x16\n\x0e\x66ilePlanTypeId\x18\x0b \x01(\x05\x12\x10\n\x08maxBytes\x18\x0c \x01(\x03\x12\x19\n\x11storageExpiration\x18\r \x01(\x03\x12\x15\n\rlicenseStatus\x18\x0e \x01(\t\x12$\n\x07mspPool\x18\x0f \x03(\x0b\x32\x13.Enterprise.MSPPool\x12)\n\tmanagedBy\x18\x10 \x01(\x0b\x32\x16.Enterprise.MSPContact\x12(\n\x06\x61\x64\x64Ons\x18\x11 \x03(\x0b\x32\x18.Enterprise.LicenseAddOn\x12\x17\n\x0fnextBillingDate\x18\x12 \x01(\x03\x12\x17\n\x0fhasMSPLegacyLog\x18\x13 \x01(\x08\x12*\n\nmspPermits\x18\x14 \x01(\x0b\x32\x16.Enterprise.MSPPermits\x12\x13\n\x0b\x64istributor\x18\x15 \x01(\x08\"n\n\x06\x42ridge\x12\x10\n\x08\x62ridgeId\x18\x01 \x01(\x03\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x18\n\x10wanIpEnforcement\x18\x03 \x01(\t\x12\x18\n\x10lanIpEnforcement\x18\x04 \x01(\t\x12\x0e\n\x06status\x18\x05 \x01(\t\"t\n\x04Scim\x12\x0e\n\x06scimId\x18\x01 \x01(\x03\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x12\n\nlastSynced\x18\x04 \x01(\x03\x12\x12\n\nrolePrefix\x18\x05 \x01(\t\x12\x14\n\x0cuniqueGroups\x18\x06 \x01(\x08\"L\n\x0e\x45mailProvision\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x0e\n\x06\x64omain\x18\x03 \x01(\t\x12\x0e\n\x06method\x18\x04 \x01(\t\"R\n\nQueuedTeam\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06nodeId\x18\x03 \x01(\x03\x12\x15\n\rencryptedData\x18\x04 \x01(\t\"0\n\x0eQueuedTeamUser\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\r\n\x05users\x18\x02 \x03(\x03\"\xa4\x01\n\x0eTeamsAddResult\x12\x34\n\x11successfulTeamAdd\x18\x01 \x03(\x0b\x32\x19.Enterprise.TeamAddResult\x12\x36\n\x13unsuccessfulTeamAdd\x18\x02 \x03(\x0b\x32\x19.Enterprise.TeamAddResult\x12\x0e\n\x06result\x18\x03 \x01(\t\x12\x14\n\x0c\x65rrorMessage\x18\x04 \x01(\t\"U\n\rTeamAddResult\x12\x1e\n\x04team\x18\x01 \x01(\x0b\x32\x10.Enterprise.Team\x12\x0e\n\x06result\x18\x02 \x01(\t\x12\x14\n\x0c\x65rrorMessage\x18\x03 \x01(\t\"\x91\x01\n\nSsoService\x12\x1c\n\x14ssoServiceProviderId\x18\x01 \x01(\x03\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0e\n\x06sp_url\x18\x04 \x01(\t\x12\x16\n\x0einviteNewUsers\x18\x05 \x01(\x08\x12\x0e\n\x06\x61\x63tive\x18\x06 \x01(\x08\x12\x0f\n\x07isCloud\x18\x07 \x01(\x08\"1\n\x10ReportFilterUser\x12\x0e\n\x06userId\x18\x01 \x01(\x05\x12\r\n\x05\x65mail\x18\x02 \x01(\t\"\x97\x02\n\x1d\x44\x65viceRequestForAdminApproval\x12\x10\n\x08\x64\x65viceId\x18\x01 \x01(\x03\x12\x18\n\x10\x65nterpriseUserId\x18\x02 \x01(\x03\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x03 \x01(\x0c\x12\x17\n\x0f\x64\x65vicePublicKey\x18\x04 \x01(\x0c\x12\x12\n\ndeviceName\x18\x05 \x01(\t\x12\x15\n\rclientVersion\x18\x06 \x01(\t\x12\x12\n\ndeviceType\x18\x07 \x01(\t\x12\x0c\n\x04\x64\x61te\x18\x08 \x01(\x03\x12\x11\n\tipAddress\x18\t \x01(\t\x12\x10\n\x08location\x18\n \x01(\t\x12\r\n\x05\x65mail\x18\x0b \x01(\t\x12\x12\n\naccountUid\x18\x0c \x01(\x0c\"`\n\x0e\x45nterpriseData\x12\x30\n\x06\x65ntity\x18\x01 \x01(\x0e\x32 .Enterprise.EnterpriseDataEntity\x12\x0e\n\x06\x64\x65lete\x18\x02 \x01(\x08\x12\x0c\n\x04\x64\x61ta\x18\x03 \x03(\x0c\"\xd0\x01\n\x16\x45nterpriseDataResponse\x12\x19\n\x11\x63ontinuationToken\x18\x01 \x01(\x0c\x12\x0f\n\x07hasMore\x18\x02 \x01(\x08\x12,\n\x0b\x63\x61\x63heStatus\x18\x03 \x01(\x0e\x32\x17.Enterprise.CacheStatus\x12(\n\x04\x64\x61ta\x18\x04 \x03(\x0b\x32\x1a.Enterprise.EnterpriseData\x12\x32\n\x0bgeneralData\x18\x05 \x01(\x0b\x32\x1d.Enterprise.GeneralDataEntity\"*\n\rBackupRequest\x12\x19\n\x11\x63ontinuationToken\x18\x01 \x01(\x0c\"\x98\x01\n\x0c\x42\x61\x63kupRecord\x12\x0e\n\x06userId\x18\x01 \x01(\x05\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\x12\x0b\n\x03key\x18\x03 \x01(\x0c\x12*\n\x07keyType\x18\x04 \x01(\x0e\x32\x19.Enterprise.BackupKeyType\x12\x0f\n\x07version\x18\x05 \x01(\x05\x12\x0c\n\x04\x64\x61ta\x18\x06 \x01(\x0c\x12\r\n\x05\x65xtra\x18\x07 \x01(\x0c\".\n\tBackupKey\x12\x0e\n\x06userId\x18\x01 \x01(\x05\x12\x11\n\tbackupKey\x18\x02 \x01(\x0c\"\x8d\x02\n\nBackupUser\x12\x0e\n\x06userId\x18\x01 \x01(\x05\x12\x10\n\x08userName\x18\x02 \x01(\t\x12\x0f\n\x07\x64\x61taKey\x18\x03 \x01(\x0c\x12\x36\n\x0b\x64\x61taKeyType\x18\x04 \x01(\x0e\x32!.Enterprise.BackupUserDataKeyType\x12\x12\n\nprivateKey\x18\x05 \x01(\x0c\x12\x0f\n\x07treeKey\x18\x06 \x01(\x0c\x12.\n\x0btreeKeyType\x18\x07 \x01(\x0e\x32\x19.Enterprise.BackupKeyType\x12)\n\nbackupKeys\x18\x08 \x03(\x0b\x32\x15.Enterprise.BackupKey\x12\x14\n\x0cprivateECKey\x18\t \x01(\x0c\"\x9e\x01\n\x0e\x42\x61\x63kupResponse\x12\x1f\n\x17\x65nterpriseEccPrivateKey\x18\x01 \x01(\x0c\x12%\n\x05users\x18\x02 \x03(\x0b\x32\x16.Enterprise.BackupUser\x12)\n\x07records\x18\x03 \x03(\x0b\x32\x18.Enterprise.BackupRecord\x12\x19\n\x11\x63ontinuationToken\x18\x04 \x01(\x0c\"e\n\nBackupFile\x12\x0c\n\x04user\x18\x01 \x01(\t\x12\x11\n\tbackupUid\x18\x02 \x01(\x0c\x12\x10\n\x08\x66ileName\x18\x03 \x01(\t\x12\x0f\n\x07\x63reated\x18\x04 \x01(\x03\x12\x13\n\x0b\x64ownloadUrl\x18\x05 \x01(\t\"8\n\x0f\x42\x61\x63kupsResponse\x12%\n\x05\x66iles\x18\x01 \x03(\x0b\x32\x16.Enterprise.BackupFile\".\n\x1cGetEnterpriseDataKeysRequest\x12\x0e\n\x06roleId\x18\x01 \x03(\x03\"\xff\x01\n\x1dGetEnterpriseDataKeysResponse\x12:\n\x12reEncryptedRoleKey\x18\x01 \x03(\x0b\x32\x1e.Enterprise.ReEncryptedRoleKey\x12$\n\x07roleKey\x18\x02 \x03(\x0b\x32\x13.Enterprise.RoleKey\x12\"\n\x06mspKey\x18\x03 \x01(\x0b\x32\x12.Enterprise.MspKey\x12\x32\n\x0e\x65nterpriseKeys\x18\x04 \x01(\x0b\x32\x1a.Enterprise.EnterpriseKeys\x12$\n\x07treeKey\x18\x05 \x01(\x0b\x32\x13.Enterprise.TreeKey\"^\n\x07RoleKey\x12\x0e\n\x06roleId\x18\x01 \x01(\x03\x12\x14\n\x0c\x65ncryptedKey\x18\x02 \x01(\t\x12-\n\x07keyType\x18\x03 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\"d\n\x06MspKey\x12\x1b\n\x13\x65ncryptedMspTreeKey\x18\x01 \x01(\t\x12=\n\x17\x65ncryptedMspTreeKeyType\x18\x02 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\"|\n\x0e\x45nterpriseKeys\x12\x14\n\x0crsaPublicKey\x18\x01 \x01(\x0c\x12\x1e\n\x16rsaEncryptedPrivateKey\x18\x02 \x01(\x0c\x12\x14\n\x0c\x65\x63\x63PublicKey\x18\x03 \x01(\x0c\x12\x1e\n\x16\x65\x63\x63\x45ncryptedPrivateKey\x18\x04 \x01(\x0c\"H\n\x07TreeKey\x12\x0f\n\x07treeKey\x18\x01 \x01(\t\x12,\n\tkeyTypeId\x18\x02 \x01(\x0e\x32\x19.Enterprise.BackupKeyType\"E\n\x14SharedRecordResponse\x12-\n\x06\x65vents\x18\x01 \x03(\x0b\x32\x1d.Enterprise.SharedRecordEvent\"p\n\x11SharedRecordEvent\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x10\n\x08userName\x18\x02 \x01(\t\x12\x0f\n\x07\x63\x61nEdit\x18\x03 \x01(\x08\x12\x12\n\ncanReshare\x18\x04 \x01(\x08\x12\x11\n\tshareFrom\x18\x05 \x01(\x05\".\n\x1cSetRestrictVisibilityRequest\x12\x0e\n\x06nodeId\x18\x01 \x01(\x03\"\xd0\x01\n\x0eUserAddRequest\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x15\n\rencryptedData\x18\x03 \x01(\x0c\x12-\n\x07keyType\x18\x04 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\x12\x10\n\x08\x66ullName\x18\x05 \x01(\t\x12\x10\n\x08jobTitle\x18\x06 \x01(\t\x12\r\n\x05\x65mail\x18\x07 \x01(\t\x12\x1b\n\x13suppressEmailInvite\x18\x08 \x01(\x08\":\n\x11UserUpdateRequest\x12%\n\x05users\x18\x01 \x03(\x0b\x32\x16.Enterprise.UserUpdate\"\xaf\x01\n\nUserUpdate\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x15\n\rencryptedData\x18\x03 \x01(\x0c\x12-\n\x07keyType\x18\x04 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\x12\x10\n\x08\x66ullName\x18\x05 \x01(\t\x12\x10\n\x08jobTitle\x18\x06 \x01(\t\x12\r\n\x05\x65mail\x18\x07 \x01(\t\"A\n\x12UserUpdateResponse\x12+\n\x05users\x18\x01 \x03(\x0b\x32\x1c.Enterprise.UserUpdateResult\"Z\n\x10UserUpdateResult\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12,\n\x06status\x18\x02 \x01(\x0e\x32\x1c.Enterprise.UserUpdateStatus\"J\n\x1d\x43omplianceRecordOwnersRequest\x12\x0f\n\x07nodeIds\x18\x01 \x03(\x03\x12\x18\n\x10includeNonShared\x18\x02 \x01(\x08\"O\n\x1e\x43omplianceRecordOwnersResponse\x12-\n\x0crecordOwners\x18\x01 \x03(\x0b\x32\x17.Enterprise.RecordOwner\"7\n\x0bRecordOwner\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x0e\n\x06shared\x18\x02 \x01(\x08\"\xa6\x01\n PreliminaryComplianceDataRequest\x12\x19\n\x11\x65nterpriseUserIds\x18\x01 \x03(\x03\x12\x18\n\x10includeNonShared\x18\x02 \x01(\x08\x12\x19\n\x11\x63ontinuationToken\x18\x03 \x01(\x0c\x12\x32\n*includeTotalMatchingRecordsInFirstResponse\x18\x04 \x01(\x08\"\x9f\x01\n!PreliminaryComplianceDataResponse\x12\x30\n\rauditUserData\x18\x01 \x03(\x0b\x32\x19.Enterprise.AuditUserData\x12\x19\n\x11\x63ontinuationToken\x18\x02 \x01(\x0c\x12\x0f\n\x07hasMore\x18\x03 \x01(\x08\x12\x1c\n\x14totalMatchingRecords\x18\x04 \x01(\x05\"K\n\x0f\x41uditUserRecord\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x15\n\rencryptedData\x18\x02 \x01(\x0c\x12\x0e\n\x06shared\x18\x03 \x01(\x08\"\x8d\x01\n\rAuditUserData\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x35\n\x10\x61uditUserRecords\x18\x02 \x03(\x0b\x32\x1b.Enterprise.AuditUserRecord\x12+\n\x06status\x18\x03 \x01(\x0e\x32\x1b.Enterprise.AuditUserStatus\"\x7f\n\x17\x43omplianceReportFilters\x12\x14\n\x0crecordTitles\x18\x01 \x03(\t\x12\x12\n\nrecordUids\x18\x02 \x03(\x0c\x12\x11\n\tjobTitles\x18\x03 \x03(\x03\x12\x0c\n\x04urls\x18\x04 \x03(\t\x12\x19\n\x11\x65nterpriseUserIds\x18\x05 \x03(\x03\"\x7f\n\x17\x43omplianceReportRequest\x12<\n\x13\x63omplianceReportRun\x18\x01 \x01(\x0b\x32\x1f.Enterprise.ComplianceReportRun\x12\x12\n\nreportName\x18\x02 \x01(\t\x12\x12\n\nsaveReport\x18\x03 \x01(\x08\"\x85\x01\n\x13\x43omplianceReportRun\x12N\n\x17reportCriteriaAndFilter\x18\x01 \x01(\x0b\x32-.Enterprise.ComplianceReportCriteriaAndFilter\x12\r\n\x05users\x18\x02 \x03(\x03\x12\x0f\n\x07records\x18\x03 \x03(\x0c\"\xfc\x01\n!ComplianceReportCriteriaAndFilter\x12\x0e\n\x06nodeId\x18\x01 \x01(\x03\x12\x13\n\x0b\x63riteriaUid\x18\x02 \x01(\x0c\x12\x14\n\x0c\x63riteriaName\x18\x03 \x01(\t\x12\x36\n\x08\x63riteria\x18\x04 \x01(\x0b\x32$.Enterprise.ComplianceReportCriteria\x12\x33\n\x07\x66ilters\x18\x05 \x03(\x0b\x32\".Enterprise.ComplianceReportFilter\x12\x14\n\x0clastModified\x18\x06 \x01(\x03\x12\x19\n\x11nodeEncryptedData\x18\x07 \x01(\x0c\"b\n\x18\x43omplianceReportCriteria\x12\x11\n\tjobTitles\x18\x01 \x03(\t\x12\x19\n\x11\x65nterpriseUserIds\x18\x02 \x03(\x03\x12\x18\n\x10includeNonShared\x18\x03 \x01(\x08\"x\n\x16\x43omplianceReportFilter\x12\x14\n\x0crecordTitles\x18\x01 \x03(\t\x12\x12\n\nrecordUids\x18\x02 \x03(\x0c\x12\x11\n\tjobTitles\x18\x03 \x03(\t\x12\x0c\n\x04urls\x18\x04 \x03(\t\x12\x13\n\x0brecordTypes\x18\x05 \x03(\t\"\xa1\x05\n\x18\x43omplianceReportResponse\x12\x15\n\rdateGenerated\x18\x01 \x01(\x03\x12\x15\n\rrunByUserName\x18\x02 \x01(\t\x12\x12\n\nreportName\x18\x03 \x01(\t\x12\x11\n\treportUid\x18\x04 \x01(\x0c\x12<\n\x13\x63omplianceReportRun\x18\x05 \x01(\x0b\x32\x1f.Enterprise.ComplianceReportRun\x12-\n\x0cuserProfiles\x18\x06 \x03(\x0b\x32\x17.Enterprise.UserProfile\x12)\n\nauditTeams\x18\x07 \x03(\x0b\x32\x15.Enterprise.AuditTeam\x12-\n\x0c\x61uditRecords\x18\x08 \x03(\x0b\x32\x17.Enterprise.AuditRecord\x12+\n\x0buserRecords\x18\t \x03(\x0b\x32\x16.Enterprise.UserRecord\x12;\n\x13sharedFolderRecords\x18\n \x03(\x0b\x32\x1e.Enterprise.SharedFolderRecord\x12\x37\n\x11sharedFolderUsers\x18\x0b \x03(\x0b\x32\x1c.Enterprise.SharedFolderUser\x12\x37\n\x11sharedFolderTeams\x18\x0c \x03(\x0b\x32\x1c.Enterprise.SharedFolderTeam\x12\x31\n\x0e\x61uditTeamUsers\x18\r \x03(\x0b\x32\x19.Enterprise.AuditTeamUser\x12)\n\nauditRoles\x18\x0e \x03(\x0b\x32\x15.Enterprise.AuditRole\x12/\n\rlinkedRecords\x18\x0f \x03(\x0b\x32\x18.Enterprise.LinkedRecord\"\x81\x01\n\x0b\x41uditRecord\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x11\n\tauditData\x18\x02 \x01(\x0c\x12\x16\n\x0ehasAttachments\x18\x03 \x01(\x08\x12\x0f\n\x07inTrash\x18\x04 \x01(\x08\x12\x10\n\x08treeLeft\x18\x05 \x01(\x05\x12\x11\n\ttreeRight\x18\x06 \x01(\x05\"\x80\x02\n\tAuditRole\x12\x0e\n\x06roleId\x18\x01 \x01(\x03\x12\x15\n\rencryptedData\x18\x02 \x01(\x0c\x12&\n\x1erestrictShareOutsideEnterprise\x18\x03 \x01(\x08\x12\x18\n\x10restrictShareAll\x18\x04 \x01(\x08\x12\"\n\x1arestrictShareOfAttachments\x18\x05 \x01(\x08\x12)\n!restrictMaskPasswordsWhileEditing\x18\x06 \x01(\x08\x12;\n\x13roleNodeManagements\x18\x07 \x03(\x0b\x32\x1e.Enterprise.RoleNodeManagement\"^\n\x12RoleNodeManagement\x12\x10\n\x08treeLeft\x18\x01 \x01(\x05\x12\x11\n\ttreeRight\x18\x02 \x01(\x05\x12\x0f\n\x07\x63\x61scade\x18\x03 \x01(\x08\x12\x12\n\nprivileges\x18\x04 \x01(\x05\"k\n\x0bUserProfile\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x10\n\x08\x66ullName\x18\x02 \x01(\t\x12\x10\n\x08jobTitle\x18\x03 \x01(\t\x12\r\n\x05\x65mail\x18\x04 \x01(\t\x12\x0f\n\x07roleIds\x18\x05 \x03(\x03\"=\n\x10RecordPermission\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x16\n\x0epermissionBits\x18\x02 \x01(\x05\"_\n\nUserRecord\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x37\n\x11recordPermissions\x18\x02 \x03(\x0b\x32\x1c.Enterprise.RecordPermission\"[\n\tAuditTeam\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x10\n\x08teamName\x18\x02 \x01(\t\x12\x14\n\x0crestrictEdit\x18\x03 \x01(\x08\x12\x15\n\rrestrictShare\x18\x04 \x01(\x08\";\n\rAuditTeamUser\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x19\n\x11\x65nterpriseUserIds\x18\x02 \x03(\x03\"\x9f\x01\n\x12SharedFolderRecord\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x37\n\x11recordPermissions\x18\x02 \x03(\x0b\x32\x1c.Enterprise.RecordPermission\x12\x37\n\x11shareAdminRecords\x18\x03 \x03(\x0b\x32\x1c.Enterprise.ShareAdminRecord\"M\n\x10ShareAdminRecord\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x1f\n\x17recordPermissionIndexes\x18\x02 \x03(\x05\"F\n\x10SharedFolderUser\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x19\n\x11\x65nterpriseUserIds\x18\x02 \x03(\x03\"=\n\x10SharedFolderTeam\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x10\n\x08teamUids\x18\x02 \x03(\x0c\"/\n\x1aGetComplianceReportRequest\x12\x11\n\treportUid\x18\x01 \x01(\x0c\"2\n\x1bGetComplianceReportResponse\x12\x13\n\x0b\x64ownloadUrl\x18\x01 \x01(\t\"6\n\x1f\x43omplianceReportCriteriaRequest\x12\x13\n\x0b\x63riteriaUid\x18\x01 \x01(\x0c\";\n$SaveComplianceReportCriteriaResponse\x12\x13\n\x0b\x63riteriaUid\x18\x01 \x01(\x0c\"4\n\x0cLinkedRecord\x12\x10\n\x08ownerUid\x18\x01 \x01(\x0c\x12\x12\n\nrecordUids\x18\x02 \x03(\x0c\"W\n\x17GetSharingAdminsRequest\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\x12\x10\n\x08username\x18\x03 \x01(\t\"\xe0\x01\n\x0eUserProfileExt\x12\r\n\x05\x65mail\x18\x01 \x01(\t\x12\x10\n\x08\x66ullName\x18\x02 \x01(\t\x12\x10\n\x08jobTitle\x18\x03 \x01(\t\x12\x14\n\x0cisMSPMCAdmin\x18\x04 \x01(\x08\x12\x18\n\x10isInSharedFolder\x18\x05 \x01(\x08\x12&\n\x1eisShareAdminForRequestedObject\x18\x06 \x01(\x08\x12(\n isShareAdminForSharedFolderOwner\x18\x07 \x01(\x08\x12\x19\n\x11hasAccessToObject\x18\x08 \x01(\x08\"O\n\x18GetSharingAdminsResponse\x12\x33\n\x0fuserProfileExts\x18\x01 \x03(\x0b\x32\x1a.Enterprise.UserProfileExt\"_\n\x1eTeamsEnterpriseUsersAddRequest\x12=\n\x05teams\x18\x01 \x03(\x0b\x32..Enterprise.TeamsEnterpriseUsersAddTeamRequest\"t\n\"TeamsEnterpriseUsersAddTeamRequest\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12=\n\x05users\x18\x02 \x03(\x0b\x32..Enterprise.TeamsEnterpriseUsersAddUserRequest\"\xab\x01\n\"TeamsEnterpriseUsersAddUserRequest\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12*\n\x08userType\x18\x02 \x01(\x0e\x32\x18.Enterprise.TeamUserType\x12\x13\n\x07teamKey\x18\x03 \x01(\tB\x02\x18\x01\x12*\n\x0ctypedTeamKey\x18\x04 \x01(\x0b\x32\x14.Enterprise.TypedKey\"F\n\x08TypedKey\x12\x0b\n\x03key\x18\x01 \x01(\x0c\x12-\n\x07keyType\x18\x02 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\"s\n\x1fTeamsEnterpriseUsersAddResponse\x12>\n\x05teams\x18\x01 \x03(\x0b\x32/.Enterprise.TeamsEnterpriseUsersAddTeamResponse\x12\x10\n\x08revision\x18\x02 \x01(\x03\"\xc4\x01\n#TeamsEnterpriseUsersAddTeamResponse\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12>\n\x05users\x18\x02 \x03(\x0b\x32/.Enterprise.TeamsEnterpriseUsersAddUserResponse\x12\x0f\n\x07success\x18\x03 \x01(\x08\x12\x0f\n\x07message\x18\x04 \x01(\t\x12\x12\n\nresultCode\x18\x05 \x01(\t\x12\x16\n\x0e\x61\x64\x64itionalInfo\x18\x06 \x01(\t\"\x9f\x01\n#TeamsEnterpriseUsersAddUserResponse\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x10\n\x08revision\x18\x02 \x01(\x03\x12\x0f\n\x07success\x18\x03 \x01(\x08\x12\x0f\n\x07message\x18\x04 \x01(\t\x12\x12\n\nresultCode\x18\x05 \x01(\t\x12\x16\n\x0e\x61\x64\x64itionalInfo\x18\x06 \x01(\t\"M\n\x0b\x44omainAlias\x12\x0e\n\x06\x64omain\x18\x01 \x01(\t\x12\r\n\x05\x61lias\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\x05\x12\x0f\n\x07message\x18\x04 \x01(\t\"B\n\x12\x44omainAliasRequest\x12,\n\x0b\x64omainAlias\x18\x01 \x03(\x0b\x32\x17.Enterprise.DomainAlias\"C\n\x13\x44omainAliasResponse\x12,\n\x0b\x64omainAlias\x18\x01 \x03(\x0b\x32\x17.Enterprise.DomainAlias\"m\n\x1f\x45nterpriseUsersProvisionRequest\x12\x33\n\x05users\x18\x01 \x03(\x0b\x32$.Enterprise.EnterpriseUsersProvision\x12\x15\n\rclientVersion\x18\x02 \x01(\t\"\xb6\x03\n\x18\x45nterpriseUsersProvision\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x0e\n\x06nodeId\x18\x03 \x01(\x03\x12\x15\n\rencryptedData\x18\x04 \x01(\t\x12-\n\x07keyType\x18\x05 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\x12\x10\n\x08\x66ullName\x18\x06 \x01(\t\x12\x10\n\x08jobTitle\x18\x07 \x01(\t\x12\x1e\n\x16\x65nterpriseUsersDataKey\x18\x08 \x01(\x0c\x12\x14\n\x0c\x61uthVerifier\x18\t \x01(\x0c\x12\x18\n\x10\x65ncryptionParams\x18\n \x01(\x0c\x12\x14\n\x0crsaPublicKey\x18\x0b \x01(\x0c\x12\x1e\n\x16rsaEncryptedPrivateKey\x18\x0c \x01(\x0c\x12\x14\n\x0c\x65\x63\x63PublicKey\x18\r \x01(\x0c\x12\x1e\n\x16\x65\x63\x63\x45ncryptedPrivateKey\x18\x0e \x01(\x0c\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x0f \x01(\x0c\x12\x1a\n\x12\x65ncryptedClientKey\x18\x10 \x01(\x0c\"_\n EnterpriseUsersProvisionResponse\x12;\n\x07results\x18\x01 \x03(\x0b\x32*.Enterprise.EnterpriseUsersProvisionResult\"q\n\x1e\x45nterpriseUsersProvisionResult\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x0c\n\x04\x63ode\x18\x02 \x01(\t\x12\x0f\n\x07message\x18\x03 \x01(\t\x12\x16\n\x0e\x61\x64\x64itionalInfo\x18\x04 \x01(\t\"a\n\x19\x45nterpriseUsersAddRequest\x12-\n\x05users\x18\x01 \x03(\x0b\x32\x1e.Enterprise.EnterpriseUsersAdd\x12\x15\n\rclientVersion\x18\x02 \x01(\t\"\x8c\x02\n\x12\x45nterpriseUsersAdd\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x0e\n\x06nodeId\x18\x03 \x01(\x03\x12\x15\n\rencryptedData\x18\x04 \x01(\t\x12-\n\x07keyType\x18\x05 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\x12\x10\n\x08\x66ullName\x18\x06 \x01(\t\x12\x10\n\x08jobTitle\x18\x07 \x01(\t\x12\x1b\n\x13suppressEmailInvite\x18\x08 \x01(\x08\x12\x15\n\rinviteeLocale\x18\t \x01(\t\x12\x0c\n\x04move\x18\n \x01(\x08\x12\x0e\n\x06roleId\x18\x0b \x01(\x03\"\x9b\x01\n\x1a\x45nterpriseUsersAddResponse\x12\x35\n\x07results\x18\x01 \x03(\x0b\x32$.Enterprise.EnterpriseUsersAddResult\x12\x0f\n\x07success\x18\x02 \x01(\x08\x12\x0c\n\x04\x63ode\x18\x03 \x01(\t\x12\x0f\n\x07message\x18\x04 \x01(\t\x12\x16\n\x0e\x61\x64\x64itionalInfo\x18\x05 \x01(\t\"\x96\x01\n\x18\x45nterpriseUsersAddResult\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x0f\n\x07success\x18\x02 \x01(\x08\x12\x18\n\x10verificationCode\x18\x03 \x01(\t\x12\x0c\n\x04\x63ode\x18\x04 \x01(\t\x12\x0f\n\x07message\x18\x05 \x01(\t\x12\x16\n\x0e\x61\x64\x64itionalInfo\x18\x06 \x01(\t\"\xb9\x01\n\x17UpdateMSPPermitsRequest\x12\x17\n\x0fmspEnterpriseId\x18\x01 \x01(\x05\x12\x1a\n\x12maxAllowedLicenses\x18\x02 \x01(\x05\x12\x19\n\x11\x61llowedMcProducts\x18\x03 \x03(\t\x12\x15\n\rallowedAddOns\x18\x04 \x03(\t\x12\x17\n\x0fmaxFilePlanType\x18\x05 \x01(\t\x12\x1e\n\x16\x61llowUnlimitedLicenses\x18\x06 \x01(\x08\"9\n\x1c\x44\x65leteEnterpriseUsersRequest\x12\x19\n\x11\x65nterpriseUserIds\x18\x01 \x03(\x03\"o\n\x1a\x44\x65leteEnterpriseUserStatus\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x37\n\x06status\x18\x02 \x01(\x0e\x32\'.Enterprise.DeleteEnterpriseUsersResult\"]\n\x1d\x44\x65leteEnterpriseUsersResponse\x12<\n\x0c\x64\x65leteStatus\x18\x01 \x03(\x0b\x32&.Enterprise.DeleteEnterpriseUserStatus\"w\n\x18\x43learSecurityDataRequest\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x03(\x03\x12\x10\n\x08\x61llUsers\x18\x02 \x01(\x08\x12/\n\x04type\x18\x03 \x01(\x0e\x32!.Enterprise.ClearSecurityDataType*\x1b\n\x07KeyType\x12\x07\n\x03RSA\x10\x00\x12\x07\n\x03\x45\x43\x43\x10\x01*=\n\x0e\x45nterpriseType\x12\x17\n\x13\x45NTERPRISE_STANDARD\x10\x00\x12\x12\n\x0e\x45NTERPRISE_MSP\x10\x01*s\n\x18TransferAcceptanceStatus\x12\r\n\tUNDEFINED\x10\x00\x12\x10\n\x0cNOT_REQUIRED\x10\x01\x12\x10\n\x0cNOT_ACCEPTED\x10\x02\x12\x16\n\x12PARTIALLY_ACCEPTED\x10\x03\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x04*\xe1\x03\n\x14\x45nterpriseDataEntity\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05NODES\x10\x01\x12\t\n\x05ROLES\x10\x02\x12\t\n\x05USERS\x10\x03\x12\t\n\x05TEAMS\x10\x04\x12\x0e\n\nTEAM_USERS\x10\x05\x12\x0e\n\nROLE_USERS\x10\x06\x12\x13\n\x0fROLE_PRIVILEGES\x10\x07\x12\x15\n\x11ROLE_ENFORCEMENTS\x10\x08\x12\x0e\n\nROLE_TEAMS\x10\t\x12\x0c\n\x08LICENSES\x10\n\x12\x11\n\rMANAGED_NODES\x10\x0b\x12\x15\n\x11MANAGED_COMPANIES\x10\x0c\x12\x0b\n\x07\x42RIDGES\x10\r\x12\t\n\x05SCIMS\x10\x0e\x12\x13\n\x0f\x45MAIL_PROVISION\x10\x0f\x12\x10\n\x0cQUEUED_TEAMS\x10\x10\x12\x15\n\x11QUEUED_TEAM_USERS\x10\x11\x12\x10\n\x0cSSO_SERVICES\x10\x12\x12\x17\n\x13REPORT_FILTER_USERS\x10\x13\x12&\n\"DEVICES_REQUEST_FOR_ADMIN_APPROVAL\x10\x14\x12\x10\n\x0cUSER_ALIASES\x10\x15\x12)\n%COMPLIANCE_REPORT_CRITERIA_AND_FILTER\x10\x16\x12\x16\n\x12\x43OMPLIANCE_REPORTS\x10\x17*\"\n\x0b\x43\x61\x63heStatus\x12\x08\n\x04KEEP\x10\x00\x12\t\n\x05\x43LEAR\x10\x01*\x93\x01\n\rBackupKeyType\x12\n\n\x06NO_KEY\x10\x00\x12\x19\n\x15\x45NCRYPTED_BY_DATA_KEY\x10\x01\x12\x1b\n\x17\x45NCRYPTED_BY_PUBLIC_KEY\x10\x02\x12\x1d\n\x19\x45NCRYPTED_BY_DATA_KEY_GCM\x10\x03\x12\x1f\n\x1b\x45NCRYPTED_BY_PUBLIC_KEY_ECC\x10\x04*:\n\x15\x42\x61\x63kupUserDataKeyType\x12\x07\n\x03OWN\x10\x00\x12\x18\n\x14SHARED_TO_ENTERPRISE\x10\x01*\xa5\x01\n\x10\x45ncryptedKeyType\x12\r\n\tKT_NO_KEY\x10\x00\x12\x1c\n\x18KT_ENCRYPTED_BY_DATA_KEY\x10\x01\x12\x1e\n\x1aKT_ENCRYPTED_BY_PUBLIC_KEY\x10\x02\x12 \n\x1cKT_ENCRYPTED_BY_DATA_KEY_GCM\x10\x03\x12\"\n\x1eKT_ENCRYPTED_BY_PUBLIC_KEY_ECC\x10\x04*\xac\x01\n\x12\x45nterpriseFlagType\x12\x0b\n\x07INVALID\x10\x00\x12\x1a\n\x16\x41LLOW_PERSONAL_LICENSE\x10\x01\x12\x18\n\x14SPECIAL_PROVISIONING\x10\x02\x12\x10\n\x0cRECORD_TYPES\x10\x03\x12\x13\n\x0fSECRETS_MANAGER\x10\x04\x12\x15\n\x11\x45NTERPRISE_LOCKED\x10\x05\x12\x15\n\x11\x46ORBID_KEY_TYPE_2\x10\x06*E\n\x10UserUpdateStatus\x12\x12\n\x0eUSER_UPDATE_OK\x10\x00\x12\x1d\n\x19USER_UPDATE_ACCESS_DENIED\x10\x01*I\n\x0f\x41uditUserStatus\x12\x06\n\x02OK\x10\x00\x12\x11\n\rACCESS_DENIED\x10\x01\x12\x1b\n\x17NO_LONGER_IN_ENTERPRISE\x10\x02*3\n\x0cTeamUserType\x12\x08\n\x04USER\x10\x00\x12\t\n\x05\x41\x44MIN\x10\x01\x12\x0e\n\nADMIN_ONLY\x10\x02*x\n\rAppClientType\x12\x0c\n\x08NOT_USED\x10\x00\x12\x0b\n\x07GENERAL\x10\x01\x12%\n!DISCOVERY_AND_ROTATION_CONTROLLER\x10\x02\x12\x12\n\x0eKCM_CONTROLLER\x10\x03\x12\x11\n\rSELF_DESTRUCT\x10\x04*\x8f\x01\n\x1b\x44\x65leteEnterpriseUsersResult\x12\x0b\n\x07SUCCESS\x10\x00\x12\x1a\n\x16NOT_AN_ENTERPRISE_USER\x10\x01\x12\x16\n\x12\x43\x41NNOT_DELETE_SELF\x10\x02\x12$\n BRIDGE_CANNOT_DELETE_ACTIVE_USER\x10\x03\x12\t\n\x05\x45RROR\x10\x04*\x87\x01\n\x15\x43learSecurityDataType\x12\x1e\n\x1aRECALCULATE_SUMMARY_REPORT\x10\x00\x12\'\n#FORCE_CLIENT_CHECK_FOR_MISSING_DATA\x10\x01\x12%\n!FORCE_CLIENT_RESEND_SECURITY_DATA\x10\x02\x42&\n\x18\x63om.keepersecurity.protoB\nEnterpriseb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10\x65nterprise.proto\x12\nEnterprise\"\x84\x01\n\x18\x45nterpriseKeyPairRequest\x12\x1b\n\x13\x65nterprisePublicKey\x18\x01 \x01(\x0c\x12%\n\x1d\x65ncryptedEnterprisePrivateKey\x18\x02 \x01(\x0c\x12$\n\x07keyType\x18\x03 \x01(\x0e\x32\x13.Enterprise.KeyType\"\'\n\x14GetTeamMemberRequest\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\"}\n\x0e\x45nterpriseUser\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x1a\n\x12\x65nterpriseUsername\x18\x03 \x01(\t\x12\x14\n\x0cisShareAdmin\x18\x04 \x01(\x08\x12\x10\n\x08username\x18\x05 \x01(\t\"K\n\x15GetTeamMemberResponse\x12\x32\n\x0e\x65nterpriseUser\x18\x01 \x03(\x0b\x32\x1a.Enterprise.EnterpriseUser\"-\n\x11\x45nterpriseUserIds\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x03(\x03\"B\n\x19\x45nterprisePersonalAccount\x12\r\n\x05\x65mail\x18\x01 \x01(\t\x12\x16\n\x0eOBSOLETE_FIELD\x18\x02 \x01(\x0c\"S\n\x17\x45ncryptedTeamKeyRequest\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x18\n\x10\x65ncryptedTeamKey\x18\x02 \x01(\x0c\x12\r\n\x05\x66orce\x18\x03 \x01(\x08\"+\n\x0fReEncryptedData\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\t\"?\n\x12ReEncryptedRoleKey\x12\x0f\n\x07role_id\x18\x01 \x01(\x03\x12\x18\n\x10\x65ncryptedRoleKey\x18\x02 \x01(\x0c\"\x9d\x02\n\x1bNodeToManagedCompanyRequest\x12\x11\n\tcompanyId\x18\x01 \x01(\x05\x12*\n\x05nodes\x18\x02 \x03(\x0b\x32\x1b.Enterprise.ReEncryptedData\x12*\n\x05roles\x18\x03 \x03(\x0b\x32\x1b.Enterprise.ReEncryptedData\x12*\n\x05users\x18\x04 \x03(\x0b\x32\x1b.Enterprise.ReEncryptedData\x12\x30\n\x08roleKeys\x18\x05 \x03(\x0b\x32\x1e.Enterprise.ReEncryptedRoleKey\x12\x35\n\x08teamKeys\x18\x06 \x03(\x0b\x32#.Enterprise.EncryptedTeamKeyRequest\",\n\x08RoleTeam\x12\x0f\n\x07role_id\x18\x01 \x01(\x03\x12\x0f\n\x07teamUid\x18\x02 \x01(\x0c\"4\n\tRoleTeams\x12\'\n\trole_team\x18\x01 \x03(\x0b\x32\x14.Enterprise.RoleTeam\"R\n\x0fRoleUserAddKeys\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x0f\n\x07treeKey\x18\x02 \x01(\t\x12\x14\n\x0croleAdminKey\x18\x03 \x01(\t\"T\n\x0bRoleUserAdd\x12\x0f\n\x07role_id\x18\x01 \x01(\x03\x12\x34\n\x0froleUserAddKeys\x18\x02 \x03(\x0b\x32\x1b.Enterprise.RoleUserAddKeys\"D\n\x13RoleUsersAddRequest\x12-\n\x0croleUserAdds\x18\x01 \x03(\x0b\x32\x17.Enterprise.RoleUserAdd\"\x80\x01\n\x11RoleUserAddResult\x12\x0e\n\x06roleId\x18\x01 \x01(\x03\x12\x18\n\x10\x65nterpriseUserId\x18\x02 \x01(\x03\x12\x30\n\x06status\x18\x03 \x01(\x0e\x32 .Enterprise.RoleUserModifyStatus\x12\x0f\n\x07message\x18\x04 \x01(\t\"F\n\x14RoleUsersAddResponse\x12.\n\x07results\x18\x01 \x03(\x0b\x32\x1d.Enterprise.RoleUserAddResult\"<\n\x0eRoleUserRemove\x12\x0f\n\x07role_id\x18\x01 \x01(\x03\x12\x19\n\x11\x65nterpriseUserIds\x18\x02 \x03(\x03\"M\n\x16RoleUsersRemoveRequest\x12\x33\n\x0froleUserRemoves\x18\x01 \x03(\x0b\x32\x1a.Enterprise.RoleUserRemove\"\x83\x01\n\x14RoleUserRemoveResult\x12\x0e\n\x06roleId\x18\x01 \x01(\x03\x12\x18\n\x10\x65nterpriseUserId\x18\x02 \x01(\x03\x12\x30\n\x06status\x18\x03 \x01(\x0e\x32 .Enterprise.RoleUserModifyStatus\x12\x0f\n\x07message\x18\x04 \x01(\t\"L\n\x17RoleUsersRemoveResponse\x12\x31\n\x07results\x18\x01 \x03(\x0b\x32 .Enterprise.RoleUserRemoveResult\"\xdb\x03\n\x16\x45nterpriseRegistration\x12\x18\n\x10\x65ncryptedTreeKey\x18\x01 \x01(\x0c\x12\x16\n\x0e\x65nterpriseName\x18\x02 \x01(\t\x12\x14\n\x0crootNodeData\x18\x03 \x01(\x0c\x12\x15\n\radminUserData\x18\x04 \x01(\x0c\x12\x11\n\tadminName\x18\x05 \x01(\t\x12\x10\n\x08roleData\x18\x06 \x01(\x0c\x12\x38\n\nrsaKeyPair\x18\x07 \x01(\x0b\x32$.Enterprise.EnterpriseKeyPairRequest\x12\x13\n\x0bnumberSeats\x18\x08 \x01(\x05\x12\x32\n\x0e\x65nterpriseType\x18\t \x01(\x0e\x32\x1a.Enterprise.EnterpriseType\x12\x15\n\rrolePublicKey\x18\n \x01(\x0c\x12*\n\"rolePrivateKeyEncryptedWithRoleKey\x18\x0b \x01(\x0c\x12#\n\x1broleKeyEncryptedWithTreeKey\x18\x0c \x01(\x0c\x12\x38\n\neccKeyPair\x18\r \x01(\x0b\x32$.Enterprise.EnterpriseKeyPairRequest\x12\x18\n\x10\x61llUsersRoleData\x18\x0e \x01(\x0c\"H\n\x1a\x44omainPasswordRulesRequest\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x18\n\x10verificationCode\x18\x02 \x01(\t\"\\\n\x19\x44omainPasswordRulesFields\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x0f\n\x07minimum\x18\x02 \x01(\x05\x12\x0f\n\x07maximum\x18\x03 \x01(\x05\x12\x0f\n\x07\x61llowed\x18\x04 \x01(\x08\"E\n\x10LoginToMcRequest\x12\x16\n\x0emcEnterpriseId\x18\x01 \x01(\x05\x12\x19\n\x11messageSessionUid\x18\x02 \x01(\x0c\"L\n\x11LoginToMcResponse\x12\x1d\n\x15\x65ncryptedSessionToken\x18\x01 \x01(\x0c\x12\x18\n\x10\x65ncryptedTreeKey\x18\x02 \x01(\t\"g\n\x1b\x44omainPasswordRulesResponse\x12H\n\x19\x64omainPasswordRulesFields\x18\x01 \x03(\x0b\x32%.Enterprise.DomainPasswordRulesFields\"\x88\x01\n\x18\x41pproveUserDeviceRequest\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x02 \x01(\x0c\x12\x1e\n\x16\x65ncryptedDeviceDataKey\x18\x03 \x01(\x0c\x12\x14\n\x0c\x64\x65nyApproval\x18\x04 \x01(\x08\"t\n\x19\x41pproveUserDeviceResponse\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x02 \x01(\x0c\x12\x0e\n\x06\x66\x61iled\x18\x03 \x01(\x08\x12\x0f\n\x07message\x18\x04 \x01(\t\"Y\n\x19\x41pproveUserDevicesRequest\x12<\n\x0e\x64\x65viceRequests\x18\x01 \x03(\x0b\x32$.Enterprise.ApproveUserDeviceRequest\"\\\n\x1a\x41pproveUserDevicesResponse\x12>\n\x0f\x64\x65viceResponses\x18\x01 \x03(\x0b\x32%.Enterprise.ApproveUserDeviceResponse\"\x87\x01\n\x15\x45nterpriseUserDataKey\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x1c\n\x14userEncryptedDataKey\x18\x02 \x01(\x0c\x12\x11\n\tkeyTypeId\x18\x03 \x01(\x05\x12\x0f\n\x07roleKey\x18\x04 \x01(\x0c\x12\x12\n\nprivateKey\x18\x05 \x01(\x0c\"I\n\x16\x45nterpriseUserDataKeys\x12/\n\x04keys\x18\x01 \x03(\x0b\x32!.Enterprise.EnterpriseUserDataKey\"2\n\x15\x45nterpriseDataRequest\x12\x19\n\x11\x63ontinuationToken\x18\x01 \x01(\x0c\"0\n\x13SpecialProvisioning\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\x84\x02\n\x11GeneralDataEntity\x12\x16\n\x0e\x65nterpriseName\x18\x01 \x01(\t\x12\x1a\n\x12restrictVisibility\x18\x02 \x01(\x08\x12<\n\x13specialProvisioning\x18\x04 \x01(\x0b\x32\x1f.Enterprise.SpecialProvisioning\x12\x30\n\ruserPrivilege\x18\x07 \x01(\x0b\x32\x19.Enterprise.UserPrivilege\x12\x13\n\x0b\x64istributor\x18\x08 \x01(\x08\x12\x1d\n\x15\x66orbidAccountTransfer\x18\t \x01(\x08\x12\x17\n\x0fshowUserOnboard\x18\n \x01(\x08\"\xfd\x01\n\x04Node\x12\x0e\n\x06nodeId\x18\x01 \x01(\x03\x12\x10\n\x08parentId\x18\x02 \x01(\x03\x12\x10\n\x08\x62ridgeId\x18\x03 \x01(\x03\x12\x0e\n\x06scimId\x18\x04 \x01(\x03\x12\x11\n\tlicenseId\x18\x05 \x01(\x03\x12\x15\n\rencryptedData\x18\x06 \x01(\t\x12\x12\n\nduoEnabled\x18\x07 \x01(\x08\x12\x12\n\nrsaEnabled\x18\x08 \x01(\x08\x12 \n\x14ssoServiceProviderId\x18\t \x01(\x03\x42\x02\x18\x01\x12\x1a\n\x12restrictVisibility\x18\n \x01(\x08\x12!\n\x15ssoServiceProviderIds\x18\x0b \x03(\x03\x42\x02\x10\x01\"\x8e\x01\n\x04Role\x12\x0e\n\x06roleId\x18\x01 \x01(\x03\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x15\n\rencryptedData\x18\x03 \x01(\t\x12\x0f\n\x07keyType\x18\x04 \x01(\t\x12\x14\n\x0cvisibleBelow\x18\x05 \x01(\x08\x12\x16\n\x0enewUserInherit\x18\x06 \x01(\x08\x12\x10\n\x08roleType\x18\x07 \x01(\t\"\xb8\x02\n\x04User\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x15\n\rencryptedData\x18\x03 \x01(\t\x12\x0f\n\x07keyType\x18\x04 \x01(\t\x12\x10\n\x08username\x18\x05 \x01(\t\x12\x0e\n\x06status\x18\x06 \x01(\t\x12\x0c\n\x04lock\x18\x07 \x01(\x05\x12\x0e\n\x06userId\x18\x08 \x01(\x05\x12\x1e\n\x16\x61\x63\x63ountShareExpiration\x18\t \x01(\x03\x12\x10\n\x08\x66ullName\x18\n \x01(\t\x12\x10\n\x08jobTitle\x18\x0b \x01(\t\x12\x12\n\ntfaEnabled\x18\x0c \x01(\x08\x12\x46\n\x18transferAcceptanceStatus\x18\r \x01(\x0e\x32$.Enterprise.TransferAcceptanceStatus\"7\n\tUserAlias\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x10\n\x08username\x18\x02 \x01(\t\"\xac\x01\n\x18\x43omplianceReportMetaData\x12\x11\n\treportUid\x18\x01 \x01(\x0c\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x12\n\nreportName\x18\x03 \x01(\t\x12\x15\n\rdateGenerated\x18\x04 \x01(\x03\x12\x11\n\trunByName\x18\x05 \x01(\t\x12\x16\n\x0enumberOfOwners\x18\x07 \x01(\x05\x12\x17\n\x0fnumberOfRecords\x18\x08 \x01(\x05\"S\n\x0bManagedNode\x12\x0e\n\x06roleId\x18\x01 \x01(\x03\x12\x15\n\rmanagedNodeId\x18\x02 \x01(\x03\x12\x1d\n\x15\x63\x61scadeNodeManagement\x18\x03 \x01(\x08\"T\n\x0fUserManagedNode\x12\x0e\n\x06nodeId\x18\x01 \x01(\x03\x12\x1d\n\x15\x63\x61scadeNodeManagement\x18\x02 \x01(\x08\x12\x12\n\nprivileges\x18\x03 \x03(\t\"w\n\rUserPrivilege\x12\x35\n\x10userManagedNodes\x18\x01 \x03(\x0b\x32\x1b.Enterprise.UserManagedNode\x12\x18\n\x10\x65nterpriseUserId\x18\x02 \x01(\x03\x12\x15\n\rencryptedData\x18\x03 \x01(\t\"4\n\x08RoleUser\x12\x0e\n\x06roleId\x18\x01 \x01(\x03\x12\x18\n\x10\x65nterpriseUserId\x18\x02 \x01(\x03\"M\n\rRolePrivilege\x12\x15\n\rmanagedNodeId\x18\x01 \x01(\x03\x12\x0e\n\x06roleId\x18\x02 \x01(\x03\x12\x15\n\rprivilegeType\x18\x03 \x01(\t\"I\n\x0fRoleEnforcement\x12\x0e\n\x06roleId\x18\x01 \x01(\x03\x12\x17\n\x0f\x65nforcementType\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\"\xa9\x01\n\x04Team\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06nodeId\x18\x03 \x01(\x03\x12\x14\n\x0crestrictEdit\x18\x04 \x01(\x08\x12\x15\n\rrestrictShare\x18\x05 \x01(\x08\x12\x14\n\x0crestrictView\x18\x06 \x01(\x08\x12\x15\n\rencryptedData\x18\x07 \x01(\t\x12\x18\n\x10\x65ncryptedTeamKey\x18\x08 \x01(\t\"G\n\x08TeamUser\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x18\n\x10\x65nterpriseUserId\x18\x02 \x01(\x03\x12\x10\n\x08userType\x18\x03 \x01(\t\"K\n\x1aGetDistributorInfoResponse\x12-\n\x0c\x64istributors\x18\x01 \x03(\x0b\x32\x17.Enterprise.Distributor\"B\n\x0b\x44istributor\x12\x0c\n\x04name\x18\x01 \x01(\t\x12%\n\x08mspInfos\x18\x02 \x03(\x0b\x32\x13.Enterprise.MspInfo\"\x9d\x02\n\x07MspInfo\x12\x14\n\x0c\x65nterpriseId\x18\x01 \x01(\x05\x12\x16\n\x0e\x65nterpriseName\x18\x02 \x01(\t\x12\x19\n\x11\x61llocatedLicenses\x18\x03 \x01(\x05\x12\x19\n\x11\x61llowedMcProducts\x18\x04 \x03(\t\x12\x15\n\rallowedAddOns\x18\x05 \x03(\t\x12\x17\n\x0fmaxFilePlanType\x18\x06 \x01(\t\x12\x34\n\x10managedCompanies\x18\x07 \x03(\x0b\x32\x1a.Enterprise.ManagedCompany\x12\x1e\n\x16\x61llowUnlimitedLicenses\x18\x08 \x01(\x08\x12(\n\x06\x61\x64\x64Ons\x18\t \x03(\x0b\x32\x18.Enterprise.LicenseAddOn\"\x91\x02\n\x0eManagedCompany\x12\x16\n\x0emcEnterpriseId\x18\x01 \x01(\x05\x12\x18\n\x10mcEnterpriseName\x18\x02 \x01(\t\x12\x11\n\tmspNodeId\x18\x03 \x01(\x03\x12\x15\n\rnumberOfSeats\x18\x04 \x01(\x05\x12\x15\n\rnumberOfUsers\x18\x05 \x01(\x05\x12\x11\n\tproductId\x18\x06 \x01(\t\x12\x11\n\tisExpired\x18\x07 \x01(\x08\x12\x0f\n\x07treeKey\x18\x08 \x01(\t\x12\x15\n\rtree_key_role\x18\t \x01(\x03\x12\x14\n\x0c\x66ilePlanType\x18\n \x01(\t\x12(\n\x06\x61\x64\x64Ons\x18\x0b \x03(\x0b\x32\x18.Enterprise.LicenseAddOn\"R\n\x07MSPPool\x12\x11\n\tproductId\x18\x01 \x01(\t\x12\r\n\x05seats\x18\x02 \x01(\x05\x12\x16\n\x0e\x61vailableSeats\x18\x03 \x01(\x05\x12\r\n\x05stash\x18\x04 \x01(\x05\":\n\nMSPContact\x12\x14\n\x0c\x65nterpriseId\x18\x01 \x01(\x05\x12\x16\n\x0e\x65nterpriseName\x18\x02 \x01(\t\"\xd4\x01\n\x0cLicenseAddOn\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07\x65nabled\x18\x02 \x01(\x08\x12\x0f\n\x07isTrial\x18\x03 \x01(\x08\x12\x12\n\nexpiration\x18\x04 \x01(\x03\x12\x0f\n\x07\x63reated\x18\x05 \x01(\x03\x12\r\n\x05seats\x18\x06 \x01(\x05\x12\x16\n\x0e\x61\x63tivationTime\x18\x07 \x01(\x03\x12\x19\n\x11includedInProduct\x18\x08 \x01(\x08\x12\x14\n\x0c\x61piCallCount\x18\t \x01(\x05\x12\x17\n\x0ftierDescription\x18\n \x01(\t\"s\n\tMCDefault\x12\x11\n\tmcProduct\x18\x01 \x01(\t\x12\x0e\n\x06\x61\x64\x64Ons\x18\x02 \x03(\t\x12\x14\n\x0c\x66ilePlanType\x18\x03 \x01(\t\x12\x13\n\x0bmaxLicenses\x18\x04 \x01(\x05\x12\x18\n\x10\x66ixedMaxLicenses\x18\x05 \x01(\x08\"\xd2\x01\n\nMSPPermits\x12\x12\n\nrestricted\x18\x01 \x01(\x08\x12\x1a\n\x12maxAllowedLicenses\x18\x02 \x01(\x05\x12\x19\n\x11\x61llowedMcProducts\x18\x03 \x03(\t\x12\x15\n\rallowedAddOns\x18\x04 \x03(\t\x12\x17\n\x0fmaxFilePlanType\x18\x05 \x01(\t\x12\x1e\n\x16\x61llowUnlimitedLicenses\x18\x06 \x01(\x08\x12)\n\nmcDefaults\x18\x07 \x03(\x0b\x32\x15.Enterprise.MCDefault\"\xa0\x04\n\x07License\x12\x0c\n\x04paid\x18\x01 \x01(\x08\x12\x15\n\rnumberOfSeats\x18\x02 \x01(\x05\x12\x12\n\nexpiration\x18\x03 \x01(\x03\x12\x14\n\x0clicenseKeyId\x18\x04 \x01(\x05\x12\x15\n\rproductTypeId\x18\x05 \x01(\x05\x12\x0c\n\x04name\x18\x06 \x01(\t\x12\x1b\n\x13\x65nterpriseLicenseId\x18\x07 \x01(\x03\x12\x16\n\x0eseatsAllocated\x18\x08 \x01(\x05\x12\x14\n\x0cseatsPending\x18\t \x01(\x05\x12\x0c\n\x04tier\x18\n \x01(\x05\x12\x16\n\x0e\x66ilePlanTypeId\x18\x0b \x01(\x05\x12\x10\n\x08maxBytes\x18\x0c \x01(\x03\x12\x19\n\x11storageExpiration\x18\r \x01(\x03\x12\x15\n\rlicenseStatus\x18\x0e \x01(\t\x12$\n\x07mspPool\x18\x0f \x03(\x0b\x32\x13.Enterprise.MSPPool\x12)\n\tmanagedBy\x18\x10 \x01(\x0b\x32\x16.Enterprise.MSPContact\x12(\n\x06\x61\x64\x64Ons\x18\x11 \x03(\x0b\x32\x18.Enterprise.LicenseAddOn\x12\x17\n\x0fnextBillingDate\x18\x12 \x01(\x03\x12\x17\n\x0fhasMSPLegacyLog\x18\x13 \x01(\x08\x12*\n\nmspPermits\x18\x14 \x01(\x0b\x32\x16.Enterprise.MSPPermits\x12\x13\n\x0b\x64istributor\x18\x15 \x01(\x08\"n\n\x06\x42ridge\x12\x10\n\x08\x62ridgeId\x18\x01 \x01(\x03\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x18\n\x10wanIpEnforcement\x18\x03 \x01(\t\x12\x18\n\x10lanIpEnforcement\x18\x04 \x01(\t\x12\x0e\n\x06status\x18\x05 \x01(\t\"t\n\x04Scim\x12\x0e\n\x06scimId\x18\x01 \x01(\x03\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x12\n\nlastSynced\x18\x04 \x01(\x03\x12\x12\n\nrolePrefix\x18\x05 \x01(\t\x12\x14\n\x0cuniqueGroups\x18\x06 \x01(\x08\"L\n\x0e\x45mailProvision\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x0e\n\x06\x64omain\x18\x03 \x01(\t\x12\x0e\n\x06method\x18\x04 \x01(\t\"R\n\nQueuedTeam\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06nodeId\x18\x03 \x01(\x03\x12\x15\n\rencryptedData\x18\x04 \x01(\t\"0\n\x0eQueuedTeamUser\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\r\n\x05users\x18\x02 \x03(\x03\"\xa4\x01\n\x0eTeamsAddResult\x12\x34\n\x11successfulTeamAdd\x18\x01 \x03(\x0b\x32\x19.Enterprise.TeamAddResult\x12\x36\n\x13unsuccessfulTeamAdd\x18\x02 \x03(\x0b\x32\x19.Enterprise.TeamAddResult\x12\x0e\n\x06result\x18\x03 \x01(\t\x12\x14\n\x0c\x65rrorMessage\x18\x04 \x01(\t\"U\n\rTeamAddResult\x12\x1e\n\x04team\x18\x01 \x01(\x0b\x32\x10.Enterprise.Team\x12\x0e\n\x06result\x18\x02 \x01(\t\x12\x14\n\x0c\x65rrorMessage\x18\x03 \x01(\t\"\x91\x01\n\nSsoService\x12\x1c\n\x14ssoServiceProviderId\x18\x01 \x01(\x03\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0e\n\x06sp_url\x18\x04 \x01(\t\x12\x16\n\x0einviteNewUsers\x18\x05 \x01(\x08\x12\x0e\n\x06\x61\x63tive\x18\x06 \x01(\x08\x12\x0f\n\x07isCloud\x18\x07 \x01(\x08\"1\n\x10ReportFilterUser\x12\x0e\n\x06userId\x18\x01 \x01(\x05\x12\r\n\x05\x65mail\x18\x02 \x01(\t\"\x97\x02\n\x1d\x44\x65viceRequestForAdminApproval\x12\x10\n\x08\x64\x65viceId\x18\x01 \x01(\x03\x12\x18\n\x10\x65nterpriseUserId\x18\x02 \x01(\x03\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x03 \x01(\x0c\x12\x17\n\x0f\x64\x65vicePublicKey\x18\x04 \x01(\x0c\x12\x12\n\ndeviceName\x18\x05 \x01(\t\x12\x15\n\rclientVersion\x18\x06 \x01(\t\x12\x12\n\ndeviceType\x18\x07 \x01(\t\x12\x0c\n\x04\x64\x61te\x18\x08 \x01(\x03\x12\x11\n\tipAddress\x18\t \x01(\t\x12\x10\n\x08location\x18\n \x01(\t\x12\r\n\x05\x65mail\x18\x0b \x01(\t\x12\x12\n\naccountUid\x18\x0c \x01(\x0c\"`\n\x0e\x45nterpriseData\x12\x30\n\x06\x65ntity\x18\x01 \x01(\x0e\x32 .Enterprise.EnterpriseDataEntity\x12\x0e\n\x06\x64\x65lete\x18\x02 \x01(\x08\x12\x0c\n\x04\x64\x61ta\x18\x03 \x03(\x0c\"\xd0\x01\n\x16\x45nterpriseDataResponse\x12\x19\n\x11\x63ontinuationToken\x18\x01 \x01(\x0c\x12\x0f\n\x07hasMore\x18\x02 \x01(\x08\x12,\n\x0b\x63\x61\x63heStatus\x18\x03 \x01(\x0e\x32\x17.Enterprise.CacheStatus\x12(\n\x04\x64\x61ta\x18\x04 \x03(\x0b\x32\x1a.Enterprise.EnterpriseData\x12\x32\n\x0bgeneralData\x18\x05 \x01(\x0b\x32\x1d.Enterprise.GeneralDataEntity\"*\n\rBackupRequest\x12\x19\n\x11\x63ontinuationToken\x18\x01 \x01(\x0c\"\x98\x01\n\x0c\x42\x61\x63kupRecord\x12\x0e\n\x06userId\x18\x01 \x01(\x05\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\x12\x0b\n\x03key\x18\x03 \x01(\x0c\x12*\n\x07keyType\x18\x04 \x01(\x0e\x32\x19.Enterprise.BackupKeyType\x12\x0f\n\x07version\x18\x05 \x01(\x05\x12\x0c\n\x04\x64\x61ta\x18\x06 \x01(\x0c\x12\r\n\x05\x65xtra\x18\x07 \x01(\x0c\".\n\tBackupKey\x12\x0e\n\x06userId\x18\x01 \x01(\x05\x12\x11\n\tbackupKey\x18\x02 \x01(\x0c\"\x8d\x02\n\nBackupUser\x12\x0e\n\x06userId\x18\x01 \x01(\x05\x12\x10\n\x08userName\x18\x02 \x01(\t\x12\x0f\n\x07\x64\x61taKey\x18\x03 \x01(\x0c\x12\x36\n\x0b\x64\x61taKeyType\x18\x04 \x01(\x0e\x32!.Enterprise.BackupUserDataKeyType\x12\x12\n\nprivateKey\x18\x05 \x01(\x0c\x12\x0f\n\x07treeKey\x18\x06 \x01(\x0c\x12.\n\x0btreeKeyType\x18\x07 \x01(\x0e\x32\x19.Enterprise.BackupKeyType\x12)\n\nbackupKeys\x18\x08 \x03(\x0b\x32\x15.Enterprise.BackupKey\x12\x14\n\x0cprivateECKey\x18\t \x01(\x0c\"\x9e\x01\n\x0e\x42\x61\x63kupResponse\x12\x1f\n\x17\x65nterpriseEccPrivateKey\x18\x01 \x01(\x0c\x12%\n\x05users\x18\x02 \x03(\x0b\x32\x16.Enterprise.BackupUser\x12)\n\x07records\x18\x03 \x03(\x0b\x32\x18.Enterprise.BackupRecord\x12\x19\n\x11\x63ontinuationToken\x18\x04 \x01(\x0c\"e\n\nBackupFile\x12\x0c\n\x04user\x18\x01 \x01(\t\x12\x11\n\tbackupUid\x18\x02 \x01(\x0c\x12\x10\n\x08\x66ileName\x18\x03 \x01(\t\x12\x0f\n\x07\x63reated\x18\x04 \x01(\x03\x12\x13\n\x0b\x64ownloadUrl\x18\x05 \x01(\t\"8\n\x0f\x42\x61\x63kupsResponse\x12%\n\x05\x66iles\x18\x01 \x03(\x0b\x32\x16.Enterprise.BackupFile\".\n\x1cGetEnterpriseDataKeysRequest\x12\x0e\n\x06roleId\x18\x01 \x03(\x03\"\xff\x01\n\x1dGetEnterpriseDataKeysResponse\x12:\n\x12reEncryptedRoleKey\x18\x01 \x03(\x0b\x32\x1e.Enterprise.ReEncryptedRoleKey\x12$\n\x07roleKey\x18\x02 \x03(\x0b\x32\x13.Enterprise.RoleKey\x12\"\n\x06mspKey\x18\x03 \x01(\x0b\x32\x12.Enterprise.MspKey\x12\x32\n\x0e\x65nterpriseKeys\x18\x04 \x01(\x0b\x32\x1a.Enterprise.EnterpriseKeys\x12$\n\x07treeKey\x18\x05 \x01(\x0b\x32\x13.Enterprise.TreeKey\"^\n\x07RoleKey\x12\x0e\n\x06roleId\x18\x01 \x01(\x03\x12\x14\n\x0c\x65ncryptedKey\x18\x02 \x01(\t\x12-\n\x07keyType\x18\x03 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\"d\n\x06MspKey\x12\x1b\n\x13\x65ncryptedMspTreeKey\x18\x01 \x01(\t\x12=\n\x17\x65ncryptedMspTreeKeyType\x18\x02 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\"|\n\x0e\x45nterpriseKeys\x12\x14\n\x0crsaPublicKey\x18\x01 \x01(\x0c\x12\x1e\n\x16rsaEncryptedPrivateKey\x18\x02 \x01(\x0c\x12\x14\n\x0c\x65\x63\x63PublicKey\x18\x03 \x01(\x0c\x12\x1e\n\x16\x65\x63\x63\x45ncryptedPrivateKey\x18\x04 \x01(\x0c\"H\n\x07TreeKey\x12\x0f\n\x07treeKey\x18\x01 \x01(\t\x12,\n\tkeyTypeId\x18\x02 \x01(\x0e\x32\x19.Enterprise.BackupKeyType\"E\n\x14SharedRecordResponse\x12-\n\x06\x65vents\x18\x01 \x03(\x0b\x32\x1d.Enterprise.SharedRecordEvent\"p\n\x11SharedRecordEvent\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x10\n\x08userName\x18\x02 \x01(\t\x12\x0f\n\x07\x63\x61nEdit\x18\x03 \x01(\x08\x12\x12\n\ncanReshare\x18\x04 \x01(\x08\x12\x11\n\tshareFrom\x18\x05 \x01(\x05\".\n\x1cSetRestrictVisibilityRequest\x12\x0e\n\x06nodeId\x18\x01 \x01(\x03\"\xd0\x01\n\x0eUserAddRequest\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x15\n\rencryptedData\x18\x03 \x01(\x0c\x12-\n\x07keyType\x18\x04 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\x12\x10\n\x08\x66ullName\x18\x05 \x01(\t\x12\x10\n\x08jobTitle\x18\x06 \x01(\t\x12\r\n\x05\x65mail\x18\x07 \x01(\t\x12\x1b\n\x13suppressEmailInvite\x18\x08 \x01(\x08\":\n\x11UserUpdateRequest\x12%\n\x05users\x18\x01 \x03(\x0b\x32\x16.Enterprise.UserUpdate\"\xaf\x01\n\nUserUpdate\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x15\n\rencryptedData\x18\x03 \x01(\x0c\x12-\n\x07keyType\x18\x04 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\x12\x10\n\x08\x66ullName\x18\x05 \x01(\t\x12\x10\n\x08jobTitle\x18\x06 \x01(\t\x12\r\n\x05\x65mail\x18\x07 \x01(\t\"A\n\x12UserUpdateResponse\x12+\n\x05users\x18\x01 \x03(\x0b\x32\x1c.Enterprise.UserUpdateResult\"Z\n\x10UserUpdateResult\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12,\n\x06status\x18\x02 \x01(\x0e\x32\x1c.Enterprise.UserUpdateStatus\"J\n\x1d\x43omplianceRecordOwnersRequest\x12\x0f\n\x07nodeIds\x18\x01 \x03(\x03\x12\x18\n\x10includeNonShared\x18\x02 \x01(\x08\"O\n\x1e\x43omplianceRecordOwnersResponse\x12-\n\x0crecordOwners\x18\x01 \x03(\x0b\x32\x17.Enterprise.RecordOwner\"7\n\x0bRecordOwner\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x0e\n\x06shared\x18\x02 \x01(\x08\"\xa6\x01\n PreliminaryComplianceDataRequest\x12\x19\n\x11\x65nterpriseUserIds\x18\x01 \x03(\x03\x12\x18\n\x10includeNonShared\x18\x02 \x01(\x08\x12\x19\n\x11\x63ontinuationToken\x18\x03 \x01(\x0c\x12\x32\n*includeTotalMatchingRecordsInFirstResponse\x18\x04 \x01(\x08\"\x9f\x01\n!PreliminaryComplianceDataResponse\x12\x30\n\rauditUserData\x18\x01 \x03(\x0b\x32\x19.Enterprise.AuditUserData\x12\x19\n\x11\x63ontinuationToken\x18\x02 \x01(\x0c\x12\x0f\n\x07hasMore\x18\x03 \x01(\x08\x12\x1c\n\x14totalMatchingRecords\x18\x04 \x01(\x05\"K\n\x0f\x41uditUserRecord\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x15\n\rencryptedData\x18\x02 \x01(\x0c\x12\x0e\n\x06shared\x18\x03 \x01(\x08\"\x8d\x01\n\rAuditUserData\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x35\n\x10\x61uditUserRecords\x18\x02 \x03(\x0b\x32\x1b.Enterprise.AuditUserRecord\x12+\n\x06status\x18\x03 \x01(\x0e\x32\x1b.Enterprise.AuditUserStatus\"\x7f\n\x17\x43omplianceReportFilters\x12\x14\n\x0crecordTitles\x18\x01 \x03(\t\x12\x12\n\nrecordUids\x18\x02 \x03(\x0c\x12\x11\n\tjobTitles\x18\x03 \x03(\x03\x12\x0c\n\x04urls\x18\x04 \x03(\t\x12\x19\n\x11\x65nterpriseUserIds\x18\x05 \x03(\x03\"\x7f\n\x17\x43omplianceReportRequest\x12<\n\x13\x63omplianceReportRun\x18\x01 \x01(\x0b\x32\x1f.Enterprise.ComplianceReportRun\x12\x12\n\nreportName\x18\x02 \x01(\t\x12\x12\n\nsaveReport\x18\x03 \x01(\x08\"\x85\x01\n\x13\x43omplianceReportRun\x12N\n\x17reportCriteriaAndFilter\x18\x01 \x01(\x0b\x32-.Enterprise.ComplianceReportCriteriaAndFilter\x12\r\n\x05users\x18\x02 \x03(\x03\x12\x0f\n\x07records\x18\x03 \x03(\x0c\"\xfc\x01\n!ComplianceReportCriteriaAndFilter\x12\x0e\n\x06nodeId\x18\x01 \x01(\x03\x12\x13\n\x0b\x63riteriaUid\x18\x02 \x01(\x0c\x12\x14\n\x0c\x63riteriaName\x18\x03 \x01(\t\x12\x36\n\x08\x63riteria\x18\x04 \x01(\x0b\x32$.Enterprise.ComplianceReportCriteria\x12\x33\n\x07\x66ilters\x18\x05 \x03(\x0b\x32\".Enterprise.ComplianceReportFilter\x12\x14\n\x0clastModified\x18\x06 \x01(\x03\x12\x19\n\x11nodeEncryptedData\x18\x07 \x01(\x0c\"b\n\x18\x43omplianceReportCriteria\x12\x11\n\tjobTitles\x18\x01 \x03(\t\x12\x19\n\x11\x65nterpriseUserIds\x18\x02 \x03(\x03\x12\x18\n\x10includeNonShared\x18\x03 \x01(\x08\"x\n\x16\x43omplianceReportFilter\x12\x14\n\x0crecordTitles\x18\x01 \x03(\t\x12\x12\n\nrecordUids\x18\x02 \x03(\x0c\x12\x11\n\tjobTitles\x18\x03 \x03(\t\x12\x0c\n\x04urls\x18\x04 \x03(\t\x12\x13\n\x0brecordTypes\x18\x05 \x03(\t\"\xa1\x05\n\x18\x43omplianceReportResponse\x12\x15\n\rdateGenerated\x18\x01 \x01(\x03\x12\x15\n\rrunByUserName\x18\x02 \x01(\t\x12\x12\n\nreportName\x18\x03 \x01(\t\x12\x11\n\treportUid\x18\x04 \x01(\x0c\x12<\n\x13\x63omplianceReportRun\x18\x05 \x01(\x0b\x32\x1f.Enterprise.ComplianceReportRun\x12-\n\x0cuserProfiles\x18\x06 \x03(\x0b\x32\x17.Enterprise.UserProfile\x12)\n\nauditTeams\x18\x07 \x03(\x0b\x32\x15.Enterprise.AuditTeam\x12-\n\x0c\x61uditRecords\x18\x08 \x03(\x0b\x32\x17.Enterprise.AuditRecord\x12+\n\x0buserRecords\x18\t \x03(\x0b\x32\x16.Enterprise.UserRecord\x12;\n\x13sharedFolderRecords\x18\n \x03(\x0b\x32\x1e.Enterprise.SharedFolderRecord\x12\x37\n\x11sharedFolderUsers\x18\x0b \x03(\x0b\x32\x1c.Enterprise.SharedFolderUser\x12\x37\n\x11sharedFolderTeams\x18\x0c \x03(\x0b\x32\x1c.Enterprise.SharedFolderTeam\x12\x31\n\x0e\x61uditTeamUsers\x18\r \x03(\x0b\x32\x19.Enterprise.AuditTeamUser\x12)\n\nauditRoles\x18\x0e \x03(\x0b\x32\x15.Enterprise.AuditRole\x12/\n\rlinkedRecords\x18\x0f \x03(\x0b\x32\x18.Enterprise.LinkedRecord\"\x81\x01\n\x0b\x41uditRecord\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x11\n\tauditData\x18\x02 \x01(\x0c\x12\x16\n\x0ehasAttachments\x18\x03 \x01(\x08\x12\x0f\n\x07inTrash\x18\x04 \x01(\x08\x12\x10\n\x08treeLeft\x18\x05 \x01(\x05\x12\x11\n\ttreeRight\x18\x06 \x01(\x05\"\x80\x02\n\tAuditRole\x12\x0e\n\x06roleId\x18\x01 \x01(\x03\x12\x15\n\rencryptedData\x18\x02 \x01(\x0c\x12&\n\x1erestrictShareOutsideEnterprise\x18\x03 \x01(\x08\x12\x18\n\x10restrictShareAll\x18\x04 \x01(\x08\x12\"\n\x1arestrictShareOfAttachments\x18\x05 \x01(\x08\x12)\n!restrictMaskPasswordsWhileEditing\x18\x06 \x01(\x08\x12;\n\x13roleNodeManagements\x18\x07 \x03(\x0b\x32\x1e.Enterprise.RoleNodeManagement\"^\n\x12RoleNodeManagement\x12\x10\n\x08treeLeft\x18\x01 \x01(\x05\x12\x11\n\ttreeRight\x18\x02 \x01(\x05\x12\x0f\n\x07\x63\x61scade\x18\x03 \x01(\x08\x12\x12\n\nprivileges\x18\x04 \x01(\x05\"k\n\x0bUserProfile\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x10\n\x08\x66ullName\x18\x02 \x01(\t\x12\x10\n\x08jobTitle\x18\x03 \x01(\t\x12\r\n\x05\x65mail\x18\x04 \x01(\t\x12\x0f\n\x07roleIds\x18\x05 \x03(\x03\"=\n\x10RecordPermission\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x16\n\x0epermissionBits\x18\x02 \x01(\x05\"_\n\nUserRecord\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x37\n\x11recordPermissions\x18\x02 \x03(\x0b\x32\x1c.Enterprise.RecordPermission\"[\n\tAuditTeam\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x10\n\x08teamName\x18\x02 \x01(\t\x12\x14\n\x0crestrictEdit\x18\x03 \x01(\x08\x12\x15\n\rrestrictShare\x18\x04 \x01(\x08\";\n\rAuditTeamUser\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x19\n\x11\x65nterpriseUserIds\x18\x02 \x03(\x03\"\x9f\x01\n\x12SharedFolderRecord\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x37\n\x11recordPermissions\x18\x02 \x03(\x0b\x32\x1c.Enterprise.RecordPermission\x12\x37\n\x11shareAdminRecords\x18\x03 \x03(\x0b\x32\x1c.Enterprise.ShareAdminRecord\"M\n\x10ShareAdminRecord\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x1f\n\x17recordPermissionIndexes\x18\x02 \x03(\x05\"F\n\x10SharedFolderUser\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x19\n\x11\x65nterpriseUserIds\x18\x02 \x03(\x03\"=\n\x10SharedFolderTeam\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x10\n\x08teamUids\x18\x02 \x03(\x0c\"/\n\x1aGetComplianceReportRequest\x12\x11\n\treportUid\x18\x01 \x01(\x0c\"2\n\x1bGetComplianceReportResponse\x12\x13\n\x0b\x64ownloadUrl\x18\x01 \x01(\t\"6\n\x1f\x43omplianceReportCriteriaRequest\x12\x13\n\x0b\x63riteriaUid\x18\x01 \x01(\x0c\";\n$SaveComplianceReportCriteriaResponse\x12\x13\n\x0b\x63riteriaUid\x18\x01 \x01(\x0c\"4\n\x0cLinkedRecord\x12\x10\n\x08ownerUid\x18\x01 \x01(\x0c\x12\x12\n\nrecordUids\x18\x02 \x03(\x0c\"W\n\x17GetSharingAdminsRequest\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\x12\x10\n\x08username\x18\x03 \x01(\t\"\xe0\x01\n\x0eUserProfileExt\x12\r\n\x05\x65mail\x18\x01 \x01(\t\x12\x10\n\x08\x66ullName\x18\x02 \x01(\t\x12\x10\n\x08jobTitle\x18\x03 \x01(\t\x12\x14\n\x0cisMSPMCAdmin\x18\x04 \x01(\x08\x12\x18\n\x10isInSharedFolder\x18\x05 \x01(\x08\x12&\n\x1eisShareAdminForRequestedObject\x18\x06 \x01(\x08\x12(\n isShareAdminForSharedFolderOwner\x18\x07 \x01(\x08\x12\x19\n\x11hasAccessToObject\x18\x08 \x01(\x08\"O\n\x18GetSharingAdminsResponse\x12\x33\n\x0fuserProfileExts\x18\x01 \x03(\x0b\x32\x1a.Enterprise.UserProfileExt\"_\n\x1eTeamsEnterpriseUsersAddRequest\x12=\n\x05teams\x18\x01 \x03(\x0b\x32..Enterprise.TeamsEnterpriseUsersAddTeamRequest\"t\n\"TeamsEnterpriseUsersAddTeamRequest\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12=\n\x05users\x18\x02 \x03(\x0b\x32..Enterprise.TeamsEnterpriseUsersAddUserRequest\"\xab\x01\n\"TeamsEnterpriseUsersAddUserRequest\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12*\n\x08userType\x18\x02 \x01(\x0e\x32\x18.Enterprise.TeamUserType\x12\x13\n\x07teamKey\x18\x03 \x01(\tB\x02\x18\x01\x12*\n\x0ctypedTeamKey\x18\x04 \x01(\x0b\x32\x14.Enterprise.TypedKey\"F\n\x08TypedKey\x12\x0b\n\x03key\x18\x01 \x01(\x0c\x12-\n\x07keyType\x18\x02 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\"s\n\x1fTeamsEnterpriseUsersAddResponse\x12>\n\x05teams\x18\x01 \x03(\x0b\x32/.Enterprise.TeamsEnterpriseUsersAddTeamResponse\x12\x10\n\x08revision\x18\x02 \x01(\x03\"\xc4\x01\n#TeamsEnterpriseUsersAddTeamResponse\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12>\n\x05users\x18\x02 \x03(\x0b\x32/.Enterprise.TeamsEnterpriseUsersAddUserResponse\x12\x0f\n\x07success\x18\x03 \x01(\x08\x12\x0f\n\x07message\x18\x04 \x01(\t\x12\x12\n\nresultCode\x18\x05 \x01(\t\x12\x16\n\x0e\x61\x64\x64itionalInfo\x18\x06 \x01(\t\"\x9f\x01\n#TeamsEnterpriseUsersAddUserResponse\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x10\n\x08revision\x18\x02 \x01(\x03\x12\x0f\n\x07success\x18\x03 \x01(\x08\x12\x0f\n\x07message\x18\x04 \x01(\t\x12\x12\n\nresultCode\x18\x05 \x01(\t\x12\x16\n\x0e\x61\x64\x64itionalInfo\x18\x06 \x01(\t\"M\n\x0b\x44omainAlias\x12\x0e\n\x06\x64omain\x18\x01 \x01(\t\x12\r\n\x05\x61lias\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\x05\x12\x0f\n\x07message\x18\x04 \x01(\t\"B\n\x12\x44omainAliasRequest\x12,\n\x0b\x64omainAlias\x18\x01 \x03(\x0b\x32\x17.Enterprise.DomainAlias\"C\n\x13\x44omainAliasResponse\x12,\n\x0b\x64omainAlias\x18\x01 \x03(\x0b\x32\x17.Enterprise.DomainAlias\"m\n\x1f\x45nterpriseUsersProvisionRequest\x12\x33\n\x05users\x18\x01 \x03(\x0b\x32$.Enterprise.EnterpriseUsersProvision\x12\x15\n\rclientVersion\x18\x02 \x01(\t\"\xb6\x03\n\x18\x45nterpriseUsersProvision\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x0e\n\x06nodeId\x18\x03 \x01(\x03\x12\x15\n\rencryptedData\x18\x04 \x01(\t\x12-\n\x07keyType\x18\x05 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\x12\x10\n\x08\x66ullName\x18\x06 \x01(\t\x12\x10\n\x08jobTitle\x18\x07 \x01(\t\x12\x1e\n\x16\x65nterpriseUsersDataKey\x18\x08 \x01(\x0c\x12\x14\n\x0c\x61uthVerifier\x18\t \x01(\x0c\x12\x18\n\x10\x65ncryptionParams\x18\n \x01(\x0c\x12\x14\n\x0crsaPublicKey\x18\x0b \x01(\x0c\x12\x1e\n\x16rsaEncryptedPrivateKey\x18\x0c \x01(\x0c\x12\x14\n\x0c\x65\x63\x63PublicKey\x18\r \x01(\x0c\x12\x1e\n\x16\x65\x63\x63\x45ncryptedPrivateKey\x18\x0e \x01(\x0c\x12\x1c\n\x14\x65ncryptedDeviceToken\x18\x0f \x01(\x0c\x12\x1a\n\x12\x65ncryptedClientKey\x18\x10 \x01(\x0c\"_\n EnterpriseUsersProvisionResponse\x12;\n\x07results\x18\x01 \x03(\x0b\x32*.Enterprise.EnterpriseUsersProvisionResult\"q\n\x1e\x45nterpriseUsersProvisionResult\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x0c\n\x04\x63ode\x18\x02 \x01(\t\x12\x0f\n\x07message\x18\x03 \x01(\t\x12\x16\n\x0e\x61\x64\x64itionalInfo\x18\x04 \x01(\t\"a\n\x19\x45nterpriseUsersAddRequest\x12-\n\x05users\x18\x01 \x03(\x0b\x32\x1e.Enterprise.EnterpriseUsersAdd\x12\x15\n\rclientVersion\x18\x02 \x01(\t\"\x8c\x02\n\x12\x45nterpriseUsersAdd\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x0e\n\x06nodeId\x18\x03 \x01(\x03\x12\x15\n\rencryptedData\x18\x04 \x01(\t\x12-\n\x07keyType\x18\x05 \x01(\x0e\x32\x1c.Enterprise.EncryptedKeyType\x12\x10\n\x08\x66ullName\x18\x06 \x01(\t\x12\x10\n\x08jobTitle\x18\x07 \x01(\t\x12\x1b\n\x13suppressEmailInvite\x18\x08 \x01(\x08\x12\x15\n\rinviteeLocale\x18\t \x01(\t\x12\x0c\n\x04move\x18\n \x01(\x08\x12\x0e\n\x06roleId\x18\x0b \x01(\x03\"\x9b\x01\n\x1a\x45nterpriseUsersAddResponse\x12\x35\n\x07results\x18\x01 \x03(\x0b\x32$.Enterprise.EnterpriseUsersAddResult\x12\x0f\n\x07success\x18\x02 \x01(\x08\x12\x0c\n\x04\x63ode\x18\x03 \x01(\t\x12\x0f\n\x07message\x18\x04 \x01(\t\x12\x16\n\x0e\x61\x64\x64itionalInfo\x18\x05 \x01(\t\"\x96\x01\n\x18\x45nterpriseUsersAddResult\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x0f\n\x07success\x18\x02 \x01(\x08\x12\x18\n\x10verificationCode\x18\x03 \x01(\t\x12\x0c\n\x04\x63ode\x18\x04 \x01(\t\x12\x0f\n\x07message\x18\x05 \x01(\t\x12\x16\n\x0e\x61\x64\x64itionalInfo\x18\x06 \x01(\t\"\xb9\x01\n\x17UpdateMSPPermitsRequest\x12\x17\n\x0fmspEnterpriseId\x18\x01 \x01(\x05\x12\x1a\n\x12maxAllowedLicenses\x18\x02 \x01(\x05\x12\x19\n\x11\x61llowedMcProducts\x18\x03 \x03(\t\x12\x15\n\rallowedAddOns\x18\x04 \x03(\t\x12\x17\n\x0fmaxFilePlanType\x18\x05 \x01(\t\x12\x1e\n\x16\x61llowUnlimitedLicenses\x18\x06 \x01(\x08\"9\n\x1c\x44\x65leteEnterpriseUsersRequest\x12\x19\n\x11\x65nterpriseUserIds\x18\x01 \x03(\x03\"o\n\x1a\x44\x65leteEnterpriseUserStatus\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x01(\x03\x12\x37\n\x06status\x18\x02 \x01(\x0e\x32\'.Enterprise.DeleteEnterpriseUsersResult\"]\n\x1d\x44\x65leteEnterpriseUsersResponse\x12<\n\x0c\x64\x65leteStatus\x18\x01 \x03(\x0b\x32&.Enterprise.DeleteEnterpriseUserStatus\"w\n\x18\x43learSecurityDataRequest\x12\x18\n\x10\x65nterpriseUserId\x18\x01 \x03(\x03\x12\x10\n\x08\x61llUsers\x18\x02 \x01(\x08\x12/\n\x04type\x18\x03 \x01(\x0e\x32!.Enterprise.ClearSecurityDataType*\x1b\n\x07KeyType\x12\x07\n\x03RSA\x10\x00\x12\x07\n\x03\x45\x43\x43\x10\x01*\xe6\x01\n\x14RoleUserModifyStatus\x12\x0f\n\x0bROLE_EXISTS\x10\x00\x12\x14\n\x10MISSING_TREE_KEY\x10\x01\x12\x14\n\x10MISSING_ROLE_KEY\x10\x02\x12\x1e\n\x1aINVALID_ENTERPRISE_USER_ID\x10\x03\x12\x1b\n\x17PENDING_ENTERPRISE_USER\x10\x04\x12\x13\n\x0fINVALID_NODE_ID\x10\x05\x12!\n\x1dMAY_NOT_REMOVE_SELF_FROM_ROLE\x10\x06\x12\x1c\n\x18MUST_HAVE_ONE_USER_ADMIN\x10\x07*=\n\x0e\x45nterpriseType\x12\x17\n\x13\x45NTERPRISE_STANDARD\x10\x00\x12\x12\n\x0e\x45NTERPRISE_MSP\x10\x01*s\n\x18TransferAcceptanceStatus\x12\r\n\tUNDEFINED\x10\x00\x12\x10\n\x0cNOT_REQUIRED\x10\x01\x12\x10\n\x0cNOT_ACCEPTED\x10\x02\x12\x16\n\x12PARTIALLY_ACCEPTED\x10\x03\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x04*\x8a\x04\n\x14\x45nterpriseDataEntity\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05NODES\x10\x01\x12\t\n\x05ROLES\x10\x02\x12\t\n\x05USERS\x10\x03\x12\t\n\x05TEAMS\x10\x04\x12\x0e\n\nTEAM_USERS\x10\x05\x12\x0e\n\nROLE_USERS\x10\x06\x12\x13\n\x0fROLE_PRIVILEGES\x10\x07\x12\x15\n\x11ROLE_ENFORCEMENTS\x10\x08\x12\x0e\n\nROLE_TEAMS\x10\t\x12\x0c\n\x08LICENSES\x10\n\x12\x11\n\rMANAGED_NODES\x10\x0b\x12\x15\n\x11MANAGED_COMPANIES\x10\x0c\x12\x0b\n\x07\x42RIDGES\x10\r\x12\t\n\x05SCIMS\x10\x0e\x12\x13\n\x0f\x45MAIL_PROVISION\x10\x0f\x12\x10\n\x0cQUEUED_TEAMS\x10\x10\x12\x15\n\x11QUEUED_TEAM_USERS\x10\x11\x12\x10\n\x0cSSO_SERVICES\x10\x12\x12\x17\n\x13REPORT_FILTER_USERS\x10\x13\x12&\n\"DEVICES_REQUEST_FOR_ADMIN_APPROVAL\x10\x14\x12\x10\n\x0cUSER_ALIASES\x10\x15\x12)\n%COMPLIANCE_REPORT_CRITERIA_AND_FILTER\x10\x16\x12\x16\n\x12\x43OMPLIANCE_REPORTS\x10\x17\x12\'\n#QUEUED_TEAM_USERS_INCLUDING_PENDING\x10\x18*\"\n\x0b\x43\x61\x63heStatus\x12\x08\n\x04KEEP\x10\x00\x12\t\n\x05\x43LEAR\x10\x01*\x93\x01\n\rBackupKeyType\x12\n\n\x06NO_KEY\x10\x00\x12\x19\n\x15\x45NCRYPTED_BY_DATA_KEY\x10\x01\x12\x1b\n\x17\x45NCRYPTED_BY_PUBLIC_KEY\x10\x02\x12\x1d\n\x19\x45NCRYPTED_BY_DATA_KEY_GCM\x10\x03\x12\x1f\n\x1b\x45NCRYPTED_BY_PUBLIC_KEY_ECC\x10\x04*:\n\x15\x42\x61\x63kupUserDataKeyType\x12\x07\n\x03OWN\x10\x00\x12\x18\n\x14SHARED_TO_ENTERPRISE\x10\x01*\xa5\x01\n\x10\x45ncryptedKeyType\x12\r\n\tKT_NO_KEY\x10\x00\x12\x1c\n\x18KT_ENCRYPTED_BY_DATA_KEY\x10\x01\x12\x1e\n\x1aKT_ENCRYPTED_BY_PUBLIC_KEY\x10\x02\x12 \n\x1cKT_ENCRYPTED_BY_DATA_KEY_GCM\x10\x03\x12\"\n\x1eKT_ENCRYPTED_BY_PUBLIC_KEY_ECC\x10\x04*\x8e\x02\n\x12\x45nterpriseFlagType\x12\x0b\n\x07INVALID\x10\x00\x12\x1a\n\x16\x41LLOW_PERSONAL_LICENSE\x10\x01\x12\x18\n\x14SPECIAL_PROVISIONING\x10\x02\x12\x10\n\x0cRECORD_TYPES\x10\x03\x12\x13\n\x0fSECRETS_MANAGER\x10\x04\x12\x15\n\x11\x45NTERPRISE_LOCKED\x10\x05\x12\x15\n\x11\x46ORBID_KEY_TYPE_2\x10\x06\x12\x15\n\x11\x43ONSOLE_ONBOARDED\x10\x07\x12\x1b\n\x17\x46ORBID_ACCOUNT_TRANSFER\x10\x08\x12\x15\n\x11NPS_POPUP_OPT_OUT\x10\t\x12\x15\n\x11SHOW_USER_ONBOARD\x10\n*E\n\x10UserUpdateStatus\x12\x12\n\x0eUSER_UPDATE_OK\x10\x00\x12\x1d\n\x19USER_UPDATE_ACCESS_DENIED\x10\x01*I\n\x0f\x41uditUserStatus\x12\x06\n\x02OK\x10\x00\x12\x11\n\rACCESS_DENIED\x10\x01\x12\x1b\n\x17NO_LONGER_IN_ENTERPRISE\x10\x02*3\n\x0cTeamUserType\x12\x08\n\x04USER\x10\x00\x12\t\n\x05\x41\x44MIN\x10\x01\x12\x0e\n\nADMIN_ONLY\x10\x02*x\n\rAppClientType\x12\x0c\n\x08NOT_USED\x10\x00\x12\x0b\n\x07GENERAL\x10\x01\x12%\n!DISCOVERY_AND_ROTATION_CONTROLLER\x10\x02\x12\x12\n\x0eKCM_CONTROLLER\x10\x03\x12\x11\n\rSELF_DESTRUCT\x10\x04*\x8f\x01\n\x1b\x44\x65leteEnterpriseUsersResult\x12\x0b\n\x07SUCCESS\x10\x00\x12\x1a\n\x16NOT_AN_ENTERPRISE_USER\x10\x01\x12\x16\n\x12\x43\x41NNOT_DELETE_SELF\x10\x02\x12$\n BRIDGE_CANNOT_DELETE_ACTIVE_USER\x10\x03\x12\t\n\x05\x45RROR\x10\x04*\x87\x01\n\x15\x43learSecurityDataType\x12\x1e\n\x1aRECALCULATE_SUMMARY_REPORT\x10\x00\x12\'\n#FORCE_CLIENT_CHECK_FOR_MISSING_DATA\x10\x01\x12%\n!FORCE_CLIENT_RESEND_SECURITY_DATA\x10\x02\x42&\n\x18\x63om.keepersecurity.protoB\nEnterpriseb\x06proto3') _KEYTYPE = DESCRIPTOR.enum_types_by_name['KeyType'] KeyType = enum_type_wrapper.EnumTypeWrapper(_KEYTYPE) +_ROLEUSERMODIFYSTATUS = DESCRIPTOR.enum_types_by_name['RoleUserModifyStatus'] +RoleUserModifyStatus = enum_type_wrapper.EnumTypeWrapper(_ROLEUSERMODIFYSTATUS) _ENTERPRISETYPE = DESCRIPTOR.enum_types_by_name['EnterpriseType'] EnterpriseType = enum_type_wrapper.EnumTypeWrapper(_ENTERPRISETYPE) _TRANSFERACCEPTANCESTATUS = DESCRIPTOR.enum_types_by_name['TransferAcceptanceStatus'] @@ -49,6 +51,14 @@ ClearSecurityDataType = enum_type_wrapper.EnumTypeWrapper(_CLEARSECURITYDATATYPE) RSA = 0 ECC = 1 +ROLE_EXISTS = 0 +MISSING_TREE_KEY = 1 +MISSING_ROLE_KEY = 2 +INVALID_ENTERPRISE_USER_ID = 3 +PENDING_ENTERPRISE_USER = 4 +INVALID_NODE_ID = 5 +MAY_NOT_REMOVE_SELF_FROM_ROLE = 6 +MUST_HAVE_ONE_USER_ADMIN = 7 ENTERPRISE_STANDARD = 0 ENTERPRISE_MSP = 1 UNDEFINED = 0 @@ -80,6 +90,7 @@ USER_ALIASES = 21 COMPLIANCE_REPORT_CRITERIA_AND_FILTER = 22 COMPLIANCE_REPORTS = 23 +QUEUED_TEAM_USERS_INCLUDING_PENDING = 24 KEEP = 0 CLEAR = 1 NO_KEY = 0 @@ -101,6 +112,10 @@ SECRETS_MANAGER = 4 ENTERPRISE_LOCKED = 5 FORBID_KEY_TYPE_2 = 6 +CONSOLE_ONBOARDED = 7 +FORBID_ACCOUNT_TRANSFER = 8 +NPS_POPUP_OPT_OUT = 9 +SHOW_USER_ONBOARD = 10 USER_UPDATE_OK = 0 USER_UPDATE_ACCESS_DENIED = 1 OK = 0 @@ -136,6 +151,15 @@ _NODETOMANAGEDCOMPANYREQUEST = DESCRIPTOR.message_types_by_name['NodeToManagedCompanyRequest'] _ROLETEAM = DESCRIPTOR.message_types_by_name['RoleTeam'] _ROLETEAMS = DESCRIPTOR.message_types_by_name['RoleTeams'] +_ROLEUSERADDKEYS = DESCRIPTOR.message_types_by_name['RoleUserAddKeys'] +_ROLEUSERADD = DESCRIPTOR.message_types_by_name['RoleUserAdd'] +_ROLEUSERSADDREQUEST = DESCRIPTOR.message_types_by_name['RoleUsersAddRequest'] +_ROLEUSERADDRESULT = DESCRIPTOR.message_types_by_name['RoleUserAddResult'] +_ROLEUSERSADDRESPONSE = DESCRIPTOR.message_types_by_name['RoleUsersAddResponse'] +_ROLEUSERREMOVE = DESCRIPTOR.message_types_by_name['RoleUserRemove'] +_ROLEUSERSREMOVEREQUEST = DESCRIPTOR.message_types_by_name['RoleUsersRemoveRequest'] +_ROLEUSERREMOVERESULT = DESCRIPTOR.message_types_by_name['RoleUserRemoveResult'] +_ROLEUSERSREMOVERESPONSE = DESCRIPTOR.message_types_by_name['RoleUsersRemoveResponse'] _ENTERPRISEREGISTRATION = DESCRIPTOR.message_types_by_name['EnterpriseRegistration'] _DOMAINPASSWORDRULESREQUEST = DESCRIPTOR.message_types_by_name['DomainPasswordRulesRequest'] _DOMAINPASSWORDRULESFIELDS = DESCRIPTOR.message_types_by_name['DomainPasswordRulesFields'] @@ -348,6 +372,69 @@ }) _sym_db.RegisterMessage(RoleTeams) +RoleUserAddKeys = _reflection.GeneratedProtocolMessageType('RoleUserAddKeys', (_message.Message,), { + 'DESCRIPTOR' : _ROLEUSERADDKEYS, + '__module__' : 'enterprise_pb2' + # @@protoc_insertion_point(class_scope:Enterprise.RoleUserAddKeys) + }) +_sym_db.RegisterMessage(RoleUserAddKeys) + +RoleUserAdd = _reflection.GeneratedProtocolMessageType('RoleUserAdd', (_message.Message,), { + 'DESCRIPTOR' : _ROLEUSERADD, + '__module__' : 'enterprise_pb2' + # @@protoc_insertion_point(class_scope:Enterprise.RoleUserAdd) + }) +_sym_db.RegisterMessage(RoleUserAdd) + +RoleUsersAddRequest = _reflection.GeneratedProtocolMessageType('RoleUsersAddRequest', (_message.Message,), { + 'DESCRIPTOR' : _ROLEUSERSADDREQUEST, + '__module__' : 'enterprise_pb2' + # @@protoc_insertion_point(class_scope:Enterprise.RoleUsersAddRequest) + }) +_sym_db.RegisterMessage(RoleUsersAddRequest) + +RoleUserAddResult = _reflection.GeneratedProtocolMessageType('RoleUserAddResult', (_message.Message,), { + 'DESCRIPTOR' : _ROLEUSERADDRESULT, + '__module__' : 'enterprise_pb2' + # @@protoc_insertion_point(class_scope:Enterprise.RoleUserAddResult) + }) +_sym_db.RegisterMessage(RoleUserAddResult) + +RoleUsersAddResponse = _reflection.GeneratedProtocolMessageType('RoleUsersAddResponse', (_message.Message,), { + 'DESCRIPTOR' : _ROLEUSERSADDRESPONSE, + '__module__' : 'enterprise_pb2' + # @@protoc_insertion_point(class_scope:Enterprise.RoleUsersAddResponse) + }) +_sym_db.RegisterMessage(RoleUsersAddResponse) + +RoleUserRemove = _reflection.GeneratedProtocolMessageType('RoleUserRemove', (_message.Message,), { + 'DESCRIPTOR' : _ROLEUSERREMOVE, + '__module__' : 'enterprise_pb2' + # @@protoc_insertion_point(class_scope:Enterprise.RoleUserRemove) + }) +_sym_db.RegisterMessage(RoleUserRemove) + +RoleUsersRemoveRequest = _reflection.GeneratedProtocolMessageType('RoleUsersRemoveRequest', (_message.Message,), { + 'DESCRIPTOR' : _ROLEUSERSREMOVEREQUEST, + '__module__' : 'enterprise_pb2' + # @@protoc_insertion_point(class_scope:Enterprise.RoleUsersRemoveRequest) + }) +_sym_db.RegisterMessage(RoleUsersRemoveRequest) + +RoleUserRemoveResult = _reflection.GeneratedProtocolMessageType('RoleUserRemoveResult', (_message.Message,), { + 'DESCRIPTOR' : _ROLEUSERREMOVERESULT, + '__module__' : 'enterprise_pb2' + # @@protoc_insertion_point(class_scope:Enterprise.RoleUserRemoveResult) + }) +_sym_db.RegisterMessage(RoleUserRemoveResult) + +RoleUsersRemoveResponse = _reflection.GeneratedProtocolMessageType('RoleUsersRemoveResponse', (_message.Message,), { + 'DESCRIPTOR' : _ROLEUSERSREMOVERESPONSE, + '__module__' : 'enterprise_pb2' + # @@protoc_insertion_point(class_scope:Enterprise.RoleUsersRemoveResponse) + }) +_sym_db.RegisterMessage(RoleUsersRemoveResponse) + EnterpriseRegistration = _reflection.GeneratedProtocolMessageType('EnterpriseRegistration', (_message.Message,), { 'DESCRIPTOR' : _ENTERPRISEREGISTRATION, '__module__' : 'enterprise_pb2' @@ -1254,36 +1341,38 @@ _NODE.fields_by_name['ssoServiceProviderIds']._serialized_options = b'\020\001' _TEAMSENTERPRISEUSERSADDUSERREQUEST.fields_by_name['teamKey']._options = None _TEAMSENTERPRISEUSERSADDUSERREQUEST.fields_by_name['teamKey']._serialized_options = b'\030\001' - _KEYTYPE._serialized_start=17877 - _KEYTYPE._serialized_end=17904 - _ENTERPRISETYPE._serialized_start=17906 - _ENTERPRISETYPE._serialized_end=17967 - _TRANSFERACCEPTANCESTATUS._serialized_start=17969 - _TRANSFERACCEPTANCESTATUS._serialized_end=18084 - _ENTERPRISEDATAENTITY._serialized_start=18087 - _ENTERPRISEDATAENTITY._serialized_end=18568 - _CACHESTATUS._serialized_start=18570 - _CACHESTATUS._serialized_end=18604 - _BACKUPKEYTYPE._serialized_start=18607 - _BACKUPKEYTYPE._serialized_end=18754 - _BACKUPUSERDATAKEYTYPE._serialized_start=18756 - _BACKUPUSERDATAKEYTYPE._serialized_end=18814 - _ENCRYPTEDKEYTYPE._serialized_start=18817 - _ENCRYPTEDKEYTYPE._serialized_end=18982 - _ENTERPRISEFLAGTYPE._serialized_start=18985 - _ENTERPRISEFLAGTYPE._serialized_end=19157 - _USERUPDATESTATUS._serialized_start=19159 - _USERUPDATESTATUS._serialized_end=19228 - _AUDITUSERSTATUS._serialized_start=19230 - _AUDITUSERSTATUS._serialized_end=19303 - _TEAMUSERTYPE._serialized_start=19305 - _TEAMUSERTYPE._serialized_end=19356 - _APPCLIENTTYPE._serialized_start=19358 - _APPCLIENTTYPE._serialized_end=19478 - _DELETEENTERPRISEUSERSRESULT._serialized_start=19481 - _DELETEENTERPRISEUSERSRESULT._serialized_end=19624 - _CLEARSECURITYDATATYPE._serialized_start=19627 - _CLEARSECURITYDATATYPE._serialized_end=19762 + _KEYTYPE._serialized_start=18780 + _KEYTYPE._serialized_end=18807 + _ROLEUSERMODIFYSTATUS._serialized_start=18810 + _ROLEUSERMODIFYSTATUS._serialized_end=19040 + _ENTERPRISETYPE._serialized_start=19042 + _ENTERPRISETYPE._serialized_end=19103 + _TRANSFERACCEPTANCESTATUS._serialized_start=19105 + _TRANSFERACCEPTANCESTATUS._serialized_end=19220 + _ENTERPRISEDATAENTITY._serialized_start=19223 + _ENTERPRISEDATAENTITY._serialized_end=19745 + _CACHESTATUS._serialized_start=19747 + _CACHESTATUS._serialized_end=19781 + _BACKUPKEYTYPE._serialized_start=19784 + _BACKUPKEYTYPE._serialized_end=19931 + _BACKUPUSERDATAKEYTYPE._serialized_start=19933 + _BACKUPUSERDATAKEYTYPE._serialized_end=19991 + _ENCRYPTEDKEYTYPE._serialized_start=19994 + _ENCRYPTEDKEYTYPE._serialized_end=20159 + _ENTERPRISEFLAGTYPE._serialized_start=20162 + _ENTERPRISEFLAGTYPE._serialized_end=20432 + _USERUPDATESTATUS._serialized_start=20434 + _USERUPDATESTATUS._serialized_end=20503 + _AUDITUSERSTATUS._serialized_start=20505 + _AUDITUSERSTATUS._serialized_end=20578 + _TEAMUSERTYPE._serialized_start=20580 + _TEAMUSERTYPE._serialized_end=20631 + _APPCLIENTTYPE._serialized_start=20633 + _APPCLIENTTYPE._serialized_end=20753 + _DELETEENTERPRISEUSERSRESULT._serialized_start=20756 + _DELETEENTERPRISEUSERSRESULT._serialized_end=20899 + _CLEARSECURITYDATATYPE._serialized_start=20902 + _CLEARSECURITYDATATYPE._serialized_end=21037 _ENTERPRISEKEYPAIRREQUEST._serialized_start=33 _ENTERPRISEKEYPAIRREQUEST._serialized_end=165 _GETTEAMMEMBERREQUEST._serialized_start=167 @@ -1308,260 +1397,278 @@ _ROLETEAM._serialized_end=1054 _ROLETEAMS._serialized_start=1056 _ROLETEAMS._serialized_end=1108 - _ENTERPRISEREGISTRATION._serialized_start=1111 - _ENTERPRISEREGISTRATION._serialized_end=1560 - _DOMAINPASSWORDRULESREQUEST._serialized_start=1562 - _DOMAINPASSWORDRULESREQUEST._serialized_end=1634 - _DOMAINPASSWORDRULESFIELDS._serialized_start=1636 - _DOMAINPASSWORDRULESFIELDS._serialized_end=1728 - _LOGINTOMCREQUEST._serialized_start=1730 - _LOGINTOMCREQUEST._serialized_end=1799 - _LOGINTOMCRESPONSE._serialized_start=1801 - _LOGINTOMCRESPONSE._serialized_end=1877 - _DOMAINPASSWORDRULESRESPONSE._serialized_start=1879 - _DOMAINPASSWORDRULESRESPONSE._serialized_end=1982 - _APPROVEUSERDEVICEREQUEST._serialized_start=1985 - _APPROVEUSERDEVICEREQUEST._serialized_end=2121 - _APPROVEUSERDEVICERESPONSE._serialized_start=2123 - _APPROVEUSERDEVICERESPONSE._serialized_end=2239 - _APPROVEUSERDEVICESREQUEST._serialized_start=2241 - _APPROVEUSERDEVICESREQUEST._serialized_end=2330 - _APPROVEUSERDEVICESRESPONSE._serialized_start=2332 - _APPROVEUSERDEVICESRESPONSE._serialized_end=2424 - _ENTERPRISEUSERDATAKEY._serialized_start=2427 - _ENTERPRISEUSERDATAKEY._serialized_end=2562 - _ENTERPRISEUSERDATAKEYS._serialized_start=2564 - _ENTERPRISEUSERDATAKEYS._serialized_end=2637 - _ENTERPRISEDATAREQUEST._serialized_start=2639 - _ENTERPRISEDATAREQUEST._serialized_end=2689 - _SPECIALPROVISIONING._serialized_start=2691 - _SPECIALPROVISIONING._serialized_end=2739 - _GENERALDATAENTITY._serialized_start=2742 - _GENERALDATAENTITY._serialized_end=2946 - _NODE._serialized_start=2949 - _NODE._serialized_end=3202 - _ROLE._serialized_start=3205 - _ROLE._serialized_end=3347 - _USER._serialized_start=3350 - _USER._serialized_end=3662 - _USERALIAS._serialized_start=3664 - _USERALIAS._serialized_end=3719 - _COMPLIANCEREPORTMETADATA._serialized_start=3722 - _COMPLIANCEREPORTMETADATA._serialized_end=3894 - _MANAGEDNODE._serialized_start=3896 - _MANAGEDNODE._serialized_end=3979 - _USERMANAGEDNODE._serialized_start=3981 - _USERMANAGEDNODE._serialized_end=4065 - _USERPRIVILEGE._serialized_start=4067 - _USERPRIVILEGE._serialized_end=4186 - _ROLEUSER._serialized_start=4188 - _ROLEUSER._serialized_end=4240 - _ROLEPRIVILEGE._serialized_start=4242 - _ROLEPRIVILEGE._serialized_end=4319 - _ROLEENFORCEMENT._serialized_start=4321 - _ROLEENFORCEMENT._serialized_end=4394 - _TEAM._serialized_start=4397 - _TEAM._serialized_end=4566 - _TEAMUSER._serialized_start=4568 - _TEAMUSER._serialized_end=4639 - _GETDISTRIBUTORINFORESPONSE._serialized_start=4641 - _GETDISTRIBUTORINFORESPONSE._serialized_end=4716 - _DISTRIBUTOR._serialized_start=4718 - _DISTRIBUTOR._serialized_end=4784 - _MSPINFO._serialized_start=4787 - _MSPINFO._serialized_end=5072 - _MANAGEDCOMPANY._serialized_start=5075 - _MANAGEDCOMPANY._serialized_end=5348 - _MSPPOOL._serialized_start=5350 - _MSPPOOL._serialized_end=5432 - _MSPCONTACT._serialized_start=5434 - _MSPCONTACT._serialized_end=5492 - _LICENSEADDON._serialized_start=5495 - _LICENSEADDON._serialized_end=5682 - _MCDEFAULT._serialized_start=5684 - _MCDEFAULT._serialized_end=5799 - _MSPPERMITS._serialized_start=5802 - _MSPPERMITS._serialized_end=6012 - _LICENSE._serialized_start=6015 - _LICENSE._serialized_end=6559 - _BRIDGE._serialized_start=6561 - _BRIDGE._serialized_end=6671 - _SCIM._serialized_start=6673 - _SCIM._serialized_end=6789 - _EMAILPROVISION._serialized_start=6791 - _EMAILPROVISION._serialized_end=6867 - _QUEUEDTEAM._serialized_start=6869 - _QUEUEDTEAM._serialized_end=6951 - _QUEUEDTEAMUSER._serialized_start=6953 - _QUEUEDTEAMUSER._serialized_end=7001 - _TEAMSADDRESULT._serialized_start=7004 - _TEAMSADDRESULT._serialized_end=7168 - _TEAMADDRESULT._serialized_start=7170 - _TEAMADDRESULT._serialized_end=7255 - _SSOSERVICE._serialized_start=7258 - _SSOSERVICE._serialized_end=7403 - _REPORTFILTERUSER._serialized_start=7405 - _REPORTFILTERUSER._serialized_end=7454 - _DEVICEREQUESTFORADMINAPPROVAL._serialized_start=7457 - _DEVICEREQUESTFORADMINAPPROVAL._serialized_end=7736 - _ENTERPRISEDATA._serialized_start=7738 - _ENTERPRISEDATA._serialized_end=7834 - _ENTERPRISEDATARESPONSE._serialized_start=7837 - _ENTERPRISEDATARESPONSE._serialized_end=8045 - _BACKUPREQUEST._serialized_start=8047 - _BACKUPREQUEST._serialized_end=8089 - _BACKUPRECORD._serialized_start=8092 - _BACKUPRECORD._serialized_end=8244 - _BACKUPKEY._serialized_start=8246 - _BACKUPKEY._serialized_end=8292 - _BACKUPUSER._serialized_start=8295 - _BACKUPUSER._serialized_end=8564 - _BACKUPRESPONSE._serialized_start=8567 - _BACKUPRESPONSE._serialized_end=8725 - _BACKUPFILE._serialized_start=8727 - _BACKUPFILE._serialized_end=8828 - _BACKUPSRESPONSE._serialized_start=8830 - _BACKUPSRESPONSE._serialized_end=8886 - _GETENTERPRISEDATAKEYSREQUEST._serialized_start=8888 - _GETENTERPRISEDATAKEYSREQUEST._serialized_end=8934 - _GETENTERPRISEDATAKEYSRESPONSE._serialized_start=8937 - _GETENTERPRISEDATAKEYSRESPONSE._serialized_end=9192 - _ROLEKEY._serialized_start=9194 - _ROLEKEY._serialized_end=9288 - _MSPKEY._serialized_start=9290 - _MSPKEY._serialized_end=9390 - _ENTERPRISEKEYS._serialized_start=9392 - _ENTERPRISEKEYS._serialized_end=9516 - _TREEKEY._serialized_start=9518 - _TREEKEY._serialized_end=9590 - _SHAREDRECORDRESPONSE._serialized_start=9592 - _SHAREDRECORDRESPONSE._serialized_end=9661 - _SHAREDRECORDEVENT._serialized_start=9663 - _SHAREDRECORDEVENT._serialized_end=9775 - _SETRESTRICTVISIBILITYREQUEST._serialized_start=9777 - _SETRESTRICTVISIBILITYREQUEST._serialized_end=9823 - _USERADDREQUEST._serialized_start=9826 - _USERADDREQUEST._serialized_end=10034 - _USERUPDATEREQUEST._serialized_start=10036 - _USERUPDATEREQUEST._serialized_end=10094 - _USERUPDATE._serialized_start=10097 - _USERUPDATE._serialized_end=10272 - _USERUPDATERESPONSE._serialized_start=10274 - _USERUPDATERESPONSE._serialized_end=10339 - _USERUPDATERESULT._serialized_start=10341 - _USERUPDATERESULT._serialized_end=10431 - _COMPLIANCERECORDOWNERSREQUEST._serialized_start=10433 - _COMPLIANCERECORDOWNERSREQUEST._serialized_end=10507 - _COMPLIANCERECORDOWNERSRESPONSE._serialized_start=10509 - _COMPLIANCERECORDOWNERSRESPONSE._serialized_end=10588 - _RECORDOWNER._serialized_start=10590 - _RECORDOWNER._serialized_end=10645 - _PRELIMINARYCOMPLIANCEDATAREQUEST._serialized_start=10648 - _PRELIMINARYCOMPLIANCEDATAREQUEST._serialized_end=10814 - _PRELIMINARYCOMPLIANCEDATARESPONSE._serialized_start=10817 - _PRELIMINARYCOMPLIANCEDATARESPONSE._serialized_end=10976 - _AUDITUSERRECORD._serialized_start=10978 - _AUDITUSERRECORD._serialized_end=11053 - _AUDITUSERDATA._serialized_start=11056 - _AUDITUSERDATA._serialized_end=11197 - _COMPLIANCEREPORTFILTERS._serialized_start=11199 - _COMPLIANCEREPORTFILTERS._serialized_end=11326 - _COMPLIANCEREPORTREQUEST._serialized_start=11328 - _COMPLIANCEREPORTREQUEST._serialized_end=11455 - _COMPLIANCEREPORTRUN._serialized_start=11458 - _COMPLIANCEREPORTRUN._serialized_end=11591 - _COMPLIANCEREPORTCRITERIAANDFILTER._serialized_start=11594 - _COMPLIANCEREPORTCRITERIAANDFILTER._serialized_end=11846 - _COMPLIANCEREPORTCRITERIA._serialized_start=11848 - _COMPLIANCEREPORTCRITERIA._serialized_end=11946 - _COMPLIANCEREPORTFILTER._serialized_start=11948 - _COMPLIANCEREPORTFILTER._serialized_end=12068 - _COMPLIANCEREPORTRESPONSE._serialized_start=12071 - _COMPLIANCEREPORTRESPONSE._serialized_end=12744 - _AUDITRECORD._serialized_start=12747 - _AUDITRECORD._serialized_end=12876 - _AUDITROLE._serialized_start=12879 - _AUDITROLE._serialized_end=13135 - _ROLENODEMANAGEMENT._serialized_start=13137 - _ROLENODEMANAGEMENT._serialized_end=13231 - _USERPROFILE._serialized_start=13233 - _USERPROFILE._serialized_end=13340 - _RECORDPERMISSION._serialized_start=13342 - _RECORDPERMISSION._serialized_end=13403 - _USERRECORD._serialized_start=13405 - _USERRECORD._serialized_end=13500 - _AUDITTEAM._serialized_start=13502 - _AUDITTEAM._serialized_end=13593 - _AUDITTEAMUSER._serialized_start=13595 - _AUDITTEAMUSER._serialized_end=13654 - _SHAREDFOLDERRECORD._serialized_start=13657 - _SHAREDFOLDERRECORD._serialized_end=13816 - _SHAREADMINRECORD._serialized_start=13818 - _SHAREADMINRECORD._serialized_end=13895 - _SHAREDFOLDERUSER._serialized_start=13897 - _SHAREDFOLDERUSER._serialized_end=13967 - _SHAREDFOLDERTEAM._serialized_start=13969 - _SHAREDFOLDERTEAM._serialized_end=14030 - _GETCOMPLIANCEREPORTREQUEST._serialized_start=14032 - _GETCOMPLIANCEREPORTREQUEST._serialized_end=14079 - _GETCOMPLIANCEREPORTRESPONSE._serialized_start=14081 - _GETCOMPLIANCEREPORTRESPONSE._serialized_end=14131 - _COMPLIANCEREPORTCRITERIAREQUEST._serialized_start=14133 - _COMPLIANCEREPORTCRITERIAREQUEST._serialized_end=14187 - _SAVECOMPLIANCEREPORTCRITERIARESPONSE._serialized_start=14189 - _SAVECOMPLIANCEREPORTCRITERIARESPONSE._serialized_end=14248 - _LINKEDRECORD._serialized_start=14250 - _LINKEDRECORD._serialized_end=14302 - _GETSHARINGADMINSREQUEST._serialized_start=14304 - _GETSHARINGADMINSREQUEST._serialized_end=14391 - _USERPROFILEEXT._serialized_start=14394 - _USERPROFILEEXT._serialized_end=14618 - _GETSHARINGADMINSRESPONSE._serialized_start=14620 - _GETSHARINGADMINSRESPONSE._serialized_end=14699 - _TEAMSENTERPRISEUSERSADDREQUEST._serialized_start=14701 - _TEAMSENTERPRISEUSERSADDREQUEST._serialized_end=14796 - _TEAMSENTERPRISEUSERSADDTEAMREQUEST._serialized_start=14798 - _TEAMSENTERPRISEUSERSADDTEAMREQUEST._serialized_end=14914 - _TEAMSENTERPRISEUSERSADDUSERREQUEST._serialized_start=14917 - _TEAMSENTERPRISEUSERSADDUSERREQUEST._serialized_end=15088 - _TYPEDKEY._serialized_start=15090 - _TYPEDKEY._serialized_end=15160 - _TEAMSENTERPRISEUSERSADDRESPONSE._serialized_start=15162 - _TEAMSENTERPRISEUSERSADDRESPONSE._serialized_end=15277 - _TEAMSENTERPRISEUSERSADDTEAMRESPONSE._serialized_start=15280 - _TEAMSENTERPRISEUSERSADDTEAMRESPONSE._serialized_end=15476 - _TEAMSENTERPRISEUSERSADDUSERRESPONSE._serialized_start=15479 - _TEAMSENTERPRISEUSERSADDUSERRESPONSE._serialized_end=15638 - _DOMAINALIAS._serialized_start=15640 - _DOMAINALIAS._serialized_end=15717 - _DOMAINALIASREQUEST._serialized_start=15719 - _DOMAINALIASREQUEST._serialized_end=15785 - _DOMAINALIASRESPONSE._serialized_start=15787 - _DOMAINALIASRESPONSE._serialized_end=15854 - _ENTERPRISEUSERSPROVISIONREQUEST._serialized_start=15856 - _ENTERPRISEUSERSPROVISIONREQUEST._serialized_end=15965 - _ENTERPRISEUSERSPROVISION._serialized_start=15968 - _ENTERPRISEUSERSPROVISION._serialized_end=16406 - _ENTERPRISEUSERSPROVISIONRESPONSE._serialized_start=16408 - _ENTERPRISEUSERSPROVISIONRESPONSE._serialized_end=16503 - _ENTERPRISEUSERSPROVISIONRESULT._serialized_start=16505 - _ENTERPRISEUSERSPROVISIONRESULT._serialized_end=16618 - _ENTERPRISEUSERSADDREQUEST._serialized_start=16620 - _ENTERPRISEUSERSADDREQUEST._serialized_end=16717 - _ENTERPRISEUSERSADD._serialized_start=16720 - _ENTERPRISEUSERSADD._serialized_end=16988 - _ENTERPRISEUSERSADDRESPONSE._serialized_start=16991 - _ENTERPRISEUSERSADDRESPONSE._serialized_end=17146 - _ENTERPRISEUSERSADDRESULT._serialized_start=17149 - _ENTERPRISEUSERSADDRESULT._serialized_end=17299 - _UPDATEMSPPERMITSREQUEST._serialized_start=17302 - _UPDATEMSPPERMITSREQUEST._serialized_end=17487 - _DELETEENTERPRISEUSERSREQUEST._serialized_start=17489 - _DELETEENTERPRISEUSERSREQUEST._serialized_end=17546 - _DELETEENTERPRISEUSERSTATUS._serialized_start=17548 - _DELETEENTERPRISEUSERSTATUS._serialized_end=17659 - _DELETEENTERPRISEUSERSRESPONSE._serialized_start=17661 - _DELETEENTERPRISEUSERSRESPONSE._serialized_end=17754 - _CLEARSECURITYDATAREQUEST._serialized_start=17756 - _CLEARSECURITYDATAREQUEST._serialized_end=17875 + _ROLEUSERADDKEYS._serialized_start=1110 + _ROLEUSERADDKEYS._serialized_end=1192 + _ROLEUSERADD._serialized_start=1194 + _ROLEUSERADD._serialized_end=1278 + _ROLEUSERSADDREQUEST._serialized_start=1280 + _ROLEUSERSADDREQUEST._serialized_end=1348 + _ROLEUSERADDRESULT._serialized_start=1351 + _ROLEUSERADDRESULT._serialized_end=1479 + _ROLEUSERSADDRESPONSE._serialized_start=1481 + _ROLEUSERSADDRESPONSE._serialized_end=1551 + _ROLEUSERREMOVE._serialized_start=1553 + _ROLEUSERREMOVE._serialized_end=1613 + _ROLEUSERSREMOVEREQUEST._serialized_start=1615 + _ROLEUSERSREMOVEREQUEST._serialized_end=1692 + _ROLEUSERREMOVERESULT._serialized_start=1695 + _ROLEUSERREMOVERESULT._serialized_end=1826 + _ROLEUSERSREMOVERESPONSE._serialized_start=1828 + _ROLEUSERSREMOVERESPONSE._serialized_end=1904 + _ENTERPRISEREGISTRATION._serialized_start=1907 + _ENTERPRISEREGISTRATION._serialized_end=2382 + _DOMAINPASSWORDRULESREQUEST._serialized_start=2384 + _DOMAINPASSWORDRULESREQUEST._serialized_end=2456 + _DOMAINPASSWORDRULESFIELDS._serialized_start=2458 + _DOMAINPASSWORDRULESFIELDS._serialized_end=2550 + _LOGINTOMCREQUEST._serialized_start=2552 + _LOGINTOMCREQUEST._serialized_end=2621 + _LOGINTOMCRESPONSE._serialized_start=2623 + _LOGINTOMCRESPONSE._serialized_end=2699 + _DOMAINPASSWORDRULESRESPONSE._serialized_start=2701 + _DOMAINPASSWORDRULESRESPONSE._serialized_end=2804 + _APPROVEUSERDEVICEREQUEST._serialized_start=2807 + _APPROVEUSERDEVICEREQUEST._serialized_end=2943 + _APPROVEUSERDEVICERESPONSE._serialized_start=2945 + _APPROVEUSERDEVICERESPONSE._serialized_end=3061 + _APPROVEUSERDEVICESREQUEST._serialized_start=3063 + _APPROVEUSERDEVICESREQUEST._serialized_end=3152 + _APPROVEUSERDEVICESRESPONSE._serialized_start=3154 + _APPROVEUSERDEVICESRESPONSE._serialized_end=3246 + _ENTERPRISEUSERDATAKEY._serialized_start=3249 + _ENTERPRISEUSERDATAKEY._serialized_end=3384 + _ENTERPRISEUSERDATAKEYS._serialized_start=3386 + _ENTERPRISEUSERDATAKEYS._serialized_end=3459 + _ENTERPRISEDATAREQUEST._serialized_start=3461 + _ENTERPRISEDATAREQUEST._serialized_end=3511 + _SPECIALPROVISIONING._serialized_start=3513 + _SPECIALPROVISIONING._serialized_end=3561 + _GENERALDATAENTITY._serialized_start=3564 + _GENERALDATAENTITY._serialized_end=3824 + _NODE._serialized_start=3827 + _NODE._serialized_end=4080 + _ROLE._serialized_start=4083 + _ROLE._serialized_end=4225 + _USER._serialized_start=4228 + _USER._serialized_end=4540 + _USERALIAS._serialized_start=4542 + _USERALIAS._serialized_end=4597 + _COMPLIANCEREPORTMETADATA._serialized_start=4600 + _COMPLIANCEREPORTMETADATA._serialized_end=4772 + _MANAGEDNODE._serialized_start=4774 + _MANAGEDNODE._serialized_end=4857 + _USERMANAGEDNODE._serialized_start=4859 + _USERMANAGEDNODE._serialized_end=4943 + _USERPRIVILEGE._serialized_start=4945 + _USERPRIVILEGE._serialized_end=5064 + _ROLEUSER._serialized_start=5066 + _ROLEUSER._serialized_end=5118 + _ROLEPRIVILEGE._serialized_start=5120 + _ROLEPRIVILEGE._serialized_end=5197 + _ROLEENFORCEMENT._serialized_start=5199 + _ROLEENFORCEMENT._serialized_end=5272 + _TEAM._serialized_start=5275 + _TEAM._serialized_end=5444 + _TEAMUSER._serialized_start=5446 + _TEAMUSER._serialized_end=5517 + _GETDISTRIBUTORINFORESPONSE._serialized_start=5519 + _GETDISTRIBUTORINFORESPONSE._serialized_end=5594 + _DISTRIBUTOR._serialized_start=5596 + _DISTRIBUTOR._serialized_end=5662 + _MSPINFO._serialized_start=5665 + _MSPINFO._serialized_end=5950 + _MANAGEDCOMPANY._serialized_start=5953 + _MANAGEDCOMPANY._serialized_end=6226 + _MSPPOOL._serialized_start=6228 + _MSPPOOL._serialized_end=6310 + _MSPCONTACT._serialized_start=6312 + _MSPCONTACT._serialized_end=6370 + _LICENSEADDON._serialized_start=6373 + _LICENSEADDON._serialized_end=6585 + _MCDEFAULT._serialized_start=6587 + _MCDEFAULT._serialized_end=6702 + _MSPPERMITS._serialized_start=6705 + _MSPPERMITS._serialized_end=6915 + _LICENSE._serialized_start=6918 + _LICENSE._serialized_end=7462 + _BRIDGE._serialized_start=7464 + _BRIDGE._serialized_end=7574 + _SCIM._serialized_start=7576 + _SCIM._serialized_end=7692 + _EMAILPROVISION._serialized_start=7694 + _EMAILPROVISION._serialized_end=7770 + _QUEUEDTEAM._serialized_start=7772 + _QUEUEDTEAM._serialized_end=7854 + _QUEUEDTEAMUSER._serialized_start=7856 + _QUEUEDTEAMUSER._serialized_end=7904 + _TEAMSADDRESULT._serialized_start=7907 + _TEAMSADDRESULT._serialized_end=8071 + _TEAMADDRESULT._serialized_start=8073 + _TEAMADDRESULT._serialized_end=8158 + _SSOSERVICE._serialized_start=8161 + _SSOSERVICE._serialized_end=8306 + _REPORTFILTERUSER._serialized_start=8308 + _REPORTFILTERUSER._serialized_end=8357 + _DEVICEREQUESTFORADMINAPPROVAL._serialized_start=8360 + _DEVICEREQUESTFORADMINAPPROVAL._serialized_end=8639 + _ENTERPRISEDATA._serialized_start=8641 + _ENTERPRISEDATA._serialized_end=8737 + _ENTERPRISEDATARESPONSE._serialized_start=8740 + _ENTERPRISEDATARESPONSE._serialized_end=8948 + _BACKUPREQUEST._serialized_start=8950 + _BACKUPREQUEST._serialized_end=8992 + _BACKUPRECORD._serialized_start=8995 + _BACKUPRECORD._serialized_end=9147 + _BACKUPKEY._serialized_start=9149 + _BACKUPKEY._serialized_end=9195 + _BACKUPUSER._serialized_start=9198 + _BACKUPUSER._serialized_end=9467 + _BACKUPRESPONSE._serialized_start=9470 + _BACKUPRESPONSE._serialized_end=9628 + _BACKUPFILE._serialized_start=9630 + _BACKUPFILE._serialized_end=9731 + _BACKUPSRESPONSE._serialized_start=9733 + _BACKUPSRESPONSE._serialized_end=9789 + _GETENTERPRISEDATAKEYSREQUEST._serialized_start=9791 + _GETENTERPRISEDATAKEYSREQUEST._serialized_end=9837 + _GETENTERPRISEDATAKEYSRESPONSE._serialized_start=9840 + _GETENTERPRISEDATAKEYSRESPONSE._serialized_end=10095 + _ROLEKEY._serialized_start=10097 + _ROLEKEY._serialized_end=10191 + _MSPKEY._serialized_start=10193 + _MSPKEY._serialized_end=10293 + _ENTERPRISEKEYS._serialized_start=10295 + _ENTERPRISEKEYS._serialized_end=10419 + _TREEKEY._serialized_start=10421 + _TREEKEY._serialized_end=10493 + _SHAREDRECORDRESPONSE._serialized_start=10495 + _SHAREDRECORDRESPONSE._serialized_end=10564 + _SHAREDRECORDEVENT._serialized_start=10566 + _SHAREDRECORDEVENT._serialized_end=10678 + _SETRESTRICTVISIBILITYREQUEST._serialized_start=10680 + _SETRESTRICTVISIBILITYREQUEST._serialized_end=10726 + _USERADDREQUEST._serialized_start=10729 + _USERADDREQUEST._serialized_end=10937 + _USERUPDATEREQUEST._serialized_start=10939 + _USERUPDATEREQUEST._serialized_end=10997 + _USERUPDATE._serialized_start=11000 + _USERUPDATE._serialized_end=11175 + _USERUPDATERESPONSE._serialized_start=11177 + _USERUPDATERESPONSE._serialized_end=11242 + _USERUPDATERESULT._serialized_start=11244 + _USERUPDATERESULT._serialized_end=11334 + _COMPLIANCERECORDOWNERSREQUEST._serialized_start=11336 + _COMPLIANCERECORDOWNERSREQUEST._serialized_end=11410 + _COMPLIANCERECORDOWNERSRESPONSE._serialized_start=11412 + _COMPLIANCERECORDOWNERSRESPONSE._serialized_end=11491 + _RECORDOWNER._serialized_start=11493 + _RECORDOWNER._serialized_end=11548 + _PRELIMINARYCOMPLIANCEDATAREQUEST._serialized_start=11551 + _PRELIMINARYCOMPLIANCEDATAREQUEST._serialized_end=11717 + _PRELIMINARYCOMPLIANCEDATARESPONSE._serialized_start=11720 + _PRELIMINARYCOMPLIANCEDATARESPONSE._serialized_end=11879 + _AUDITUSERRECORD._serialized_start=11881 + _AUDITUSERRECORD._serialized_end=11956 + _AUDITUSERDATA._serialized_start=11959 + _AUDITUSERDATA._serialized_end=12100 + _COMPLIANCEREPORTFILTERS._serialized_start=12102 + _COMPLIANCEREPORTFILTERS._serialized_end=12229 + _COMPLIANCEREPORTREQUEST._serialized_start=12231 + _COMPLIANCEREPORTREQUEST._serialized_end=12358 + _COMPLIANCEREPORTRUN._serialized_start=12361 + _COMPLIANCEREPORTRUN._serialized_end=12494 + _COMPLIANCEREPORTCRITERIAANDFILTER._serialized_start=12497 + _COMPLIANCEREPORTCRITERIAANDFILTER._serialized_end=12749 + _COMPLIANCEREPORTCRITERIA._serialized_start=12751 + _COMPLIANCEREPORTCRITERIA._serialized_end=12849 + _COMPLIANCEREPORTFILTER._serialized_start=12851 + _COMPLIANCEREPORTFILTER._serialized_end=12971 + _COMPLIANCEREPORTRESPONSE._serialized_start=12974 + _COMPLIANCEREPORTRESPONSE._serialized_end=13647 + _AUDITRECORD._serialized_start=13650 + _AUDITRECORD._serialized_end=13779 + _AUDITROLE._serialized_start=13782 + _AUDITROLE._serialized_end=14038 + _ROLENODEMANAGEMENT._serialized_start=14040 + _ROLENODEMANAGEMENT._serialized_end=14134 + _USERPROFILE._serialized_start=14136 + _USERPROFILE._serialized_end=14243 + _RECORDPERMISSION._serialized_start=14245 + _RECORDPERMISSION._serialized_end=14306 + _USERRECORD._serialized_start=14308 + _USERRECORD._serialized_end=14403 + _AUDITTEAM._serialized_start=14405 + _AUDITTEAM._serialized_end=14496 + _AUDITTEAMUSER._serialized_start=14498 + _AUDITTEAMUSER._serialized_end=14557 + _SHAREDFOLDERRECORD._serialized_start=14560 + _SHAREDFOLDERRECORD._serialized_end=14719 + _SHAREADMINRECORD._serialized_start=14721 + _SHAREADMINRECORD._serialized_end=14798 + _SHAREDFOLDERUSER._serialized_start=14800 + _SHAREDFOLDERUSER._serialized_end=14870 + _SHAREDFOLDERTEAM._serialized_start=14872 + _SHAREDFOLDERTEAM._serialized_end=14933 + _GETCOMPLIANCEREPORTREQUEST._serialized_start=14935 + _GETCOMPLIANCEREPORTREQUEST._serialized_end=14982 + _GETCOMPLIANCEREPORTRESPONSE._serialized_start=14984 + _GETCOMPLIANCEREPORTRESPONSE._serialized_end=15034 + _COMPLIANCEREPORTCRITERIAREQUEST._serialized_start=15036 + _COMPLIANCEREPORTCRITERIAREQUEST._serialized_end=15090 + _SAVECOMPLIANCEREPORTCRITERIARESPONSE._serialized_start=15092 + _SAVECOMPLIANCEREPORTCRITERIARESPONSE._serialized_end=15151 + _LINKEDRECORD._serialized_start=15153 + _LINKEDRECORD._serialized_end=15205 + _GETSHARINGADMINSREQUEST._serialized_start=15207 + _GETSHARINGADMINSREQUEST._serialized_end=15294 + _USERPROFILEEXT._serialized_start=15297 + _USERPROFILEEXT._serialized_end=15521 + _GETSHARINGADMINSRESPONSE._serialized_start=15523 + _GETSHARINGADMINSRESPONSE._serialized_end=15602 + _TEAMSENTERPRISEUSERSADDREQUEST._serialized_start=15604 + _TEAMSENTERPRISEUSERSADDREQUEST._serialized_end=15699 + _TEAMSENTERPRISEUSERSADDTEAMREQUEST._serialized_start=15701 + _TEAMSENTERPRISEUSERSADDTEAMREQUEST._serialized_end=15817 + _TEAMSENTERPRISEUSERSADDUSERREQUEST._serialized_start=15820 + _TEAMSENTERPRISEUSERSADDUSERREQUEST._serialized_end=15991 + _TYPEDKEY._serialized_start=15993 + _TYPEDKEY._serialized_end=16063 + _TEAMSENTERPRISEUSERSADDRESPONSE._serialized_start=16065 + _TEAMSENTERPRISEUSERSADDRESPONSE._serialized_end=16180 + _TEAMSENTERPRISEUSERSADDTEAMRESPONSE._serialized_start=16183 + _TEAMSENTERPRISEUSERSADDTEAMRESPONSE._serialized_end=16379 + _TEAMSENTERPRISEUSERSADDUSERRESPONSE._serialized_start=16382 + _TEAMSENTERPRISEUSERSADDUSERRESPONSE._serialized_end=16541 + _DOMAINALIAS._serialized_start=16543 + _DOMAINALIAS._serialized_end=16620 + _DOMAINALIASREQUEST._serialized_start=16622 + _DOMAINALIASREQUEST._serialized_end=16688 + _DOMAINALIASRESPONSE._serialized_start=16690 + _DOMAINALIASRESPONSE._serialized_end=16757 + _ENTERPRISEUSERSPROVISIONREQUEST._serialized_start=16759 + _ENTERPRISEUSERSPROVISIONREQUEST._serialized_end=16868 + _ENTERPRISEUSERSPROVISION._serialized_start=16871 + _ENTERPRISEUSERSPROVISION._serialized_end=17309 + _ENTERPRISEUSERSPROVISIONRESPONSE._serialized_start=17311 + _ENTERPRISEUSERSPROVISIONRESPONSE._serialized_end=17406 + _ENTERPRISEUSERSPROVISIONRESULT._serialized_start=17408 + _ENTERPRISEUSERSPROVISIONRESULT._serialized_end=17521 + _ENTERPRISEUSERSADDREQUEST._serialized_start=17523 + _ENTERPRISEUSERSADDREQUEST._serialized_end=17620 + _ENTERPRISEUSERSADD._serialized_start=17623 + _ENTERPRISEUSERSADD._serialized_end=17891 + _ENTERPRISEUSERSADDRESPONSE._serialized_start=17894 + _ENTERPRISEUSERSADDRESPONSE._serialized_end=18049 + _ENTERPRISEUSERSADDRESULT._serialized_start=18052 + _ENTERPRISEUSERSADDRESULT._serialized_end=18202 + _UPDATEMSPPERMITSREQUEST._serialized_start=18205 + _UPDATEMSPPERMITSREQUEST._serialized_end=18390 + _DELETEENTERPRISEUSERSREQUEST._serialized_start=18392 + _DELETEENTERPRISEUSERSREQUEST._serialized_end=18449 + _DELETEENTERPRISEUSERSTATUS._serialized_start=18451 + _DELETEENTERPRISEUSERSTATUS._serialized_end=18562 + _DELETEENTERPRISEUSERSRESPONSE._serialized_start=18564 + _DELETEENTERPRISEUSERSRESPONSE._serialized_end=18657 + _CLEARSECURITYDATAREQUEST._serialized_start=18659 + _CLEARSECURITYDATAREQUEST._serialized_end=18778 # @@protoc_insertion_point(module_scope) diff --git a/keepercommander/proto/folder_pb2.py b/keepercommander/proto/folder_pb2.py index 1a36f9bde..aeb3a7a9f 100644 --- a/keepercommander/proto/folder_pb2.py +++ b/keepercommander/proto/folder_pb2.py @@ -16,7 +16,7 @@ from . import record_pb2 as record__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x66older.proto\x12\x06\x46older\x1a\x0crecord.proto\"\\\n\x10\x45ncryptedDataKey\x12\x14\n\x0c\x65ncryptedKey\x18\x01 \x01(\x0c\x12\x32\n\x10\x65ncryptedKeyType\x18\x02 \x01(\x0e\x32\x18.Folder.EncryptedKeyType\"\x82\x01\n\x16SharedFolderRecordData\x12\x11\n\tfolderUid\x18\x01 \x01(\x0c\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\x12\x0e\n\x06userId\x18\x03 \x01(\x05\x12\x32\n\x10\x65ncryptedDataKey\x18\x04 \x03(\x0b\x32\x18.Folder.EncryptedDataKey\"\\\n\x1aSharedFolderRecordDataList\x12>\n\x16sharedFolderRecordData\x18\x01 \x03(\x0b\x32\x1e.Folder.SharedFolderRecordData\"_\n\x15SharedFolderRecordFix\x12\x11\n\tfolderUid\x18\x01 \x01(\x0c\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\x12 \n\x18\x65ncryptedRecordFolderKey\x18\x03 \x01(\x0c\"Y\n\x19SharedFolderRecordFixList\x12<\n\x15sharedFolderRecordFix\x18\x01 \x03(\x0b\x32\x1d.Folder.SharedFolderRecordFix\"\xa2\x02\n\rRecordRequest\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12&\n\nrecordType\x18\x02 \x01(\x0e\x32\x12.Folder.RecordType\x12\x12\n\nrecordData\x18\x03 \x01(\x0c\x12\x1a\n\x12\x65ncryptedRecordKey\x18\x04 \x01(\x0c\x12&\n\nfolderType\x18\x05 \x01(\x0e\x32\x12.Folder.FolderType\x12\x12\n\nhowLongAgo\x18\x06 \x01(\x03\x12\x11\n\tfolderUid\x18\x07 \x01(\x0c\x12 \n\x18\x65ncryptedRecordFolderKey\x18\x08 \x01(\x0c\x12\r\n\x05\x65xtra\x18\t \x01(\x0c\x12\x15\n\rnonSharedData\x18\n \x01(\x0c\x12\x0f\n\x07\x66ileIds\x18\x0b \x03(\x03\"E\n\x0eRecordResponse\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x10\n\x08revision\x18\x02 \x01(\x03\x12\x0e\n\x06status\x18\x03 \x01(\t\"\x80\x01\n\x12SharedFolderFields\x12\x1b\n\x13\x65ncryptedFolderName\x18\x01 \x01(\x0c\x12\x13\n\x0bmanageUsers\x18\x02 \x01(\x08\x12\x15\n\rmanageRecords\x18\x03 \x01(\x08\x12\x0f\n\x07\x63\x61nEdit\x18\x04 \x01(\x08\x12\x10\n\x08\x63\x61nShare\x18\x05 \x01(\x08\"3\n\x18SharedFolderFolderFields\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\"\x8f\x02\n\rFolderRequest\x12\x11\n\tfolderUid\x18\x01 \x01(\x0c\x12&\n\nfolderType\x18\x02 \x01(\x0e\x32\x12.Folder.FolderType\x12\x17\n\x0fparentFolderUid\x18\x03 \x01(\x0c\x12\x12\n\nfolderData\x18\x04 \x01(\x0c\x12\x1a\n\x12\x65ncryptedFolderKey\x18\x05 \x01(\x0c\x12\x36\n\x12sharedFolderFields\x18\x06 \x01(\x0b\x32\x1a.Folder.SharedFolderFields\x12\x42\n\x18sharedFolderFolderFields\x18\x07 \x01(\x0b\x32 .Folder.SharedFolderFolderFields\"E\n\x0e\x46olderResponse\x12\x11\n\tfolderUid\x18\x01 \x01(\x0c\x12\x10\n\x08revision\x18\x02 \x01(\x03\x12\x0e\n\x06status\x18\x03 \x01(\t\"w\n\x19ImportFolderRecordRequest\x12,\n\rfolderRequest\x18\x01 \x03(\x0b\x32\x15.Folder.FolderRequest\x12,\n\rrecordRequest\x18\x02 \x03(\x0b\x32\x15.Folder.RecordRequest\"|\n\x1aImportFolderRecordResponse\x12.\n\x0e\x66olderResponse\x18\x01 \x03(\x0b\x32\x16.Folder.FolderResponse\x12.\n\x0erecordResponse\x18\x02 \x03(\x0b\x32\x16.Folder.RecordResponse\"\xad\x02\n\x18SharedFolderUpdateRecord\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x17\n\x0fsharedFolderUid\x18\x02 \x01(\x0c\x12\x0f\n\x07teamUid\x18\x03 \x01(\x0c\x12(\n\x07\x63\x61nEdit\x18\x04 \x01(\x0e\x32\x17.Folder.SetBooleanValue\x12)\n\x08\x63\x61nShare\x18\x05 \x01(\x0e\x32\x17.Folder.SetBooleanValue\x12\x1a\n\x12\x65ncryptedRecordKey\x18\x06 \x01(\x0c\x12\x10\n\x08revision\x18\x07 \x01(\x05\x12\x12\n\nexpiration\x18\x08 \x01(\x12\x12=\n\x15timerNotificationType\x18\t \x01(\x0e\x32\x1e.Records.TimerNotificationType\"\xf4\x01\n\x16SharedFolderUpdateUser\x12\x10\n\x08username\x18\x01 \x01(\t\x12,\n\x0bmanageUsers\x18\x02 \x01(\x0e\x32\x17.Folder.SetBooleanValue\x12.\n\rmanageRecords\x18\x03 \x01(\x0e\x32\x17.Folder.SetBooleanValue\x12\x17\n\x0fsharedFolderKey\x18\x04 \x01(\x0c\x12\x12\n\nexpiration\x18\x05 \x01(\x12\x12=\n\x15timerNotificationType\x18\x06 \x01(\x0e\x32\x1e.Records.TimerNotificationType\"\xc1\x01\n\x16SharedFolderUpdateTeam\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x13\n\x0bmanageUsers\x18\x02 \x01(\x08\x12\x15\n\rmanageRecords\x18\x03 \x01(\x08\x12\x17\n\x0fsharedFolderKey\x18\x04 \x01(\x0c\x12\x12\n\nexpiration\x18\x05 \x01(\x12\x12=\n\x15timerNotificationType\x18\x06 \x01(\x0e\x32\x1e.Records.TimerNotificationType\"\x8e\x07\n\x1bSharedFolderUpdateV3Request\x12,\n$sharedFolderUpdateOperation_dont_use\x18\x01 \x01(\x05\x12\x17\n\x0fsharedFolderUid\x18\x02 \x01(\x0c\x12!\n\x19\x65ncryptedSharedFolderName\x18\x03 \x01(\x0c\x12\x10\n\x08revision\x18\x04 \x01(\x03\x12\x13\n\x0b\x66orceUpdate\x18\x05 \x01(\x08\x12\x13\n\x0b\x66romTeamUid\x18\x06 \x01(\x0c\x12\x33\n\x12\x64\x65\x66\x61ultManageUsers\x18\x07 \x01(\x0e\x32\x17.Folder.SetBooleanValue\x12\x35\n\x14\x64\x65\x66\x61ultManageRecords\x18\x08 \x01(\x0e\x32\x17.Folder.SetBooleanValue\x12/\n\x0e\x64\x65\x66\x61ultCanEdit\x18\t \x01(\x0e\x32\x17.Folder.SetBooleanValue\x12\x30\n\x0f\x64\x65\x66\x61ultCanShare\x18\n \x01(\x0e\x32\x17.Folder.SetBooleanValue\x12?\n\x15sharedFolderAddRecord\x18\x0b \x03(\x0b\x32 .Folder.SharedFolderUpdateRecord\x12;\n\x13sharedFolderAddUser\x18\x0c \x03(\x0b\x32\x1e.Folder.SharedFolderUpdateUser\x12;\n\x13sharedFolderAddTeam\x18\r \x03(\x0b\x32\x1e.Folder.SharedFolderUpdateTeam\x12\x42\n\x18sharedFolderUpdateRecord\x18\x0e \x03(\x0b\x32 .Folder.SharedFolderUpdateRecord\x12>\n\x16sharedFolderUpdateUser\x18\x0f \x03(\x0b\x32\x1e.Folder.SharedFolderUpdateUser\x12>\n\x16sharedFolderUpdateTeam\x18\x10 \x03(\x0b\x32\x1e.Folder.SharedFolderUpdateTeam\x12 \n\x18sharedFolderRemoveRecord\x18\x11 \x03(\x0c\x12\x1e\n\x16sharedFolderRemoveUser\x18\x12 \x03(\t\x12\x1e\n\x16sharedFolderRemoveTeam\x18\x13 \x03(\x0c\x12\x19\n\x11sharedFolderOwner\x18\x14 \x01(\t\"c\n\x1dSharedFolderUpdateV3RequestV2\x12\x42\n\x15sharedFoldersUpdateV3\x18\x01 \x03(\x0b\x32#.Folder.SharedFolderUpdateV3Request\"C\n\x1eSharedFolderUpdateRecordStatus\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x0e\n\x06status\x18\x02 \x01(\t\"@\n\x1cSharedFolderUpdateUserStatus\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\t\"?\n\x1cSharedFolderUpdateTeamStatus\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x0e\n\x06status\x18\x02 \x01(\t\"\x88\x06\n\x1cSharedFolderUpdateV3Response\x12\x10\n\x08revision\x18\x01 \x01(\x03\x12K\n\x1bsharedFolderAddRecordStatus\x18\x02 \x03(\x0b\x32&.Folder.SharedFolderUpdateRecordStatus\x12G\n\x19sharedFolderAddUserStatus\x18\x03 \x03(\x0b\x32$.Folder.SharedFolderUpdateUserStatus\x12G\n\x19sharedFolderAddTeamStatus\x18\x04 \x03(\x0b\x32$.Folder.SharedFolderUpdateTeamStatus\x12N\n\x1esharedFolderUpdateRecordStatus\x18\x05 \x03(\x0b\x32&.Folder.SharedFolderUpdateRecordStatus\x12J\n\x1csharedFolderUpdateUserStatus\x18\x06 \x03(\x0b\x32$.Folder.SharedFolderUpdateUserStatus\x12J\n\x1csharedFolderUpdateTeamStatus\x18\x07 \x03(\x0b\x32$.Folder.SharedFolderUpdateTeamStatus\x12N\n\x1esharedFolderRemoveRecordStatus\x18\x08 \x03(\x0b\x32&.Folder.SharedFolderUpdateRecordStatus\x12J\n\x1csharedFolderRemoveUserStatus\x18\t \x03(\x0b\x32$.Folder.SharedFolderUpdateUserStatus\x12J\n\x1csharedFolderRemoveTeamStatus\x18\n \x03(\x0b\x32$.Folder.SharedFolderUpdateTeamStatus\x12\x17\n\x0fsharedFolderUid\x18\x0c \x01(\x0c\x12\x0e\n\x06status\x18\r \x01(\t\"m\n\x1eSharedFolderUpdateV3ResponseV2\x12K\n\x1dsharedFoldersUpdateV3Response\x18\x01 \x03(\x0b\x32$.Folder.SharedFolderUpdateV3Response\"\xfa\x01\n)GetDeletedSharedFoldersAndRecordsResponse\x12\x32\n\rsharedFolders\x18\x01 \x03(\x0b\x32\x1b.Folder.DeletedSharedFolder\x12>\n\x13sharedFolderRecords\x18\x02 \x03(\x0b\x32!.Folder.DeletedSharedFolderRecord\x12\x34\n\x11\x64\x65letedRecordData\x18\x03 \x03(\x0b\x32\x19.Folder.DeletedRecordData\x12#\n\tusernames\x18\x04 \x03(\x0b\x32\x10.Folder.Username\"\xd1\x01\n\x13\x44\x65letedSharedFolder\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x11\n\tfolderUid\x18\x02 \x01(\x0c\x12\x11\n\tparentUid\x18\x03 \x01(\x0c\x12\x17\n\x0fsharedFolderKey\x18\x04 \x01(\x0c\x12-\n\rfolderKeyType\x18\x05 \x01(\x0e\x32\x16.Records.RecordKeyType\x12\x0c\n\x04\x64\x61ta\x18\x06 \x01(\x0c\x12\x13\n\x0b\x64\x61teDeleted\x18\x07 \x01(\x03\x12\x10\n\x08revision\x18\x08 \x01(\x03\"\x81\x01\n\x19\x44\x65letedSharedFolderRecord\x12\x11\n\tfolderUid\x18\x01 \x01(\x0c\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\x12\x17\n\x0fsharedRecordKey\x18\x03 \x01(\x0c\x12\x13\n\x0b\x64\x61teDeleted\x18\x04 \x01(\x03\x12\x10\n\x08revision\x18\x05 \x01(\x03\"\x85\x01\n\x11\x44\x65letedRecordData\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x10\n\x08ownerUid\x18\x02 \x01(\x0c\x12\x10\n\x08revision\x18\x03 \x01(\x03\x12\x1a\n\x12\x63lientModifiedTime\x18\x04 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x05 \x01(\x0c\x12\x0f\n\x07version\x18\x06 \x01(\x05\"0\n\x08Username\x12\x12\n\naccountUid\x18\x01 \x01(\x0c\x12\x10\n\x08username\x18\x02 \x01(\t\"\x8a\x01\n,RestoreDeletedSharedFoldersAndRecordsRequest\x12,\n\x07\x66olders\x18\x01 \x03(\x0b\x32\x1b.Folder.RestoreSharedObject\x12,\n\x07records\x18\x02 \x03(\x0b\x32\x1b.Folder.RestoreSharedObject\"<\n\x13RestoreSharedObject\x12\x11\n\tfolderUid\x18\x01 \x01(\x0c\x12\x12\n\nrecordUids\x18\x02 \x03(\x0c*\x1a\n\nRecordType\x12\x0c\n\x08password\x10\x00*^\n\nFolderType\x12\x12\n\x0e\x64\x65\x66\x61ult_folder\x10\x00\x12\x0f\n\x0buser_folder\x10\x01\x12\x11\n\rshared_folder\x10\x02\x12\x18\n\x14shared_folder_folder\x10\x03*V\n\x10\x45ncryptedKeyType\x12\n\n\x06no_key\x10\x00\x12\x19\n\x15\x65ncrypted_by_data_key\x10\x01\x12\x1b\n\x17\x65ncrypted_by_public_key\x10\x02*M\n\x0fSetBooleanValue\x12\x15\n\x11\x42OOLEAN_NO_CHANGE\x10\x00\x12\x10\n\x0c\x42OOLEAN_TRUE\x10\x01\x12\x11\n\rBOOLEAN_FALSE\x10\x02\x42\"\n\x18\x63om.keepersecurity.protoB\x06\x46olderb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x66older.proto\x12\x06\x46older\x1a\x0crecord.proto\"\\\n\x10\x45ncryptedDataKey\x12\x14\n\x0c\x65ncryptedKey\x18\x01 \x01(\x0c\x12\x32\n\x10\x65ncryptedKeyType\x18\x02 \x01(\x0e\x32\x18.Folder.EncryptedKeyType\"\x82\x01\n\x16SharedFolderRecordData\x12\x11\n\tfolderUid\x18\x01 \x01(\x0c\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\x12\x0e\n\x06userId\x18\x03 \x01(\x05\x12\x32\n\x10\x65ncryptedDataKey\x18\x04 \x03(\x0b\x32\x18.Folder.EncryptedDataKey\"\\\n\x1aSharedFolderRecordDataList\x12>\n\x16sharedFolderRecordData\x18\x01 \x03(\x0b\x32\x1e.Folder.SharedFolderRecordData\"_\n\x15SharedFolderRecordFix\x12\x11\n\tfolderUid\x18\x01 \x01(\x0c\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\x12 \n\x18\x65ncryptedRecordFolderKey\x18\x03 \x01(\x0c\"Y\n\x19SharedFolderRecordFixList\x12<\n\x15sharedFolderRecordFix\x18\x01 \x03(\x0b\x32\x1d.Folder.SharedFolderRecordFix\"\xa2\x02\n\rRecordRequest\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12&\n\nrecordType\x18\x02 \x01(\x0e\x32\x12.Folder.RecordType\x12\x12\n\nrecordData\x18\x03 \x01(\x0c\x12\x1a\n\x12\x65ncryptedRecordKey\x18\x04 \x01(\x0c\x12&\n\nfolderType\x18\x05 \x01(\x0e\x32\x12.Folder.FolderType\x12\x12\n\nhowLongAgo\x18\x06 \x01(\x03\x12\x11\n\tfolderUid\x18\x07 \x01(\x0c\x12 \n\x18\x65ncryptedRecordFolderKey\x18\x08 \x01(\x0c\x12\r\n\x05\x65xtra\x18\t \x01(\x0c\x12\x15\n\rnonSharedData\x18\n \x01(\x0c\x12\x0f\n\x07\x66ileIds\x18\x0b \x03(\x03\"E\n\x0eRecordResponse\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x10\n\x08revision\x18\x02 \x01(\x03\x12\x0e\n\x06status\x18\x03 \x01(\t\"\x80\x01\n\x12SharedFolderFields\x12\x1b\n\x13\x65ncryptedFolderName\x18\x01 \x01(\x0c\x12\x13\n\x0bmanageUsers\x18\x02 \x01(\x08\x12\x15\n\rmanageRecords\x18\x03 \x01(\x08\x12\x0f\n\x07\x63\x61nEdit\x18\x04 \x01(\x08\x12\x10\n\x08\x63\x61nShare\x18\x05 \x01(\x08\"3\n\x18SharedFolderFolderFields\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\"\x8f\x02\n\rFolderRequest\x12\x11\n\tfolderUid\x18\x01 \x01(\x0c\x12&\n\nfolderType\x18\x02 \x01(\x0e\x32\x12.Folder.FolderType\x12\x17\n\x0fparentFolderUid\x18\x03 \x01(\x0c\x12\x12\n\nfolderData\x18\x04 \x01(\x0c\x12\x1a\n\x12\x65ncryptedFolderKey\x18\x05 \x01(\x0c\x12\x36\n\x12sharedFolderFields\x18\x06 \x01(\x0b\x32\x1a.Folder.SharedFolderFields\x12\x42\n\x18sharedFolderFolderFields\x18\x07 \x01(\x0b\x32 .Folder.SharedFolderFolderFields\"E\n\x0e\x46olderResponse\x12\x11\n\tfolderUid\x18\x01 \x01(\x0c\x12\x10\n\x08revision\x18\x02 \x01(\x03\x12\x0e\n\x06status\x18\x03 \x01(\t\"w\n\x19ImportFolderRecordRequest\x12,\n\rfolderRequest\x18\x01 \x03(\x0b\x32\x15.Folder.FolderRequest\x12,\n\rrecordRequest\x18\x02 \x03(\x0b\x32\x15.Folder.RecordRequest\"|\n\x1aImportFolderRecordResponse\x12.\n\x0e\x66olderResponse\x18\x01 \x03(\x0b\x32\x16.Folder.FolderResponse\x12.\n\x0erecordResponse\x18\x02 \x03(\x0b\x32\x16.Folder.RecordResponse\"\xad\x02\n\x18SharedFolderUpdateRecord\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x17\n\x0fsharedFolderUid\x18\x02 \x01(\x0c\x12\x0f\n\x07teamUid\x18\x03 \x01(\x0c\x12(\n\x07\x63\x61nEdit\x18\x04 \x01(\x0e\x32\x17.Folder.SetBooleanValue\x12)\n\x08\x63\x61nShare\x18\x05 \x01(\x0e\x32\x17.Folder.SetBooleanValue\x12\x1a\n\x12\x65ncryptedRecordKey\x18\x06 \x01(\x0c\x12\x10\n\x08revision\x18\x07 \x01(\x05\x12\x12\n\nexpiration\x18\x08 \x01(\x12\x12=\n\x15timerNotificationType\x18\t \x01(\x0e\x32\x1e.Records.TimerNotificationType\"\xb0\x02\n\x16SharedFolderUpdateUser\x12\x10\n\x08username\x18\x01 \x01(\t\x12,\n\x0bmanageUsers\x18\x02 \x01(\x0e\x32\x17.Folder.SetBooleanValue\x12.\n\rmanageRecords\x18\x03 \x01(\x0e\x32\x17.Folder.SetBooleanValue\x12\x1b\n\x0fsharedFolderKey\x18\x04 \x01(\x0c\x42\x02\x18\x01\x12\x12\n\nexpiration\x18\x05 \x01(\x12\x12=\n\x15timerNotificationType\x18\x06 \x01(\x0e\x32\x1e.Records.TimerNotificationType\x12\x36\n\x14typedSharedFolderKey\x18\x07 \x01(\x0b\x32\x18.Folder.EncryptedDataKey\"\xfd\x01\n\x16SharedFolderUpdateTeam\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x13\n\x0bmanageUsers\x18\x02 \x01(\x08\x12\x15\n\rmanageRecords\x18\x03 \x01(\x08\x12\x1b\n\x0fsharedFolderKey\x18\x04 \x01(\x0c\x42\x02\x18\x01\x12\x12\n\nexpiration\x18\x05 \x01(\x12\x12=\n\x15timerNotificationType\x18\x06 \x01(\x0e\x32\x1e.Records.TimerNotificationType\x12\x36\n\x14typedSharedFolderKey\x18\x07 \x01(\x0b\x32\x18.Folder.EncryptedDataKey\"\x8e\x07\n\x1bSharedFolderUpdateV3Request\x12,\n$sharedFolderUpdateOperation_dont_use\x18\x01 \x01(\x05\x12\x17\n\x0fsharedFolderUid\x18\x02 \x01(\x0c\x12!\n\x19\x65ncryptedSharedFolderName\x18\x03 \x01(\x0c\x12\x10\n\x08revision\x18\x04 \x01(\x03\x12\x13\n\x0b\x66orceUpdate\x18\x05 \x01(\x08\x12\x13\n\x0b\x66romTeamUid\x18\x06 \x01(\x0c\x12\x33\n\x12\x64\x65\x66\x61ultManageUsers\x18\x07 \x01(\x0e\x32\x17.Folder.SetBooleanValue\x12\x35\n\x14\x64\x65\x66\x61ultManageRecords\x18\x08 \x01(\x0e\x32\x17.Folder.SetBooleanValue\x12/\n\x0e\x64\x65\x66\x61ultCanEdit\x18\t \x01(\x0e\x32\x17.Folder.SetBooleanValue\x12\x30\n\x0f\x64\x65\x66\x61ultCanShare\x18\n \x01(\x0e\x32\x17.Folder.SetBooleanValue\x12?\n\x15sharedFolderAddRecord\x18\x0b \x03(\x0b\x32 .Folder.SharedFolderUpdateRecord\x12;\n\x13sharedFolderAddUser\x18\x0c \x03(\x0b\x32\x1e.Folder.SharedFolderUpdateUser\x12;\n\x13sharedFolderAddTeam\x18\r \x03(\x0b\x32\x1e.Folder.SharedFolderUpdateTeam\x12\x42\n\x18sharedFolderUpdateRecord\x18\x0e \x03(\x0b\x32 .Folder.SharedFolderUpdateRecord\x12>\n\x16sharedFolderUpdateUser\x18\x0f \x03(\x0b\x32\x1e.Folder.SharedFolderUpdateUser\x12>\n\x16sharedFolderUpdateTeam\x18\x10 \x03(\x0b\x32\x1e.Folder.SharedFolderUpdateTeam\x12 \n\x18sharedFolderRemoveRecord\x18\x11 \x03(\x0c\x12\x1e\n\x16sharedFolderRemoveUser\x18\x12 \x03(\t\x12\x1e\n\x16sharedFolderRemoveTeam\x18\x13 \x03(\x0c\x12\x19\n\x11sharedFolderOwner\x18\x14 \x01(\t\"c\n\x1dSharedFolderUpdateV3RequestV2\x12\x42\n\x15sharedFoldersUpdateV3\x18\x01 \x03(\x0b\x32#.Folder.SharedFolderUpdateV3Request\"C\n\x1eSharedFolderUpdateRecordStatus\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x0e\n\x06status\x18\x02 \x01(\t\"@\n\x1cSharedFolderUpdateUserStatus\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\t\"?\n\x1cSharedFolderUpdateTeamStatus\x12\x0f\n\x07teamUid\x18\x01 \x01(\x0c\x12\x0e\n\x06status\x18\x02 \x01(\t\"\x88\x06\n\x1cSharedFolderUpdateV3Response\x12\x10\n\x08revision\x18\x01 \x01(\x03\x12K\n\x1bsharedFolderAddRecordStatus\x18\x02 \x03(\x0b\x32&.Folder.SharedFolderUpdateRecordStatus\x12G\n\x19sharedFolderAddUserStatus\x18\x03 \x03(\x0b\x32$.Folder.SharedFolderUpdateUserStatus\x12G\n\x19sharedFolderAddTeamStatus\x18\x04 \x03(\x0b\x32$.Folder.SharedFolderUpdateTeamStatus\x12N\n\x1esharedFolderUpdateRecordStatus\x18\x05 \x03(\x0b\x32&.Folder.SharedFolderUpdateRecordStatus\x12J\n\x1csharedFolderUpdateUserStatus\x18\x06 \x03(\x0b\x32$.Folder.SharedFolderUpdateUserStatus\x12J\n\x1csharedFolderUpdateTeamStatus\x18\x07 \x03(\x0b\x32$.Folder.SharedFolderUpdateTeamStatus\x12N\n\x1esharedFolderRemoveRecordStatus\x18\x08 \x03(\x0b\x32&.Folder.SharedFolderUpdateRecordStatus\x12J\n\x1csharedFolderRemoveUserStatus\x18\t \x03(\x0b\x32$.Folder.SharedFolderUpdateUserStatus\x12J\n\x1csharedFolderRemoveTeamStatus\x18\n \x03(\x0b\x32$.Folder.SharedFolderUpdateTeamStatus\x12\x17\n\x0fsharedFolderUid\x18\x0c \x01(\x0c\x12\x0e\n\x06status\x18\r \x01(\t\"m\n\x1eSharedFolderUpdateV3ResponseV2\x12K\n\x1dsharedFoldersUpdateV3Response\x18\x01 \x03(\x0b\x32$.Folder.SharedFolderUpdateV3Response\"\xfa\x01\n)GetDeletedSharedFoldersAndRecordsResponse\x12\x32\n\rsharedFolders\x18\x01 \x03(\x0b\x32\x1b.Folder.DeletedSharedFolder\x12>\n\x13sharedFolderRecords\x18\x02 \x03(\x0b\x32!.Folder.DeletedSharedFolderRecord\x12\x34\n\x11\x64\x65letedRecordData\x18\x03 \x03(\x0b\x32\x19.Folder.DeletedRecordData\x12#\n\tusernames\x18\x04 \x03(\x0b\x32\x10.Folder.Username\"\xd1\x01\n\x13\x44\x65letedSharedFolder\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x11\n\tfolderUid\x18\x02 \x01(\x0c\x12\x11\n\tparentUid\x18\x03 \x01(\x0c\x12\x17\n\x0fsharedFolderKey\x18\x04 \x01(\x0c\x12-\n\rfolderKeyType\x18\x05 \x01(\x0e\x32\x16.Records.RecordKeyType\x12\x0c\n\x04\x64\x61ta\x18\x06 \x01(\x0c\x12\x13\n\x0b\x64\x61teDeleted\x18\x07 \x01(\x03\x12\x10\n\x08revision\x18\x08 \x01(\x03\"\x81\x01\n\x19\x44\x65letedSharedFolderRecord\x12\x11\n\tfolderUid\x18\x01 \x01(\x0c\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\x12\x17\n\x0fsharedRecordKey\x18\x03 \x01(\x0c\x12\x13\n\x0b\x64\x61teDeleted\x18\x04 \x01(\x03\x12\x10\n\x08revision\x18\x05 \x01(\x03\"\x85\x01\n\x11\x44\x65letedRecordData\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x10\n\x08ownerUid\x18\x02 \x01(\x0c\x12\x10\n\x08revision\x18\x03 \x01(\x03\x12\x1a\n\x12\x63lientModifiedTime\x18\x04 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x05 \x01(\x0c\x12\x0f\n\x07version\x18\x06 \x01(\x05\"0\n\x08Username\x12\x12\n\naccountUid\x18\x01 \x01(\x0c\x12\x10\n\x08username\x18\x02 \x01(\t\"\x8a\x01\n,RestoreDeletedSharedFoldersAndRecordsRequest\x12,\n\x07\x66olders\x18\x01 \x03(\x0b\x32\x1b.Folder.RestoreSharedObject\x12,\n\x07records\x18\x02 \x03(\x0b\x32\x1b.Folder.RestoreSharedObject\"<\n\x13RestoreSharedObject\x12\x11\n\tfolderUid\x18\x01 \x01(\x0c\x12\x12\n\nrecordUids\x18\x02 \x03(\x0c*\x1a\n\nRecordType\x12\x0c\n\x08password\x10\x00*^\n\nFolderType\x12\x12\n\x0e\x64\x65\x66\x61ult_folder\x10\x00\x12\x0f\n\x0buser_folder\x10\x01\x12\x11\n\rshared_folder\x10\x02\x12\x18\n\x14shared_folder_folder\x10\x03*\x96\x01\n\x10\x45ncryptedKeyType\x12\n\n\x06no_key\x10\x00\x12\x19\n\x15\x65ncrypted_by_data_key\x10\x01\x12\x1b\n\x17\x65ncrypted_by_public_key\x10\x02\x12\x1d\n\x19\x65ncrypted_by_data_key_gcm\x10\x03\x12\x1f\n\x1b\x65ncrypted_by_public_key_ecc\x10\x04*M\n\x0fSetBooleanValue\x12\x15\n\x11\x42OOLEAN_NO_CHANGE\x10\x00\x12\x10\n\x0c\x42OOLEAN_TRUE\x10\x01\x12\x11\n\rBOOLEAN_FALSE\x10\x02\x42\"\n\x18\x63om.keepersecurity.protoB\x06\x46olderb\x06proto3') _RECORDTYPE = DESCRIPTOR.enum_types_by_name['RecordType'] RecordType = enum_type_wrapper.EnumTypeWrapper(_RECORDTYPE) @@ -34,6 +34,8 @@ no_key = 0 encrypted_by_data_key = 1 encrypted_by_public_key = 2 +encrypted_by_data_key_gcm = 3 +encrypted_by_public_key_ecc = 4 BOOLEAN_NO_CHANGE = 0 BOOLEAN_TRUE = 1 BOOLEAN_FALSE = 2 @@ -283,14 +285,18 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\030com.keepersecurity.protoB\006Folder' - _RECORDTYPE._serialized_start=5524 - _RECORDTYPE._serialized_end=5550 - _FOLDERTYPE._serialized_start=5552 - _FOLDERTYPE._serialized_end=5646 - _ENCRYPTEDKEYTYPE._serialized_start=5648 - _ENCRYPTEDKEYTYPE._serialized_end=5734 - _SETBOOLEANVALUE._serialized_start=5736 - _SETBOOLEANVALUE._serialized_end=5813 + _SHAREDFOLDERUPDATEUSER.fields_by_name['sharedFolderKey']._options = None + _SHAREDFOLDERUPDATEUSER.fields_by_name['sharedFolderKey']._serialized_options = b'\030\001' + _SHAREDFOLDERUPDATETEAM.fields_by_name['sharedFolderKey']._options = None + _SHAREDFOLDERUPDATETEAM.fields_by_name['sharedFolderKey']._serialized_options = b'\030\001' + _RECORDTYPE._serialized_start=5644 + _RECORDTYPE._serialized_end=5670 + _FOLDERTYPE._serialized_start=5672 + _FOLDERTYPE._serialized_end=5766 + _ENCRYPTEDKEYTYPE._serialized_start=5769 + _ENCRYPTEDKEYTYPE._serialized_end=5919 + _SETBOOLEANVALUE._serialized_start=5921 + _SETBOOLEANVALUE._serialized_end=5998 _ENCRYPTEDDATAKEY._serialized_start=38 _ENCRYPTEDDATAKEY._serialized_end=130 _SHAREDFOLDERRECORDDATA._serialized_start=133 @@ -320,35 +326,35 @@ _SHAREDFOLDERUPDATERECORD._serialized_start=1688 _SHAREDFOLDERUPDATERECORD._serialized_end=1989 _SHAREDFOLDERUPDATEUSER._serialized_start=1992 - _SHAREDFOLDERUPDATEUSER._serialized_end=2236 - _SHAREDFOLDERUPDATETEAM._serialized_start=2239 - _SHAREDFOLDERUPDATETEAM._serialized_end=2432 - _SHAREDFOLDERUPDATEV3REQUEST._serialized_start=2435 - _SHAREDFOLDERUPDATEV3REQUEST._serialized_end=3345 - _SHAREDFOLDERUPDATEV3REQUESTV2._serialized_start=3347 - _SHAREDFOLDERUPDATEV3REQUESTV2._serialized_end=3446 - _SHAREDFOLDERUPDATERECORDSTATUS._serialized_start=3448 - _SHAREDFOLDERUPDATERECORDSTATUS._serialized_end=3515 - _SHAREDFOLDERUPDATEUSERSTATUS._serialized_start=3517 - _SHAREDFOLDERUPDATEUSERSTATUS._serialized_end=3581 - _SHAREDFOLDERUPDATETEAMSTATUS._serialized_start=3583 - _SHAREDFOLDERUPDATETEAMSTATUS._serialized_end=3646 - _SHAREDFOLDERUPDATEV3RESPONSE._serialized_start=3649 - _SHAREDFOLDERUPDATEV3RESPONSE._serialized_end=4425 - _SHAREDFOLDERUPDATEV3RESPONSEV2._serialized_start=4427 - _SHAREDFOLDERUPDATEV3RESPONSEV2._serialized_end=4536 - _GETDELETEDSHAREDFOLDERSANDRECORDSRESPONSE._serialized_start=4539 - _GETDELETEDSHAREDFOLDERSANDRECORDSRESPONSE._serialized_end=4789 - _DELETEDSHAREDFOLDER._serialized_start=4792 - _DELETEDSHAREDFOLDER._serialized_end=5001 - _DELETEDSHAREDFOLDERRECORD._serialized_start=5004 - _DELETEDSHAREDFOLDERRECORD._serialized_end=5133 - _DELETEDRECORDDATA._serialized_start=5136 - _DELETEDRECORDDATA._serialized_end=5269 - _USERNAME._serialized_start=5271 - _USERNAME._serialized_end=5319 - _RESTOREDELETEDSHAREDFOLDERSANDRECORDSREQUEST._serialized_start=5322 - _RESTOREDELETEDSHAREDFOLDERSANDRECORDSREQUEST._serialized_end=5460 - _RESTORESHAREDOBJECT._serialized_start=5462 - _RESTORESHAREDOBJECT._serialized_end=5522 + _SHAREDFOLDERUPDATEUSER._serialized_end=2296 + _SHAREDFOLDERUPDATETEAM._serialized_start=2299 + _SHAREDFOLDERUPDATETEAM._serialized_end=2552 + _SHAREDFOLDERUPDATEV3REQUEST._serialized_start=2555 + _SHAREDFOLDERUPDATEV3REQUEST._serialized_end=3465 + _SHAREDFOLDERUPDATEV3REQUESTV2._serialized_start=3467 + _SHAREDFOLDERUPDATEV3REQUESTV2._serialized_end=3566 + _SHAREDFOLDERUPDATERECORDSTATUS._serialized_start=3568 + _SHAREDFOLDERUPDATERECORDSTATUS._serialized_end=3635 + _SHAREDFOLDERUPDATEUSERSTATUS._serialized_start=3637 + _SHAREDFOLDERUPDATEUSERSTATUS._serialized_end=3701 + _SHAREDFOLDERUPDATETEAMSTATUS._serialized_start=3703 + _SHAREDFOLDERUPDATETEAMSTATUS._serialized_end=3766 + _SHAREDFOLDERUPDATEV3RESPONSE._serialized_start=3769 + _SHAREDFOLDERUPDATEV3RESPONSE._serialized_end=4545 + _SHAREDFOLDERUPDATEV3RESPONSEV2._serialized_start=4547 + _SHAREDFOLDERUPDATEV3RESPONSEV2._serialized_end=4656 + _GETDELETEDSHAREDFOLDERSANDRECORDSRESPONSE._serialized_start=4659 + _GETDELETEDSHAREDFOLDERSANDRECORDSRESPONSE._serialized_end=4909 + _DELETEDSHAREDFOLDER._serialized_start=4912 + _DELETEDSHAREDFOLDER._serialized_end=5121 + _DELETEDSHAREDFOLDERRECORD._serialized_start=5124 + _DELETEDSHAREDFOLDERRECORD._serialized_end=5253 + _DELETEDRECORDDATA._serialized_start=5256 + _DELETEDRECORDDATA._serialized_end=5389 + _USERNAME._serialized_start=5391 + _USERNAME._serialized_end=5439 + _RESTOREDELETEDSHAREDFOLDERSANDRECORDSREQUEST._serialized_start=5442 + _RESTOREDELETEDSHAREDFOLDERSANDRECORDSREQUEST._serialized_end=5580 + _RESTORESHAREDOBJECT._serialized_start=5582 + _RESTORESHAREDOBJECT._serialized_end=5642 # @@protoc_insertion_point(module_scope) diff --git a/keepercommander/proto/pam_pb2.py b/keepercommander/proto/pam_pb2.py index 47f172e86..c661072ac 100644 --- a/keepercommander/proto/pam_pb2.py +++ b/keepercommander/proto/pam_pb2.py @@ -17,18 +17,14 @@ from . import record_pb2 as record__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\tpam.proto\x12\x03PAM\x1a\x10\x65nterprise.proto\x1a\x0crecord.proto\"\x83\x01\n\x13PAMRotationSchedule\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x18\n\x10\x63onfigurationUid\x18\x02 \x01(\x0c\x12\x15\n\rcontrollerUid\x18\x03 \x01(\x0c\x12\x14\n\x0cscheduleData\x18\x04 \x01(\t\x12\x12\n\nnoSchedule\x18\x05 \x01(\x08\"K\n\x1cPAMRotationSchedulesResponse\x12+\n\tschedules\x18\x01 \x03(\x0b\x32\x18.PAM.PAMRotationSchedule\"\x94\x01\n\x13PAMOnlineController\x12\x15\n\rcontrollerUid\x18\x01 \x01(\x0c\x12\x13\n\x0b\x63onnectedOn\x18\x02 \x01(\x03\x12\x11\n\tipAddress\x18\x03 \x01(\t\x12\x0f\n\x07version\x18\x04 \x01(\t\x12-\n\x0b\x63onnections\x18\x05 \x03(\x0b\x32\x18.PAM.PAMWebRtcConnection\"\x8d\x01\n\x13PAMWebRtcConnection\x12\x15\n\rconnectionUid\x18\x01 \x01(\x0c\x12\'\n\x04type\x18\x02 \x01(\x0e\x32\x19.PAM.WebRtcConnectionType\x12\x11\n\trecordUid\x18\x03 \x01(\x0c\x12\x10\n\x08userName\x18\x04 \x01(\t\x12\x11\n\tstartedOn\x18\x05 \x01(\x03\"Y\n\x14PAMOnlineControllers\x12\x12\n\ndeprecated\x18\x01 \x03(\x0c\x12-\n\x0b\x63ontrollers\x18\x02 \x03(\x0b\x32\x18.PAM.PAMOnlineController\"9\n\x10PAMRotateRequest\x12\x12\n\nrequestUid\x18\x01 \x01(\x0c\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\"A\n\x16PAMControllersResponse\x12\'\n\x0b\x63ontrollers\x18\x01 \x03(\x0b\x32\x12.PAM.PAMController\"=\n\x13PAMRemoveController\x12\x15\n\rcontrollerUid\x18\x01 \x01(\x0c\x12\x0f\n\x07message\x18\x02 \x01(\t\"L\n\x1bPAMRemoveControllerResponse\x12-\n\x0b\x63ontrollers\x18\x01 \x03(\x0b\x32\x18.PAM.PAMRemoveController\"=\n\x10PAMModifyRequest\x12)\n\noperations\x18\x01 \x03(\x0b\x32\x15.PAM.PAMDataOperation\"\x98\x01\n\x10PAMDataOperation\x12,\n\roperationType\x18\x01 \x01(\x0e\x32\x15.PAM.PAMOperationType\x12\x30\n\rconfiguration\x18\x02 \x01(\x0b\x32\x19.PAM.PAMConfigurationData\x12$\n\x07\x65lement\x18\x03 \x01(\x0b\x32\x13.PAM.PAMElementData\"e\n\x14PAMConfigurationData\x12\x18\n\x10\x63onfigurationUid\x18\x01 \x01(\x0c\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x15\n\rcontrollerUid\x18\x03 \x01(\x0c\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\"E\n\x0ePAMElementData\x12\x12\n\nelementUid\x18\x01 \x01(\x0c\x12\x11\n\tparentUid\x18\x02 \x01(\x0c\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"m\n\x19PAMElementOperationResult\x12\x12\n\nelementUid\x18\x01 \x01(\x0c\x12+\n\x06result\x18\x02 \x01(\x0e\x32\x1b.PAM.PAMOperationResultType\x12\x0f\n\x07message\x18\x03 \x01(\t\"B\n\x0fPAMModifyResult\x12/\n\x07results\x18\x01 \x03(\x0b\x32\x1e.PAM.PAMElementOperationResult\"x\n\nPAMElement\x12\x12\n\nelementUid\x18\x01 \x01(\x0c\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x0f\n\x07\x63reated\x18\x03 \x01(\x03\x12\x14\n\x0clastModified\x18\x04 \x01(\x03\x12!\n\x08\x63hildren\x18\x05 \x03(\x0b\x32\x0f.PAM.PAMElement\"#\n\x14PAMGenericUidRequest\x12\x0b\n\x03uid\x18\x01 \x01(\x0c\"%\n\x15PAMGenericUidsRequest\x12\x0c\n\x04uids\x18\x01 \x03(\x0c\"\xab\x01\n\x10PAMConfiguration\x12\x18\n\x10\x63onfigurationUid\x18\x01 \x01(\x0c\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x15\n\rcontrollerUid\x18\x03 \x01(\x0c\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\x0f\n\x07\x63reated\x18\x05 \x01(\x03\x12\x14\n\x0clastModified\x18\x06 \x01(\x03\x12!\n\x08\x63hildren\x18\x07 \x03(\x0b\x32\x0f.PAM.PAMElement\"B\n\x11PAMConfigurations\x12-\n\x0e\x63onfigurations\x18\x01 \x03(\x0b\x32\x15.PAM.PAMConfiguration\"\xff\x01\n\rPAMController\x12\x15\n\rcontrollerUid\x18\x01 \x01(\x0c\x12\x16\n\x0e\x63ontrollerName\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65viceToken\x18\x03 \x01(\t\x12\x12\n\ndeviceName\x18\x04 \x01(\t\x12\x0e\n\x06nodeId\x18\x05 \x01(\x03\x12\x0f\n\x07\x63reated\x18\x06 \x01(\x03\x12\x14\n\x0clastModified\x18\x07 \x01(\x03\x12\x16\n\x0e\x61pplicationUid\x18\x08 \x01(\x0c\x12\x30\n\rappClientType\x18\t \x01(\x0e\x32\x19.Enterprise.AppClientType\x12\x15\n\risInitialized\x18\n \x01(\x08\"%\n\x12\x43ontrollerResponse\x12\x0f\n\x07payload\x18\x01 \x01(\t\"M\n\x1aPAMConfigurationController\x12\x18\n\x10\x63onfigurationUid\x18\x01 \x01(\x0c\x12\x15\n\rcontrollerUid\x18\x02 \x01(\x0c\"\xa3\x01\n\x17\x43onfigurationAddRequest\x12\x18\n\x10\x63onfigurationUid\x18\x01 \x01(\x0c\x12\x11\n\trecordKey\x18\x02 \x01(\x0c\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\x12(\n\x0brecordLinks\x18\x04 \x03(\x0b\x32\x13.Records.RecordLink\x12#\n\x05\x61udit\x18\x05 \x01(\x0b\x32\x14.Records.RecordAudit\"6\n\x10RelayAccessCreds\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x10\n\x08password\x18\x02 \x01(\t*2\n\x14WebRtcConnectionType\x12\x0e\n\nCONNECTION\x10\x00\x12\n\n\x06TUNNEL\x10\x01*@\n\x10PAMOperationType\x12\x07\n\x03\x41\x44\x44\x10\x00\x12\n\n\x06UPDATE\x10\x01\x12\x0b\n\x07REPLACE\x10\x02\x12\n\n\x06\x44\x45LETE\x10\x03*p\n\x16PAMOperationResultType\x12\x0f\n\x0bPOT_SUCCESS\x10\x00\x12\x15\n\x11POT_UNKNOWN_ERROR\x10\x01\x12\x16\n\x12POT_ALREADY_EXISTS\x10\x02\x12\x16\n\x12POT_DOES_NOT_EXIST\x10\x03*Y\n\x15\x43ontrollerMessageType\x12\x0f\n\x0b\x43MT_GENERAL\x10\x00\x12\x0e\n\nCMT_ROTATE\x10\x01\x12\x0e\n\nCMT_STREAM\x10\x02\x12\x0f\n\x0b\x43MT_CONNECT\x10\x03\x42\x1f\n\x18\x63om.keepersecurity.protoB\x03PAMb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\tpam.proto\x12\x03PAM\x1a\x10\x65nterprise.proto\x1a\x0crecord.proto\"\x83\x01\n\x13PAMRotationSchedule\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x18\n\x10\x63onfigurationUid\x18\x02 \x01(\x0c\x12\x15\n\rcontrollerUid\x18\x03 \x01(\x0c\x12\x14\n\x0cscheduleData\x18\x04 \x01(\t\x12\x12\n\nnoSchedule\x18\x05 \x01(\x08\"K\n\x1cPAMRotationSchedulesResponse\x12+\n\tschedules\x18\x01 \x03(\x0b\x32\x18.PAM.PAMRotationSchedule\"e\n\x13PAMOnlineController\x12\x15\n\rcontrollerUid\x18\x01 \x01(\x0c\x12\x13\n\x0b\x63onnectedOn\x18\x02 \x01(\x03\x12\x11\n\tipAddress\x18\x03 \x01(\t\x12\x0f\n\x07version\x18\x04 \x01(\t\"Y\n\x14PAMOnlineControllers\x12\x12\n\ndeprecated\x18\x01 \x03(\x0c\x12-\n\x0b\x63ontrollers\x18\x02 \x03(\x0b\x32\x18.PAM.PAMOnlineController\"9\n\x10PAMRotateRequest\x12\x12\n\nrequestUid\x18\x01 \x01(\x0c\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\"A\n\x16PAMControllersResponse\x12\'\n\x0b\x63ontrollers\x18\x01 \x03(\x0b\x32\x12.PAM.PAMController\"=\n\x13PAMRemoveController\x12\x15\n\rcontrollerUid\x18\x01 \x01(\x0c\x12\x0f\n\x07message\x18\x02 \x01(\t\"L\n\x1bPAMRemoveControllerResponse\x12-\n\x0b\x63ontrollers\x18\x01 \x03(\x0b\x32\x18.PAM.PAMRemoveController\"=\n\x10PAMModifyRequest\x12)\n\noperations\x18\x01 \x03(\x0b\x32\x15.PAM.PAMDataOperation\"\x98\x01\n\x10PAMDataOperation\x12,\n\roperationType\x18\x01 \x01(\x0e\x32\x15.PAM.PAMOperationType\x12\x30\n\rconfiguration\x18\x02 \x01(\x0b\x32\x19.PAM.PAMConfigurationData\x12$\n\x07\x65lement\x18\x03 \x01(\x0b\x32\x13.PAM.PAMElementData\"e\n\x14PAMConfigurationData\x12\x18\n\x10\x63onfigurationUid\x18\x01 \x01(\x0c\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x15\n\rcontrollerUid\x18\x03 \x01(\x0c\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\"E\n\x0ePAMElementData\x12\x12\n\nelementUid\x18\x01 \x01(\x0c\x12\x11\n\tparentUid\x18\x02 \x01(\x0c\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"m\n\x19PAMElementOperationResult\x12\x12\n\nelementUid\x18\x01 \x01(\x0c\x12+\n\x06result\x18\x02 \x01(\x0e\x32\x1b.PAM.PAMOperationResultType\x12\x0f\n\x07message\x18\x03 \x01(\t\"B\n\x0fPAMModifyResult\x12/\n\x07results\x18\x01 \x03(\x0b\x32\x1e.PAM.PAMElementOperationResult\"x\n\nPAMElement\x12\x12\n\nelementUid\x18\x01 \x01(\x0c\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x0f\n\x07\x63reated\x18\x03 \x01(\x03\x12\x14\n\x0clastModified\x18\x04 \x01(\x03\x12!\n\x08\x63hildren\x18\x05 \x03(\x0b\x32\x0f.PAM.PAMElement\"#\n\x14PAMGenericUidRequest\x12\x0b\n\x03uid\x18\x01 \x01(\x0c\"%\n\x15PAMGenericUidsRequest\x12\x0c\n\x04uids\x18\x01 \x03(\x0c\"\xab\x01\n\x10PAMConfiguration\x12\x18\n\x10\x63onfigurationUid\x18\x01 \x01(\x0c\x12\x0e\n\x06nodeId\x18\x02 \x01(\x03\x12\x15\n\rcontrollerUid\x18\x03 \x01(\x0c\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\x0f\n\x07\x63reated\x18\x05 \x01(\x03\x12\x14\n\x0clastModified\x18\x06 \x01(\x03\x12!\n\x08\x63hildren\x18\x07 \x03(\x0b\x32\x0f.PAM.PAMElement\"B\n\x11PAMConfigurations\x12-\n\x0e\x63onfigurations\x18\x01 \x03(\x0b\x32\x15.PAM.PAMConfiguration\"\xff\x01\n\rPAMController\x12\x15\n\rcontrollerUid\x18\x01 \x01(\x0c\x12\x16\n\x0e\x63ontrollerName\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65viceToken\x18\x03 \x01(\t\x12\x12\n\ndeviceName\x18\x04 \x01(\t\x12\x0e\n\x06nodeId\x18\x05 \x01(\x03\x12\x0f\n\x07\x63reated\x18\x06 \x01(\x03\x12\x14\n\x0clastModified\x18\x07 \x01(\x03\x12\x16\n\x0e\x61pplicationUid\x18\x08 \x01(\x0c\x12\x30\n\rappClientType\x18\t \x01(\x0e\x32\x19.Enterprise.AppClientType\x12\x15\n\risInitialized\x18\n \x01(\x08\"%\n\x12\x43ontrollerResponse\x12\x0f\n\x07payload\x18\x01 \x01(\t\"M\n\x1aPAMConfigurationController\x12\x18\n\x10\x63onfigurationUid\x18\x01 \x01(\x0c\x12\x15\n\rcontrollerUid\x18\x02 \x01(\x0c\"\xa3\x01\n\x17\x43onfigurationAddRequest\x12\x18\n\x10\x63onfigurationUid\x18\x01 \x01(\x0c\x12\x11\n\trecordKey\x18\x02 \x01(\x0c\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\x12(\n\x0brecordLinks\x18\x04 \x03(\x0b\x32\x13.Records.RecordLink\x12#\n\x05\x61udit\x18\x05 \x01(\x0b\x32\x14.Records.RecordAudit\"6\n\x10RelayAccessCreds\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x10\n\x08password\x18\x02 \x01(\t*@\n\x10PAMOperationType\x12\x07\n\x03\x41\x44\x44\x10\x00\x12\n\n\x06UPDATE\x10\x01\x12\x0b\n\x07REPLACE\x10\x02\x12\n\n\x06\x44\x45LETE\x10\x03*p\n\x16PAMOperationResultType\x12\x0f\n\x0bPOT_SUCCESS\x10\x00\x12\x15\n\x11POT_UNKNOWN_ERROR\x10\x01\x12\x16\n\x12POT_ALREADY_EXISTS\x10\x02\x12\x16\n\x12POT_DOES_NOT_EXIST\x10\x03*H\n\x15\x43ontrollerMessageType\x12\x0f\n\x0b\x43MT_GENERAL\x10\x00\x12\x0e\n\nCMT_ROTATE\x10\x01\x12\x0e\n\nCMT_STREAM\x10\x02\x42\x1f\n\x18\x63om.keepersecurity.protoB\x03PAMb\x06proto3') -_WEBRTCCONNECTIONTYPE = DESCRIPTOR.enum_types_by_name['WebRtcConnectionType'] -WebRtcConnectionType = enum_type_wrapper.EnumTypeWrapper(_WEBRTCCONNECTIONTYPE) _PAMOPERATIONTYPE = DESCRIPTOR.enum_types_by_name['PAMOperationType'] PAMOperationType = enum_type_wrapper.EnumTypeWrapper(_PAMOPERATIONTYPE) _PAMOPERATIONRESULTTYPE = DESCRIPTOR.enum_types_by_name['PAMOperationResultType'] PAMOperationResultType = enum_type_wrapper.EnumTypeWrapper(_PAMOPERATIONRESULTTYPE) _CONTROLLERMESSAGETYPE = DESCRIPTOR.enum_types_by_name['ControllerMessageType'] ControllerMessageType = enum_type_wrapper.EnumTypeWrapper(_CONTROLLERMESSAGETYPE) -CONNECTION = 0 -TUNNEL = 1 ADD = 0 UPDATE = 1 REPLACE = 2 @@ -40,13 +36,11 @@ CMT_GENERAL = 0 CMT_ROTATE = 1 CMT_STREAM = 2 -CMT_CONNECT = 3 _PAMROTATIONSCHEDULE = DESCRIPTOR.message_types_by_name['PAMRotationSchedule'] _PAMROTATIONSCHEDULESRESPONSE = DESCRIPTOR.message_types_by_name['PAMRotationSchedulesResponse'] _PAMONLINECONTROLLER = DESCRIPTOR.message_types_by_name['PAMOnlineController'] -_PAMWEBRTCCONNECTION = DESCRIPTOR.message_types_by_name['PAMWebRtcConnection'] _PAMONLINECONTROLLERS = DESCRIPTOR.message_types_by_name['PAMOnlineControllers'] _PAMROTATEREQUEST = DESCRIPTOR.message_types_by_name['PAMRotateRequest'] _PAMCONTROLLERSRESPONSE = DESCRIPTOR.message_types_by_name['PAMControllersResponse'] @@ -89,13 +83,6 @@ }) _sym_db.RegisterMessage(PAMOnlineController) -PAMWebRtcConnection = _reflection.GeneratedProtocolMessageType('PAMWebRtcConnection', (_message.Message,), { - 'DESCRIPTOR' : _PAMWEBRTCCONNECTION, - '__module__' : 'pam_pb2' - # @@protoc_insertion_point(class_scope:PAM.PAMWebRtcConnection) - }) -_sym_db.RegisterMessage(PAMWebRtcConnection) - PAMOnlineControllers = _reflection.GeneratedProtocolMessageType('PAMOnlineControllers', (_message.Message,), { 'DESCRIPTOR' : _PAMONLINECONTROLLERS, '__module__' : 'pam_pb2' @@ -247,62 +234,58 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\030com.keepersecurity.protoB\003PAM' - _WEBRTCCONNECTIONTYPE._serialized_start=2523 - _WEBRTCCONNECTIONTYPE._serialized_end=2573 - _PAMOPERATIONTYPE._serialized_start=2575 - _PAMOPERATIONTYPE._serialized_end=2639 - _PAMOPERATIONRESULTTYPE._serialized_start=2641 - _PAMOPERATIONRESULTTYPE._serialized_end=2753 - _CONTROLLERMESSAGETYPE._serialized_start=2755 - _CONTROLLERMESSAGETYPE._serialized_end=2844 + _PAMOPERATIONTYPE._serialized_start=2331 + _PAMOPERATIONTYPE._serialized_end=2395 + _PAMOPERATIONRESULTTYPE._serialized_start=2397 + _PAMOPERATIONRESULTTYPE._serialized_end=2509 + _CONTROLLERMESSAGETYPE._serialized_start=2511 + _CONTROLLERMESSAGETYPE._serialized_end=2583 _PAMROTATIONSCHEDULE._serialized_start=51 _PAMROTATIONSCHEDULE._serialized_end=182 _PAMROTATIONSCHEDULESRESPONSE._serialized_start=184 _PAMROTATIONSCHEDULESRESPONSE._serialized_end=259 - _PAMONLINECONTROLLER._serialized_start=262 - _PAMONLINECONTROLLER._serialized_end=410 - _PAMWEBRTCCONNECTION._serialized_start=413 - _PAMWEBRTCCONNECTION._serialized_end=554 - _PAMONLINECONTROLLERS._serialized_start=556 - _PAMONLINECONTROLLERS._serialized_end=645 - _PAMROTATEREQUEST._serialized_start=647 - _PAMROTATEREQUEST._serialized_end=704 - _PAMCONTROLLERSRESPONSE._serialized_start=706 - _PAMCONTROLLERSRESPONSE._serialized_end=771 - _PAMREMOVECONTROLLER._serialized_start=773 - _PAMREMOVECONTROLLER._serialized_end=834 - _PAMREMOVECONTROLLERRESPONSE._serialized_start=836 - _PAMREMOVECONTROLLERRESPONSE._serialized_end=912 - _PAMMODIFYREQUEST._serialized_start=914 - _PAMMODIFYREQUEST._serialized_end=975 - _PAMDATAOPERATION._serialized_start=978 - _PAMDATAOPERATION._serialized_end=1130 - _PAMCONFIGURATIONDATA._serialized_start=1132 - _PAMCONFIGURATIONDATA._serialized_end=1233 - _PAMELEMENTDATA._serialized_start=1235 - _PAMELEMENTDATA._serialized_end=1304 - _PAMELEMENTOPERATIONRESULT._serialized_start=1306 - _PAMELEMENTOPERATIONRESULT._serialized_end=1415 - _PAMMODIFYRESULT._serialized_start=1417 - _PAMMODIFYRESULT._serialized_end=1483 - _PAMELEMENT._serialized_start=1485 - _PAMELEMENT._serialized_end=1605 - _PAMGENERICUIDREQUEST._serialized_start=1607 - _PAMGENERICUIDREQUEST._serialized_end=1642 - _PAMGENERICUIDSREQUEST._serialized_start=1644 - _PAMGENERICUIDSREQUEST._serialized_end=1681 - _PAMCONFIGURATION._serialized_start=1684 - _PAMCONFIGURATION._serialized_end=1855 - _PAMCONFIGURATIONS._serialized_start=1857 - _PAMCONFIGURATIONS._serialized_end=1923 - _PAMCONTROLLER._serialized_start=1926 - _PAMCONTROLLER._serialized_end=2181 - _CONTROLLERRESPONSE._serialized_start=2183 - _CONTROLLERRESPONSE._serialized_end=2220 - _PAMCONFIGURATIONCONTROLLER._serialized_start=2222 - _PAMCONFIGURATIONCONTROLLER._serialized_end=2299 - _CONFIGURATIONADDREQUEST._serialized_start=2302 - _CONFIGURATIONADDREQUEST._serialized_end=2465 - _RELAYACCESSCREDS._serialized_start=2467 - _RELAYACCESSCREDS._serialized_end=2521 + _PAMONLINECONTROLLER._serialized_start=261 + _PAMONLINECONTROLLER._serialized_end=362 + _PAMONLINECONTROLLERS._serialized_start=364 + _PAMONLINECONTROLLERS._serialized_end=453 + _PAMROTATEREQUEST._serialized_start=455 + _PAMROTATEREQUEST._serialized_end=512 + _PAMCONTROLLERSRESPONSE._serialized_start=514 + _PAMCONTROLLERSRESPONSE._serialized_end=579 + _PAMREMOVECONTROLLER._serialized_start=581 + _PAMREMOVECONTROLLER._serialized_end=642 + _PAMREMOVECONTROLLERRESPONSE._serialized_start=644 + _PAMREMOVECONTROLLERRESPONSE._serialized_end=720 + _PAMMODIFYREQUEST._serialized_start=722 + _PAMMODIFYREQUEST._serialized_end=783 + _PAMDATAOPERATION._serialized_start=786 + _PAMDATAOPERATION._serialized_end=938 + _PAMCONFIGURATIONDATA._serialized_start=940 + _PAMCONFIGURATIONDATA._serialized_end=1041 + _PAMELEMENTDATA._serialized_start=1043 + _PAMELEMENTDATA._serialized_end=1112 + _PAMELEMENTOPERATIONRESULT._serialized_start=1114 + _PAMELEMENTOPERATIONRESULT._serialized_end=1223 + _PAMMODIFYRESULT._serialized_start=1225 + _PAMMODIFYRESULT._serialized_end=1291 + _PAMELEMENT._serialized_start=1293 + _PAMELEMENT._serialized_end=1413 + _PAMGENERICUIDREQUEST._serialized_start=1415 + _PAMGENERICUIDREQUEST._serialized_end=1450 + _PAMGENERICUIDSREQUEST._serialized_start=1452 + _PAMGENERICUIDSREQUEST._serialized_end=1489 + _PAMCONFIGURATION._serialized_start=1492 + _PAMCONFIGURATION._serialized_end=1663 + _PAMCONFIGURATIONS._serialized_start=1665 + _PAMCONFIGURATIONS._serialized_end=1731 + _PAMCONTROLLER._serialized_start=1734 + _PAMCONTROLLER._serialized_end=1989 + _CONTROLLERRESPONSE._serialized_start=1991 + _CONTROLLERRESPONSE._serialized_end=2028 + _PAMCONFIGURATIONCONTROLLER._serialized_start=2030 + _PAMCONFIGURATIONCONTROLLER._serialized_end=2107 + _CONFIGURATIONADDREQUEST._serialized_start=2110 + _CONFIGURATIONADDREQUEST._serialized_end=2273 + _RELAYACCESSCREDS._serialized_start=2275 + _RELAYACCESSCREDS._serialized_end=2329 # @@protoc_insertion_point(module_scope) diff --git a/keepercommander/proto/record_pb2.py b/keepercommander/proto/record_pb2.py index 9ed76c051..813f4ea7c 100644 --- a/keepercommander/proto/record_pb2.py +++ b/keepercommander/proto/record_pb2.py @@ -15,7 +15,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0crecord.proto\x12\x07Records\"\\\n\nRecordType\x12\x14\n\x0crecordTypeId\x18\x01 \x01(\x05\x12\x0f\n\x07\x63ontent\x18\x02 \x01(\t\x12\'\n\x05scope\x18\x03 \x01(\x0e\x32\x18.Records.RecordTypeScope\"U\n\x12RecordTypesRequest\x12\x10\n\x08standard\x18\x01 \x01(\x08\x12\x0c\n\x04user\x18\x02 \x01(\x08\x12\x12\n\nenterprise\x18\x03 \x01(\x08\x12\x0b\n\x03pam\x18\x04 \x01(\x08\"\x9c\x01\n\x13RecordTypesResponse\x12(\n\x0brecordTypes\x18\x01 \x03(\x0b\x32\x13.Records.RecordType\x12\x17\n\x0fstandardCounter\x18\x02 \x01(\x05\x12\x13\n\x0buserCounter\x18\x03 \x01(\x05\x12\x19\n\x11\x65nterpriseCounter\x18\x04 \x01(\x05\x12\x12\n\npamCounter\x18\x05 \x01(\x05\"A\n\x18RecordTypeModifyResponse\x12\x14\n\x0crecordTypeId\x18\x01 \x01(\x05\x12\x0f\n\x07\x63ounter\x18\x02 \x01(\x05\"=\n\x11RecordsGetRequest\x12\x13\n\x0brecord_uids\x18\x01 \x03(\x0c\x12\x13\n\x0b\x63lient_time\x18\x02 \x01(\x03\"\xd1\x01\n\x06Record\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12\x12\n\nrecord_key\x18\x02 \x01(\x0c\x12/\n\x0frecord_key_type\x18\x03 \x01(\x0e\x32\x16.Records.RecordKeyType\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\r\n\x05\x65xtra\x18\x05 \x01(\x0c\x12\x0f\n\x07version\x18\x06 \x01(\x05\x12\x1c\n\x14\x63lient_modified_time\x18\x07 \x01(\x03\x12\x10\n\x08revision\x18\x08 \x01(\x03\x12\x10\n\x08\x66ile_ids\x18\t \x03(\x0c\"M\n\x0f\x46olderRecordKey\x12\x12\n\nfolder_uid\x18\x01 \x01(\x0c\x12\x12\n\nrecord_uid\x18\x02 \x01(\x0c\x12\x12\n\nrecord_key\x18\x03 \x01(\x0c\"a\n\x06\x46older\x12\x12\n\nfolder_uid\x18\x01 \x01(\x0c\x12\x12\n\nfolder_key\x18\x02 \x01(\x0c\x12/\n\x0f\x66older_key_type\x18\x03 \x01(\x0e\x32\x16.Records.RecordKeyType\"\x95\x01\n\x04Team\x12\x10\n\x08team_uid\x18\x01 \x01(\x0c\x12\x10\n\x08team_key\x18\x02 \x01(\x0c\x12\x18\n\x10team_private_key\x18\x03 \x01(\x0c\x12-\n\rteam_key_type\x18\x04 \x01(\x0e\x32\x16.Records.RecordKeyType\x12 \n\x07\x66olders\x18\x05 \x03(\x0b\x32\x0f.Records.Folder\"\xac\x01\n\x12RecordsGetResponse\x12 \n\x07records\x18\x01 \x03(\x0b\x32\x0f.Records.Record\x12\x34\n\x12\x66older_record_keys\x18\x02 \x03(\x0b\x32\x18.Records.FolderRecordKey\x12 \n\x07\x66olders\x18\x03 \x03(\x0b\x32\x0f.Records.Folder\x12\x1c\n\x05teams\x18\x04 \x03(\x0b\x32\r.Records.Team\"4\n\nRecordLink\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12\x12\n\nrecord_key\x18\x02 \x01(\x0c\",\n\x0bRecordAudit\x12\x0f\n\x07version\x18\x01 \x01(\x05\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\xa0\x02\n\tRecordAdd\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12\x12\n\nrecord_key\x18\x02 \x01(\x0c\x12\x1c\n\x14\x63lient_modified_time\x18\x03 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\x17\n\x0fnon_shared_data\x18\x05 \x01(\x0c\x12.\n\x0b\x66older_type\x18\x06 \x01(\x0e\x32\x19.Records.RecordFolderType\x12\x12\n\nfolder_uid\x18\x07 \x01(\x0c\x12\x12\n\nfolder_key\x18\x08 \x01(\x0c\x12)\n\x0crecord_links\x18\t \x03(\x0b\x32\x13.Records.RecordLink\x12#\n\x05\x61udit\x18\n \x01(\x0b\x32\x14.Records.RecordAudit\"M\n\x11RecordsAddRequest\x12#\n\x07records\x18\x01 \x03(\x0b\x32\x12.Records.RecordAdd\x12\x13\n\x0b\x63lient_time\x18\x02 \x01(\x03\"\xea\x01\n\x0cRecordUpdate\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12\x1c\n\x14\x63lient_modified_time\x18\x02 \x01(\x03\x12\x10\n\x08revision\x18\x03 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\x17\n\x0fnon_shared_data\x18\x05 \x01(\x0c\x12-\n\x10record_links_add\x18\x06 \x03(\x0b\x32\x13.Records.RecordLink\x12\x1b\n\x13record_links_remove\x18\x07 \x03(\x0c\x12#\n\x05\x61udit\x18\x08 \x01(\x0b\x32\x14.Records.RecordAudit\"S\n\x14RecordsUpdateRequest\x12&\n\x07records\x18\x01 \x03(\x0b\x32\x15.Records.RecordUpdate\x12\x13\n\x0b\x63lient_time\x18\x02 \x01(\x03\"\x8e\x01\n\x17RecordFileForConversion\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12\x14\n\x0c\x66ile_file_id\x18\x02 \x01(\t\x12\x15\n\rthumb_file_id\x18\x03 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\x12\n\nrecord_key\x18\x05 \x01(\x0c\x12\x10\n\x08link_key\x18\x06 \x01(\x0c\"J\n\x19RecordFolderForConversion\x12\x12\n\nfolder_uid\x18\x01 \x01(\x0c\x12\x19\n\x11record_folder_key\x18\x02 \x01(\x0c\"\x92\x02\n\x11RecordConvertToV3\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12\x1c\n\x14\x63lient_modified_time\x18\x02 \x01(\x03\x12\x10\n\x08revision\x18\x03 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\x17\n\x0fnon_shared_data\x18\x05 \x01(\x0c\x12#\n\x05\x61udit\x18\x06 \x01(\x0b\x32\x14.Records.RecordAudit\x12\x35\n\x0brecord_file\x18\x07 \x03(\x0b\x32 .Records.RecordFileForConversion\x12\x36\n\nfolder_key\x18\x08 \x03(\x0b\x32\".Records.RecordFolderForConversion\"]\n\x19RecordsConvertToV3Request\x12+\n\x07records\x18\x01 \x03(\x0b\x32\x1a.Records.RecordConvertToV3\x12\x13\n\x0b\x63lient_time\x18\x02 \x01(\x03\"\'\n\x14RecordsRemoveRequest\x12\x0f\n\x07records\x18\x01 \x03(\x0c\">\n\x0cRecordRevert\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12\x1a\n\x12revert_to_revision\x18\x02 \x01(\x03\">\n\x14RecordsRevertRequest\x12&\n\x07records\x18\x01 \x03(\x0b\x32\x15.Records.RecordRevert\"c\n\x0fRecordLinkError\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12+\n\x06status\x18\x02 \x01(\x0e\x32\x1b.Records.RecordModifyResult\x12\x0f\n\x07message\x18\x03 \x01(\t\"\x95\x01\n\x12RecordModifyStatus\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12+\n\x06status\x18\x02 \x01(\x0e\x32\x1b.Records.RecordModifyResult\x12\x0f\n\x07message\x18\x03 \x01(\t\x12-\n\x0blink_errors\x18\x04 \x03(\x0b\x32\x18.Records.RecordLinkError\"W\n\x15RecordsModifyResponse\x12,\n\x07records\x18\x01 \x03(\x0b\x32\x1b.Records.RecordModifyStatus\x12\x10\n\x08revision\x18\x02 \x01(\x03\"Y\n\x12RecordAddAuditData\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12\x10\n\x08revision\x18\x02 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\x12\x0f\n\x07version\x18\x04 \x01(\x05\"C\n\x13\x41\x64\x64\x41uditDataRequest\x12,\n\x07records\x18\x01 \x03(\x0b\x32\x1b.Records.RecordAddAuditData\"t\n\x04\x46ile\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12\x12\n\nrecord_key\x18\x02 \x01(\x0c\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\x12\x10\n\x08\x66ileSize\x18\x04 \x01(\x03\x12\x11\n\tthumbSize\x18\x05 \x01(\x05\x12\x11\n\tis_script\x18\x06 \x01(\x08\"D\n\x0f\x46ilesAddRequest\x12\x1c\n\x05\x66iles\x18\x01 \x03(\x0b\x32\r.Records.File\x12\x13\n\x0b\x63lient_time\x18\x02 \x01(\x03\"\xa7\x01\n\rFileAddStatus\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12&\n\x06status\x18\x02 \x01(\x0e\x32\x16.Records.FileAddResult\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x12\n\nparameters\x18\x04 \x01(\t\x12\x1c\n\x14thumbnail_parameters\x18\x05 \x01(\t\x12\x1b\n\x13success_status_code\x18\x06 \x01(\x05\"K\n\x10\x46ilesAddResponse\x12%\n\x05\x66iles\x18\x01 \x03(\x0b\x32\x16.Records.FileAddStatus\x12\x10\n\x08revision\x18\x02 \x01(\x03\"f\n\x0f\x46ilesGetRequest\x12\x13\n\x0brecord_uids\x18\x01 \x03(\x0c\x12\x16\n\x0e\x66or_thumbnails\x18\x02 \x01(\x08\x12&\n\x1e\x65mergency_access_account_owner\x18\x03 \x01(\t\"\xa2\x01\n\rFileGetStatus\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12&\n\x06status\x18\x02 \x01(\x0e\x32\x16.Records.FileGetResult\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x1b\n\x13success_status_code\x18\x04 \x01(\x05\x12+\n\x0b\x66ileKeyType\x18\x05 \x01(\x0e\x32\x16.Records.RecordKeyType\"9\n\x10\x46ilesGetResponse\x12%\n\x05\x66iles\x18\x01 \x03(\x0b\x32\x16.Records.FileGetStatus\"\x8d\x01\n\x15\x41pplicationAddRequest\x12\x0f\n\x07\x61pp_uid\x18\x01 \x01(\x0c\x12\x12\n\nrecord_key\x18\x02 \x01(\x0c\x12\x1c\n\x14\x63lient_modified_time\x18\x03 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12#\n\x05\x61udit\x18\x05 \x01(\x0b\x32\x14.Records.RecordAudit\"\x88\x01\n\"GetRecordDataWithAccessInfoRequest\x12\x12\n\nclientTime\x18\x01 \x01(\x03\x12\x11\n\trecordUid\x18\x02 \x03(\x0c\x12;\n\x14recordDetailsInclude\x18\x03 \x01(\x0e\x32\x1d.Records.RecordDetailsInclude\"\xea\x01\n\x0eUserPermission\x12\x10\n\x08username\x18\x01 \x01(\t\x12\r\n\x05owner\x18\x02 \x01(\x08\x12\x12\n\nshareAdmin\x18\x03 \x01(\x08\x12\x10\n\x08sharable\x18\x04 \x01(\x08\x12\x10\n\x08\x65\x64itable\x18\x05 \x01(\x08\x12\x18\n\x10\x61waitingApproval\x18\x06 \x01(\x08\x12\x12\n\nexpiration\x18\x07 \x01(\x03\x12\x12\n\naccountUid\x18\x08 \x01(\x0c\x12=\n\x15timerNotificationType\x18\t \x01(\x0e\x32\x1e.Records.TimerNotificationType\"\xbc\x01\n\x16SharedFolderPermission\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x12\n\nresharable\x18\x02 \x01(\x08\x12\x10\n\x08\x65\x64itable\x18\x03 \x01(\x08\x12\x10\n\x08revision\x18\x04 \x01(\x03\x12\x12\n\nexpiration\x18\x05 \x01(\x03\x12=\n\x15timerNotificationType\x18\x06 \x01(\x0e\x32\x1e.Records.TimerNotificationType\"\xe8\x02\n\nRecordData\x12\x10\n\x08revision\x18\x01 \x01(\x03\x12\x0f\n\x07version\x18\x02 \x01(\x05\x12\x0e\n\x06shared\x18\x03 \x01(\x08\x12\x1b\n\x13\x65ncryptedRecordData\x18\x04 \x01(\t\x12\x1a\n\x12\x65ncryptedExtraData\x18\x05 \x01(\t\x12\x1a\n\x12\x63lientModifiedTime\x18\x06 \x01(\x03\x12\x15\n\rnonSharedData\x18\x07 \x01(\t\x12-\n\x10linkedRecordData\x18\x08 \x03(\x0b\x32\x13.Records.RecordData\x12\x0e\n\x06\x66ileId\x18\t \x03(\x0c\x12\x10\n\x08\x66ileSize\x18\n \x01(\x03\x12\x15\n\rthumbnailSize\x18\x0b \x01(\x03\x12-\n\rrecordKeyType\x18\x0c \x01(\x0e\x32\x16.Records.RecordKeyType\x12\x11\n\trecordKey\x18\r \x01(\x0c\x12\x11\n\trecordUid\x18\x0e \x01(\x0c\"\xc8\x01\n\x18RecordDataWithAccessInfo\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\'\n\nrecordData\x18\x02 \x01(\x0b\x32\x13.Records.RecordData\x12/\n\x0euserPermission\x18\x03 \x03(\x0b\x32\x17.Records.UserPermission\x12?\n\x16sharedFolderPermission\x18\x04 \x03(\x0b\x32\x1f.Records.SharedFolderPermission\"\x89\x01\n#GetRecordDataWithAccessInfoResponse\x12\x43\n\x18recordDataWithAccessInfo\x18\x01 \x03(\x0b\x32!.Records.RecordDataWithAccessInfo\x12\x1d\n\x15noPermissionRecordUid\x18\x02 \x03(\x0c\"j\n\x12IsObjectShareAdmin\x12\x0b\n\x03uid\x18\x01 \x01(\x0c\x12\x0f\n\x07isAdmin\x18\x02 \x01(\x08\x12\x36\n\nobjectType\x18\x03 \x01(\x0e\x32\".Records.CheckShareAdminObjectType\"H\n\rAmIShareAdmin\x12\x37\n\x12isObjectShareAdmin\x18\x01 \x03(\x0b\x32\x1b.Records.IsObjectShareAdmin\"\xbc\x01\n\x18RecordShareUpdateRequest\x12.\n\x0f\x61\x64\x64SharedRecord\x18\x01 \x03(\x0b\x32\x15.Records.SharedRecord\x12\x31\n\x12updateSharedRecord\x18\x02 \x03(\x0b\x32\x15.Records.SharedRecord\x12\x31\n\x12removeSharedRecord\x18\x03 \x03(\x0b\x32\x15.Records.SharedRecord\x12\n\n\x02pt\x18\x04 \x01(\t\"\xa8\x02\n\x0cSharedRecord\x12\x12\n\ntoUsername\x18\x01 \x01(\t\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\x12\x11\n\trecordKey\x18\x03 \x01(\x0c\x12\x17\n\x0fsharedFolderUid\x18\x04 \x01(\x0c\x12\x0f\n\x07teamUid\x18\x05 \x01(\x0c\x12\x10\n\x08\x65\x64itable\x18\x06 \x01(\x08\x12\x11\n\tshareable\x18\x07 \x01(\x08\x12\x10\n\x08transfer\x18\x08 \x01(\x08\x12\x11\n\tuseEccKey\x18\t \x01(\x08\x12\x17\n\x0fremoveVaultData\x18\n \x01(\x08\x12\x12\n\nexpiration\x18\x0b \x01(\x03\x12=\n\x15timerNotificationType\x18\x0c \x01(\x0e\x32\x1e.Records.TimerNotificationType\"\xd5\x01\n\x19RecordShareUpdateResponse\x12:\n\x15\x61\x64\x64SharedRecordStatus\x18\x01 \x03(\x0b\x32\x1b.Records.SharedRecordStatus\x12=\n\x18updateSharedRecordStatus\x18\x02 \x03(\x0b\x32\x1b.Records.SharedRecordStatus\x12=\n\x18removeSharedRecordStatus\x18\x03 \x03(\x0b\x32\x1b.Records.SharedRecordStatus\"Z\n\x12SharedRecordStatus\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x0e\n\x06status\x18\x02 \x01(\t\x12\x0f\n\x07message\x18\x03 \x01(\t\x12\x10\n\x08username\x18\x04 \x01(\t\"G\n\x1bGetRecordPermissionsRequest\x12\x12\n\nrecordUids\x18\x01 \x03(\x0c\x12\x14\n\x0cisShareAdmin\x18\x02 \x01(\x08\"T\n\x1cGetRecordPermissionsResponse\x12\x34\n\x11recordPermissions\x18\x01 \x03(\x0b\x32\x19.Records.RecordPermission\"l\n\x10RecordPermission\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\r\n\x05owner\x18\x02 \x01(\x08\x12\x0f\n\x07\x63\x61nEdit\x18\x03 \x01(\x08\x12\x10\n\x08\x63\x61nShare\x18\x04 \x01(\x08\x12\x13\n\x0b\x63\x61nTransfer\x18\x05 \x01(\x08\"h\n\x16GetShareObjectsRequest\x12\x11\n\tstartWith\x18\x01 \x01(\t\x12\x10\n\x08\x63ontains\x18\x02 \x01(\t\x12\x10\n\x08\x66iltered\x18\x03 \x01(\x08\x12\x17\n\x0fsharedFolderUid\x18\x04 \x01(\x0c\"\xe7\x02\n\x17GetShareObjectsResponse\x12.\n\x12shareRelationships\x18\x01 \x03(\x0b\x32\x12.Records.ShareUser\x12,\n\x10shareFamilyUsers\x18\x02 \x03(\x0b\x32\x12.Records.ShareUser\x12\x30\n\x14shareEnterpriseUsers\x18\x03 \x03(\x0b\x32\x12.Records.ShareUser\x12&\n\nshareTeams\x18\x04 \x03(\x0b\x32\x12.Records.ShareTeam\x12(\n\x0cshareMCTeams\x18\x05 \x03(\x0b\x32\x12.Records.ShareTeam\x12\x32\n\x16shareMCEnterpriseUsers\x18\x06 \x03(\x0b\x32\x12.Records.ShareUser\x12\x36\n\x14shareEnterpriseNames\x18\x07 \x03(\x0b\x32\x18.Records.ShareEnterprise\"\xa5\x01\n\tShareUser\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x10\n\x08\x66ullname\x18\x02 \x01(\t\x12\x14\n\x0c\x65nterpriseId\x18\x03 \x01(\x05\x12$\n\x06status\x18\x04 \x01(\x0e\x32\x14.Records.ShareStatus\x12\x14\n\x0cisShareAdmin\x18\x05 \x01(\x08\x12\"\n\x1aisAdminOfSharedFolderOwner\x18\x06 \x01(\x08\"D\n\tShareTeam\x12\x10\n\x08teamname\x18\x01 \x01(\t\x12\x14\n\x0c\x65nterpriseId\x18\x02 \x01(\x05\x12\x0f\n\x07teamUid\x18\x03 \x01(\x0c\"?\n\x0fShareEnterprise\x12\x16\n\x0e\x65nterprisename\x18\x01 \x01(\t\x12\x14\n\x0c\x65nterpriseId\x18\x02 \x01(\x05\"S\n\x1fRecordsOnwershipTransferRequest\x12\x30\n\x0ftransferRecords\x18\x01 \x03(\x0b\x32\x17.Records.TransferRecord\"[\n\x0eTransferRecord\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\x12\x11\n\trecordKey\x18\x03 \x01(\x0c\x12\x11\n\tuseEccKey\x18\x04 \x01(\x08\"_\n RecordsOnwershipTransferResponse\x12;\n\x14transferRecordStatus\x18\x01 \x03(\x0b\x32\x1d.Records.TransferRecordStatus\"\\\n\x14TransferRecordStatus\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x0f\n\x07message\x18\x04 \x01(\t\"y\n\x15RecordsUnshareRequest\x12\x34\n\rsharedFolders\x18\x01 \x03(\x0b\x32\x1d.Records.RecordsUnshareFolder\x12*\n\x05users\x18\x02 \x03(\x0b\x32\x1b.Records.RecordsUnshareUser\"\x86\x01\n\x16RecordsUnshareResponse\x12:\n\rsharedFolders\x18\x01 \x03(\x0b\x32#.Records.RecordsUnshareFolderStatus\x12\x30\n\x05users\x18\x02 \x03(\x0b\x32!.Records.RecordsUnshareUserStatus\"B\n\x14RecordsUnshareFolder\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x17\n\x0fsharedFolderUid\x18\x02 \x01(\x0c\";\n\x12RecordsUnshareUser\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x12\n\naccountUid\x18\x02 \x01(\x0c\"H\n\x1aRecordsUnshareFolderStatus\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x17\n\x0fsharedFolderUid\x18\x02 \x01(\x0c\"A\n\x18RecordsUnshareUserStatus\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x12\n\naccountUid\x18\x02 \x01(\x0c\"\xfd\x01\n\x18TimeLimitedAccessRequest\x12\x12\n\naccountUid\x18\x01 \x03(\x0c\x12\x0f\n\x07teamUid\x18\x02 \x03(\x0c\x12\x11\n\trecordUid\x18\x03 \x03(\x0c\x12\x17\n\x0fsharedObjectUid\x18\x04 \x01(\x0c\x12=\n\x15timeLimitedAccessType\x18\x05 \x01(\x0e\x32\x1e.Records.TimeLimitedAccessType\x12\x12\n\nexpiration\x18\x06 \x01(\x03\x12=\n\x15timerNotificationType\x18\x07 \x01(\x0e\x32\x1e.Records.TimerNotificationType\"7\n\x17TimeLimitedAccessStatus\x12\x0b\n\x03uid\x18\x01 \x01(\x0c\x12\x0f\n\x07message\x18\x02 \x01(\t\"\xe3\x01\n\x19TimeLimitedAccessResponse\x12\x10\n\x08revision\x18\x01 \x01(\x03\x12:\n\x10userAccessStatus\x18\x02 \x03(\x0b\x32 .Records.TimeLimitedAccessStatus\x12:\n\x10teamAccessStatus\x18\x03 \x03(\x0b\x32 .Records.TimeLimitedAccessStatus\x12<\n\x12recordAccessStatus\x18\x04 \x03(\x0b\x32 .Records.TimeLimitedAccessStatus*h\n\x0fRecordTypeScope\x12\x0f\n\x0bRT_STANDARD\x10\x00\x12\x0b\n\x07RT_USER\x10\x01\x12\x11\n\rRT_ENTERPRISE\x10\x02\x12\n\n\x06RT_PAM\x10\x03\x12\x18\n\x14RT_PAM_CONFIGURATION\x10\x04*\xd1\x01\n\rRecordKeyType\x12\n\n\x06NO_KEY\x10\x00\x12\x19\n\x15\x45NCRYPTED_BY_DATA_KEY\x10\x01\x12\x1b\n\x17\x45NCRYPTED_BY_PUBLIC_KEY\x10\x02\x12\x1d\n\x19\x45NCRYPTED_BY_DATA_KEY_GCM\x10\x03\x12\x1f\n\x1b\x45NCRYPTED_BY_PUBLIC_KEY_ECC\x10\x04\x12\x1d\n\x19\x45NCRYPTED_BY_ROOT_KEY_CBC\x10\x05\x12\x1d\n\x19\x45NCRYPTED_BY_ROOT_KEY_GCM\x10\x06*P\n\x10RecordFolderType\x12\x0f\n\x0buser_folder\x10\x00\x12\x11\n\rshared_folder\x10\x01\x12\x18\n\x14shared_folder_folder\x10\x02*\xec\x02\n\x12RecordModifyResult\x12\x0e\n\nRS_SUCCESS\x10\x00\x12\x12\n\x0eRS_OUT_OF_SYNC\x10\x01\x12\x14\n\x10RS_ACCESS_DENIED\x10\x02\x12\x13\n\x0fRS_SHARE_DENIED\x10\x03\x12\x14\n\x10RS_RECORD_EXISTS\x10\x04\x12\x1e\n\x1aRS_OLD_RECORD_VERSION_TYPE\x10\x05\x12\x1e\n\x1aRS_NEW_RECORD_VERSION_TYPE\x10\x06\x12\x16\n\x12RS_FILES_NOT_MATCH\x10\x07\x12\x1b\n\x17RS_RECORD_NOT_SHAREABLE\x10\x08\x12\x1f\n\x1bRS_ATTACHMENT_NOT_SHAREABLE\x10\t\x12\x19\n\x15RS_FILE_LIMIT_REACHED\x10\n\x12\x1a\n\x16RS_SIZE_EXCEEDED_LIMIT\x10\x0b\x12$\n RS_ONLY_OWNER_CAN_MODIFY_SCRIPTS\x10\x0c*-\n\rFileAddResult\x12\x0e\n\nFA_SUCCESS\x10\x00\x12\x0c\n\x08\x46\x41_ERROR\x10\x01*C\n\rFileGetResult\x12\x0e\n\nFG_SUCCESS\x10\x00\x12\x0c\n\x08\x46G_ERROR\x10\x01\x12\x14\n\x10\x46G_ACCESS_DENIED\x10\x02*J\n\x14RecordDetailsInclude\x12\x13\n\x0f\x44\x41TA_PLUS_SHARE\x10\x00\x12\r\n\tDATA_ONLY\x10\x01\x12\x0e\n\nSHARE_ONLY\x10\x02*b\n\x19\x43heckShareAdminObjectType\x12\x19\n\x15\x43HECK_SA_INVALID_TYPE\x10\x00\x12\x12\n\x0e\x43HECK_SA_ON_SF\x10\x01\x12\x16\n\x12\x43HECK_SA_ON_RECORD\x10\x02*1\n\x0bShareStatus\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\t\n\x05\x42LOCK\x10\x01\x12\x0b\n\x07INVITED\x10\x02*:\n\x15RecordTransactionType\x12\x0f\n\x0bRTT_GENERAL\x10\x00\x12\x10\n\x0cRTT_ROTATION\x10\x01*\xa4\x01\n\x15TimeLimitedAccessType\x12$\n INVALID_TIME_LIMITED_ACCESS_TYPE\x10\x00\x12\x19\n\x15USER_ACCESS_TO_RECORD\x10\x01\x12\'\n#USER_OR_TEAM_ACCESS_TO_SHAREDFOLDER\x10\x02\x12!\n\x1dRECORD_ACCESS_TO_SHAREDFOLDER\x10\x03*\\\n\x15TimerNotificationType\x12\x14\n\x10NOTIFICATION_OFF\x10\x00\x12\x10\n\x0cNOTIFY_OWNER\x10\x01\x12\x1b\n\x17NOTIFY_PRIVILEGED_USERS\x10\x02\x42#\n\x18\x63om.keepersecurity.protoB\x07Recordsb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0crecord.proto\x12\x07Records\"\\\n\nRecordType\x12\x14\n\x0crecordTypeId\x18\x01 \x01(\x05\x12\x0f\n\x07\x63ontent\x18\x02 \x01(\t\x12\'\n\x05scope\x18\x03 \x01(\x0e\x32\x18.Records.RecordTypeScope\"U\n\x12RecordTypesRequest\x12\x10\n\x08standard\x18\x01 \x01(\x08\x12\x0c\n\x04user\x18\x02 \x01(\x08\x12\x12\n\nenterprise\x18\x03 \x01(\x08\x12\x0b\n\x03pam\x18\x04 \x01(\x08\"\x9c\x01\n\x13RecordTypesResponse\x12(\n\x0brecordTypes\x18\x01 \x03(\x0b\x32\x13.Records.RecordType\x12\x17\n\x0fstandardCounter\x18\x02 \x01(\x05\x12\x13\n\x0buserCounter\x18\x03 \x01(\x05\x12\x19\n\x11\x65nterpriseCounter\x18\x04 \x01(\x05\x12\x12\n\npamCounter\x18\x05 \x01(\x05\"A\n\x18RecordTypeModifyResponse\x12\x14\n\x0crecordTypeId\x18\x01 \x01(\x05\x12\x0f\n\x07\x63ounter\x18\x02 \x01(\x05\"=\n\x11RecordsGetRequest\x12\x13\n\x0brecord_uids\x18\x01 \x03(\x0c\x12\x13\n\x0b\x63lient_time\x18\x02 \x01(\x03\"\xd1\x01\n\x06Record\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12\x12\n\nrecord_key\x18\x02 \x01(\x0c\x12/\n\x0frecord_key_type\x18\x03 \x01(\x0e\x32\x16.Records.RecordKeyType\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\r\n\x05\x65xtra\x18\x05 \x01(\x0c\x12\x0f\n\x07version\x18\x06 \x01(\x05\x12\x1c\n\x14\x63lient_modified_time\x18\x07 \x01(\x03\x12\x10\n\x08revision\x18\x08 \x01(\x03\x12\x10\n\x08\x66ile_ids\x18\t \x03(\x0c\"M\n\x0f\x46olderRecordKey\x12\x12\n\nfolder_uid\x18\x01 \x01(\x0c\x12\x12\n\nrecord_uid\x18\x02 \x01(\x0c\x12\x12\n\nrecord_key\x18\x03 \x01(\x0c\"a\n\x06\x46older\x12\x12\n\nfolder_uid\x18\x01 \x01(\x0c\x12\x12\n\nfolder_key\x18\x02 \x01(\x0c\x12/\n\x0f\x66older_key_type\x18\x03 \x01(\x0e\x32\x16.Records.RecordKeyType\"\x95\x01\n\x04Team\x12\x10\n\x08team_uid\x18\x01 \x01(\x0c\x12\x10\n\x08team_key\x18\x02 \x01(\x0c\x12\x18\n\x10team_private_key\x18\x03 \x01(\x0c\x12-\n\rteam_key_type\x18\x04 \x01(\x0e\x32\x16.Records.RecordKeyType\x12 \n\x07\x66olders\x18\x05 \x03(\x0b\x32\x0f.Records.Folder\"\xac\x01\n\x12RecordsGetResponse\x12 \n\x07records\x18\x01 \x03(\x0b\x32\x0f.Records.Record\x12\x34\n\x12\x66older_record_keys\x18\x02 \x03(\x0b\x32\x18.Records.FolderRecordKey\x12 \n\x07\x66olders\x18\x03 \x03(\x0b\x32\x0f.Records.Folder\x12\x1c\n\x05teams\x18\x04 \x03(\x0b\x32\r.Records.Team\"4\n\nRecordLink\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12\x12\n\nrecord_key\x18\x02 \x01(\x0c\",\n\x0bRecordAudit\x12\x0f\n\x07version\x18\x01 \x01(\x05\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\xa0\x02\n\tRecordAdd\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12\x12\n\nrecord_key\x18\x02 \x01(\x0c\x12\x1c\n\x14\x63lient_modified_time\x18\x03 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\x17\n\x0fnon_shared_data\x18\x05 \x01(\x0c\x12.\n\x0b\x66older_type\x18\x06 \x01(\x0e\x32\x19.Records.RecordFolderType\x12\x12\n\nfolder_uid\x18\x07 \x01(\x0c\x12\x12\n\nfolder_key\x18\x08 \x01(\x0c\x12)\n\x0crecord_links\x18\t \x03(\x0b\x32\x13.Records.RecordLink\x12#\n\x05\x61udit\x18\n \x01(\x0b\x32\x14.Records.RecordAudit\"M\n\x11RecordsAddRequest\x12#\n\x07records\x18\x01 \x03(\x0b\x32\x12.Records.RecordAdd\x12\x13\n\x0b\x63lient_time\x18\x02 \x01(\x03\"\xea\x01\n\x0cRecordUpdate\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12\x1c\n\x14\x63lient_modified_time\x18\x02 \x01(\x03\x12\x10\n\x08revision\x18\x03 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\x17\n\x0fnon_shared_data\x18\x05 \x01(\x0c\x12-\n\x10record_links_add\x18\x06 \x03(\x0b\x32\x13.Records.RecordLink\x12\x1b\n\x13record_links_remove\x18\x07 \x03(\x0c\x12#\n\x05\x61udit\x18\x08 \x01(\x0b\x32\x14.Records.RecordAudit\"S\n\x14RecordsUpdateRequest\x12&\n\x07records\x18\x01 \x03(\x0b\x32\x15.Records.RecordUpdate\x12\x13\n\x0b\x63lient_time\x18\x02 \x01(\x03\"\x8e\x01\n\x17RecordFileForConversion\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12\x14\n\x0c\x66ile_file_id\x18\x02 \x01(\t\x12\x15\n\rthumb_file_id\x18\x03 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\x12\n\nrecord_key\x18\x05 \x01(\x0c\x12\x10\n\x08link_key\x18\x06 \x01(\x0c\"J\n\x19RecordFolderForConversion\x12\x12\n\nfolder_uid\x18\x01 \x01(\x0c\x12\x19\n\x11record_folder_key\x18\x02 \x01(\x0c\"\x92\x02\n\x11RecordConvertToV3\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12\x1c\n\x14\x63lient_modified_time\x18\x02 \x01(\x03\x12\x10\n\x08revision\x18\x03 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\x17\n\x0fnon_shared_data\x18\x05 \x01(\x0c\x12#\n\x05\x61udit\x18\x06 \x01(\x0b\x32\x14.Records.RecordAudit\x12\x35\n\x0brecord_file\x18\x07 \x03(\x0b\x32 .Records.RecordFileForConversion\x12\x36\n\nfolder_key\x18\x08 \x03(\x0b\x32\".Records.RecordFolderForConversion\"]\n\x19RecordsConvertToV3Request\x12+\n\x07records\x18\x01 \x03(\x0b\x32\x1a.Records.RecordConvertToV3\x12\x13\n\x0b\x63lient_time\x18\x02 \x01(\x03\"\'\n\x14RecordsRemoveRequest\x12\x0f\n\x07records\x18\x01 \x03(\x0c\">\n\x0cRecordRevert\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12\x1a\n\x12revert_to_revision\x18\x02 \x01(\x03\">\n\x14RecordsRevertRequest\x12&\n\x07records\x18\x01 \x03(\x0b\x32\x15.Records.RecordRevert\"c\n\x0fRecordLinkError\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12+\n\x06status\x18\x02 \x01(\x0e\x32\x1b.Records.RecordModifyResult\x12\x0f\n\x07message\x18\x03 \x01(\t\"\x95\x01\n\x12RecordModifyStatus\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12+\n\x06status\x18\x02 \x01(\x0e\x32\x1b.Records.RecordModifyResult\x12\x0f\n\x07message\x18\x03 \x01(\t\x12-\n\x0blink_errors\x18\x04 \x03(\x0b\x32\x18.Records.RecordLinkError\"W\n\x15RecordsModifyResponse\x12,\n\x07records\x18\x01 \x03(\x0b\x32\x1b.Records.RecordModifyStatus\x12\x10\n\x08revision\x18\x02 \x01(\x03\"Y\n\x12RecordAddAuditData\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12\x10\n\x08revision\x18\x02 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\x12\x0f\n\x07version\x18\x04 \x01(\x05\"C\n\x13\x41\x64\x64\x41uditDataRequest\x12,\n\x07records\x18\x01 \x03(\x0b\x32\x1b.Records.RecordAddAuditData\"t\n\x04\x46ile\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12\x12\n\nrecord_key\x18\x02 \x01(\x0c\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\x12\x10\n\x08\x66ileSize\x18\x04 \x01(\x03\x12\x11\n\tthumbSize\x18\x05 \x01(\x05\x12\x11\n\tis_script\x18\x06 \x01(\x08\"D\n\x0f\x46ilesAddRequest\x12\x1c\n\x05\x66iles\x18\x01 \x03(\x0b\x32\r.Records.File\x12\x13\n\x0b\x63lient_time\x18\x02 \x01(\x03\"\xa7\x01\n\rFileAddStatus\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12&\n\x06status\x18\x02 \x01(\x0e\x32\x16.Records.FileAddResult\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x12\n\nparameters\x18\x04 \x01(\t\x12\x1c\n\x14thumbnail_parameters\x18\x05 \x01(\t\x12\x1b\n\x13success_status_code\x18\x06 \x01(\x05\"K\n\x10\x46ilesAddResponse\x12%\n\x05\x66iles\x18\x01 \x03(\x0b\x32\x16.Records.FileAddStatus\x12\x10\n\x08revision\x18\x02 \x01(\x03\"f\n\x0f\x46ilesGetRequest\x12\x13\n\x0brecord_uids\x18\x01 \x03(\x0c\x12\x16\n\x0e\x66or_thumbnails\x18\x02 \x01(\x08\x12&\n\x1e\x65mergency_access_account_owner\x18\x03 \x01(\t\"\xa2\x01\n\rFileGetStatus\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12&\n\x06status\x18\x02 \x01(\x0e\x32\x16.Records.FileGetResult\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x1b\n\x13success_status_code\x18\x04 \x01(\x05\x12+\n\x0b\x66ileKeyType\x18\x05 \x01(\x0e\x32\x16.Records.RecordKeyType\"9\n\x10\x46ilesGetResponse\x12%\n\x05\x66iles\x18\x01 \x03(\x0b\x32\x16.Records.FileGetStatus\"\x8d\x01\n\x15\x41pplicationAddRequest\x12\x0f\n\x07\x61pp_uid\x18\x01 \x01(\x0c\x12\x12\n\nrecord_key\x18\x02 \x01(\x0c\x12\x1c\n\x14\x63lient_modified_time\x18\x03 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12#\n\x05\x61udit\x18\x05 \x01(\x0b\x32\x14.Records.RecordAudit\"\x88\x01\n\"GetRecordDataWithAccessInfoRequest\x12\x12\n\nclientTime\x18\x01 \x01(\x03\x12\x11\n\trecordUid\x18\x02 \x03(\x0c\x12;\n\x14recordDetailsInclude\x18\x03 \x01(\x0e\x32\x1d.Records.RecordDetailsInclude\"\xea\x01\n\x0eUserPermission\x12\x10\n\x08username\x18\x01 \x01(\t\x12\r\n\x05owner\x18\x02 \x01(\x08\x12\x12\n\nshareAdmin\x18\x03 \x01(\x08\x12\x10\n\x08sharable\x18\x04 \x01(\x08\x12\x10\n\x08\x65\x64itable\x18\x05 \x01(\x08\x12\x18\n\x10\x61waitingApproval\x18\x06 \x01(\x08\x12\x12\n\nexpiration\x18\x07 \x01(\x03\x12\x12\n\naccountUid\x18\x08 \x01(\x0c\x12=\n\x15timerNotificationType\x18\t \x01(\x0e\x32\x1e.Records.TimerNotificationType\"\xbc\x01\n\x16SharedFolderPermission\x12\x17\n\x0fsharedFolderUid\x18\x01 \x01(\x0c\x12\x12\n\nresharable\x18\x02 \x01(\x08\x12\x10\n\x08\x65\x64itable\x18\x03 \x01(\x08\x12\x10\n\x08revision\x18\x04 \x01(\x03\x12\x12\n\nexpiration\x18\x05 \x01(\x03\x12=\n\x15timerNotificationType\x18\x06 \x01(\x0e\x32\x1e.Records.TimerNotificationType\"\xe8\x02\n\nRecordData\x12\x10\n\x08revision\x18\x01 \x01(\x03\x12\x0f\n\x07version\x18\x02 \x01(\x05\x12\x0e\n\x06shared\x18\x03 \x01(\x08\x12\x1b\n\x13\x65ncryptedRecordData\x18\x04 \x01(\t\x12\x1a\n\x12\x65ncryptedExtraData\x18\x05 \x01(\t\x12\x1a\n\x12\x63lientModifiedTime\x18\x06 \x01(\x03\x12\x15\n\rnonSharedData\x18\x07 \x01(\t\x12-\n\x10linkedRecordData\x18\x08 \x03(\x0b\x32\x13.Records.RecordData\x12\x0e\n\x06\x66ileId\x18\t \x03(\x0c\x12\x10\n\x08\x66ileSize\x18\n \x01(\x03\x12\x15\n\rthumbnailSize\x18\x0b \x01(\x03\x12-\n\rrecordKeyType\x18\x0c \x01(\x0e\x32\x16.Records.RecordKeyType\x12\x11\n\trecordKey\x18\r \x01(\x0c\x12\x11\n\trecordUid\x18\x0e \x01(\x0c\"\xc8\x01\n\x18RecordDataWithAccessInfo\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\'\n\nrecordData\x18\x02 \x01(\x0b\x32\x13.Records.RecordData\x12/\n\x0euserPermission\x18\x03 \x03(\x0b\x32\x17.Records.UserPermission\x12?\n\x16sharedFolderPermission\x18\x04 \x03(\x0b\x32\x1f.Records.SharedFolderPermission\"\x89\x01\n#GetRecordDataWithAccessInfoResponse\x12\x43\n\x18recordDataWithAccessInfo\x18\x01 \x03(\x0b\x32!.Records.RecordDataWithAccessInfo\x12\x1d\n\x15noPermissionRecordUid\x18\x02 \x03(\x0c\"j\n\x12IsObjectShareAdmin\x12\x0b\n\x03uid\x18\x01 \x01(\x0c\x12\x0f\n\x07isAdmin\x18\x02 \x01(\x08\x12\x36\n\nobjectType\x18\x03 \x01(\x0e\x32\".Records.CheckShareAdminObjectType\"H\n\rAmIShareAdmin\x12\x37\n\x12isObjectShareAdmin\x18\x01 \x03(\x0b\x32\x1b.Records.IsObjectShareAdmin\"\xbc\x01\n\x18RecordShareUpdateRequest\x12.\n\x0f\x61\x64\x64SharedRecord\x18\x01 \x03(\x0b\x32\x15.Records.SharedRecord\x12\x31\n\x12updateSharedRecord\x18\x02 \x03(\x0b\x32\x15.Records.SharedRecord\x12\x31\n\x12removeSharedRecord\x18\x03 \x03(\x0b\x32\x15.Records.SharedRecord\x12\n\n\x02pt\x18\x04 \x01(\t\"\xa8\x02\n\x0cSharedRecord\x12\x12\n\ntoUsername\x18\x01 \x01(\t\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\x12\x11\n\trecordKey\x18\x03 \x01(\x0c\x12\x17\n\x0fsharedFolderUid\x18\x04 \x01(\x0c\x12\x0f\n\x07teamUid\x18\x05 \x01(\x0c\x12\x10\n\x08\x65\x64itable\x18\x06 \x01(\x08\x12\x11\n\tshareable\x18\x07 \x01(\x08\x12\x10\n\x08transfer\x18\x08 \x01(\x08\x12\x11\n\tuseEccKey\x18\t \x01(\x08\x12\x17\n\x0fremoveVaultData\x18\n \x01(\x08\x12\x12\n\nexpiration\x18\x0b \x01(\x03\x12=\n\x15timerNotificationType\x18\x0c \x01(\x0e\x32\x1e.Records.TimerNotificationType\"\xd5\x01\n\x19RecordShareUpdateResponse\x12:\n\x15\x61\x64\x64SharedRecordStatus\x18\x01 \x03(\x0b\x32\x1b.Records.SharedRecordStatus\x12=\n\x18updateSharedRecordStatus\x18\x02 \x03(\x0b\x32\x1b.Records.SharedRecordStatus\x12=\n\x18removeSharedRecordStatus\x18\x03 \x03(\x0b\x32\x1b.Records.SharedRecordStatus\"Z\n\x12SharedRecordStatus\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x0e\n\x06status\x18\x02 \x01(\t\x12\x0f\n\x07message\x18\x03 \x01(\t\x12\x10\n\x08username\x18\x04 \x01(\t\"G\n\x1bGetRecordPermissionsRequest\x12\x12\n\nrecordUids\x18\x01 \x03(\x0c\x12\x14\n\x0cisShareAdmin\x18\x02 \x01(\x08\"T\n\x1cGetRecordPermissionsResponse\x12\x34\n\x11recordPermissions\x18\x01 \x03(\x0b\x32\x19.Records.RecordPermission\"l\n\x10RecordPermission\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\r\n\x05owner\x18\x02 \x01(\x08\x12\x0f\n\x07\x63\x61nEdit\x18\x03 \x01(\x08\x12\x10\n\x08\x63\x61nShare\x18\x04 \x01(\x08\x12\x13\n\x0b\x63\x61nTransfer\x18\x05 \x01(\x08\"h\n\x16GetShareObjectsRequest\x12\x11\n\tstartWith\x18\x01 \x01(\t\x12\x10\n\x08\x63ontains\x18\x02 \x01(\t\x12\x10\n\x08\x66iltered\x18\x03 \x01(\x08\x12\x17\n\x0fsharedFolderUid\x18\x04 \x01(\x0c\"\xe7\x02\n\x17GetShareObjectsResponse\x12.\n\x12shareRelationships\x18\x01 \x03(\x0b\x32\x12.Records.ShareUser\x12,\n\x10shareFamilyUsers\x18\x02 \x03(\x0b\x32\x12.Records.ShareUser\x12\x30\n\x14shareEnterpriseUsers\x18\x03 \x03(\x0b\x32\x12.Records.ShareUser\x12&\n\nshareTeams\x18\x04 \x03(\x0b\x32\x12.Records.ShareTeam\x12(\n\x0cshareMCTeams\x18\x05 \x03(\x0b\x32\x12.Records.ShareTeam\x12\x32\n\x16shareMCEnterpriseUsers\x18\x06 \x03(\x0b\x32\x12.Records.ShareUser\x12\x36\n\x14shareEnterpriseNames\x18\x07 \x03(\x0b\x32\x18.Records.ShareEnterprise\"\xa5\x01\n\tShareUser\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x10\n\x08\x66ullname\x18\x02 \x01(\t\x12\x14\n\x0c\x65nterpriseId\x18\x03 \x01(\x05\x12$\n\x06status\x18\x04 \x01(\x0e\x32\x14.Records.ShareStatus\x12\x14\n\x0cisShareAdmin\x18\x05 \x01(\x08\x12\"\n\x1aisAdminOfSharedFolderOwner\x18\x06 \x01(\x08\"D\n\tShareTeam\x12\x10\n\x08teamname\x18\x01 \x01(\t\x12\x14\n\x0c\x65nterpriseId\x18\x02 \x01(\x05\x12\x0f\n\x07teamUid\x18\x03 \x01(\x0c\"?\n\x0fShareEnterprise\x12\x16\n\x0e\x65nterprisename\x18\x01 \x01(\t\x12\x14\n\x0c\x65nterpriseId\x18\x02 \x01(\x05\"S\n\x1fRecordsOnwershipTransferRequest\x12\x30\n\x0ftransferRecords\x18\x01 \x03(\x0b\x32\x17.Records.TransferRecord\"[\n\x0eTransferRecord\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\x12\x11\n\trecordKey\x18\x03 \x01(\x0c\x12\x11\n\tuseEccKey\x18\x04 \x01(\x08\"_\n RecordsOnwershipTransferResponse\x12;\n\x14transferRecordStatus\x18\x01 \x03(\x0b\x32\x1d.Records.TransferRecordStatus\"\\\n\x14TransferRecordStatus\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x0f\n\x07message\x18\x04 \x01(\t\"y\n\x15RecordsUnshareRequest\x12\x34\n\rsharedFolders\x18\x01 \x03(\x0b\x32\x1d.Records.RecordsUnshareFolder\x12*\n\x05users\x18\x02 \x03(\x0b\x32\x1b.Records.RecordsUnshareUser\"\x86\x01\n\x16RecordsUnshareResponse\x12:\n\rsharedFolders\x18\x01 \x03(\x0b\x32#.Records.RecordsUnshareFolderStatus\x12\x30\n\x05users\x18\x02 \x03(\x0b\x32!.Records.RecordsUnshareUserStatus\"B\n\x14RecordsUnshareFolder\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x17\n\x0fsharedFolderUid\x18\x02 \x01(\x0c\";\n\x12RecordsUnshareUser\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x12\n\naccountUid\x18\x02 \x01(\x0c\"H\n\x1aRecordsUnshareFolderStatus\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x17\n\x0fsharedFolderUid\x18\x02 \x01(\x0c\"A\n\x18RecordsUnshareUserStatus\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x12\n\naccountUid\x18\x02 \x01(\x0c\"[\n\x1aTimedAccessCallbackPayload\x12=\n\x15timeLimitedAccessType\x18\x01 \x01(\x0e\x32\x1e.Records.TimeLimitedAccessType\"\xfd\x01\n\x18TimeLimitedAccessRequest\x12\x12\n\naccountUid\x18\x01 \x03(\x0c\x12\x0f\n\x07teamUid\x18\x02 \x03(\x0c\x12\x11\n\trecordUid\x18\x03 \x03(\x0c\x12\x17\n\x0fsharedObjectUid\x18\x04 \x01(\x0c\x12=\n\x15timeLimitedAccessType\x18\x05 \x01(\x0e\x32\x1e.Records.TimeLimitedAccessType\x12\x12\n\nexpiration\x18\x06 \x01(\x03\x12=\n\x15timerNotificationType\x18\x07 \x01(\x0e\x32\x1e.Records.TimerNotificationType\"7\n\x17TimeLimitedAccessStatus\x12\x0b\n\x03uid\x18\x01 \x01(\x0c\x12\x0f\n\x07message\x18\x02 \x01(\t\"\xe3\x01\n\x19TimeLimitedAccessResponse\x12\x10\n\x08revision\x18\x01 \x01(\x03\x12:\n\x10userAccessStatus\x18\x02 \x03(\x0b\x32 .Records.TimeLimitedAccessStatus\x12:\n\x10teamAccessStatus\x18\x03 \x03(\x0b\x32 .Records.TimeLimitedAccessStatus\x12<\n\x12recordAccessStatus\x18\x04 \x03(\x0b\x32 .Records.TimeLimitedAccessStatus*h\n\x0fRecordTypeScope\x12\x0f\n\x0bRT_STANDARD\x10\x00\x12\x0b\n\x07RT_USER\x10\x01\x12\x11\n\rRT_ENTERPRISE\x10\x02\x12\n\n\x06RT_PAM\x10\x03\x12\x18\n\x14RT_PAM_CONFIGURATION\x10\x04*\xd1\x01\n\rRecordKeyType\x12\n\n\x06NO_KEY\x10\x00\x12\x19\n\x15\x45NCRYPTED_BY_DATA_KEY\x10\x01\x12\x1b\n\x17\x45NCRYPTED_BY_PUBLIC_KEY\x10\x02\x12\x1d\n\x19\x45NCRYPTED_BY_DATA_KEY_GCM\x10\x03\x12\x1f\n\x1b\x45NCRYPTED_BY_PUBLIC_KEY_ECC\x10\x04\x12\x1d\n\x19\x45NCRYPTED_BY_ROOT_KEY_CBC\x10\x05\x12\x1d\n\x19\x45NCRYPTED_BY_ROOT_KEY_GCM\x10\x06*P\n\x10RecordFolderType\x12\x0f\n\x0buser_folder\x10\x00\x12\x11\n\rshared_folder\x10\x01\x12\x18\n\x14shared_folder_folder\x10\x02*\xec\x02\n\x12RecordModifyResult\x12\x0e\n\nRS_SUCCESS\x10\x00\x12\x12\n\x0eRS_OUT_OF_SYNC\x10\x01\x12\x14\n\x10RS_ACCESS_DENIED\x10\x02\x12\x13\n\x0fRS_SHARE_DENIED\x10\x03\x12\x14\n\x10RS_RECORD_EXISTS\x10\x04\x12\x1e\n\x1aRS_OLD_RECORD_VERSION_TYPE\x10\x05\x12\x1e\n\x1aRS_NEW_RECORD_VERSION_TYPE\x10\x06\x12\x16\n\x12RS_FILES_NOT_MATCH\x10\x07\x12\x1b\n\x17RS_RECORD_NOT_SHAREABLE\x10\x08\x12\x1f\n\x1bRS_ATTACHMENT_NOT_SHAREABLE\x10\t\x12\x19\n\x15RS_FILE_LIMIT_REACHED\x10\n\x12\x1a\n\x16RS_SIZE_EXCEEDED_LIMIT\x10\x0b\x12$\n RS_ONLY_OWNER_CAN_MODIFY_SCRIPTS\x10\x0c*-\n\rFileAddResult\x12\x0e\n\nFA_SUCCESS\x10\x00\x12\x0c\n\x08\x46\x41_ERROR\x10\x01*C\n\rFileGetResult\x12\x0e\n\nFG_SUCCESS\x10\x00\x12\x0c\n\x08\x46G_ERROR\x10\x01\x12\x14\n\x10\x46G_ACCESS_DENIED\x10\x02*J\n\x14RecordDetailsInclude\x12\x13\n\x0f\x44\x41TA_PLUS_SHARE\x10\x00\x12\r\n\tDATA_ONLY\x10\x01\x12\x0e\n\nSHARE_ONLY\x10\x02*b\n\x19\x43heckShareAdminObjectType\x12\x19\n\x15\x43HECK_SA_INVALID_TYPE\x10\x00\x12\x12\n\x0e\x43HECK_SA_ON_SF\x10\x01\x12\x16\n\x12\x43HECK_SA_ON_RECORD\x10\x02*1\n\x0bShareStatus\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\t\n\x05\x42LOCK\x10\x01\x12\x0b\n\x07INVITED\x10\x02*:\n\x15RecordTransactionType\x12\x0f\n\x0bRTT_GENERAL\x10\x00\x12\x10\n\x0cRTT_ROTATION\x10\x01*\xe6\x01\n\x15TimeLimitedAccessType\x12$\n INVALID_TIME_LIMITED_ACCESS_TYPE\x10\x00\x12\x19\n\x15USER_ACCESS_TO_RECORD\x10\x01\x12\'\n#USER_OR_TEAM_ACCESS_TO_SHAREDFOLDER\x10\x02\x12!\n\x1dRECORD_ACCESS_TO_SHAREDFOLDER\x10\x03\x12\x1f\n\x1bUSER_ACCESS_TO_SHAREDFOLDER\x10\x04\x12\x1f\n\x1bTEAM_ACCESS_TO_SHAREDFOLDER\x10\x05*\\\n\x15TimerNotificationType\x12\x14\n\x10NOTIFICATION_OFF\x10\x00\x12\x10\n\x0cNOTIFY_OWNER\x10\x01\x12\x1b\n\x17NOTIFY_PRIVILEGED_USERS\x10\x02\x42#\n\x18\x63om.keepersecurity.protoB\x07Recordsb\x06proto3') _RECORDTYPESCOPE = DESCRIPTOR.enum_types_by_name['RecordTypeScope'] RecordTypeScope = enum_type_wrapper.EnumTypeWrapper(_RECORDTYPESCOPE) @@ -89,6 +89,8 @@ USER_ACCESS_TO_RECORD = 1 USER_OR_TEAM_ACCESS_TO_SHAREDFOLDER = 2 RECORD_ACCESS_TO_SHAREDFOLDER = 3 +USER_ACCESS_TO_SHAREDFOLDER = 4 +TEAM_ACCESS_TO_SHAREDFOLDER = 5 NOTIFICATION_OFF = 0 NOTIFY_OWNER = 1 NOTIFY_PRIVILEGED_USERS = 2 @@ -160,6 +162,7 @@ _RECORDSUNSHAREUSER = DESCRIPTOR.message_types_by_name['RecordsUnshareUser'] _RECORDSUNSHAREFOLDERSTATUS = DESCRIPTOR.message_types_by_name['RecordsUnshareFolderStatus'] _RECORDSUNSHAREUSERSTATUS = DESCRIPTOR.message_types_by_name['RecordsUnshareUserStatus'] +_TIMEDACCESSCALLBACKPAYLOAD = DESCRIPTOR.message_types_by_name['TimedAccessCallbackPayload'] _TIMELIMITEDACCESSREQUEST = DESCRIPTOR.message_types_by_name['TimeLimitedAccessRequest'] _TIMELIMITEDACCESSSTATUS = DESCRIPTOR.message_types_by_name['TimeLimitedAccessStatus'] _TIMELIMITEDACCESSRESPONSE = DESCRIPTOR.message_types_by_name['TimeLimitedAccessResponse'] @@ -625,6 +628,13 @@ }) _sym_db.RegisterMessage(RecordsUnshareUserStatus) +TimedAccessCallbackPayload = _reflection.GeneratedProtocolMessageType('TimedAccessCallbackPayload', (_message.Message,), { + 'DESCRIPTOR' : _TIMEDACCESSCALLBACKPAYLOAD, + '__module__' : 'record_pb2' + # @@protoc_insertion_point(class_scope:Records.TimedAccessCallbackPayload) + }) +_sym_db.RegisterMessage(TimedAccessCallbackPayload) + TimeLimitedAccessRequest = _reflection.GeneratedProtocolMessageType('TimeLimitedAccessRequest', (_message.Message,), { 'DESCRIPTOR' : _TIMELIMITEDACCESSREQUEST, '__module__' : 'record_pb2' @@ -650,30 +660,30 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\030com.keepersecurity.protoB\007Records' - _RECORDTYPESCOPE._serialized_start=8910 - _RECORDTYPESCOPE._serialized_end=9014 - _RECORDKEYTYPE._serialized_start=9017 - _RECORDKEYTYPE._serialized_end=9226 - _RECORDFOLDERTYPE._serialized_start=9228 - _RECORDFOLDERTYPE._serialized_end=9308 - _RECORDMODIFYRESULT._serialized_start=9311 - _RECORDMODIFYRESULT._serialized_end=9675 - _FILEADDRESULT._serialized_start=9677 - _FILEADDRESULT._serialized_end=9722 - _FILEGETRESULT._serialized_start=9724 - _FILEGETRESULT._serialized_end=9791 - _RECORDDETAILSINCLUDE._serialized_start=9793 - _RECORDDETAILSINCLUDE._serialized_end=9867 - _CHECKSHAREADMINOBJECTTYPE._serialized_start=9869 - _CHECKSHAREADMINOBJECTTYPE._serialized_end=9967 - _SHARESTATUS._serialized_start=9969 - _SHARESTATUS._serialized_end=10018 - _RECORDTRANSACTIONTYPE._serialized_start=10020 - _RECORDTRANSACTIONTYPE._serialized_end=10078 - _TIMELIMITEDACCESSTYPE._serialized_start=10081 - _TIMELIMITEDACCESSTYPE._serialized_end=10245 - _TIMERNOTIFICATIONTYPE._serialized_start=10247 - _TIMERNOTIFICATIONTYPE._serialized_end=10339 + _RECORDTYPESCOPE._serialized_start=9003 + _RECORDTYPESCOPE._serialized_end=9107 + _RECORDKEYTYPE._serialized_start=9110 + _RECORDKEYTYPE._serialized_end=9319 + _RECORDFOLDERTYPE._serialized_start=9321 + _RECORDFOLDERTYPE._serialized_end=9401 + _RECORDMODIFYRESULT._serialized_start=9404 + _RECORDMODIFYRESULT._serialized_end=9768 + _FILEADDRESULT._serialized_start=9770 + _FILEADDRESULT._serialized_end=9815 + _FILEGETRESULT._serialized_start=9817 + _FILEGETRESULT._serialized_end=9884 + _RECORDDETAILSINCLUDE._serialized_start=9886 + _RECORDDETAILSINCLUDE._serialized_end=9960 + _CHECKSHAREADMINOBJECTTYPE._serialized_start=9962 + _CHECKSHAREADMINOBJECTTYPE._serialized_end=10060 + _SHARESTATUS._serialized_start=10062 + _SHARESTATUS._serialized_end=10111 + _RECORDTRANSACTIONTYPE._serialized_start=10113 + _RECORDTRANSACTIONTYPE._serialized_end=10171 + _TIMELIMITEDACCESSTYPE._serialized_start=10174 + _TIMELIMITEDACCESSTYPE._serialized_end=10404 + _TIMERNOTIFICATIONTYPE._serialized_start=10406 + _TIMERNOTIFICATIONTYPE._serialized_end=10498 _RECORDTYPE._serialized_start=25 _RECORDTYPE._serialized_end=117 _RECORDTYPESREQUEST._serialized_start=119 @@ -806,10 +816,12 @@ _RECORDSUNSHAREFOLDERSTATUS._serialized_end=8298 _RECORDSUNSHAREUSERSTATUS._serialized_start=8300 _RECORDSUNSHAREUSERSTATUS._serialized_end=8365 - _TIMELIMITEDACCESSREQUEST._serialized_start=8368 - _TIMELIMITEDACCESSREQUEST._serialized_end=8621 - _TIMELIMITEDACCESSSTATUS._serialized_start=8623 - _TIMELIMITEDACCESSSTATUS._serialized_end=8678 - _TIMELIMITEDACCESSRESPONSE._serialized_start=8681 - _TIMELIMITEDACCESSRESPONSE._serialized_end=8908 + _TIMEDACCESSCALLBACKPAYLOAD._serialized_start=8367 + _TIMEDACCESSCALLBACKPAYLOAD._serialized_end=8458 + _TIMELIMITEDACCESSREQUEST._serialized_start=8461 + _TIMELIMITEDACCESSREQUEST._serialized_end=8714 + _TIMELIMITEDACCESSSTATUS._serialized_start=8716 + _TIMELIMITEDACCESSSTATUS._serialized_end=8771 + _TIMELIMITEDACCESSRESPONSE._serialized_start=8774 + _TIMELIMITEDACCESSRESPONSE._serialized_end=9001 # @@protoc_insertion_point(module_scope) diff --git a/keepercommander/proto/router_pb2.py b/keepercommander/proto/router_pb2.py index f2a5273c9..6c8c34906 100644 --- a/keepercommander/proto/router_pb2.py +++ b/keepercommander/proto/router_pb2.py @@ -16,7 +16,7 @@ from . import pam_pb2 as pam__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0crouter.proto\x12\x06Router\x1a\tpam.proto\"r\n\x0eRouterResponse\x12\x30\n\x0cresponseCode\x18\x01 \x01(\x0e\x32\x1a.Router.RouterResponseCode\x12\x14\n\x0c\x65rrorMessage\x18\x02 \x01(\t\x12\x18\n\x10\x65ncryptedPayload\x18\x03 \x01(\x0c\"\xaf\x01\n\x17RouterControllerMessage\x12/\n\x0bmessageType\x18\x01 \x01(\x0e\x32\x1a.PAM.ControllerMessageType\x12\x12\n\nmessageUid\x18\x02 \x01(\x0c\x12\x15\n\rcontrollerUid\x18\x03 \x01(\x0c\x12\x16\n\x0estreamResponse\x18\x04 \x01(\x08\x12\x0f\n\x07payload\x18\x05 \x01(\x0c\x12\x0f\n\x07timeout\x18\x06 \x01(\x05\"\xd3\x01\n\x0eRouterUserAuth\x12\x17\n\x0ftransmissionKey\x18\x01 \x01(\x0c\x12\x14\n\x0csessionToken\x18\x02 \x01(\x0c\x12\x0e\n\x06userId\x18\x03 \x01(\x05\x12\x18\n\x10\x65nterpriseUserId\x18\x04 \x01(\x03\x12\x12\n\ndeviceName\x18\x05 \x01(\t\x12\x13\n\x0b\x64\x65viceToken\x18\x06 \x01(\x0c\x12\x17\n\x0f\x63lientVersionId\x18\x07 \x01(\x05\x12\x14\n\x0cneedUsername\x18\x08 \x01(\x08\x12\x10\n\x08username\x18\t \x01(\t\"\xf2\x01\n\x10RouterDeviceAuth\x12\x10\n\x08\x63lientId\x18\x01 \x01(\t\x12\x15\n\rclientVersion\x18\x02 \x01(\t\x12\x11\n\tsignature\x18\x03 \x01(\x0c\x12\x14\n\x0c\x65nterpriseId\x18\x04 \x01(\x05\x12\x0e\n\x06nodeId\x18\x05 \x01(\x03\x12\x12\n\ndeviceName\x18\x06 \x01(\t\x12\x13\n\x0b\x64\x65viceToken\x18\x07 \x01(\x0c\x12\x16\n\x0e\x63ontrollerName\x18\x08 \x01(\t\x12\x15\n\rcontrollerUid\x18\t \x01(\x0c\x12\x11\n\townerUser\x18\n \x01(\t\x12\x11\n\tchallenge\x18\x0b \x01(\t\"\x83\x01\n\x14RouterRecordRotation\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x18\n\x10\x63onfigurationUid\x18\x02 \x01(\x0c\x12\x15\n\rcontrollerUid\x18\x03 \x01(\x0c\x12\x13\n\x0bresourceUid\x18\x04 \x01(\x0c\x12\x12\n\nnoSchedule\x18\x05 \x01(\x08\"E\n\x1cRouterRecordRotationsRequest\x12\x14\n\x0c\x65nterpriseId\x18\x01 \x01(\x05\x12\x0f\n\x07records\x18\x02 \x03(\x0c\"a\n\x1dRouterRecordRotationsResponse\x12/\n\trotations\x18\x01 \x03(\x0b\x32\x1c.Router.RouterRecordRotation\x12\x0f\n\x07hasMore\x18\x02 \x01(\x08\"\xed\x01\n\x12RouterRotationInfo\x12,\n\x06status\x18\x01 \x01(\x0e\x32\x1c.Router.RouterRotationStatus\x12\x18\n\x10\x63onfigurationUid\x18\x02 \x01(\x0c\x12\x13\n\x0bresourceUid\x18\x03 \x01(\x0c\x12\x0e\n\x06nodeId\x18\x04 \x01(\x03\x12\x15\n\rcontrollerUid\x18\x05 \x01(\x0c\x12\x16\n\x0e\x63ontrollerName\x18\x06 \x01(\t\x12\x12\n\nscriptName\x18\x07 \x01(\t\x12\x15\n\rpwdComplexity\x18\x08 \x01(\t\x12\x10\n\x08\x64isabled\x18\t \x01(\x08\"\xf6\x01\n\x1bRouterRecordRotationRequest\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x10\n\x08revision\x18\x02 \x01(\x03\x12\x18\n\x10\x63onfigurationUid\x18\x03 \x01(\x0c\x12\x13\n\x0bresourceUid\x18\x04 \x01(\x0c\x12\x10\n\x08schedule\x18\x05 \x01(\t\x12\x18\n\x10\x65nterpriseUserId\x18\x06 \x01(\x03\x12\x15\n\rpwdComplexity\x18\x07 \x01(\x0c\x12\x10\n\x08\x64isabled\x18\x08 \x01(\x08\x12\x15\n\rremoteAddress\x18\t \x01(\t\x12\x17\n\x0f\x63lientVersionId\x18\n \x01(\x05\"<\n\x17UserRecordAccessRequest\x12\x0e\n\x06userId\x18\x01 \x01(\x05\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\"a\n\x18UserRecordAccessResponse\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x32\n\x0b\x61\x63\x63\x65ssLevel\x18\x02 \x01(\x0e\x32\x1d.Router.UserRecordAccessLevel\"8\n\x10RotationSchedule\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12\x10\n\x08schedule\x18\x02 \x01(\t\"\x90\x01\n\x12\x41piCallbackRequest\x12\x13\n\x0bresourceUid\x18\x01 \x01(\x0c\x12.\n\tschedules\x18\x02 \x03(\x0b\x32\x1b.Router.ApiCallbackSchedule\x12\x0b\n\x03url\x18\x03 \x01(\t\x12(\n\x0bserviceType\x18\x04 \x01(\x0e\x32\x13.Router.ServiceType\"5\n\x13\x41piCallbackSchedule\x12\x10\n\x08schedule\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"@\n\x16RouterScheduledActions\x12\x10\n\x08schedule\x18\x01 \x01(\t\x12\x14\n\x0cresourceUids\x18\x02 \x03(\x0c\"Y\n\x1cRouterRecordsRotationRequest\x12\x39\n\x11rotationSchedules\x18\x01 \x03(\x0b\x32\x1e.Router.RouterScheduledActions\"\x85\x01\n\x14\x43onnectionParameters\x12\x15\n\rconnectionUid\x18\x01 \x01(\x0c\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\x12\x0e\n\x06userId\x18\x03 \x01(\x05\x12\x15\n\rcontrollerUid\x18\x04 \x01(\x0c\x12\x1c\n\x14\x63redentialsRecordUid\x18\x05 \x01(\x0c\"O\n\x1aValidateConnectionsRequest\x12\x31\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32\x1c.Router.ConnectionParameters\"J\n\x1b\x43onnectionValidationFailure\x12\x15\n\rconnectionUid\x18\x01 \x01(\x0c\x12\x14\n\x0c\x65rrorMessage\x18\x02 \x01(\t\"]\n\x1bValidateConnectionsResponse\x12>\n\x11\x66\x61iledConnections\x18\x01 \x03(\x0b\x32#.Router.ConnectionValidationFailure*\xb6\x01\n\x12RouterResponseCode\x12\n\n\x06RRC_OK\x10\x00\x12\x15\n\x11RRC_GENERAL_ERROR\x10\x01\x12\x13\n\x0fRRC_NOT_ALLOWED\x10\x02\x12\x13\n\x0fRRC_BAD_REQUEST\x10\x03\x12\x0f\n\x0bRRC_TIMEOUT\x10\x04\x12\x11\n\rRRC_BAD_STATE\x10\x05\x12\x17\n\x13RRC_CONTROLLER_DOWN\x10\x06\x12\x16\n\x12RRC_WRONG_INSTANCE\x10\x07*k\n\x14RouterRotationStatus\x12\x0e\n\nRRS_ONLINE\x10\x00\x12\x13\n\x0fRRS_NO_ROTATION\x10\x01\x12\x15\n\x11RRS_NO_CONTROLLER\x10\x02\x12\x17\n\x13RRS_CONTROLLER_DOWN\x10\x03*}\n\x15UserRecordAccessLevel\x12\r\n\tRRAL_NONE\x10\x00\x12\r\n\tRRAL_READ\x10\x01\x12\x0e\n\nRRAL_SHARE\x10\x02\x12\r\n\tRRAL_EDIT\x10\x03\x12\x17\n\x13RRAL_EDIT_AND_SHARE\x10\x04\x12\x0e\n\nRRAL_OWNER\x10\x05*.\n\x0bServiceType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x06\n\x02KA\x10\x01\x12\x06\n\x02\x42I\x10\x02\x42\"\n\x18\x63om.keepersecurity.protoB\x06Routerb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0crouter.proto\x12\x06Router\x1a\tpam.proto\"r\n\x0eRouterResponse\x12\x30\n\x0cresponseCode\x18\x01 \x01(\x0e\x32\x1a.Router.RouterResponseCode\x12\x14\n\x0c\x65rrorMessage\x18\x02 \x01(\t\x12\x18\n\x10\x65ncryptedPayload\x18\x03 \x01(\x0c\"\xaf\x01\n\x17RouterControllerMessage\x12/\n\x0bmessageType\x18\x01 \x01(\x0e\x32\x1a.PAM.ControllerMessageType\x12\x12\n\nmessageUid\x18\x02 \x01(\x0c\x12\x15\n\rcontrollerUid\x18\x03 \x01(\x0c\x12\x16\n\x0estreamResponse\x18\x04 \x01(\x08\x12\x0f\n\x07payload\x18\x05 \x01(\x0c\x12\x0f\n\x07timeout\x18\x06 \x01(\x05\"\xd3\x01\n\x0eRouterUserAuth\x12\x17\n\x0ftransmissionKey\x18\x01 \x01(\x0c\x12\x14\n\x0csessionToken\x18\x02 \x01(\x0c\x12\x0e\n\x06userId\x18\x03 \x01(\x05\x12\x18\n\x10\x65nterpriseUserId\x18\x04 \x01(\x03\x12\x12\n\ndeviceName\x18\x05 \x01(\t\x12\x13\n\x0b\x64\x65viceToken\x18\x06 \x01(\x0c\x12\x17\n\x0f\x63lientVersionId\x18\x07 \x01(\x05\x12\x14\n\x0cneedUsername\x18\x08 \x01(\x08\x12\x10\n\x08username\x18\t \x01(\t\"\xf2\x01\n\x10RouterDeviceAuth\x12\x10\n\x08\x63lientId\x18\x01 \x01(\t\x12\x15\n\rclientVersion\x18\x02 \x01(\t\x12\x11\n\tsignature\x18\x03 \x01(\x0c\x12\x14\n\x0c\x65nterpriseId\x18\x04 \x01(\x05\x12\x0e\n\x06nodeId\x18\x05 \x01(\x03\x12\x12\n\ndeviceName\x18\x06 \x01(\t\x12\x13\n\x0b\x64\x65viceToken\x18\x07 \x01(\x0c\x12\x16\n\x0e\x63ontrollerName\x18\x08 \x01(\t\x12\x15\n\rcontrollerUid\x18\t \x01(\x0c\x12\x11\n\townerUser\x18\n \x01(\t\x12\x11\n\tchallenge\x18\x0b \x01(\t\"\x83\x01\n\x14RouterRecordRotation\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x18\n\x10\x63onfigurationUid\x18\x02 \x01(\x0c\x12\x15\n\rcontrollerUid\x18\x03 \x01(\x0c\x12\x13\n\x0bresourceUid\x18\x04 \x01(\x0c\x12\x12\n\nnoSchedule\x18\x05 \x01(\x08\"E\n\x1cRouterRecordRotationsRequest\x12\x14\n\x0c\x65nterpriseId\x18\x01 \x01(\x05\x12\x0f\n\x07records\x18\x02 \x03(\x0c\"a\n\x1dRouterRecordRotationsResponse\x12/\n\trotations\x18\x01 \x03(\x0b\x32\x1c.Router.RouterRecordRotation\x12\x0f\n\x07hasMore\x18\x02 \x01(\x08\"\xed\x01\n\x12RouterRotationInfo\x12,\n\x06status\x18\x01 \x01(\x0e\x32\x1c.Router.RouterRotationStatus\x12\x18\n\x10\x63onfigurationUid\x18\x02 \x01(\x0c\x12\x13\n\x0bresourceUid\x18\x03 \x01(\x0c\x12\x0e\n\x06nodeId\x18\x04 \x01(\x03\x12\x15\n\rcontrollerUid\x18\x05 \x01(\x0c\x12\x16\n\x0e\x63ontrollerName\x18\x06 \x01(\t\x12\x12\n\nscriptName\x18\x07 \x01(\t\x12\x15\n\rpwdComplexity\x18\x08 \x01(\t\x12\x10\n\x08\x64isabled\x18\t \x01(\x08\"\xf6\x01\n\x1bRouterRecordRotationRequest\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x10\n\x08revision\x18\x02 \x01(\x03\x12\x18\n\x10\x63onfigurationUid\x18\x03 \x01(\x0c\x12\x13\n\x0bresourceUid\x18\x04 \x01(\x0c\x12\x10\n\x08schedule\x18\x05 \x01(\t\x12\x18\n\x10\x65nterpriseUserId\x18\x06 \x01(\x03\x12\x15\n\rpwdComplexity\x18\x07 \x01(\x0c\x12\x10\n\x08\x64isabled\x18\x08 \x01(\x08\x12\x15\n\rremoteAddress\x18\t \x01(\t\x12\x17\n\x0f\x63lientVersionId\x18\n \x01(\x05\"<\n\x17UserRecordAccessRequest\x12\x0e\n\x06userId\x18\x01 \x01(\x05\x12\x11\n\trecordUid\x18\x02 \x01(\x0c\"a\n\x18UserRecordAccessResponse\x12\x11\n\trecordUid\x18\x01 \x01(\x0c\x12\x32\n\x0b\x61\x63\x63\x65ssLevel\x18\x02 \x01(\x0e\x32\x1d.Router.UserRecordAccessLevel\"8\n\x10RotationSchedule\x12\x12\n\nrecord_uid\x18\x01 \x01(\x0c\x12\x10\n\x08schedule\x18\x02 \x01(\t\"\x90\x01\n\x12\x41piCallbackRequest\x12\x13\n\x0bresourceUid\x18\x01 \x01(\x0c\x12.\n\tschedules\x18\x02 \x03(\x0b\x32\x1b.Router.ApiCallbackSchedule\x12\x0b\n\x03url\x18\x03 \x01(\t\x12(\n\x0bserviceType\x18\x04 \x01(\x0e\x32\x13.Router.ServiceType\"5\n\x13\x41piCallbackSchedule\x12\x10\n\x08schedule\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c*\xb6\x01\n\x12RouterResponseCode\x12\n\n\x06RRC_OK\x10\x00\x12\x15\n\x11RRC_GENERAL_ERROR\x10\x01\x12\x13\n\x0fRRC_NOT_ALLOWED\x10\x02\x12\x13\n\x0fRRC_BAD_REQUEST\x10\x03\x12\x0f\n\x0bRRC_TIMEOUT\x10\x04\x12\x11\n\rRRC_BAD_STATE\x10\x05\x12\x17\n\x13RRC_CONTROLLER_DOWN\x10\x06\x12\x16\n\x12RRC_WRONG_INSTANCE\x10\x07*k\n\x14RouterRotationStatus\x12\x0e\n\nRRS_ONLINE\x10\x00\x12\x13\n\x0fRRS_NO_ROTATION\x10\x01\x12\x15\n\x11RRS_NO_CONTROLLER\x10\x02\x12\x17\n\x13RRS_CONTROLLER_DOWN\x10\x03*}\n\x15UserRecordAccessLevel\x12\r\n\tRRAL_NONE\x10\x00\x12\r\n\tRRAL_READ\x10\x01\x12\x0e\n\nRRAL_SHARE\x10\x02\x12\r\n\tRRAL_EDIT\x10\x03\x12\x17\n\x13RRAL_EDIT_AND_SHARE\x10\x04\x12\x0e\n\nRRAL_OWNER\x10\x05*.\n\x0bServiceType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x06\n\x02KA\x10\x01\x12\x06\n\x02\x42I\x10\x02\x42\"\n\x18\x63om.keepersecurity.protoB\x06Routerb\x06proto3') _ROUTERRESPONSECODE = DESCRIPTOR.enum_types_by_name['RouterResponseCode'] RouterResponseCode = enum_type_wrapper.EnumTypeWrapper(_ROUTERRESPONSECODE) @@ -63,12 +63,6 @@ _ROTATIONSCHEDULE = DESCRIPTOR.message_types_by_name['RotationSchedule'] _APICALLBACKREQUEST = DESCRIPTOR.message_types_by_name['ApiCallbackRequest'] _APICALLBACKSCHEDULE = DESCRIPTOR.message_types_by_name['ApiCallbackSchedule'] -_ROUTERSCHEDULEDACTIONS = DESCRIPTOR.message_types_by_name['RouterScheduledActions'] -_ROUTERRECORDSROTATIONREQUEST = DESCRIPTOR.message_types_by_name['RouterRecordsRotationRequest'] -_CONNECTIONPARAMETERS = DESCRIPTOR.message_types_by_name['ConnectionParameters'] -_VALIDATECONNECTIONSREQUEST = DESCRIPTOR.message_types_by_name['ValidateConnectionsRequest'] -_CONNECTIONVALIDATIONFAILURE = DESCRIPTOR.message_types_by_name['ConnectionValidationFailure'] -_VALIDATECONNECTIONSRESPONSE = DESCRIPTOR.message_types_by_name['ValidateConnectionsResponse'] RouterResponse = _reflection.GeneratedProtocolMessageType('RouterResponse', (_message.Message,), { 'DESCRIPTOR' : _ROUTERRESPONSE, '__module__' : 'router_pb2' @@ -167,60 +161,18 @@ }) _sym_db.RegisterMessage(ApiCallbackSchedule) -RouterScheduledActions = _reflection.GeneratedProtocolMessageType('RouterScheduledActions', (_message.Message,), { - 'DESCRIPTOR' : _ROUTERSCHEDULEDACTIONS, - '__module__' : 'router_pb2' - # @@protoc_insertion_point(class_scope:Router.RouterScheduledActions) - }) -_sym_db.RegisterMessage(RouterScheduledActions) - -RouterRecordsRotationRequest = _reflection.GeneratedProtocolMessageType('RouterRecordsRotationRequest', (_message.Message,), { - 'DESCRIPTOR' : _ROUTERRECORDSROTATIONREQUEST, - '__module__' : 'router_pb2' - # @@protoc_insertion_point(class_scope:Router.RouterRecordsRotationRequest) - }) -_sym_db.RegisterMessage(RouterRecordsRotationRequest) - -ConnectionParameters = _reflection.GeneratedProtocolMessageType('ConnectionParameters', (_message.Message,), { - 'DESCRIPTOR' : _CONNECTIONPARAMETERS, - '__module__' : 'router_pb2' - # @@protoc_insertion_point(class_scope:Router.ConnectionParameters) - }) -_sym_db.RegisterMessage(ConnectionParameters) - -ValidateConnectionsRequest = _reflection.GeneratedProtocolMessageType('ValidateConnectionsRequest', (_message.Message,), { - 'DESCRIPTOR' : _VALIDATECONNECTIONSREQUEST, - '__module__' : 'router_pb2' - # @@protoc_insertion_point(class_scope:Router.ValidateConnectionsRequest) - }) -_sym_db.RegisterMessage(ValidateConnectionsRequest) - -ConnectionValidationFailure = _reflection.GeneratedProtocolMessageType('ConnectionValidationFailure', (_message.Message,), { - 'DESCRIPTOR' : _CONNECTIONVALIDATIONFAILURE, - '__module__' : 'router_pb2' - # @@protoc_insertion_point(class_scope:Router.ConnectionValidationFailure) - }) -_sym_db.RegisterMessage(ConnectionValidationFailure) - -ValidateConnectionsResponse = _reflection.GeneratedProtocolMessageType('ValidateConnectionsResponse', (_message.Message,), { - 'DESCRIPTOR' : _VALIDATECONNECTIONSRESPONSE, - '__module__' : 'router_pb2' - # @@protoc_insertion_point(class_scope:Router.ValidateConnectionsResponse) - }) -_sym_db.RegisterMessage(ValidateConnectionsResponse) - if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\030com.keepersecurity.protoB\006Router' - _ROUTERRESPONSECODE._serialized_start=2548 - _ROUTERRESPONSECODE._serialized_end=2730 - _ROUTERROTATIONSTATUS._serialized_start=2732 - _ROUTERROTATIONSTATUS._serialized_end=2839 - _USERRECORDACCESSLEVEL._serialized_start=2841 - _USERRECORDACCESSLEVEL._serialized_end=2966 - _SERVICETYPE._serialized_start=2968 - _SERVICETYPE._serialized_end=3014 + _ROUTERRESPONSECODE._serialized_start=2003 + _ROUTERRESPONSECODE._serialized_end=2185 + _ROUTERROTATIONSTATUS._serialized_start=2187 + _ROUTERROTATIONSTATUS._serialized_end=2294 + _USERRECORDACCESSLEVEL._serialized_start=2296 + _USERRECORDACCESSLEVEL._serialized_end=2421 + _SERVICETYPE._serialized_start=2423 + _SERVICETYPE._serialized_end=2469 _ROUTERRESPONSE._serialized_start=35 _ROUTERRESPONSE._serialized_end=149 _ROUTERCONTROLLERMESSAGE._serialized_start=152 @@ -249,16 +201,4 @@ _APICALLBACKREQUEST._serialized_end=1945 _APICALLBACKSCHEDULE._serialized_start=1947 _APICALLBACKSCHEDULE._serialized_end=2000 - _ROUTERSCHEDULEDACTIONS._serialized_start=2002 - _ROUTERSCHEDULEDACTIONS._serialized_end=2066 - _ROUTERRECORDSROTATIONREQUEST._serialized_start=2068 - _ROUTERRECORDSROTATIONREQUEST._serialized_end=2157 - _CONNECTIONPARAMETERS._serialized_start=2160 - _CONNECTIONPARAMETERS._serialized_end=2293 - _VALIDATECONNECTIONSREQUEST._serialized_start=2295 - _VALIDATECONNECTIONSREQUEST._serialized_end=2374 - _CONNECTIONVALIDATIONFAILURE._serialized_start=2376 - _CONNECTIONVALIDATIONFAILURE._serialized_end=2450 - _VALIDATECONNECTIONSRESPONSE._serialized_start=2452 - _VALIDATECONNECTIONSRESPONSE._serialized_end=2545 # @@protoc_insertion_point(module_scope) diff --git a/keepercommander/proto/ssocloud_pb2.py b/keepercommander/proto/ssocloud_pb2.py index 0ec72dcfb..616ff3218 100644 --- a/keepercommander/proto/ssocloud_pb2.py +++ b/keepercommander/proto/ssocloud_pb2.py @@ -16,7 +16,7 @@ from . import APIRequest_pb2 as APIRequest__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0essocloud.proto\x12\x08SsoCloud\x1a\x10\x41PIRequest.proto\"\xd5\x01\n\x14SsoCloudSettingValue\x12\x11\n\tsettingId\x18\x01 \x01(\x04\x12\x13\n\x0bsettingName\x18\x02 \x01(\t\x12\r\n\x05label\x18\x03 \x01(\t\x12\r\n\x05value\x18\x04 \x01(\t\x12%\n\tvalueType\x18\x05 \x01(\x0e\x32\x12.SsoCloud.DataType\x12\x14\n\x0clastModified\x18\x07 \x01(\t\x12\x12\n\nisFromFile\x18\x08 \x01(\x08\x12\x12\n\nisEditable\x18\t \x01(\x08\x12\x12\n\nisRequired\x18\n \x01(\x08\"\x89\x01\n\x15SsoCloudSettingAction\x12\x11\n\tsettingId\x18\x01 \x01(\x04\x12\x13\n\x0bsettingName\x18\x02 \x01(\t\x12\x39\n\toperation\x18\x03 \x01(\x0e\x32&.SsoCloud.SsoCloudSettingOperationType\x12\r\n\x05value\x18\x04 \x01(\t\"\xe1\x01\n\x1cSsoCloudConfigurationRequest\x12\x1c\n\x14ssoServiceProviderId\x18\x01 \x01(\x04\x12\x1c\n\x14ssoSpConfigurationId\x18\x02 \x01(\x04\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x37\n\x13ssoAuthProtocolType\x18\x04 \x01(\x0e\x32\x1a.SsoCloud.AuthProtocolType\x12>\n\x15ssoCloudSettingAction\x18\x05 \x03(\x0b\x32\x1f.SsoCloud.SsoCloudSettingAction\"\xe5\x01\n\x1dSsoCloudConfigurationResponse\x12\x1c\n\x14ssoServiceProviderId\x18\x01 \x01(\x04\x12\x1c\n\x14ssoSpConfigurationId\x18\x02 \x01(\x04\x12\x14\n\x0c\x65nterpriseId\x18\x03 \x01(\x04\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x10\n\x08protocol\x18\x05 \x01(\t\x12\x14\n\x0clastModified\x18\x06 \x01(\t\x12<\n\x14ssoCloudSettingValue\x18\x07 \x03(\x0b\x32\x1e.SsoCloud.SsoCloudSettingValue\"E\n\x11SsoIdpTypeRequest\x12\x14\n\x0cssoIdpTypeId\x18\x01 \x01(\r\x12\x0b\n\x03tag\x18\x02 \x01(\t\x12\r\n\x05label\x18\x03 \x01(\t\"F\n\x12SsoIdpTypeResponse\x12\x14\n\x0cssoIdpTypeId\x18\x01 \x01(\x05\x12\x0b\n\x03tag\x18\x02 \x01(\x05\x12\r\n\x05label\x18\x03 \x01(\x05\"6\n\x16SsoCloudSAMLLogRequest\x12\x1c\n\x14ssoServiceProviderId\x18\x01 \x01(\x04\"\xdc\x01\n\x14SsoCloudSAMLLogEntry\x12\x12\n\nserverTime\x18\x01 \x01(\t\x12\x11\n\tdirection\x18\x02 \x01(\t\x12\x13\n\x0bmessageType\x18\x03 \x01(\t\x12\x15\n\rmessageIssued\x18\x04 \x01(\t\x12\x14\n\x0c\x66romEntityId\x18\x05 \x01(\t\x12\x12\n\nsamlStatus\x18\x06 \x01(\t\x12\x12\n\nrelayState\x18\x07 \x01(\t\x12\x13\n\x0bsamlContent\x18\x08 \x01(\t\x12\x10\n\x08isSigned\x18\t \x01(\x08\x12\x0c\n\x04isOK\x18\n \x01(\x08\"f\n\x17SsoCloudSAMLLogResponse\x12\x1c\n\x14ssoServiceProviderId\x18\x01 \x01(\x04\x12-\n\x05\x65ntry\x18\x02 \x03(\x0b\x32\x1e.SsoCloud.SsoCloudSAMLLogEntry\"b\n$SsoCloudServiceProviderUpdateRequest\x12\x1c\n\x14ssoServiceProviderId\x18\x01 \x01(\x04\x12\x1c\n\x14ssoSpConfigurationId\x18\x02 \x01(\x04\"]\n\x1aSsoCloudIdpMetadataRequest\x12\x1c\n\x14ssoSpConfigurationId\x18\x01 \x01(\x04\x12\x10\n\x08\x66ilename\x18\x02 \x01(\t\x12\x0f\n\x07\x63ontent\x18\x03 \x01(\x0c\"F\n&SsoCloudConfigurationValidationRequest\x12\x1c\n\x14ssoSpConfigurationId\x18\x01 \x03(\x04\"]\n\x11ValidationContent\x12\x1c\n\x14ssoSpConfigurationId\x18\x01 \x01(\x04\x12\x14\n\x0cisSuccessful\x18\x02 \x01(\x08\x12\x14\n\x0c\x65rrorMessage\x18\x03 \x03(\t\"a\n\'SsoCloudConfigurationValidationResponse\x12\x36\n\x11validationContent\x18\x01 \x03(\x0b\x32\x1b.SsoCloud.ValidationContent\"O\n/SsoCloudServiceProviderConfigurationListRequest\x12\x1c\n\x14ssoServiceProviderId\x18\x01 \x01(\x04\"u\n\x15\x43onfigurationListItem\x12\x1c\n\x14ssoSpConfigurationId\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x12\n\nisSelected\x18\x03 \x01(\x08\x12\x1c\n\x14ssoServiceProviderId\x18\x04 \x03(\x04\"n\n0SsoCloudServiceProviderConfigurationListResponse\x12:\n\x11\x63onfigurationItem\x18\x01 \x03(\x0b\x32\x1f.SsoCloud.ConfigurationListItem\"\xbf\x01\n\x0fSsoCloudRequest\x12\x19\n\x11messageSessionUid\x18\x01 \x01(\x0c\x12\x15\n\rclientVersion\x18\x02 \x01(\t\x12\x10\n\x08\x65mbedded\x18\x03 \x01(\x08\x12\x0c\n\x04json\x18\x04 \x01(\x08\x12\x0c\n\x04\x64\x65st\x18\x05 \x01(\t\x12\x14\n\x0cidpSessionId\x18\x06 \x01(\t\x12\x12\n\nforceLogin\x18\x07 \x01(\x08\x12\x10\n\x08username\x18\x08 \x01(\t\x12\x10\n\x08\x64\x65tached\x18\t \x01(\x08\"\xc9\x01\n\x10SsoCloudResponse\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\t\x12\x19\n\x11messageSessionUid\x18\x02 \x01(\x0c\x12\r\n\x05\x65mail\x18\x03 \x01(\t\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x04 \x01(\x0c\x12\x14\n\x0cproviderName\x18\x05 \x01(\t\x12\x14\n\x0cidpSessionId\x18\x06 \x01(\t\x12\x1d\n\x15\x65ncryptedSessionToken\x18\x07 \x01(\x0c\x12\x12\n\nerrorToken\x18\x08 \x01(\t\"Z\n\x12SsoCloudLogRequest\x12\x1c\n\x14ssoServiceProviderId\x18\x01 \x01(\x04\x12\x13\n\x0bserviceName\x18\x02 \x01(\t\x12\x11\n\tserviceId\x18\x03 \x01(\r\"\x88\x02\n\x0eSamlRelayState\x12\x19\n\x11messageSessionUid\x18\x01 \x01(\x0c\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x10\n\x08\x65mbedded\x18\x03 \x01(\x08\x12\x0c\n\x04json\x18\x04 \x01(\x08\x12\x0e\n\x06\x64\x65stId\x18\x05 \x01(\r\x12\r\n\x05keyId\x18\x06 \x01(\x05\x12<\n\x11supportedLanguage\x18\x07 \x01(\x0e\x32!.Authentication.SupportedLanguage\x12\x10\n\x08\x63hecksum\x18\x08 \x01(\x04\x12\x16\n\x0eisGeneratedUid\x18\t \x01(\x08\x12\x10\n\x08\x64\x65viceId\x18\n \x01(\x03\x12\x10\n\x08\x64\x65tached\x18\x0b \x01(\x08\"q\n\x1eSsoCloudMigrationStatusRequest\x12\x0e\n\x06nodeId\x18\x01 \x01(\x04\x12\x12\n\nfullStatus\x18\x02 \x01(\x08\x12\x1c\n\x14includeMigratedUsers\x18\x03 \x01(\x08\x12\r\n\x05limit\x18\x04 \x01(\x05\"\xe8\x02\n\x1fSsoCloudMigrationStatusResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x0e\n\x06nodeId\x18\x03 \x01(\x04\x12\x14\n\x0cssoConnectId\x18\x04 \x01(\x04\x12\x16\n\x0essoConnectName\x18\x05 \x01(\t\x12\x19\n\x11ssoConnectCloudId\x18\x06 \x01(\x04\x12\x1b\n\x13ssoConnectCloudName\x18\x07 \x01(\t\x12\x17\n\x0ftotalUsersCount\x18\x08 \x01(\r\x12\x1a\n\x12usersMigratedCount\x18\t \x01(\r\x12:\n\rmigratedUsers\x18\n \x03(\x0b\x32#.SsoCloud.SsoCloudMigrationUserInfo\x12<\n\x0funmigratedUsers\x18\x0b \x03(\x0b\x32#.SsoCloud.SsoCloudMigrationUserInfo\"`\n\x19SsoCloudMigrationUserInfo\x12\x0e\n\x06userId\x18\x01 \x01(\r\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x10\n\x08\x66ullName\x18\x03 \x01(\t\x12\x12\n\nisMigrated\x18\x04 \x01(\x08*\x1d\n\x10\x41uthProtocolType\x12\t\n\x05SAML2\x10\x00*\x80\x02\n\x08\x44\x61taType\x12\x07\n\x03\x41NY\x10\x00\x12\x0b\n\x07\x42OOLEAN\x10\x01\x12\x0b\n\x07INTEGER\x10\x02\x12\n\n\x06STRING\x10\x03\x12\t\n\x05\x42YTES\x10\x04\x12\x07\n\x03URL\x10\x05\x12.\n*com_keepersecurity_proto_SsoCloud_DataType\x10\x06\x12\x36\n2com_keepersecurity_proto_SsoCloud_AuthProtocolType\x10\x07\x12\x30\n,com_keepersecurity_proto_SsoCloud_SsoIdpType\x10\x08\x12\x08\n\x04LONG\x10\t\x12\r\n\tTIMESTAMP\x10\n*R\n\x1cSsoCloudSettingOperationType\x12\x07\n\x03SET\x10\x00\x12\x07\n\x03GET\x10\x01\x12\n\n\x06\x44\x45LETE\x10\x02\x12\x14\n\x10RESET_TO_DEFAULT\x10\x03*\x82\x01\n\nSsoIdpType\x12\r\n\tXX_UNUSED\x10\x00\x12\x0b\n\x07GENERIC\x10\x01\x12\x06\n\x02\x46\x35\x10\x02\x12\n\n\x06GOOGLE\x10\x03\x12\x08\n\x04OKTA\x10\x04\x12\x08\n\x04\x41\x44\x46S\x10\x05\x12\t\n\x05\x41ZURE\x10\x06\x12\x0c\n\x08ONELOGIN\x10\x07\x12\x08\n\x04PING\x10\x08\x12\r\n\tJUMPCLOUD\x10\tB$\n\x18\x63om.keepersecurity.protoB\x08SsoCloudb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0essocloud.proto\x12\x08SsoCloud\x1a\x10\x41PIRequest.proto\"\xd5\x01\n\x14SsoCloudSettingValue\x12\x11\n\tsettingId\x18\x01 \x01(\x04\x12\x13\n\x0bsettingName\x18\x02 \x01(\t\x12\r\n\x05label\x18\x03 \x01(\t\x12\r\n\x05value\x18\x04 \x01(\t\x12%\n\tvalueType\x18\x05 \x01(\x0e\x32\x12.SsoCloud.DataType\x12\x14\n\x0clastModified\x18\x07 \x01(\t\x12\x12\n\nisFromFile\x18\x08 \x01(\x08\x12\x12\n\nisEditable\x18\t \x01(\x08\x12\x12\n\nisRequired\x18\n \x01(\x08\"\x89\x01\n\x15SsoCloudSettingAction\x12\x11\n\tsettingId\x18\x01 \x01(\x04\x12\x13\n\x0bsettingName\x18\x02 \x01(\t\x12\x39\n\toperation\x18\x03 \x01(\x0e\x32&.SsoCloud.SsoCloudSettingOperationType\x12\r\n\x05value\x18\x04 \x01(\t\"\xe1\x01\n\x1cSsoCloudConfigurationRequest\x12\x1c\n\x14ssoServiceProviderId\x18\x01 \x01(\x04\x12\x1c\n\x14ssoSpConfigurationId\x18\x02 \x01(\x04\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x37\n\x13ssoAuthProtocolType\x18\x04 \x01(\x0e\x32\x1a.SsoCloud.AuthProtocolType\x12>\n\x15ssoCloudSettingAction\x18\x05 \x03(\x0b\x32\x1f.SsoCloud.SsoCloudSettingAction\"d\n\x13SsoSharedConfigItem\x12\x1c\n\x14ssoSpConfigurationId\x18\x01 \x01(\x04\x12\x1c\n\x14ssoServiceProviderId\x18\x02 \x01(\x04\x12\x11\n\tssoNodeId\x18\x03 \x01(\x04\"\xad\x02\n\x1dSsoCloudConfigurationResponse\x12\x1c\n\x14ssoServiceProviderId\x18\x01 \x01(\x04\x12\x1c\n\x14ssoSpConfigurationId\x18\x02 \x01(\x04\x12\x14\n\x0c\x65nterpriseId\x18\x03 \x01(\x04\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x10\n\x08protocol\x18\x05 \x01(\t\x12\x14\n\x0clastModified\x18\x06 \x01(\t\x12<\n\x14ssoCloudSettingValue\x18\x07 \x03(\x0b\x32\x1e.SsoCloud.SsoCloudSettingValue\x12\x10\n\x08isShared\x18\x08 \x01(\x08\x12\x34\n\rsharedConfigs\x18\t \x03(\x0b\x32\x1d.SsoCloud.SsoSharedConfigItem\"E\n\x11SsoIdpTypeRequest\x12\x14\n\x0cssoIdpTypeId\x18\x01 \x01(\r\x12\x0b\n\x03tag\x18\x02 \x01(\t\x12\r\n\x05label\x18\x03 \x01(\t\"F\n\x12SsoIdpTypeResponse\x12\x14\n\x0cssoIdpTypeId\x18\x01 \x01(\x05\x12\x0b\n\x03tag\x18\x02 \x01(\x05\x12\r\n\x05label\x18\x03 \x01(\x05\"6\n\x16SsoCloudSAMLLogRequest\x12\x1c\n\x14ssoServiceProviderId\x18\x01 \x01(\x04\"\xdc\x01\n\x14SsoCloudSAMLLogEntry\x12\x12\n\nserverTime\x18\x01 \x01(\t\x12\x11\n\tdirection\x18\x02 \x01(\t\x12\x13\n\x0bmessageType\x18\x03 \x01(\t\x12\x15\n\rmessageIssued\x18\x04 \x01(\t\x12\x14\n\x0c\x66romEntityId\x18\x05 \x01(\t\x12\x12\n\nsamlStatus\x18\x06 \x01(\t\x12\x12\n\nrelayState\x18\x07 \x01(\t\x12\x13\n\x0bsamlContent\x18\x08 \x01(\t\x12\x10\n\x08isSigned\x18\t \x01(\x08\x12\x0c\n\x04isOK\x18\n \x01(\x08\"f\n\x17SsoCloudSAMLLogResponse\x12\x1c\n\x14ssoServiceProviderId\x18\x01 \x01(\x04\x12-\n\x05\x65ntry\x18\x02 \x03(\x0b\x32\x1e.SsoCloud.SsoCloudSAMLLogEntry\"b\n$SsoCloudServiceProviderUpdateRequest\x12\x1c\n\x14ssoServiceProviderId\x18\x01 \x01(\x04\x12\x1c\n\x14ssoSpConfigurationId\x18\x02 \x01(\x04\"]\n\x1aSsoCloudIdpMetadataRequest\x12\x1c\n\x14ssoSpConfigurationId\x18\x01 \x01(\x04\x12\x10\n\x08\x66ilename\x18\x02 \x01(\t\x12\x0f\n\x07\x63ontent\x18\x03 \x01(\x0c\"\x9b\x01\n!SsoCloudIdpMetadataSupportRequest\x12\x1c\n\x14ssoServiceProviderId\x18\x01 \x01(\x04\x12\x1c\n\x14ssoSpConfigurationId\x18\x02 \x01(\x04\x12\x17\n\x0fssoEnterpriseId\x18\x03 \x01(\x04\x12\x10\n\x08\x66ilename\x18\x04 \x01(\t\x12\x0f\n\x07\x63ontent\x18\x05 \x01(\x0c\"F\n&SsoCloudConfigurationValidationRequest\x12\x1c\n\x14ssoSpConfigurationId\x18\x01 \x03(\x04\"]\n\x11ValidationContent\x12\x1c\n\x14ssoSpConfigurationId\x18\x01 \x01(\x04\x12\x14\n\x0cisSuccessful\x18\x02 \x01(\x08\x12\x14\n\x0c\x65rrorMessage\x18\x03 \x03(\t\"a\n\'SsoCloudConfigurationValidationResponse\x12\x36\n\x11validationContent\x18\x01 \x03(\x0b\x32\x1b.SsoCloud.ValidationContent\"O\n/SsoCloudServiceProviderConfigurationListRequest\x12\x1c\n\x14ssoServiceProviderId\x18\x01 \x01(\x04\"u\n\x15\x43onfigurationListItem\x12\x1c\n\x14ssoSpConfigurationId\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x12\n\nisSelected\x18\x03 \x01(\x08\x12\x1c\n\x14ssoServiceProviderId\x18\x04 \x03(\x04\"n\n0SsoCloudServiceProviderConfigurationListResponse\x12:\n\x11\x63onfigurationItem\x18\x01 \x03(\x0b\x32\x1f.SsoCloud.ConfigurationListItem\"\xbf\x01\n\x0fSsoCloudRequest\x12\x19\n\x11messageSessionUid\x18\x01 \x01(\x0c\x12\x15\n\rclientVersion\x18\x02 \x01(\t\x12\x10\n\x08\x65mbedded\x18\x03 \x01(\x08\x12\x0c\n\x04json\x18\x04 \x01(\x08\x12\x0c\n\x04\x64\x65st\x18\x05 \x01(\t\x12\x14\n\x0cidpSessionId\x18\x06 \x01(\t\x12\x12\n\nforceLogin\x18\x07 \x01(\x08\x12\x10\n\x08username\x18\x08 \x01(\t\x12\x10\n\x08\x64\x65tached\x18\t \x01(\x08\"\xc9\x01\n\x10SsoCloudResponse\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\t\x12\x19\n\x11messageSessionUid\x18\x02 \x01(\x0c\x12\r\n\x05\x65mail\x18\x03 \x01(\t\x12\x1b\n\x13\x65ncryptedLoginToken\x18\x04 \x01(\x0c\x12\x14\n\x0cproviderName\x18\x05 \x01(\t\x12\x14\n\x0cidpSessionId\x18\x06 \x01(\t\x12\x1d\n\x15\x65ncryptedSessionToken\x18\x07 \x01(\x0c\x12\x12\n\nerrorToken\x18\x08 \x01(\t\"Z\n\x12SsoCloudLogRequest\x12\x1c\n\x14ssoServiceProviderId\x18\x01 \x01(\x04\x12\x13\n\x0bserviceName\x18\x02 \x01(\t\x12\x11\n\tserviceId\x18\x03 \x01(\r\"\x88\x02\n\x0eSamlRelayState\x12\x19\n\x11messageSessionUid\x18\x01 \x01(\x0c\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x10\n\x08\x65mbedded\x18\x03 \x01(\x08\x12\x0c\n\x04json\x18\x04 \x01(\x08\x12\x0e\n\x06\x64\x65stId\x18\x05 \x01(\r\x12\r\n\x05keyId\x18\x06 \x01(\x05\x12<\n\x11supportedLanguage\x18\x07 \x01(\x0e\x32!.Authentication.SupportedLanguage\x12\x10\n\x08\x63hecksum\x18\x08 \x01(\x04\x12\x16\n\x0eisGeneratedUid\x18\t \x01(\x08\x12\x10\n\x08\x64\x65viceId\x18\n \x01(\x03\x12\x10\n\x08\x64\x65tached\x18\x0b \x01(\x08\"q\n\x1eSsoCloudMigrationStatusRequest\x12\x0e\n\x06nodeId\x18\x01 \x01(\x04\x12\x12\n\nfullStatus\x18\x02 \x01(\x08\x12\x1c\n\x14includeMigratedUsers\x18\x03 \x01(\x08\x12\r\n\x05limit\x18\x04 \x01(\x05\"\xe8\x02\n\x1fSsoCloudMigrationStatusResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x0e\n\x06nodeId\x18\x03 \x01(\x04\x12\x14\n\x0cssoConnectId\x18\x04 \x01(\x04\x12\x16\n\x0essoConnectName\x18\x05 \x01(\t\x12\x19\n\x11ssoConnectCloudId\x18\x06 \x01(\x04\x12\x1b\n\x13ssoConnectCloudName\x18\x07 \x01(\t\x12\x17\n\x0ftotalUsersCount\x18\x08 \x01(\r\x12\x1a\n\x12usersMigratedCount\x18\t \x01(\r\x12:\n\rmigratedUsers\x18\n \x03(\x0b\x32#.SsoCloud.SsoCloudMigrationUserInfo\x12<\n\x0funmigratedUsers\x18\x0b \x03(\x0b\x32#.SsoCloud.SsoCloudMigrationUserInfo\"`\n\x19SsoCloudMigrationUserInfo\x12\x0e\n\x06userId\x18\x01 \x01(\r\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x10\n\x08\x66ullName\x18\x03 \x01(\t\x12\x12\n\nisMigrated\x18\x04 \x01(\x08*\x1d\n\x10\x41uthProtocolType\x12\t\n\x05SAML2\x10\x00*\x80\x02\n\x08\x44\x61taType\x12\x07\n\x03\x41NY\x10\x00\x12\x0b\n\x07\x42OOLEAN\x10\x01\x12\x0b\n\x07INTEGER\x10\x02\x12\n\n\x06STRING\x10\x03\x12\t\n\x05\x42YTES\x10\x04\x12\x07\n\x03URL\x10\x05\x12.\n*com_keepersecurity_proto_SsoCloud_DataType\x10\x06\x12\x36\n2com_keepersecurity_proto_SsoCloud_AuthProtocolType\x10\x07\x12\x30\n,com_keepersecurity_proto_SsoCloud_SsoIdpType\x10\x08\x12\x08\n\x04LONG\x10\t\x12\r\n\tTIMESTAMP\x10\n*R\n\x1cSsoCloudSettingOperationType\x12\x07\n\x03SET\x10\x00\x12\x07\n\x03GET\x10\x01\x12\n\n\x06\x44\x45LETE\x10\x02\x12\x14\n\x10RESET_TO_DEFAULT\x10\x03*\xd0\x02\n\nSsoIdpType\x12\r\n\tXX_UNUSED\x10\x00\x12\x0b\n\x07GENERIC\x10\x01\x12\x06\n\x02\x46\x35\x10\x02\x12\n\n\x06GOOGLE\x10\x03\x12\x08\n\x04OKTA\x10\x04\x12\x08\n\x04\x41\x44\x46S\x10\x05\x12\t\n\x05\x41ZURE\x10\x06\x12\x0c\n\x08ONELOGIN\x10\x07\x12\x07\n\x03\x41WS\x10\x08\x12\x0c\n\x08\x43\x45NTRIFY\x10\t\x12\x07\n\x03\x44UO\x10\n\x12\x07\n\x03IBM\x10\x0b\x12\r\n\tJUMPCLOUD\x10\x0c\x12\x08\n\x04PING\x10\r\x12\x0b\n\x07PINGONE\x10\x0e\x12\x07\n\x03RSA\x10\x0f\x12\x0e\n\nSECUREAUTH\x10\x10\x12\n\n\x06THALES\x10\x11\x12\t\n\x05\x41UTH0\x10\x12\x12\n\n\x06\x42\x45YOND\x10\x13\x12\x08\n\x04HYPR\x10\x14\x12\n\n\x06PUREID\x10\x15\x12\x07\n\x03SDO\x10\x16\x12\t\n\x05TRAIT\x10\x17\x12\x0c\n\x08TRANSMIT\x10\x18\x12\x0b\n\x07TRUSONA\x10\x19\x12\x0c\n\x08VERIDIUM\x10\x1a\x12\x07\n\x03\x43\x41S\x10\x1b\x42$\n\x18\x63om.keepersecurity.protoB\x08SsoCloudb\x06proto3') _AUTHPROTOCOLTYPE = DESCRIPTOR.enum_types_by_name['AuthProtocolType'] AuthProtocolType = enum_type_wrapper.EnumTypeWrapper(_AUTHPROTOCOLTYPE) @@ -50,13 +50,32 @@ ADFS = 5 AZURE = 6 ONELOGIN = 7 -PING = 8 -JUMPCLOUD = 9 +AWS = 8 +CENTRIFY = 9 +DUO = 10 +IBM = 11 +JUMPCLOUD = 12 +PING = 13 +PINGONE = 14 +RSA = 15 +SECUREAUTH = 16 +THALES = 17 +AUTH0 = 18 +BEYOND = 19 +HYPR = 20 +PUREID = 21 +SDO = 22 +TRAIT = 23 +TRANSMIT = 24 +TRUSONA = 25 +VERIDIUM = 26 +CAS = 27 _SSOCLOUDSETTINGVALUE = DESCRIPTOR.message_types_by_name['SsoCloudSettingValue'] _SSOCLOUDSETTINGACTION = DESCRIPTOR.message_types_by_name['SsoCloudSettingAction'] _SSOCLOUDCONFIGURATIONREQUEST = DESCRIPTOR.message_types_by_name['SsoCloudConfigurationRequest'] +_SSOSHAREDCONFIGITEM = DESCRIPTOR.message_types_by_name['SsoSharedConfigItem'] _SSOCLOUDCONFIGURATIONRESPONSE = DESCRIPTOR.message_types_by_name['SsoCloudConfigurationResponse'] _SSOIDPTYPEREQUEST = DESCRIPTOR.message_types_by_name['SsoIdpTypeRequest'] _SSOIDPTYPERESPONSE = DESCRIPTOR.message_types_by_name['SsoIdpTypeResponse'] @@ -65,6 +84,7 @@ _SSOCLOUDSAMLLOGRESPONSE = DESCRIPTOR.message_types_by_name['SsoCloudSAMLLogResponse'] _SSOCLOUDSERVICEPROVIDERUPDATEREQUEST = DESCRIPTOR.message_types_by_name['SsoCloudServiceProviderUpdateRequest'] _SSOCLOUDIDPMETADATAREQUEST = DESCRIPTOR.message_types_by_name['SsoCloudIdpMetadataRequest'] +_SSOCLOUDIDPMETADATASUPPORTREQUEST = DESCRIPTOR.message_types_by_name['SsoCloudIdpMetadataSupportRequest'] _SSOCLOUDCONFIGURATIONVALIDATIONREQUEST = DESCRIPTOR.message_types_by_name['SsoCloudConfigurationValidationRequest'] _VALIDATIONCONTENT = DESCRIPTOR.message_types_by_name['ValidationContent'] _SSOCLOUDCONFIGURATIONVALIDATIONRESPONSE = DESCRIPTOR.message_types_by_name['SsoCloudConfigurationValidationResponse'] @@ -99,6 +119,13 @@ }) _sym_db.RegisterMessage(SsoCloudConfigurationRequest) +SsoSharedConfigItem = _reflection.GeneratedProtocolMessageType('SsoSharedConfigItem', (_message.Message,), { + 'DESCRIPTOR' : _SSOSHAREDCONFIGITEM, + '__module__' : 'ssocloud_pb2' + # @@protoc_insertion_point(class_scope:SsoCloud.SsoSharedConfigItem) + }) +_sym_db.RegisterMessage(SsoSharedConfigItem) + SsoCloudConfigurationResponse = _reflection.GeneratedProtocolMessageType('SsoCloudConfigurationResponse', (_message.Message,), { 'DESCRIPTOR' : _SSOCLOUDCONFIGURATIONRESPONSE, '__module__' : 'ssocloud_pb2' @@ -155,6 +182,13 @@ }) _sym_db.RegisterMessage(SsoCloudIdpMetadataRequest) +SsoCloudIdpMetadataSupportRequest = _reflection.GeneratedProtocolMessageType('SsoCloudIdpMetadataSupportRequest', (_message.Message,), { + 'DESCRIPTOR' : _SSOCLOUDIDPMETADATASUPPORTREQUEST, + '__module__' : 'ssocloud_pb2' + # @@protoc_insertion_point(class_scope:SsoCloud.SsoCloudIdpMetadataSupportRequest) + }) +_sym_db.RegisterMessage(SsoCloudIdpMetadataSupportRequest) + SsoCloudConfigurationValidationRequest = _reflection.GeneratedProtocolMessageType('SsoCloudConfigurationValidationRequest', (_message.Message,), { 'DESCRIPTOR' : _SSOCLOUDCONFIGURATIONVALIDATIONREQUEST, '__module__' : 'ssocloud_pb2' @@ -250,60 +284,64 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\030com.keepersecurity.protoB\010SsoCloud' - _AUTHPROTOCOLTYPE._serialized_start=3494 - _AUTHPROTOCOLTYPE._serialized_end=3523 - _DATATYPE._serialized_start=3526 - _DATATYPE._serialized_end=3782 - _SSOCLOUDSETTINGOPERATIONTYPE._serialized_start=3784 - _SSOCLOUDSETTINGOPERATIONTYPE._serialized_end=3866 - _SSOIDPTYPE._serialized_start=3869 - _SSOIDPTYPE._serialized_end=3999 + _AUTHPROTOCOLTYPE._serialized_start=3826 + _AUTHPROTOCOLTYPE._serialized_end=3855 + _DATATYPE._serialized_start=3858 + _DATATYPE._serialized_end=4114 + _SSOCLOUDSETTINGOPERATIONTYPE._serialized_start=4116 + _SSOCLOUDSETTINGOPERATIONTYPE._serialized_end=4198 + _SSOIDPTYPE._serialized_start=4201 + _SSOIDPTYPE._serialized_end=4537 _SSOCLOUDSETTINGVALUE._serialized_start=47 _SSOCLOUDSETTINGVALUE._serialized_end=260 _SSOCLOUDSETTINGACTION._serialized_start=263 _SSOCLOUDSETTINGACTION._serialized_end=400 _SSOCLOUDCONFIGURATIONREQUEST._serialized_start=403 _SSOCLOUDCONFIGURATIONREQUEST._serialized_end=628 - _SSOCLOUDCONFIGURATIONRESPONSE._serialized_start=631 - _SSOCLOUDCONFIGURATIONRESPONSE._serialized_end=860 - _SSOIDPTYPEREQUEST._serialized_start=862 - _SSOIDPTYPEREQUEST._serialized_end=931 - _SSOIDPTYPERESPONSE._serialized_start=933 - _SSOIDPTYPERESPONSE._serialized_end=1003 - _SSOCLOUDSAMLLOGREQUEST._serialized_start=1005 - _SSOCLOUDSAMLLOGREQUEST._serialized_end=1059 - _SSOCLOUDSAMLLOGENTRY._serialized_start=1062 - _SSOCLOUDSAMLLOGENTRY._serialized_end=1282 - _SSOCLOUDSAMLLOGRESPONSE._serialized_start=1284 - _SSOCLOUDSAMLLOGRESPONSE._serialized_end=1386 - _SSOCLOUDSERVICEPROVIDERUPDATEREQUEST._serialized_start=1388 - _SSOCLOUDSERVICEPROVIDERUPDATEREQUEST._serialized_end=1486 - _SSOCLOUDIDPMETADATAREQUEST._serialized_start=1488 - _SSOCLOUDIDPMETADATAREQUEST._serialized_end=1581 - _SSOCLOUDCONFIGURATIONVALIDATIONREQUEST._serialized_start=1583 - _SSOCLOUDCONFIGURATIONVALIDATIONREQUEST._serialized_end=1653 - _VALIDATIONCONTENT._serialized_start=1655 - _VALIDATIONCONTENT._serialized_end=1748 - _SSOCLOUDCONFIGURATIONVALIDATIONRESPONSE._serialized_start=1750 - _SSOCLOUDCONFIGURATIONVALIDATIONRESPONSE._serialized_end=1847 - _SSOCLOUDSERVICEPROVIDERCONFIGURATIONLISTREQUEST._serialized_start=1849 - _SSOCLOUDSERVICEPROVIDERCONFIGURATIONLISTREQUEST._serialized_end=1928 - _CONFIGURATIONLISTITEM._serialized_start=1930 - _CONFIGURATIONLISTITEM._serialized_end=2047 - _SSOCLOUDSERVICEPROVIDERCONFIGURATIONLISTRESPONSE._serialized_start=2049 - _SSOCLOUDSERVICEPROVIDERCONFIGURATIONLISTRESPONSE._serialized_end=2159 - _SSOCLOUDREQUEST._serialized_start=2162 - _SSOCLOUDREQUEST._serialized_end=2353 - _SSOCLOUDRESPONSE._serialized_start=2356 - _SSOCLOUDRESPONSE._serialized_end=2557 - _SSOCLOUDLOGREQUEST._serialized_start=2559 - _SSOCLOUDLOGREQUEST._serialized_end=2649 - _SAMLRELAYSTATE._serialized_start=2652 - _SAMLRELAYSTATE._serialized_end=2916 - _SSOCLOUDMIGRATIONSTATUSREQUEST._serialized_start=2918 - _SSOCLOUDMIGRATIONSTATUSREQUEST._serialized_end=3031 - _SSOCLOUDMIGRATIONSTATUSRESPONSE._serialized_start=3034 - _SSOCLOUDMIGRATIONSTATUSRESPONSE._serialized_end=3394 - _SSOCLOUDMIGRATIONUSERINFO._serialized_start=3396 - _SSOCLOUDMIGRATIONUSERINFO._serialized_end=3492 + _SSOSHAREDCONFIGITEM._serialized_start=630 + _SSOSHAREDCONFIGITEM._serialized_end=730 + _SSOCLOUDCONFIGURATIONRESPONSE._serialized_start=733 + _SSOCLOUDCONFIGURATIONRESPONSE._serialized_end=1034 + _SSOIDPTYPEREQUEST._serialized_start=1036 + _SSOIDPTYPEREQUEST._serialized_end=1105 + _SSOIDPTYPERESPONSE._serialized_start=1107 + _SSOIDPTYPERESPONSE._serialized_end=1177 + _SSOCLOUDSAMLLOGREQUEST._serialized_start=1179 + _SSOCLOUDSAMLLOGREQUEST._serialized_end=1233 + _SSOCLOUDSAMLLOGENTRY._serialized_start=1236 + _SSOCLOUDSAMLLOGENTRY._serialized_end=1456 + _SSOCLOUDSAMLLOGRESPONSE._serialized_start=1458 + _SSOCLOUDSAMLLOGRESPONSE._serialized_end=1560 + _SSOCLOUDSERVICEPROVIDERUPDATEREQUEST._serialized_start=1562 + _SSOCLOUDSERVICEPROVIDERUPDATEREQUEST._serialized_end=1660 + _SSOCLOUDIDPMETADATAREQUEST._serialized_start=1662 + _SSOCLOUDIDPMETADATAREQUEST._serialized_end=1755 + _SSOCLOUDIDPMETADATASUPPORTREQUEST._serialized_start=1758 + _SSOCLOUDIDPMETADATASUPPORTREQUEST._serialized_end=1913 + _SSOCLOUDCONFIGURATIONVALIDATIONREQUEST._serialized_start=1915 + _SSOCLOUDCONFIGURATIONVALIDATIONREQUEST._serialized_end=1985 + _VALIDATIONCONTENT._serialized_start=1987 + _VALIDATIONCONTENT._serialized_end=2080 + _SSOCLOUDCONFIGURATIONVALIDATIONRESPONSE._serialized_start=2082 + _SSOCLOUDCONFIGURATIONVALIDATIONRESPONSE._serialized_end=2179 + _SSOCLOUDSERVICEPROVIDERCONFIGURATIONLISTREQUEST._serialized_start=2181 + _SSOCLOUDSERVICEPROVIDERCONFIGURATIONLISTREQUEST._serialized_end=2260 + _CONFIGURATIONLISTITEM._serialized_start=2262 + _CONFIGURATIONLISTITEM._serialized_end=2379 + _SSOCLOUDSERVICEPROVIDERCONFIGURATIONLISTRESPONSE._serialized_start=2381 + _SSOCLOUDSERVICEPROVIDERCONFIGURATIONLISTRESPONSE._serialized_end=2491 + _SSOCLOUDREQUEST._serialized_start=2494 + _SSOCLOUDREQUEST._serialized_end=2685 + _SSOCLOUDRESPONSE._serialized_start=2688 + _SSOCLOUDRESPONSE._serialized_end=2889 + _SSOCLOUDLOGREQUEST._serialized_start=2891 + _SSOCLOUDLOGREQUEST._serialized_end=2981 + _SAMLRELAYSTATE._serialized_start=2984 + _SAMLRELAYSTATE._serialized_end=3248 + _SSOCLOUDMIGRATIONSTATUSREQUEST._serialized_start=3250 + _SSOCLOUDMIGRATIONSTATUSREQUEST._serialized_end=3363 + _SSOCLOUDMIGRATIONSTATUSRESPONSE._serialized_start=3366 + _SSOCLOUDMIGRATIONSTATUSRESPONSE._serialized_end=3726 + _SSOCLOUDMIGRATIONUSERINFO._serialized_start=3728 + _SSOCLOUDMIGRATIONUSERINFO._serialized_end=3824 # @@protoc_insertion_point(module_scope) diff --git a/keepercommander/rest_api.py b/keepercommander/rest_api.py index 3c7e9939a..68a912f1f 100644 --- a/keepercommander/rest_api.py +++ b/keepercommander/rest_api.py @@ -28,7 +28,7 @@ # CLIENT_VERSION = 'c' + __version__ -CLIENT_VERSION = 'c16.11.0' +CLIENT_VERSION = 'c17.0.0' SERVER_PUBLIC_KEYS = { 1: crypto.load_rsa_public_key(utils.base64_url_decode( diff --git a/keepercommander/sync_down.py b/keepercommander/sync_down.py index 1f426f18d..e323711e6 100644 --- a/keepercommander/sync_down.py +++ b/keepercommander/sync_down.py @@ -15,11 +15,10 @@ import google -from . import api, utils, crypto +from . import api, utils, crypto, convert_keys from .display import bcolors from .params import KeeperParams, RecordOwner from .proto import SyncDown_pb2, record_pb2, client_pb2, breachwatch_pb2 -from .proto.SyncDown_pb2 import BreachWatchRecord, BreachWatchSecurityData from .subfolder import RootFolderNode, UserFolderNode, SharedFolderNode, SharedFolderFolderNode, BaseFolderNode @@ -67,8 +66,8 @@ def delete_team_key(team_uid): params.available_team_cache = None - resp_bw_recs = [] # type: List[BreachWatchRecord] - resp_sec_data_recs = [] # type: List[BreachWatchSecurityData] + resp_bw_recs = [] # type: List[SyncDown_pb2.BreachWatchRecord] + resp_sec_data_recs = [] # type: List[SyncDown_pb2.BreachWatchSecurityData] request = SyncDown_pb2.SyncDownRequest() revision = params.revision full_sync = False @@ -275,10 +274,13 @@ def assign_team(t, team): team['name'] = t.name team['team_key'] = utils.base64_url_encode(t.teamKey) team['team_key_type'] = t.teamKeyType - team['team_private_key'] = utils.base64_url_encode(t.teamPrivateKey) team['restrict_edit'] = t.restrictEdit team['restrict_share'] = t.restrictShare team['restrict_view'] = t.restrictView + if len(t.teamEccPrivateKey) > 0: + team['team_ec_private_key'] = utils.base64_url_encode(t.teamEccPrivateKey) + if len(t.teamPrivateKey) > 0: + team['team_private_key'] = utils.base64_url_encode(t.teamPrivateKey) for t in response.teams: team_uid = utils.base64_url_encode(t.teamUid) @@ -644,14 +646,16 @@ def convert_user_folder_shared_folder(ufsf): else: record_key_encrypted = utils.base64_url_decode(meta_data['record_key']) key_type = meta_data['record_key_type'] - if key_type == 1: # AES256CBC + if key_type == record_pb2.ENCRYPTED_BY_DATA_KEY: record_key = crypto.decrypt_aes_v1(record_key_encrypted, params.data_key) - elif meta_data['record_key_type'] == 2: # RSA + elif key_type == record_pb2.ENCRYPTED_BY_PUBLIC_KEY: record_key = crypto.decrypt_rsa(record_key_encrypted, params.rsa_key2) - elif key_type == 3: # AES256GCM + elif key_type == record_pb2.ENCRYPTED_BY_DATA_KEY_GCM: record_key = crypto.decrypt_aes_v2(record_key_encrypted, params.data_key) - elif meta_data['record_key_type'] == 4: # EC + elif key_type == record_pb2.ENCRYPTED_BY_PUBLIC_KEY_ECC: record_key = crypto.decrypt_ec(record_key_encrypted, params.ecc_key) + else: + raise Exception('Unsupported key type') except Exception as e: logging.debug('Record %s meta data decryption error: %s', record_uid, e) @@ -670,31 +674,58 @@ def convert_user_folder_shared_folder(ufsf): try: encrypted_team_key = utils.base64_url_decode(team['team_key']) key_type = team['team_key_type'] - if key_type == 2: + if key_type == record_pb2.ENCRYPTED_BY_DATA_KEY: + team_key = crypto.decrypt_aes_v1(encrypted_team_key, params.data_key) + elif key_type == record_pb2.ENCRYPTED_BY_PUBLIC_KEY: team_key = crypto.decrypt_rsa(encrypted_team_key, params.rsa_key2) + elif key_type == record_pb2.ENCRYPTED_BY_DATA_KEY_GCM: + team_key = crypto.decrypt_aes_v2(encrypted_team_key, params.data_key) + elif key_type == record_pb2.ENCRYPTED_BY_PUBLIC_KEY_ECC: + team_key = crypto.decrypt_ec(encrypted_team_key, params.ecc_key) else: - team_key = crypto.decrypt_aes_v1(encrypted_team_key, params.data_key) + raise Exception('Unsupported key type') team['team_key_unencrypted'] = team_key - encrypted_team_private_key = utils.base64_url_decode(team['team_private_key']) - team['team_private_key_unencrypted'] = \ - crypto.decrypt_aes_v1(encrypted_team_private_key, team_key) + if 'team_private_key' in team: + encrypted_team_private_key = utils.base64_url_decode(team['team_private_key']) + team['team_private_key_unencrypted'] = crypto.decrypt_aes_v1(encrypted_team_private_key, team_key) + if 'team_ec_private_key' in team: + encrypted_team_private_key = utils.base64_url_decode(team['team_ec_private_key']) + team['team_ec_private_key_unencrypted'] = crypto.decrypt_aes_v2(encrypted_team_private_key, team_key) except Exception as e: logging.warning('Could not decrypt team %s key: %s', team_uid, e) if 'team_key_unencrypted' in team: + team_key = team['team_key_unencrypted'] + team_uid = team['team_uid'] if 'shared_folder_keys' in team: for sf_key in team['shared_folder_keys']: + shared_folder_uid = sf_key['shared_folder_uid'] if 'shared_folder_key_unencrypted' not in sf_key: encrypted_sf_key = utils.base64_url_decode(sf_key['shared_folder_key']) try: - if sf_key['key_type'] == 2: - team_private_key = team['team_private_key_unencrypted'] - team_pk = crypto.load_rsa_private_key(team_private_key) - decrypted_sf_key = crypto.decrypt_rsa(encrypted_sf_key, team_pk) + key_type = sf_key['key_type'] + decrypted_sf_key = None + if key_type == record_pb2.ENCRYPTED_BY_DATA_KEY: + decrypted_sf_key = crypto.decrypt_aes_v1(encrypted_sf_key, team_key) + elif key_type == record_pb2.ENCRYPTED_BY_DATA_KEY: + if 'team_private_key_unencrypted' in team: + team_private_key = team['team_private_key_unencrypted'] + team_pk = crypto.load_rsa_private_key(team_private_key) + decrypted_sf_key = crypto.decrypt_rsa(encrypted_sf_key, team_pk) + elif key_type == record_pb2.ENCRYPTED_BY_DATA_KEY_GCM: + decrypted_sf_key = crypto.decrypt_aes_v2(encrypted_sf_key, team_key) + elif key_type == record_pb2.ENCRYPTED_BY_PUBLIC_KEY_ECC: + if 'team_ec_private_key_unencrypted' in team: + team_private_key = team['team_ec_private_key_unencrypted'] + team_pk = crypto.load_ec_private_key(team_private_key) + decrypted_sf_key = crypto.decrypt_ec(encrypted_sf_key, team_pk) + else: + raise Exception('Unsupported key type') + if decrypted_sf_key: + sf_key['shared_folder_key_unencrypted'] = decrypted_sf_key else: - decrypted_sf_key = crypto.decrypt_aes_v1(encrypted_sf_key, team['team_key_unencrypted']) - sf_key['shared_folder_key_unencrypted'] = decrypted_sf_key + logging.debug('Cannot decrypt team\' shared folder key: team_uid=%s, shared_folder_uid=%s', team_uid, shared_folder_uid) except Exception as e: - logging.debug('Decryption error: %s', e) + logging.debug('Decryption error: team_uid=%s, shared_folder_uid=%s: %s', team_uid, shared_folder_uid, e) else: to_delete.add(team_uid) @@ -709,8 +740,14 @@ def convert_user_folder_shared_folder(ufsf): try: encrypted_sf_key = utils.base64_url_decode(shared_folder['shared_folder_key']) key_type = shared_folder['key_type'] - if key_type == 2: + if key_type == record_pb2.ENCRYPTED_BY_DATA_KEY: + sf_key = crypto.decrypt_aes_v1(encrypted_sf_key, params.data_key) + elif key_type == record_pb2.ENCRYPTED_BY_PUBLIC_KEY: sf_key = crypto.decrypt_rsa(encrypted_sf_key, params.rsa_key2) + elif key_type == record_pb2.ENCRYPTED_BY_DATA_KEY_GCM: + sf_key = crypto.decrypt_aes_v2(encrypted_sf_key, params.data_key) + elif key_type == record_pb2.ENCRYPTED_BY_PUBLIC_KEY_ECC: + sf_key = crypto.decrypt_ec(encrypted_sf_key, params.ecc_key) else: sf_key = crypto.decrypt_aes_v1(encrypted_sf_key, params.data_key) shared_folder['shared_folder_key_unencrypted'] = sf_key @@ -877,8 +914,15 @@ def convert_user_folder_shared_folder(ufsf): if 'folder_key_unencrypted' not in sf: try: encrypted_key = utils.base64_url_decode(sf['user_folder_key']) - if sf['key_type'] == 2: + key_type = sf['key_type'] + if key_type == record_pb2.ENCRYPTED_BY_DATA_KEY: + sf['folder_key_unencrypted'] = crypto.decrypt_aes_v1(encrypted_key, params.data_key) + elif key_type == record_pb2.ENCRYPTED_BY_PUBLIC_KEY: sf['folder_key_unencrypted'] = crypto.decrypt_rsa(encrypted_key, params.rsa_key2) + elif key_type == record_pb2.ENCRYPTED_BY_DATA_KEY_GCM: + sf['folder_key_unencrypted'] = crypto.decrypt_aes_v2(encrypted_key, params.data_key) + elif key_type == record_pb2.ENCRYPTED_BY_PUBLIC_KEY_ECC: + sf['folder_key_unencrypted'] = crypto.decrypt_ec(encrypted_key, params.ecc_key) else: sf['folder_key_unencrypted'] = crypto.decrypt_aes_v1(encrypted_key, params.data_key) except Exception as e: @@ -948,6 +992,8 @@ def convert_user_folder_shared_folder(ufsf): params.record_type_cache[type_id] = rt.content if full_sync: + convert_keys.change_key_types(params) + if params.breach_watch: weak_count = 0 for _ in params.breach_watch.get_records_by_status(params, ['WEAK', 'BREACHED']): diff --git a/tests/test_cross_commands.py b/tests/test_cross_commands.py index 64837d6cd..7df35a795 100644 --- a/tests/test_cross_commands.py +++ b/tests/test_cross_commands.py @@ -65,7 +65,9 @@ def test_add_user_to_team(self): self.assertGreater(len(uids), 0, 'cannot resolve team') ent1_team_uid = uids[0] - team_key = team_cmd.get_team_key(param1, ent1_team_uid) + api.load_team_keys(param1, [ent1_team_uid]) + team_keys = param1.key_cache.get(ent1_team_uid) + team_key = team_keys.aes if team_keys else None self.assertIsNotNone(team_key) rq = { "command": "team_enterprise_user_add", diff --git a/unit-tests/test_command_enterprise.py b/unit-tests/test_command_enterprise.py index ca1d06449..7bdcea8f9 100644 --- a/unit-tests/test_command_enterprise.py +++ b/unit-tests/test_command_enterprise.py @@ -6,7 +6,7 @@ from data_enterprise import EnterpriseEnvironment, get_enterprise_data, enterprise_allocate_ids from keepercommander import api, crypto, utils, vault -from keepercommander.params import KeeperParams +from keepercommander.params import KeeperParams, PublicKeys from keepercommander.error import CommandError from data_vault import VaultEnvironment, get_connected_params from keepercommander.commands import enterprise, aram @@ -26,6 +26,8 @@ def setUp(self): self.communicate_mock.side_effect = TestEnterprise.communicate_success self.query_enterprise_mock = mock.patch('keepercommander.api.query_enterprise').start() self.query_enterprise_mock.side_effect = TestEnterprise.query_enterprise + self.load_user_public_keys_mock = mock.patch('keepercommander.api.load_user_public_keys').start() + self.load_user_public_keys_mock.side_effect = TestEnterprise.load_user_public_keys def tearDown(self): mock.patch.stopall() @@ -324,10 +326,6 @@ def test_enterprise_push_command(self): with self.assertRaises(CommandError): cmd.execute(params, user=[ent_env.user2_email]) - def get_public_keys(_params, emails): - for email in emails: - emails[email] = vault_env.public_key - @staticmethod def get_audit_event(): return { @@ -336,9 +334,15 @@ def get_audit_event(): 'username': vault_env.user, 'ip_address': '9.9.9.9', 'audit_event_type': 'login', - 'keeper_version': 'c14.0.0.0' + 'keeper_version': 'c16.0.0' } + @staticmethod + def load_user_public_keys(params, emails, send_invites=False): + keys = PublicKeys(rsa=crypto.unload_rsa_public_key(vault_env.public_key)) + for email in emails: + params.key_cache[email] = keys + @staticmethod def query_enterprise(params, force=False, tree_key=None): # type: (KeeperParams, Optional[bool], Optional[bytes]) -> None diff --git a/unit-tests/test_command_register.py b/unit-tests/test_command_register.py index 2e3817762..67c445f86 100644 --- a/unit-tests/test_command_register.py +++ b/unit-tests/test_command_register.py @@ -27,10 +27,9 @@ def test_share_record(self): record_uid = next(iter([x['record_uid'] for x in params.meta_data_cache.values() if x['can_share']])) cmd = register.ShareRecordCommand() - self.record_share_mock = mock.patch('keepercommander.api.get_record_shares').start() - def not_shared(params, record_uids, is_share_admin): pass + self.record_share_mock = mock.patch('keepercommander.api.get_record_shares').start() self.record_share_mock.side_effect = not_shared TestRegister.expected_commands.extend(['records_share_update']) diff --git a/unit-tests/test_command_utils.py b/unit-tests/test_command_utils.py index c5adc1c97..a06fe846e 100644 --- a/unit-tests/test_command_utils.py +++ b/unit-tests/test_command_utils.py @@ -106,7 +106,7 @@ def test_account_transfer_consent(self): 'role_id': ent_env.role1_id, 'public_key': vault_env.encoded_public_key }], - 'must_perform_account_share_by': datetime.datetime.now().timestamp() + 'must_perform_account_share_by': int(datetime.datetime.now().timestamp()) } cmd = utils.CheckEnforcementsCommand() diff --git a/unit-tests/test_sync_down.py b/unit-tests/test_sync_down.py index f73c0d685..71f52adff 100644 --- a/unit-tests/test_sync_down.py +++ b/unit-tests/test_sync_down.py @@ -58,8 +58,8 @@ def test_sync_remove_shared_folder_then_team(self): mock_comm.return_value = rs sync_down(params) - self.assertEqual(len(params.record_cache), 3) - self.assertEqual(len(params.shared_folder_cache), 1) + self.assertEqual(len(params.record_cache), 2) + self.assertEqual(len(params.shared_folder_cache), 0) self.assertEqual(len(params.team_cache), 1) self.assert_key_unencrypted(params)