ts-mailcow-api
Version:
TypeScript wrapper for the mailcow API.
179 lines (178 loc) • 5.47 kB
TypeScript
/**
* @module MailcowClient
*/
import { AxiosRequestConfig } from 'axios';
import { DomainEndpoints } from './endpoints/domain-endpoints';
import { AntiSpamEndpoints } from './endpoints/antispam-endpoints';
import { MailboxEndpoints } from './endpoints/mailbox-endpoint';
import RequestFactory from './request-factory';
import { AliasEndpoints } from './endpoints/alias-endpoints';
import { SyncjobEndpoints } from './endpoints/syncjob-endpoints';
import { ForwardingEndpoints } from './endpoints/forwarding-endpoints';
import { LogEndpoints } from './endpoints/log-endpoints';
import { AdressRewritingEndpoints } from './endpoints/address-rewriting-endpoint';
import { Fail2BanEndpoints } from './endpoints/fail2ban-endpoints';
import { StatusEndpoints } from './endpoints/status-endpoints';
import { ResourceEndpoints } from './endpoints/resource-endpoints';
import { QueueManagerEndpoints } from './endpoints/queue-manager-endpoints';
import { QuarantineEndpoints } from './endpoints/quarantine-endpoints';
import { RatelimitsEndpoints } from './endpoints/ratelimit-endpoints';
import { OAuth2Endpoints } from './endpoints/oauth2-endpoints';
import { AppPasswordEndpoints } from './endpoints/app-password-endpoints';
import { TlsPolicyMapEndpoints } from './endpoints/tls-policy-map-endpoints';
import { DkimEndpoints } from './endpoints/dkim-endpoints';
import { DomainAdminEndpoints } from './endpoints/domain-admin-endpoints';
import { RoutingEndpoints } from './endpoints/routing-endpoints';
/**
* Class containing all the logic to interface with the Mailcow API in TypeScript.
* @external
*/
declare class MailcowClient {
/**
* The base URL of the Mailcow API.
* @internal
*/
readonly BASE_URL: string;
/**
* The API key of the Mailcow API.
* @internal
*/
readonly API_KEY: string;
/**
* The request config used for every request.
* @internal
*/
AXIOS_CONFIG: AxiosRequestConfig;
/**
* Creates a MailcowClient using the given URL and API key.
* @param BASE_URL - The base URL of the Mailcow API.
* @param API_KEY - The API key of the Mailcow API.
* @param EXTRA_AXIOS_CONFIG - Allows for setting extra Axios request config such as keep alive.
*/
constructor(BASE_URL: string, API_KEY: string, EXTRA_AXIOS_CONFIG?: AxiosRequestConfig);
/**
* Factory method pattern for creating HTTP requests.
* @internal
*/
requestFactory: RequestFactory;
/**
* All endpoints related to Aliases.
* See {@link AliasEndpoints}
*/
aliases: AliasEndpoints;
/**
* All endpoints related to Domains.
* See {@link DomainEndpoints}
* @external
*/
domains: DomainEndpoints;
/**
* All endpoints related to spam policies.
* See {@link AntiSpamEndpoints}
* @external
*/
spamPolicy: AntiSpamEndpoints;
/**
* All endpoints related to mailboxes.
* See {@link MailboxEndpoints}
* @external
*/
mailbox: MailboxEndpoints;
/**
* All endpoints related to sync jobs.
* See {@link SyncjobEndpoints}
* @external
*/
syncjobs: SyncjobEndpoints;
/**
* All endpoints related to forwarding hosts.
* See {@link ForwardingEndpoints}
* @external
*/
forwardingHosts: ForwardingEndpoints;
/**
* All endpoints related to address rewriting.
* See {@link AdressRewritingEndpoints}
* @external
*/
addressRewriting: AdressRewritingEndpoints;
/**
* All endpoints related to logs.
* See {@link LogEndpoints}
* @external
*/
logs: LogEndpoints;
/**
* All endpoints related to fail2ban.
* See {@link Fail2BanEndpoints}
* @external
*/
fail2Ban: Fail2BanEndpoints;
/**
* All endpoints related to status.
* See {@link StatusEndpoints}
* @external
*/
status: StatusEndpoints;
/**
* All endpoints related to resources.
* See {@link ResourceEndpoints}
* @external
*/
resources: ResourceEndpoints;
/**
* All endpoints related to the mail queue.
* See {@link QueueManagerEndpoints}
* @external
*/
queueManager: QueueManagerEndpoints;
/**
* All endpoints related to quarantine.
* See {@link QuarantineEndpoints}
* @external
*/
quarantine: QuarantineEndpoints;
/**
* All endpoints related to rate limits.
* See {@link RatelimitsEndpoints}
* @external
*/
ratelimits: RatelimitsEndpoints;
/**
* All endpoints related to OAuth2 clients.
* See {@link OAuth2Endpoints}
* @external
*/
oauth2: OAuth2Endpoints;
/**
* All endpoints related to app passwords.
* See {@link AppPasswordEndpoints}
* @external
*/
appPasswords: AppPasswordEndpoints;
/**
* All endpoints related to TLS Policy Maps.
* See {@link TlsPolicyMapEndpoints}
* @external
*/
tlsPolicyMaps: TlsPolicyMapEndpoints;
/**
* All endpoints related to DKIM.
* See {@link DkimEndpoints}
* @external
*/
dkim: DkimEndpoints;
/**
* All endpoints related to Domain Admins.
* See {@link DomainAdminEndpoints}
* @external
*/
domainAdmins: DomainAdminEndpoints;
/**
* All endpoints related to Routing.
* See {@link RoutingEndpoints}
* @external
*/
routing: RoutingEndpoints;
}
export default MailcowClient;