Categorygithub.com/l-with/mailcow-go
repositorypackage
0.0.47-beta
Repository: https://github.com/l-with/mailcow-go.git
Documentation: pkg.go.dev

# README

mailcow Go API Client

This repo contains a generated API client to talk with mailcow's API from Go.

Specials

The following API endpoints require an array as response body:

  • /delete/domain
  • /delete/mailbox

Therfore the template client.mustache include a special handling, e.g:

		if strings.HasSuffix(path, "/api/v1/delete/domain") {
			var deleteDomainRequest *DeleteDomainRequest = postBody.(*DeleteDomainRequest)
			postBody = *&deleteDomainRequest.Items
		}

Overview

This API client was generated by the OpenAPI Generator project. By using the OpenAPI-spec from a remote server, you can easily generate an API client.

  • API version: 1.0.0
  • Package version: 1.0.0

Installation

Install the following dependencies:

go install github.com/l.with/mailcow-go

Documentation for API Endpoints

All URIs are relative to http://localhost

ClassMethodHTTP requestDescription
AddressRewritingApiCreateBCCMapPost /api/v1/add/bccCreate BCC Map
AddressRewritingApiCreateRecipientMapPost /api/v1/add/recipient_mapCreate Recipient Map
AddressRewritingApiDeleteBCCMapPost /api/v1/delete/bccDelete BCC Map
AddressRewritingApiDeleteRecipientMapPost /api/v1/delete/recipient_mapDelete Recipient Map
AddressRewritingApiGetBCCMapGet /api/v1/get/bcc/{id}Get BCC Map
AddressRewritingApiGetRecipientMapGet /api/v1/get/recipient_map/{id}Get Recipient Map
AliasesApiCreateAliasPost /api/v1/add/aliasCreate alias
AliasesApiCreateTimeLimitedAliasPost /api/v1/add/time_limited_aliasCreate time limited alias
AliasesApiDeleteAliasPost /api/v1/delete/aliasDelete alias
AliasesApiGetAliasesGet /api/v1/get/alias/{id}Get aliases
AliasesApiGetTimeLimitedAliasesGet /api/v1/get/time_limited_aliases/{mailbox}Get time limited aliases
AliasesApiUpdateAliasPost /api/v1/edit/aliasUpdate alias
AppPasswordsApiCreateAppPasswordPost /api/v1/add/app-passwdCreate App Password
AppPasswordsApiDeleteAppPasswordPost /api/v1/delete/app-passwdDelete App Password
AppPasswordsApiGetAppPasswordGet /api/v1/get/app-passwd/all/{mailbox}Get App Password
DKIMApiDeleteDKIMKeyPost /api/v1/delete/dkimDelete DKIM Key
DKIMApiDuplicateDKIMKeyPost /api/v1/add/dkim_duplicateDuplicate DKIM Key
DKIMApiGenerateDKIMKeyPost /api/v1/add/dkimGenerate DKIM Key
DKIMApiGetDKIMKeyGet /api/v1/get/dkim/{domain}Get DKIM Key
DomainAdminApiCreateDomainAdminUserPost /api/v1/add/domain-adminCreate Domain Admin user
DomainAdminApiDeleteDomainAdminPost /api/v1/delete/domain-adminDelete Domain Admin
DomainAdminApiEditDomainAdminACLPost /api/v1/edit/da-aclEdit Domain Admin ACL
DomainAdminApiEditDomainAdminUserPost /api/v1/edit/domain-adminEdit Domain Admin user
DomainAdminApiGetDomainAdminsGet /api/v1/get/domain-admin/allGet Domain Admins
DomainAntispamPoliciesApiCreateDomainPolicyPost /api/v1/add/domain-policyCreate domain policy
DomainAntispamPoliciesApiDeleteDomainPolicyPost /api/v1/delete/domain-policyDelete domain policy
DomainAntispamPoliciesApiListBlacklistDomainPolicyGet /api/v1/get/policy_bl_domain/{domain}List blacklist domain policy
DomainAntispamPoliciesApiListWhitelistDomainPolicyGet /api/v1/get/policy_wl_domain/{domain}List whitelist domain policy
DomainsApiCreateDomainPost /api/v1/add/domainCreate domain
DomainsApiDeleteDomainPost /api/v1/delete/domainDelete domain
DomainsApiDeleteDomainTagsPost /api/v1/delete/domain/tag/{domain}Delete domain tags
DomainsApiGetDomainsGet /api/v1/get/domain/{id}Get domains
DomainsApiUpdateDomainPost /api/v1/edit/domainUpdate domain
Fail2BanApiEditFail2BanPost /api/v1/edit/fail2banEdit Fail2Ban
Fail2BanApiGetFail2BanConfigGet /api/v1/get/fail2banGet Fail2Ban Config
FordwardingHostsApiAddForwardHostPost /api/v1/add/fwdhostAdd Forward Host
FordwardingHostsApiDeleteForwardHostPost /api/v1/delete/fwdhostDelete Forward Host
FordwardingHostsApiGetForwardingHostsGet /api/v1/get/fwdhost/allGet Forwarding Hosts
LogsApiGetACMELogsGet /api/v1/get/logs/acme/{count}Get ACME logs
LogsApiGetApiLogsGet /api/v1/get/logs/api/{count}Get Api logs
LogsApiGetAutodiscoverLogsGet /api/v1/get/logs/autodiscover/{count}Get Autodiscover logs
LogsApiGetDovecotLogsGet /api/v1/get/logs/dovecot/{count}Get Dovecot logs
LogsApiGetNetfilterLogsGet /api/v1/get/logs/netfilter/{count}Get Netfilter logs
LogsApiGetPostfixLogsGet /api/v1/get/logs/postfix/{count}Get Postfix logs
LogsApiGetRatelimitLogsGet /api/v1/get/logs/ratelimited/{count}Get Ratelimit logs
LogsApiGetRspamdLogsGet /api/v1/get/logs/rspamd-history/{count}Get Rspamd logs
LogsApiGetSOGoLogsGet /api/v1/get/logs/sogo/{count}Get SOGo logs
LogsApiGetWatchdogLogsGet /api/v1/get/logs/watchdog/{count}Get Watchdog logs
MailboxesApiCreateMailboxPost /api/v1/add/mailboxCreate mailbox
MailboxesApiDeleteMailboxPost /api/v1/delete/mailboxDelete mailbox
MailboxesApiDeleteMailboxTagsPost /api/v1/delete/mailbox/tag/{mailbox}Delete mailbox tags
MailboxesApiEditMailboxSpamFilterScorePost /api/v1/edit/spam-score/Edit mailbox spam filter score
MailboxesApiGetMailboxesGet /api/v1/get/mailbox/{id}Get mailboxes
MailboxesApiQuarantineNotificationsPost /api/v1/edit/quarantine_notificationQuarantine Notifications
MailboxesApiUpdateMailboxPost /api/v1/edit/mailboxUpdate mailbox
MailboxesApiUpdateMailboxACLPost /api/v1/edit/user-aclUpdate mailbox ACL
MailboxesApiUpdatePushoverSettingsPost /api/v1/edit/pushoverUpdate Pushover settings
OAuthClientsApiCreateOAuthClientPost /api/v1/add/oauth2-clientCreate oAuth Client
OAuthClientsApiDeleteOAuthClientPost /api/v1/delete/oauth2-clientDelete oAuth Client
OAuthClientsApiGetOAuthClientsGet /api/v1/get/oauth2-client/{id}Get oAuth Clients
OutgoingTLSPolicyMapOverridesApiCreateTLSPolicyMapPost /api/v1/add/tls-policy-mapCreate TLS Policy Map
OutgoingTLSPolicyMapOverridesApiDeleteTLSPolicyMapPost /api/v1/delete/tls-policy-mapDelete TLS Policy Map
OutgoingTLSPolicyMapOverridesApiGetTLSPolicyMapGet /api/v1/get/tls-policy-map/{id}Get TLS Policy Map
QuarantineApiDeleteMailsInQuarantinePost /api/v1/delete/qitemDelete mails in Quarantine
QuarantineApiGetMailsInQuarantineGet /api/v1/get/quarantine/allGet mails in Quarantine
QueueManagerApiDeleteQueuePost /api/v1/delete/mailqDelete Queue
QueueManagerApiFlushQueuePost /api/v1/edit/mailqFlush Queue
QueueManagerApiGetQueueGet /api/v1/get/mailq/allGet Queue
RatelimitsApiEditDomainRatelimitsPost /api/v1/edit/rl-domain/Edit domain ratelimits
RatelimitsApiEditMailboxRatelimitsPost /api/v1/edit/rl-mbox/Edit mailbox ratelimits
RatelimitsApiGetDomainRatelimitsGet /api/v1/get/rl-domain/{domain}Get domain ratelimits
RatelimitsApiGetMailboxRatelimitsGet /api/v1/get/rl-mbox/{mailbox}Get mailbox ratelimits
ResourcesApiCreateResourcesPost /api/v1/add/resourceCreate Resources
ResourcesApiDeleteResourcesPost /api/v1/delete/resourceDelete Resources
ResourcesApiGetResourcesGet /api/v1/get/resource/allGet Resources
RoutingApiCreateSenderDependentTransportsPost /api/v1/add/relayhostCreate Sender-Dependent Transports
RoutingApiCreateTransportMapsPost /api/v1/add/transportCreate Transport Maps
RoutingApiDeleteSenderDependentTransportsPost /api/v1/delete/relayhostDelete Sender-Dependent Transports
RoutingApiDeleteTransportMapsPost /api/v1/delete/transportDelete Transport Maps
RoutingApiGetSenderDependentTransportsGet /api/v1/get/relayhost/{id}Get Sender-Dependent Transports
RoutingApiGetTransportMapsGet /api/v1/get/transport/{id}Get Transport Maps
StatusApiGetContainerStatusGet /api/v1/get/status/containersGet container status
StatusApiGetSolrStatusGet /api/v1/get/status/solrGet solr status
StatusApiGetVersionStatusGet /api/v1/get/status/versionGet version status
StatusApiGetVmailStatusGet /api/v1/get/status/vmailGet vmail status
SyncJobsApiCreateSyncJobPost /api/v1/add/syncjobCreate sync job
SyncJobsApiDeleteSyncJobPost /api/v1/delete/syncjobDelete sync job
SyncJobsApiGetSyncJobsGet /api/v1/get/syncjobs/{id}Get sync jobs
SyncJobsApiUpdateSyncJobPost /api/v1/edit/syncjobUpdate sync job

Documentation For Models

Documentation For Authorization

ApiKeyAuth

  • Type: API key
  • API key parameter name: X-API-Key
  • Location: HTTP header

Note, each API key must be added to a map of map[string]APIKey where the key is: X-API-Key and passed in as the auth context for each request.

Documentation for Utility Methods

Due to the fact that model structure members are all pointers, this package contains a number of utility functions to easily obtain pointers to values of basic types. Each of these functions takes a value of the given basic type and returns a pointer to it:

  • PtrBool
  • PtrInt
  • PtrInt32
  • PtrInt64
  • PtrFloat
  • PtrFloat32
  • PtrFloat64
  • PtrString
  • PtrTime