import json from enum import Enum from typing import NewType, Tuple class RsGxsForumGroup: """ RsGxsForumGroup """ def __init__(self, mMeta = None, mDescription = None, mAdminList = None, mPinnedPosts = None): """ :param mMeta: (RsGroupMetaData) :param mDescription: (str) :param mAdminList: (RsTlvGxsIdSet) :param mPinnedPosts: (RsTlvGxsMsgIdSet) :type mMeta: RsGroupMetaData :type mDescription: str :type mAdminList: RsTlvGxsIdSet :type mPinnedPosts: RsTlvGxsMsgIdSet """ self.mMeta = mMeta self.mDescription = mDescription self.mAdminList = mAdminList self.mPinnedPosts = mPinnedPosts def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class RsGxsForumMsg: """ RsGxsForumMsg """ def __init__(self, mMeta = None, mMsg = None): """ :param mMeta: (RsMsgMetaData) :param mMsg: (str) :type mMeta: RsMsgMetaData :type mMsg: str """ self.mMeta = mMeta self.mMsg = mMsg def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) RsGxsGroupId = NewType('RsGxsGroupId', str) RsGxsMessageId = NewType('RsGxsMessageId', str) class RsMsgMetaData: """ RsMsgMetaData """ def __init__(self, mGroupId = None, mMsgId = None, mThreadId = None, mParentId = None, mOrigMsgId = None, mAuthorId = None, mMsgName = None, mPublishTs = None, mMsgFlags = None, mMsgStatus = None, mChildTs = None, mServiceString = None): """ :param mGroupId: (RsGxsGroupId) :param mMsgId: (RsGxsMessageId) :param mThreadId: (RsGxsMessageId) :param mParentId: (RsGxsMessageId) :param mOrigMsgId: (RsGxsMessageId) :param mAuthorId: (RsGxsId) :param mMsgName: (str) :param mPublishTs: (rstime_t) :param mMsgFlags: (int) :param mMsgStatus: (int) :param mChildTs: (rstime_t) :param mServiceString: (str) :type mGroupId: RsGxsGroupId :type mMsgId: RsGxsMessageId :type mThreadId: RsGxsMessageId :type mParentId: RsGxsMessageId :type mOrigMsgId: RsGxsMessageId :type mAuthorId: RsGxsId :type mMsgName: str :type mPublishTs: rstime_t :type mMsgFlags: int :type mMsgStatus: int :type mChildTs: rstime_t :type mServiceString: str """ self.mGroupId = mGroupId self.mMsgId = mMsgId self.mThreadId = mThreadId self.mParentId = mParentId self.mOrigMsgId = mOrigMsgId self.mAuthorId = mAuthorId self.mMsgName = mMsgName self.mPublishTs = mPublishTs self.mMsgFlags = mMsgFlags self.mMsgStatus = mMsgStatus self.mChildTs = mChildTs self.mServiceString = mServiceString def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class RsGroupMetaData: """ RsGroupMetaData """ def __init__(self, mGroupId = None, mGroupName = None, mGroupFlags = None, mSignFlags = None, mPublishTs = None, mAuthorId = None, mCircleId = None, mCircleType = None, mAuthenFlags = None, mParentGrpId = None, mSubscribeFlags = None, mPop = None, mVisibleMsgCount = None, mLastPost = None, mGroupStatus = None, mServiceString = None, mOriginator = None, mInternalCircle = None): """ :param mGroupId: (RsGxsGroupId) :param mGroupName: (str) :param mGroupFlags: (int) :param mSignFlags: (int) :param mPublishTs: (rstime_t) :param mAuthorId: (RsGxsId) :param mCircleId: (RsGxsCircleId) :param mCircleType: (int) :param mAuthenFlags: (int) :param mParentGrpId: (RsGxsGroupId) :param mSubscribeFlags: (int) :param mPop: (int) :param mVisibleMsgCount: (int) :param mLastPost: (rstime_t) :param mGroupStatus: (int) :param mServiceString: (str) :param mOriginator: (RsPeerId) :param mInternalCircle: (RsGxsCircleId) :type mGroupId: RsGxsGroupId :type mGroupName: str :type mGroupFlags: int :type mSignFlags: int :type mPublishTs: rstime_t :type mAuthorId: RsGxsId :type mCircleId: RsGxsCircleId :type mCircleType: int :type mAuthenFlags: int :type mParentGrpId: RsGxsGroupId :type mSubscribeFlags: int :type mPop: int :type mVisibleMsgCount: int :type mLastPost: rstime_t :type mGroupStatus: int :type mServiceString: str :type mOriginator: RsPeerId :type mInternalCircle: RsGxsCircleId """ self.mGroupId = mGroupId self.mGroupName = mGroupName self.mGroupFlags = mGroupFlags self.mSignFlags = mSignFlags self.mPublishTs = mPublishTs self.mAuthorId = mAuthorId self.mCircleId = mCircleId self.mCircleType = mCircleType self.mAuthenFlags = mAuthenFlags self.mParentGrpId = mParentGrpId self.mSubscribeFlags = mSubscribeFlags self.mPop = mPop self.mVisibleMsgCount = mVisibleMsgCount self.mLastPost = mLastPost self.mGroupStatus = mGroupStatus self.mServiceString = mServiceString self.mOriginator = mOriginator self.mInternalCircle = mInternalCircle def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) RsGxsGrpMsgIdPair = Tuple[RsGxsGroupId,RsGxsMessageId] RsPgpId = NewType('RsPgpId', str) RsGxsId = NewType('RsGxsId', str) class RsOpinion(Enum): """ RsOpinion """ NEGATIVE= 0 NEUTRAL= 1 POSITIVE= 2 class RsReputationInfo: """ RsReputationInfo """ def __init__(self, mOwnOpinion = None, mFriendsPositiveVotes = None, mFriendsNegativeVotes = None, mFriendAverageScore = None, mOverallReputationLevel = None): """ :param mOwnOpinion: (RsOpinion) :param mFriendsPositiveVotes: (int) :param mFriendsNegativeVotes: (int) :param mFriendAverageScore: (float) :param mOverallReputationLevel: (RsReputationLevel) :type mOwnOpinion: RsOpinion :type mFriendsPositiveVotes: int :type mFriendsNegativeVotes: int :type mFriendAverageScore: float :type mOverallReputationLevel: RsReputationLevel """ self.mOwnOpinion = mOwnOpinion self.mFriendsPositiveVotes = mFriendsPositiveVotes self.mFriendsNegativeVotes = mFriendsNegativeVotes self.mFriendAverageScore = mFriendAverageScore self.mOverallReputationLevel = mOverallReputationLevel def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class RsPeerServiceInfo: """ RsPeerServiceInfo """ def __init__(self, mPeerId = None, mServiceList = None): """ :param mPeerId: (RsPeerId) :param mServiceList: (map< uint32_t, RsServiceInfo >) :type mPeerId: RsPeerId :type mServiceList: map< uint32_t, RsServiceInfo > """ self.mPeerId = mPeerId self.mServiceList = mServiceList def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) RsPeerId = NewType('RsPeerId', str) class RsServicePermissions: """ RsServicePermissions """ def __init__(self, mServiceId = None, mServiceName = None, mDefaultAllowed = None, mPeersAllowed = None, mPeersDenied = None): """ :param mServiceId: (int) :param mServiceName: (str) :param mDefaultAllowed: (bool) :param mPeersAllowed: (set< RsPeerId >) :param mPeersDenied: (set< RsPeerId >) :type mServiceId: int :type mServiceName: str :type mDefaultAllowed: bool :type mPeersAllowed: set< RsPeerId > :type mPeersDenied: set< RsPeerId > """ self.mServiceId = mServiceId self.mServiceName = mServiceName self.mDefaultAllowed = mDefaultAllowed self.mPeersAllowed = mPeersAllowed self.mPeersDenied = mPeersDenied def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class RsGxsImage: """ RsGxsImage """ def __init__(self, mSize = None, mData = None): """ :param mSize: (int) :param mData: (uint8_t *) :type mSize: int :type mData: uint8_t * """ self.mSize = mSize self.mData = mData def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class RsGxsIdGroup: """ RsGxsIdGroup """ def __init__(self, mMeta = None, mPgpIdHash = None, mPgpIdSign = None, mRecognTags = None, mImage = None, mLastUsageTS = None, mPgpKnown = None, mIsAContact = None, mPgpId = None, mReputation = None): """ :param mMeta: (RsGroupMetaData) :param mPgpIdHash: (Sha1CheckSum) :param mPgpIdSign: (str) :param mRecognTags: (RS_DEPRECATED std_list< std_string >) :param mImage: (RsGxsImage) :param mLastUsageTS: (rstime_t) :param mPgpKnown: (bool) :param mIsAContact: (bool) :param mPgpId: (RsPgpId) :param mReputation: (GxsReputation) :type mMeta: RsGroupMetaData :type mPgpIdHash: Sha1CheckSum :type mPgpIdSign: str :type mRecognTags: RS_DEPRECATED std_list< std_string > :type mImage: RsGxsImage :type mLastUsageTS: rstime_t :type mPgpKnown: bool :type mIsAContact: bool :type mPgpId: RsPgpId :type mReputation: GxsReputation """ self.mMeta = mMeta self.mPgpIdHash = mPgpIdHash self.mPgpIdSign = mPgpIdSign self.mRecognTags = mRecognTags self.mImage = mImage self.mLastUsageTS = mLastUsageTS self.mPgpKnown = mPgpKnown self.mIsAContact = mIsAContact self.mPgpId = mPgpId self.mReputation = mReputation def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class RsEvent: """ RsEvent """ def __init__(self, mType = None, mTimePoint = None): """ :param mType: (RsEventType) :param mTimePoint: (chrono_system_clock_time_point) :type mType: RsEventType :type mTimePoint: chrono_system_clock_time_point """ self.mType = mType self.mTimePoint = mTimePoint def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) RsEventsHandlerId_t = NewType('RsEventsHandlerId_t', int) ChatLobbyId = NewType('ChatLobbyId', int) class ChatId: """ ChatId """ def __init__(self, broadcast_status_peer_id = None, type = None, peer_id = None, distant_chat_id = None, lobby_id = None): """ :param broadcast_status_peer_id: (RsPeerId) :param type: (Type) :param peer_id: (RsPeerId) :param distant_chat_id: (DistantChatPeerId) :param lobby_id: (ChatLobbyId) :type broadcast_status_peer_id: RsPeerId :type type: Type :type peer_id: RsPeerId :type distant_chat_id: DistantChatPeerId :type lobby_id: ChatLobbyId """ self.broadcast_status_peer_id = broadcast_status_peer_id self.type = type self.peer_id = peer_id self.distant_chat_id = distant_chat_id self.lobby_id = lobby_id def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) ChatLobbyFlags = NewType('ChatLobbyFlags', int) class ChatLobbyInfo: """ ChatLobbyInfo """ def __init__(self, lobby_id = None, lobby_name = None, lobby_topic = None, participating_friends = None, gxs_id = None, lobby_flags = None, gxs_ids = None, last_activity = None): """ :param lobby_id: (ChatLobbyId) :param lobby_name: (str) :param lobby_topic: (str) :param participating_friends: (set< RsPeerId >) :param gxs_id: (RsGxsId) :param lobby_flags: (ChatLobbyFlags) :param gxs_ids: (map< RsGxsId, rstime_t >) :param last_activity: (rstime_t) :type lobby_id: ChatLobbyId :type lobby_name: str :type lobby_topic: str :type participating_friends: set< RsPeerId > :type gxs_id: RsGxsId :type lobby_flags: ChatLobbyFlags :type gxs_ids: map< RsGxsId, rstime_t > :type last_activity: rstime_t """ self.lobby_id = lobby_id self.lobby_name = lobby_name self.lobby_topic = lobby_topic self.participating_friends = participating_friends self.gxs_id = gxs_id self.lobby_flags = lobby_flags self.gxs_ids = gxs_ids self.last_activity = last_activity def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class VisibleChatLobbyRecord: """ VisibleChatLobbyRecord """ def __init__(self, lobby_id = None, lobby_name = None, lobby_topic = None, participating_friends = None, total_number_of_peers = None, last_report_time = None, lobby_flags = None): """ :param lobby_id: (ChatLobbyId) :param lobby_name: (str) :param lobby_topic: (str) :param participating_friends: (set< RsPeerId >) :param total_number_of_peers: (int) :param last_report_time: (rstime_t) :param lobby_flags: (ChatLobbyFlags) :type lobby_id: ChatLobbyId :type lobby_name: str :type lobby_topic: str :type participating_friends: set< RsPeerId > :type total_number_of_peers: int :type last_report_time: rstime_t :type lobby_flags: ChatLobbyFlags """ self.lobby_id = lobby_id self.lobby_name = lobby_name self.lobby_topic = lobby_topic self.participating_friends = participating_friends self.total_number_of_peers = total_number_of_peers self.last_report_time = last_report_time self.lobby_flags = lobby_flags def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class Rs_Msgs_MessageInfo: """ Rs_Msgs_MessageInfo """ def __init__(self, msgId = None, rspeerid_srcId = None, rsgxsid_srcId = None, msgflags = None, rspeerid_msgto = None, rspeerid_msgcc = None, rspeerid_msgbcc = None, rsgxsid_msgto = None, rsgxsid_msgcc = None, rsgxsid_msgbcc = None, title = None, msg = None, attach_title = None, attach_comment = None, files = None, size = None, count = None, ts = None): """ :param msgId: (str) :param rspeerid_srcId: (RsPeerId) :param rsgxsid_srcId: (RsGxsId) :param msgflags: (unsigned int) :param rspeerid_msgto: (set< RsPeerId >) :param rspeerid_msgcc: (set< RsPeerId >) :param rspeerid_msgbcc: (set< RsPeerId >) :param rsgxsid_msgto: (set< RsGxsId >) :param rsgxsid_msgcc: (set< RsGxsId >) :param rsgxsid_msgbcc: (set< RsGxsId >) :param title: (str) :param msg: (str) :param attach_title: (str) :param attach_comment: (str) :param files: (list< FileInfo >) :param size: (int) :param count: (int) :param ts: (int) :type msgId: str :type rspeerid_srcId: RsPeerId :type rsgxsid_srcId: RsGxsId :type msgflags: unsigned int :type rspeerid_msgto: set< RsPeerId > :type rspeerid_msgcc: set< RsPeerId > :type rspeerid_msgbcc: set< RsPeerId > :type rsgxsid_msgto: set< RsGxsId > :type rsgxsid_msgcc: set< RsGxsId > :type rsgxsid_msgbcc: set< RsGxsId > :type title: str :type msg: str :type attach_title: str :type attach_comment: str :type files: list< FileInfo > :type size: int :type count: int :type ts: int """ self.msgId = msgId self.rspeerid_srcId = rspeerid_srcId self.rsgxsid_srcId = rsgxsid_srcId self.msgflags = msgflags self.rspeerid_msgto = rspeerid_msgto self.rspeerid_msgcc = rspeerid_msgcc self.rspeerid_msgbcc = rspeerid_msgbcc self.rsgxsid_msgto = rsgxsid_msgto self.rsgxsid_msgcc = rsgxsid_msgcc self.rsgxsid_msgbcc = rsgxsid_msgbcc self.title = title self.msg = msg self.attach_title = attach_title self.attach_comment = attach_comment self.files = files self.size = size self.count = count self.ts = ts def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class Rs_Msgs_MsgInfoSummary: """ Rs_Msgs_MsgInfoSummary """ def __init__(self, msgId = None, srcId = None, msgflags = None, msgtags = None, title = None, count = None, ts = None): """ :param msgId: (RsMailMessageId) :param srcId: (RsPeerId) :param msgflags: (int) :param msgtags: (list< uint32_t >) :param title: (str) :param count: (int) :param ts: (rstime_t) :type msgId: RsMailMessageId :type srcId: RsPeerId :type msgflags: int :type msgtags: list< uint32_t > :type title: str :type count: int :type ts: rstime_t """ self.msgId = msgId self.srcId = srcId self.msgflags = msgflags self.msgtags = msgtags self.title = title self.count = count self.ts = ts def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class Rs_Msgs_MsgTagInfo: """ Rs_Msgs_MsgTagInfo """ def __init__(self, msgId = None, tagIds = None): """ :param msgId: (str) :param tagIds: (list< uint32_t >) :type msgId: str :type tagIds: list< uint32_t > """ self.msgId = msgId self.tagIds = tagIds def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class Rs_Msgs_MsgTagType: """ Rs_Msgs_MsgTagType """ def __init__(self, types = None): """ :param types: (map< uint32_t, std_pair< std_string, uint32_t > >) :type types: map< uint32_t, std_pair< std_string, uint32_t > > """ self.types = types def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class ChatLobbyInvite: """ ChatLobbyInvite """ def __init__(self, lobby_id = None, peer_id = None, lobby_name = None, lobby_topic = None, lobby_flags = None): """ :param lobby_id: (ChatLobbyId) :param peer_id: (RsPeerId) :param lobby_name: (str) :param lobby_topic: (str) :param lobby_flags: (ChatLobbyFlags) :type lobby_id: ChatLobbyId :type peer_id: RsPeerId :type lobby_name: str :type lobby_topic: str :type lobby_flags: ChatLobbyFlags """ self.lobby_id = lobby_id self.peer_id = peer_id self.lobby_name = lobby_name self.lobby_topic = lobby_topic self.lobby_flags = lobby_flags def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) RsGxsCircleId = NewType('RsGxsCircleId', str) class RsGxsCircleGroup: """ RsGxsCircleGroup """ def __init__(self, mMeta = None, mLocalFriends = None, mInvitedMembers = None, mSubCircles = None): """ :param mMeta: (RsGroupMetaData) :param mLocalFriends: (set< RsPgpId >) :param mInvitedMembers: (set< RsGxsId >) :param mSubCircles: (set< RsGxsCircleId >) :type mMeta: RsGroupMetaData :type mLocalFriends: set< RsPgpId > :type mInvitedMembers: set< RsGxsId > :type mSubCircles: set< RsGxsCircleId > """ self.mMeta = mMeta self.mLocalFriends = mLocalFriends self.mInvitedMembers = mInvitedMembers self.mSubCircles = mSubCircles def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class RsGxsCircleDetails: """ RsGxsCircleDetails """ def __init__(self, mCircleId = None, mCircleName = None, mCircleType = None, mRestrictedCircleId = None, mAmIAllowed = None, mAllowedGxsIds = None, mAllowedNodes = None, mSubscriptionFlags = None): """ :param mCircleId: (RsGxsCircleId) :param mCircleName: (str) :param mCircleType: (int) :param mRestrictedCircleId: (RsGxsCircleId) :param mAmIAllowed: (bool) :param mAllowedGxsIds: (set< RsGxsId >) :param mAllowedNodes: (set< RsPgpId >) :param mSubscriptionFlags: (map< RsGxsId, uint32_t >) :type mCircleId: RsGxsCircleId :type mCircleName: str :type mCircleType: int :type mRestrictedCircleId: RsGxsCircleId :type mAmIAllowed: bool :type mAllowedGxsIds: set< RsGxsId > :type mAllowedNodes: set< RsPgpId > :type mSubscriptionFlags: map< RsGxsId, uint32_t > """ self.mCircleId = mCircleId self.mCircleName = mCircleName self.mCircleType = mCircleType self.mRestrictedCircleId = mRestrictedCircleId self.mAmIAllowed = mAmIAllowed self.mAllowedGxsIds = mAllowedGxsIds self.mAllowedNodes = mAllowedNodes self.mSubscriptionFlags = mSubscriptionFlags def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class RsGxsCircleMsg: """ RsGxsCircleMsg """ def __init__(self, mMeta = None, stuff = None): """ :param mMeta: (RsMsgMetaData) :param stuff: (str) :type mMeta: RsMsgMetaData :type stuff: str """ self.mMeta = mMeta self.stuff = stuff def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class RsGxsChannelGroup: """ RsGxsChannelGroup """ def __init__(self, mMeta = None, mDescription = None, mImage = None, mAutoDownload = None): """ :param mMeta: (RsGroupMetaData) :param mDescription: (str) :param mImage: (RsGxsImage) :param mAutoDownload: (bool) :type mMeta: RsGroupMetaData :type mDescription: str :type mImage: RsGxsImage :type mAutoDownload: bool """ self.mMeta = mMeta self.mDescription = mDescription self.mImage = mImage self.mAutoDownload = mAutoDownload def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class RsGxsCircleType(Enum): """ RsGxsCircleType """ UNKNOWN= 0 PUBLIC= 1 EXTERNAL= 2 NODES_GROUP= 3 LOCAL= 4 EXT_SELF= 5 YOUR_EYES_ONLY= 6 class RsGxsComment: """ RsGxsComment """ def __init__(self, mMeta = None, mComment = None, mUpVotes = None, mDownVotes = None, mScore = None, mOwnVote = None, mVotes = None): """ :param mMeta: (RsMsgMetaData) :param mComment: (str) :param mUpVotes: (int) :param mDownVotes: (int) :param mScore: (float) :param mOwnVote: (int) :param mVotes: (list< RsGxsVote >) :type mMeta: RsMsgMetaData :type mComment: str :type mUpVotes: int :type mDownVotes: int :type mScore: float :type mOwnVote: int :type mVotes: list< RsGxsVote > """ self.mMeta = mMeta self.mComment = mComment self.mUpVotes = mUpVotes self.mDownVotes = mDownVotes self.mScore = mScore self.mOwnVote = mOwnVote self.mVotes = mVotes def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class RsGxsChannelPost: """ RsGxsChannelPost """ def __init__(self, mMeta = None, mOlderVersions = None, mMsg = None, mFiles = None, mCount = None, mSize = None, mThumbnail = None): """ :param mMeta: (RsMsgMetaData) :param mOlderVersions: (set< RsGxsMessageId >) :param mMsg: (str) :param mFiles: (list< RsGxsFile >) :param mCount: (int) :param mSize: (int) :param mThumbnail: (RsGxsImage) :type mMeta: RsMsgMetaData :type mOlderVersions: set< RsGxsMessageId > :type mMsg: str :type mFiles: list< RsGxsFile > :type mCount: int :type mSize: int :type mThumbnail: RsGxsImage """ self.mMeta = mMeta self.mOlderVersions = mOlderVersions self.mMsg = mMsg self.mFiles = mFiles self.mCount = mCount self.mSize = mSize self.mThumbnail = mThumbnail def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class RsGxsFile: """ RsGxsFile """ def __init__(self, mName = None, mHash = None, mSize = None): """ :param mName: (str) :param mHash: (RsFileHash) :param mSize: (int) :type mName: str :type mHash: RsFileHash :type mSize: int """ self.mName = mName self.mHash = mHash self.mSize = mSize def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class RsGxsVote: """ RsGxsVote """ def __init__(self, mMeta = None, mVoteType = None): """ :param mMeta: (RsMsgMetaData) :param mVoteType: (int) :type mMeta: RsMsgMetaData :type mVoteType: int """ self.mMeta = mMeta self.mVoteType = mVoteType def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class RsGxsVoteType(Enum): """ RsGxsVoteType """ NONE= 0 DOWN= 1 UP= 2 RsFileHash = NewType('RsFileHash', str) class RsGxsGroupSummary: """ RsGxsGroupSummary """ def __init__(self, mGroupId = None, mGroupName = None, mAuthorId = None, mPublishTs = None, mNumberOfMessages = None, mLastMessageTs = None, mSignFlags = None, mPopularity = None, mSearchContext = None): """ :param mGroupId: (RsGxsGroupId) :param mGroupName: (str) :param mAuthorId: (RsGxsId) :param mPublishTs: (rstime_t) :param mNumberOfMessages: (int) :param mLastMessageTs: (rstime_t) :param mSignFlags: (int) :param mPopularity: (int) :param mSearchContext: (str) :type mGroupId: RsGxsGroupId :type mGroupName: str :type mAuthorId: RsGxsId :type mPublishTs: rstime_t :type mNumberOfMessages: int :type mLastMessageTs: rstime_t :type mSignFlags: int :type mPopularity: int :type mSearchContext: str """ self.mGroupId = mGroupId self.mGroupName = mGroupName self.mAuthorId = mAuthorId self.mPublishTs = mPublishTs self.mNumberOfMessages = mNumberOfMessages self.mLastMessageTs = mLastMessageTs self.mSignFlags = mSignFlags self.mPopularity = mPopularity self.mSearchContext = mSearchContext def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) rstime_t = NewType('rstime_t', int) class SharedDirInfo: """ SharedDirInfo """ def __init__(self, filename = None, virtualname = None, shareflags = None, parent_groups = None): """ :param filename: (str) :param virtualname: (str) :param shareflags: (FileStorageFlags) :param parent_groups: (list< RsNodeGroupId >) :type filename: str :type virtualname: str :type shareflags: FileStorageFlags :type parent_groups: list< RsNodeGroupId > """ self.filename = filename self.virtualname = virtualname self.shareflags = shareflags self.parent_groups = parent_groups def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class FileInfo: """ FileInfo """ def __init__(self, storage_permission_flags = None, transfer_info_flags = None, mId = None, searchId = None, path = None, fname = None, hash = None, ext = None, size = None, avail = None, rank = None, age = None, queue_position = None, transfered = None, tfRate = None, downloadStatus = None, peers = None, priority = None, lastTS = None, parent_groups = None): """ :param storage_permission_flags: (FileStorageFlags) :param transfer_info_flags: (TransferRequestFlags) :param mId: (unsigned int) :param searchId: (int) :param path: (str) :param fname: (str) :param hash: (RsFileHash) :param ext: (str) :param size: (int) :param avail: (int) :param rank: (float) :param age: (int) :param queue_position: (int) :param transfered: (int) :param tfRate: (float) :param downloadStatus: (int) :param peers: (vector< TransferInfo >) :param priority: (DwlSpeed) :param lastTS: (rstime_t) :param parent_groups: (list< RsNodeGroupId >) :type storage_permission_flags: FileStorageFlags :type transfer_info_flags: TransferRequestFlags :type mId: unsigned int :type searchId: int :type path: str :type fname: str :type hash: RsFileHash :type ext: str :type size: int :type avail: int :type rank: float :type age: int :type queue_position: int :type transfered: int :type tfRate: float :type downloadStatus: int :type peers: vector< TransferInfo > :type priority: DwlSpeed :type lastTS: rstime_t :type parent_groups: list< RsNodeGroupId > """ self.storage_permission_flags = storage_permission_flags self.transfer_info_flags = transfer_info_flags self.mId = mId self.searchId = searchId self.path = path self.fname = fname self.hash = hash self.ext = ext self.size = size self.avail = avail self.rank = rank self.age = age self.queue_position = queue_position self.transfered = transfered self.tfRate = tfRate self.downloadStatus = downloadStatus self.peers = peers self.priority = priority self.lastTS = lastTS self.parent_groups = parent_groups def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) FileSearchFlags = NewType('FileSearchFlags', int) class FileChunksInfo: """ FileChunksInfo """ def __init__(self, file_size = None, chunk_size = None, strategy = None, chunks = None, compressed_peer_availability_maps = None, active_chunks = None, pending_slices = None): """ :param file_size: (int) :param chunk_size: (int) :param strategy: (ChunkStrategy) :param chunks: (vector< ChunkState >) :param compressed_peer_availability_maps: (map< RsPeerId, CompressedChunkMap >) :param active_chunks: (vector< std_pair< uint32_t, uint32_t > >) :param pending_slices: (map< uint32_t, std_vector< SliceInfo > >) :type file_size: int :type chunk_size: int :type strategy: ChunkStrategy :type chunks: vector< ChunkState > :type compressed_peer_availability_maps: map< RsPeerId, CompressedChunkMap > :type active_chunks: vector< std_pair< uint32_t, uint32_t > > :type pending_slices: map< uint32_t, std_vector< SliceInfo > > """ self.file_size = file_size self.chunk_size = chunk_size self.strategy = strategy self.chunks = chunks self.compressed_peer_availability_maps = compressed_peer_availability_maps self.active_chunks = active_chunks self.pending_slices = pending_slices def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) TransferRequestFlags = NewType('TransferRequestFlags', int) class CompressedChunkMap: """ CompressedChunkMap """ def __init__(self, _map = None): """ :param _map: (vector< uint32_t >) :type _map: vector< uint32_t > """ self._map = _map def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class DirDetails: """ DirDetails """ def __init__(self, parent = None, prow = None, ref = None, type = None, id = None, name = None, hash = None, path = None, count = None, mtime = None, flags = None, max_mtime = None, children = None, parent_groups = None): """ :param parent: (void *) :param prow: (int) :param ref: (void *) :param type: (int) :param id: (RsPeerId) :param name: (str) :param hash: (RsFileHash) :param path: (str) :param count: (int) :param mtime: (int) :param flags: (FileStorageFlags) :param max_mtime: (int) :param children: (vector< DirStub >) :param parent_groups: (list< RsNodeGroupId >) :type parent: void * :type prow: int :type ref: void * :type type: int :type id: RsPeerId :type name: str :type hash: RsFileHash :type path: str :type count: int :type mtime: int :type flags: FileStorageFlags :type max_mtime: int :type children: vector< DirStub > :type parent_groups: list< RsNodeGroupId > """ self.parent = parent self.prow = prow self.ref = ref self.type = type self.id = id self.name = name self.hash = hash self.path = path self.count = count self.mtime = mtime self.flags = flags self.max_mtime = max_mtime self.children = children self.parent_groups = parent_groups def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class ChunkStrategy(Enum): """ ChunkStrategy """ class TurtleFileInfo: """ TurtleFileInfo """ def __init__(self, size = None, hash = None, name = None): """ :param size: (int) :param hash: (RsFileHash) :param name: (str) :type size: int :type hash: RsFileHash :type name: str """ self.size = size self.hash = hash self.name = name def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class RsConfigNetStatus: """ RsConfigNetStatus """ def __init__(self, ownId = None, ownName = None, localAddr = None, localPort = None, extAddr = None, extPort = None, extDynDns = None, firewalled = None, forwardPort = None, DHTActive = None, uPnPActive = None, uPnPState = None, netLocalOk = None, netUpnpOk = None, netDhtOk = None, netStunOk = None, netExtAddressOk = None, netDhtNetSize = None, netDhtRsNetSize = None): """ :param ownId: (RsPeerId) :param ownName: (str) :param localAddr: (str) :param localPort: (int) :param extAddr: (str) :param extPort: (int) :param extDynDns: (str) :param firewalled: (bool) :param forwardPort: (bool) :param DHTActive: (bool) :param uPnPActive: (bool) :param uPnPState: (int) :param netLocalOk: (bool) :param netUpnpOk: (bool) :param netDhtOk: (bool) :param netStunOk: (bool) :param netExtAddressOk: (bool) :param netDhtNetSize: (int) :param netDhtRsNetSize: (int) :type ownId: RsPeerId :type ownName: str :type localAddr: str :type localPort: int :type extAddr: str :type extPort: int :type extDynDns: str :type firewalled: bool :type forwardPort: bool :type DHTActive: bool :type uPnPActive: bool :type uPnPState: int :type netLocalOk: bool :type netUpnpOk: bool :type netDhtOk: bool :type netStunOk: bool :type netExtAddressOk: bool :type netDhtNetSize: int :type netDhtRsNetSize: int """ self.ownId = ownId self.ownName = ownName self.localAddr = localAddr self.localPort = localPort self.extAddr = extAddr self.extPort = extPort self.extDynDns = extDynDns self.firewalled = firewalled self.forwardPort = forwardPort self.DHTActive = DHTActive self.uPnPActive = uPnPActive self.uPnPState = uPnPState self.netLocalOk = netLocalOk self.netUpnpOk = netUpnpOk self.netDhtOk = netDhtOk self.netStunOk = netStunOk self.netExtAddressOk = netExtAddressOk self.netDhtNetSize = netDhtNetSize self.netDhtRsNetSize = netDhtRsNetSize def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class RsConfigDataRates: """ RsConfigDataRates """ def __init__(self, mRateIn = None, mRateMaxIn = None, mAllocIn = None, mAllocTs = None, mRateOut = None, mRateMaxOut = None, mAllowedOut = None, mAllowedTs = None, mQueueIn = None, mQueueOut = None): """ :param mRateIn: (float) :param mRateMaxIn: (float) :param mAllocIn: (float) :param mAllocTs: (rstime_t) :param mRateOut: (float) :param mRateMaxOut: (float) :param mAllowedOut: (float) :param mAllowedTs: (rstime_t) :param mQueueIn: (int) :param mQueueOut: (int) :type mRateIn: float :type mRateMaxIn: float :type mAllocIn: float :type mAllocTs: rstime_t :type mRateOut: float :type mRateMaxOut: float :type mAllowedOut: float :type mAllowedTs: rstime_t :type mQueueIn: int :type mQueueOut: int """ self.mRateIn = mRateIn self.mRateMaxIn = mRateMaxIn self.mAllocIn = mAllocIn self.mAllocTs = mAllocTs self.mRateOut = mRateOut self.mRateMaxOut = mRateMaxOut self.mAllowedOut = mAllowedOut self.mAllowedTs = mAllowedTs self.mQueueIn = mQueueIn self.mQueueOut = mQueueOut def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class RSTrafficClue: """ RSTrafficClue """ def __init__(self, TS = None, size = None, priority = None, service_id = None, service_sub_id = None, peer_id = None, count = None): """ :param TS: (rstime_t) :param size: (int) :param priority: (int) :param service_id: (int) :param service_sub_id: (int) :param peer_id: (RsPeerId) :param count: (int) :type TS: rstime_t :type size: int :type priority: int :type service_id: int :type service_sub_id: int :type peer_id: RsPeerId :type count: int """ self.TS = TS self.size = size self.priority = priority self.service_id = service_id self.service_sub_id = service_sub_id self.peer_id = peer_id self.count = count def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) ServicePermissionFlags = NewType('ServicePermissionFlags', int) class RsGroupInfo: """ RsGroupInfo """ def __init__(self, id = None, name = None, flag = None, peerIds = None): """ :param id: (RsNodeGroupId) :param name: (str) :param flag: (int) :param peerIds: (set< RsPgpId >) :type id: RsNodeGroupId :type name: str :type flag: int :type peerIds: set< RsPgpId > """ self.id = id self.name = name self.flag = flag self.peerIds = peerIds def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class RsUrl: """ RsUrl """ def __init__(self, schemeSeparator = None, ipv6WrapOpen = None, ipv6Separator = None, ipv6WrapClose = None, portSeparator = None, pathSeparator = None, querySeparator = None, queryAssign = None, queryFieldSep = None, fragmentSeparator = None, mScheme = None, mHost = None, mPort = None, mHasPort = None, mPath = None, mQuery = None, mFragment = None): """ :param schemeSeparator: (const std_string) :param ipv6WrapOpen: (const std_string) :param ipv6Separator: (const std_string) :param ipv6WrapClose: (const std_string) :param portSeparator: (const std_string) :param pathSeparator: (const std_string) :param querySeparator: (const std_string) :param queryAssign: (const std_string) :param queryFieldSep: (const std_string) :param fragmentSeparator: (const std_string) :param mScheme: (str) :param mHost: (str) :param mPort: (int) :param mHasPort: (bool) :param mPath: (str) :param mQuery: (map< std_string, std_string >) :param mFragment: (str) :type schemeSeparator: const std_string :type ipv6WrapOpen: const std_string :type ipv6Separator: const std_string :type ipv6WrapClose: const std_string :type portSeparator: const std_string :type pathSeparator: const std_string :type querySeparator: const std_string :type queryAssign: const std_string :type queryFieldSep: const std_string :type fragmentSeparator: const std_string :type mScheme: str :type mHost: str :type mPort: int :type mHasPort: bool :type mPath: str :type mQuery: map< std_string, std_string > :type mFragment: str """ self.schemeSeparator = schemeSeparator self.ipv6WrapOpen = ipv6WrapOpen self.ipv6Separator = ipv6Separator self.ipv6WrapClose = ipv6WrapClose self.portSeparator = portSeparator self.pathSeparator = pathSeparator self.querySeparator = querySeparator self.queryAssign = queryAssign self.queryFieldSep = queryFieldSep self.fragmentSeparator = fragmentSeparator self.mScheme = mScheme self.mHost = mHost self.mPort = mPort self.mHasPort = mHasPort self.mPath = mPath self.mQuery = mQuery self.mFragment = mFragment def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) RsNodeGroupId = NewType('RsNodeGroupId', str) class RsPeerDetails: """ RsPeerDetails """ def __init__(self, isOnlyGPGdetail = None, id = None, gpg_id = None, name = None, email = None, location = None, org = None, issuer = None, fpr = None, authcode = None, gpgSigners = None, trustLvl = None, validLvl = None, ownsign = None, hasSignedMe = None, accept_connection = None, service_perm_flags = None, state = None, actAsServer = None, connectAddr = None, connectPort = None, isHiddenNode = None, hiddenNodeAddress = None, hiddenNodePort = None, hiddenType = None, localAddr = None, localPort = None, extAddr = None, extPort = None, dyndns = None, ipAddressList = None, netMode = None, vs_disc = None, vs_dht = None, lastConnect = None, lastUsed = None, connectState = None, connectStateString = None, connectPeriod = None, foundDHT = None, wasDeniedConnection = None, deniedTS = None, linkType = None): """ :param isOnlyGPGdetail: (bool) :param id: (RsPeerId) :param gpg_id: (RsPgpId) :param name: (str) :param email: (str) :param location: (str) :param org: (str) :param issuer: (RsPgpId) :param fpr: (PGPFingerprintType) :param authcode: (str) :param gpgSigners: (list< RsPgpId >) :param trustLvl: (int) :param validLvl: (int) :param ownsign: (bool) :param hasSignedMe: (bool) :param accept_connection: (bool) :param service_perm_flags: (ServicePermissionFlags) :param state: (int) :param actAsServer: (bool) :param connectAddr: (str) :param connectPort: (int) :param isHiddenNode: (bool) :param hiddenNodeAddress: (str) :param hiddenNodePort: (int) :param hiddenType: (int) :param localAddr: (str) :param localPort: (int) :param extAddr: (str) :param extPort: (int) :param dyndns: (str) :param ipAddressList: (list< std_string >) :param netMode: (int) :param vs_disc: (int) :param vs_dht: (int) :param lastConnect: (int) :param lastUsed: (int) :param connectState: (int) :param connectStateString: (str) :param connectPeriod: (int) :param foundDHT: (bool) :param wasDeniedConnection: (bool) :param deniedTS: (rstime_t) :param linkType: (int) :type isOnlyGPGdetail: bool :type id: RsPeerId :type gpg_id: RsPgpId :type name: str :type email: str :type location: str :type org: str :type issuer: RsPgpId :type fpr: PGPFingerprintType :type authcode: str :type gpgSigners: list< RsPgpId > :type trustLvl: int :type validLvl: int :type ownsign: bool :type hasSignedMe: bool :type accept_connection: bool :type service_perm_flags: ServicePermissionFlags :type state: int :type actAsServer: bool :type connectAddr: str :type connectPort: int :type isHiddenNode: bool :type hiddenNodeAddress: str :type hiddenNodePort: int :type hiddenType: int :type localAddr: str :type localPort: int :type extAddr: str :type extPort: int :type dyndns: str :type ipAddressList: list< std_string > :type netMode: int :type vs_disc: int :type vs_dht: int :type lastConnect: int :type lastUsed: int :type connectState: int :type connectStateString: str :type connectPeriod: int :type foundDHT: bool :type wasDeniedConnection: bool :type deniedTS: rstime_t :type linkType: int """ self.isOnlyGPGdetail = isOnlyGPGdetail self.id = id self.gpg_id = gpg_id self.name = name self.email = email self.location = location self.org = org self.issuer = issuer self.fpr = fpr self.authcode = authcode self.gpgSigners = gpgSigners self.trustLvl = trustLvl self.validLvl = validLvl self.ownsign = ownsign self.hasSignedMe = hasSignedMe self.accept_connection = accept_connection self.service_perm_flags = service_perm_flags self.state = state self.actAsServer = actAsServer self.connectAddr = connectAddr self.connectPort = connectPort self.isHiddenNode = isHiddenNode self.hiddenNodeAddress = hiddenNodeAddress self.hiddenNodePort = hiddenNodePort self.hiddenType = hiddenType self.localAddr = localAddr self.localPort = localPort self.extAddr = extAddr self.extPort = extPort self.dyndns = dyndns self.ipAddressList = ipAddressList self.netMode = netMode self.vs_disc = vs_disc self.vs_dht = vs_dht self.lastConnect = lastConnect self.lastUsed = lastUsed self.connectState = connectState self.connectStateString = connectStateString self.connectPeriod = connectPeriod self.foundDHT = foundDHT self.wasDeniedConnection = wasDeniedConnection self.deniedTS = deniedTS self.linkType = linkType def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class RsLoginHelper_Location: """ RsLoginHelper_Location """ def __init__(self, mLocationId = None, mPgpId = None, mLocationName = None, mPpgName = None): """ :param mLocationId: (RsPeerId) :param mPgpId: (RsPgpId) :param mLocationName: (str) :param mPpgName: (str) :type mLocationId: RsPeerId :type mPgpId: RsPgpId :type mLocationName: str :type mPpgName: str """ self.mLocationId = mLocationId self.mPgpId = mPgpId self.mLocationName = mLocationName self.mPpgName = mPpgName def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) RsTlvGxsIdSet = NewType('RsTlvGxsIdSet', str) RsTlvGxsMsgIdSet = NewType('RsTlvGxsMsgIdSet', str) class RsReputationLevel(Enum): """ RsReputationLevel """ LOCALLY_NEGATIVE= 0x00 REMOTELY_NEGATIVE= 0x01 NEUTRAL= 0x02 REMOTELY_POSITIVE= 0x03 LOCALLY_POSITIVE= 0x04 UNKNOWN= 0x05 class RsServiceInfo: """ RsServiceInfo """ def __init__(self, mServiceName = None, mServiceType = None, mVersionMajor = None, mVersionMinor = None, mMinVersionMajor = None, mMinVersionMinor = None): """ :param mServiceName: (str) :param mServiceType: (int) :param mVersionMajor: (int) :param mVersionMinor: (int) :param mMinVersionMajor: (int) :param mMinVersionMinor: (int) :type mServiceName: str :type mServiceType: int :type mVersionMajor: int :type mVersionMinor: int :type mMinVersionMajor: int :type mMinVersionMinor: int """ self.mServiceName = mServiceName self.mServiceType = mServiceType self.mVersionMajor = mVersionMajor self.mVersionMinor = mVersionMinor self.mMinVersionMajor = mMinVersionMajor self.mMinVersionMinor = mMinVersionMinor def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) Sha1CheckSum = NewType('Sha1CheckSum', str) class GxsReputation: """ GxsReputation """ def __init__(self, mOverallScore = None, mIdScore = None, mOwnOpinion = None, mPeerOpinion = None): """ :param mOverallScore: (int) :param mIdScore: (int) :param mOwnOpinion: (int) :param mPeerOpinion: (int) :type mOverallScore: int :type mIdScore: int :type mOwnOpinion: int :type mPeerOpinion: int """ self.mOverallScore = mOverallScore self.mIdScore = mIdScore self.mOwnOpinion = mOwnOpinion self.mPeerOpinion = mPeerOpinion def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class RsEventType(Enum): """ RsEventType """ NONE= 0 BROADCAST_DISCOVERY_PEER_FOUND= 1 GOSSIP_DISCOVERY_INVITE_RECEIVED= 2 AUTHSSL_CONNECTION_AUTENTICATION= 3 REMOTE_PEER_REFUSED_CONNECTION= 4 GXS_CHANGES= 5 DistantChatPeerId = NewType('DistantChatPeerId', str) FileStorageFlags = NewType('FileStorageFlags', int) class TransferInfo: """ TransferInfo """ def __init__(self, peerId = None, name = None, tfRate = None, status = None, transfered = None): """ :param peerId: (RsPeerId) :param name: (str) :param tfRate: (float) :param status: (int) :param transfered: (int) :type peerId: RsPeerId :type name: str :type tfRate: float :type status: int :type transfered: int """ self.peerId = peerId self.name = name self.tfRate = tfRate self.status = status self.transfered = transfered def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class DwlSpeed(Enum): """ DwlSpeed """ SPEED_LOW= 0x00 SPEED_NORMAL= 0x01 SPEED_HIGH= 0x02 RsMailMessageId = NewType('RsMailMessageId', str) class ChunkState(Enum): """ ChunkState """ CHUNK_OUTSTANDING= 0 CHUNK_ACTIVE= 1 CHUNK_DONE= 2 CHUNK_CHECKING= 3 class FileChunksInfo_SliceInfo: """ FileChunksInfo_SliceInfo """ def __init__(self, start = None, size = None, peer_id = None): """ :param start: (int) :param size: (int) :param peer_id: (RsPeerId) :type start: int :type size: int :type peer_id: RsPeerId """ self.start = start self.size = size self.peer_id = peer_id def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) class DirStub: """ DirStub """ def __init__(self, type = None, name = None, ref = None): """ :param type: (int) :param name: (str) :param ref: (void *) :type type: int :type name: str :type ref: void * """ self.type = type self.name = name self.ref = ref def __repr__(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4)