Skip to content

Contacts data types ​

Fields below are declared serialized members. Base types contribute their own fields; related types link the payload graph. ? means nullable, and required marks a required C# initializer. These are schematic C# contract shapes, not compilable declarations or a separate JSON schema. Constructor members are repeated in the field list for easy scanning. Serialization attributes and implementation helpers are omitted; use the linked source for exact wire aliases and formatters.

Contact ​

Represents a user's contact entry (chat, user, or place). Source

csharp
public sealed partial record Contact(
    ContactId Id,
    long Version = 0
) : IHasId<ContactId>, IHasVersion<long>, IRequirementTarget
{
    ContactId Id;
    long Version;
    UserId? UserId;
    Moment TouchedAt;
    bool IsPinned;
    string PeerContactName;
    Symbol SystemTag;
    string ExternalContactName;
    ContactState State;
    bool IsBlockedByPeer;
    Account? Account;
    Chat.Chat Chat;
}

Related types: Account, Chat, ContactId, ContactState, UserId.

ContactState ​

Describes how a contact should participate in contact-list and peer-chat rules. Source

csharp
public enum ContactState
{
    Temporary = 0,
    Regular = 0x10,
    Blocked = 0x1000,
}

Contacts_Change ​

Command payload for contacts change. Source

csharp
public sealed partial record Contacts_Change : ApiCommand<Contact?>
{
    required ContactId Id;
    required long? ExpectedVersion;
    required Change<Contact> Change;
}

Related types: ApiCommand, Change, Contact, ContactId.

Contacts_SetIsBlocked ​

Command payload for contacts set is blocked. Source

csharp
public sealed partial record Contacts_SetIsBlocked : ApiCommand<Unit>
{
    required ContactId Id;
    required bool IsBlocked;
}

Related types: ApiCommand, ContactId.

Contacts_Touch ​

Command payload for contacts touch. Source

csharp
public sealed partial record Contacts_Touch : ApiCommand<Unit>
{
    required ContactId Id;
}

Related types: ApiCommand, ContactId.

ExternalContact ​

Represents a contact imported from the device's address book. Source

csharp
public partial record ExternalContact(
    ExternalContactId Id,
    long Version = 0
) : IHasId<ExternalContactId>, IHasVersion<long>, IRequirementTarget
{
    ExternalContactId Id;
    long Version;
    HashString Hash;
}

Related types: ExternalContactId, HashString.

ExternalContactChange ​

External Contact Change contract used by the API operations and related records below. Source

csharp
public sealed partial record ExternalContactChange(
    ExternalContactId Id,
    long? ExpectedVersion,
    Change<ExternalContactFull> Change
)
{
    ExternalContactId Id;
    long? ExpectedVersion;
    Change<ExternalContactFull> Change;
}

Related types: Change, ExternalContactFull, ExternalContactId.

ExternalContactFull ​

Extended external contact with full name components and contact info hashes. Source

csharp
public partial record ExternalContactFull(
    ExternalContactId Id,
    long Version = 0
) : ExternalContact(Id, Version)
{
    string DisplayName;
    string GivenName;
    string FamilyName;
    string MiddleName;
    string NamePrefix;
    string NameSuffix;
    ApiSet<string> PhoneHashes;
    ApiSet<string> EmailHashes;
    Moment CreatedAt;
    Moment ModifiedAt;
}

Related types: ExternalContact.

ExternalContactHashes_Change ​

Command payload for external contact hashes change. Source

csharp
public sealed partial record ExternalContactHashes_Change
    : ApiCommand<ExternalContactsHash?>
{
    required Symbol DeviceId;
    required long? ExpectedVersion;
    required Change<ExternalContactsHash> Change;
}

Related types: ApiCommand, Change, ExternalContactsHash.

ExternalContactsHash ​

Stores the combined hash of all external contacts for a user device. Source

csharp
public sealed partial record ExternalContactsHash(
    UserDeviceId Id,
    long Version = 0
) : IHasId<UserDeviceId>, IHasVersion<long>, IRequirementTarget
{
    UserDeviceId Id;
    long Version;
    HashString Hash;
    Moment CreatedAt;
    Moment ModifiedAt;
}

Related types: HashString, UserDeviceId.

ExternalContacts_BulkChange ​

Command payload for external contacts bulk change. Source

csharp
public sealed partial record ExternalContacts_BulkChange
    : ApiCommand<Result<ExternalContactFull?>[]>
{
    required ExternalContactChange[] Changes;
}

Related types: ApiCommand, ExternalContactChange, ExternalContactFull.