ts-mailcow-api
Version:
TypeScript wrapper for the mailcow API.
60 lines (59 loc) • 2.15 kB
TypeScript
import { ACLEditRequest, MailboxDeleteRequest, MailboxEditRequest, MailboxPostRequest, Mailbox, MailcowResponse, PushoverEditRequest, QuarantaineEditRequest, SpamScoreEditRequest } from '../types';
import MailcowClient from '../index';
/**
* Interface for all Mailbox endpoints.
*/
export interface MailboxEndpoints {
/**
* Endpoint for creating a mailbox.
* @param payload - The creation payload.
*/
create(payload: MailboxPostRequest): Promise<MailcowResponse>;
/**
* Endpoint for deleting a mailbox.
* @param payload - The deletion payload.
*/
delete(payload: MailboxDeleteRequest): Promise<MailcowResponse>;
/**
* Endpoint for editing a mailbox.
* @param payload
*/
edit(payload: MailboxEditRequest): Promise<MailcowResponse>;
/**
* Endpoint for getting a mailbox.
* @param mailbox - The mailbox to get
*/
get(mailbox: 'all'): Promise<Mailbox[]>;
get(mailbox: string): Promise<Mailbox[]>;
/**
* Endpoint for editing a mailbox's pushover settings.
* @param payload - The edit payload.
*/
editPushover(payload: PushoverEditRequest): Promise<MailcowResponse>;
/**
* Endpoint for editing a mailbox's quarantine settings.
* @param payload - The edit payload.
*/
editQuarantine(payload: QuarantaineEditRequest): Promise<MailcowResponse>;
/**
* Endpoint for editing a mailbox's spam score settings.
* @param payload - The edit payload.
*/
editSpamScore(payload: SpamScoreEditRequest): Promise<MailcowResponse>;
/**
* Endpoint for editing a mailbox's ACL settings.
* @param payload - The edit payload.
*/
editUserACL(payload: ACLEditRequest): Promise<MailcowResponse>;
/**
* Endpoint fot getting a mailbox's active sieve.
* @param mailbox - The mailbox to get.
*/
getActiveUserSieve(mailbox: string): Promise<string[]>;
}
/**
* Binder function between the MailcowClient class and the MailboxEndpoints
* @param bind - The MailcowClient to bind.
* @internal
*/
export declare function mailboxEndpoints(bind: MailcowClient): MailboxEndpoints;