{ "Name": "Account", "Docs": "Account exports web API functions for the account web interface. All its\nmethods are exported under api/. Function calls require valid HTTP\nAuthentication credentials of a user.", "Functions": [ { "Name": "LoginPrep", "Docs": "LoginPrep returns a login token, and also sets it as cookie. Both must be\npresent in the call to Login.", "Params": [], "Returns": [ { "Name": "r0", "Typewords": [ "string" ] } ] }, { "Name": "Login", "Docs": "Login returns a session token for the credentials, or fails with error code\n\"user:badLogin\". Call LoginPrep to get a loginToken.", "Params": [ { "Name": "loginToken", "Typewords": [ "string" ] }, { "Name": "username", "Typewords": [ "string" ] }, { "Name": "password", "Typewords": [ "string" ] } ], "Returns": [ { "Name": "r0", "Typewords": [ "CSRFToken" ] } ] }, { "Name": "Logout", "Docs": "Logout invalidates the session token.", "Params": [], "Returns": [] }, { "Name": "SetPassword", "Docs": "SetPassword saves a new password for the account, invalidating the previous password.\nSessions are not interrupted, and will keep working. New login attempts must use the new password.\nPassword must be at least 8 characters.", "Params": [ { "Name": "password", "Typewords": [ "string" ] } ], "Returns": [] }, { "Name": "Account", "Docs": "Account returns information about the account.\nStorageUsed is the sum of the sizes of all messages, in bytes.\nStorageLimit is the maximum storage that can be used, or 0 if there is no limit.", "Params": [], "Returns": [ { "Name": "account", "Typewords": [ "Account" ] }, { "Name": "storageUsed", "Typewords": [ "int64" ] }, { "Name": "storageLimit", "Typewords": [ "int64" ] } ] }, { "Name": "AccountSaveFullName", "Docs": "", "Params": [ { "Name": "fullName", "Typewords": [ "string" ] } ], "Returns": [] }, { "Name": "DestinationSave", "Docs": "DestinationSave updates a destination.\nOldDest is compared against the current destination. If it does not match, an\nerror is returned. Otherwise newDest is saved and the configuration reloaded.", "Params": [ { "Name": "destName", "Typewords": [ "string" ] }, { "Name": "oldDest", "Typewords": [ "Destination" ] }, { "Name": "newDest", "Typewords": [ "Destination" ] } ], "Returns": [] }, { "Name": "ImportAbort", "Docs": "ImportAbort aborts an import that is in progress. If the import exists and isn't\nfinished, no changes will have been made by the import.", "Params": [ { "Name": "importToken", "Typewords": [ "string" ] } ], "Returns": [] }, { "Name": "Types", "Docs": "Types exposes types not used in API method signatures, such as the import form upload.", "Params": [], "Returns": [ { "Name": "importProgress", "Typewords": [ "ImportProgress" ] } ] } ], "Sections": [], "Structs": [ { "Name": "Account", "Docs": "", "Fields": [ { "Name": "Domain", "Docs": "", "Typewords": [ "string" ] }, { "Name": "Description", "Docs": "", "Typewords": [ "string" ] }, { "Name": "FullName", "Docs": "", "Typewords": [ "string" ] }, { "Name": "Destinations", "Docs": "", "Typewords": [ "{}", "Destination" ] }, { "Name": "SubjectPass", "Docs": "", "Typewords": [ "SubjectPass" ] }, { "Name": "QuotaMessageSize", "Docs": "", "Typewords": [ "int64" ] }, { "Name": "RejectsMailbox", "Docs": "", "Typewords": [ "string" ] }, { "Name": "KeepRejects", "Docs": "", "Typewords": [ "bool" ] }, { "Name": "AutomaticJunkFlags", "Docs": "", "Typewords": [ "AutomaticJunkFlags" ] }, { "Name": "JunkFilter", "Docs": "todo: sane defaults for junkfilter", "Typewords": [ "nullable", "JunkFilter" ] }, { "Name": "MaxOutgoingMessagesPerDay", "Docs": "", "Typewords": [ "int32" ] }, { "Name": "MaxFirstTimeRecipientsPerDay", "Docs": "", "Typewords": [ "int32" ] }, { "Name": "NoFirstTimeSenderDelay", "Docs": "", "Typewords": [ "bool" ] }, { "Name": "Routes", "Docs": "", "Typewords": [ "[]", "Route" ] }, { "Name": "DNSDomain", "Docs": "Parsed form of Domain.", "Typewords": [ "Domain" ] } ] }, { "Name": "Destination", "Docs": "", "Fields": [ { "Name": "Mailbox", "Docs": "", "Typewords": [ "string" ] }, { "Name": "Rulesets", "Docs": "", "Typewords": [ "[]", "Ruleset" ] }, { "Name": "FullName", "Docs": "", "Typewords": [ "string" ] } ] }, { "Name": "Ruleset", "Docs": "", "Fields": [ { "Name": "SMTPMailFromRegexp", "Docs": "", "Typewords": [ "string" ] }, { "Name": "VerifiedDomain", "Docs": "", "Typewords": [ "string" ] }, { "Name": "HeadersRegexp", "Docs": "", "Typewords": [ "{}", "string" ] }, { "Name": "IsForward", "Docs": "todo: once we implement ARC, we can use dkim domains that we cannot verify but that the arc-verified forwarding mail server was able to verify.", "Typewords": [ "bool" ] }, { "Name": "ListAllowDomain", "Docs": "", "Typewords": [ "string" ] }, { "Name": "AcceptRejectsToMailbox", "Docs": "", "Typewords": [ "string" ] }, { "Name": "Mailbox", "Docs": "", "Typewords": [ "string" ] }, { "Name": "VerifiedDNSDomain", "Docs": "", "Typewords": [ "Domain" ] }, { "Name": "ListAllowDNSDomain", "Docs": "", "Typewords": [ "Domain" ] } ] }, { "Name": "Domain", "Docs": "Domain is a domain name, with one or more labels, with at least an ASCII\nrepresentation, and for IDNA non-ASCII domains a unicode representation.\nThe ASCII string must be used for DNS lookups. The strings do not have a\ntrailing dot. When using with StrictResolver, add the trailing dot.", "Fields": [ { "Name": "ASCII", "Docs": "A non-unicode domain, e.g. with A-labels (xn--...) or NR-LDH (non-reserved letters/digits/hyphens) labels. Always in lower case. No trailing dot.", "Typewords": [ "string" ] }, { "Name": "Unicode", "Docs": "Name as U-labels, in Unicode NFC. Empty if this is an ASCII-only domain. No trailing dot.", "Typewords": [ "string" ] } ] }, { "Name": "SubjectPass", "Docs": "", "Fields": [ { "Name": "Period", "Docs": "todo: have a reasonable default for this?", "Typewords": [ "int64" ] } ] }, { "Name": "AutomaticJunkFlags", "Docs": "", "Fields": [ { "Name": "Enabled", "Docs": "", "Typewords": [ "bool" ] }, { "Name": "JunkMailboxRegexp", "Docs": "", "Typewords": [ "string" ] }, { "Name": "NeutralMailboxRegexp", "Docs": "", "Typewords": [ "string" ] }, { "Name": "NotJunkMailboxRegexp", "Docs": "", "Typewords": [ "string" ] } ] }, { "Name": "JunkFilter", "Docs": "", "Fields": [ { "Name": "Threshold", "Docs": "", "Typewords": [ "float64" ] }, { "Name": "Onegrams", "Docs": "", "Typewords": [ "bool" ] }, { "Name": "Twograms", "Docs": "", "Typewords": [ "bool" ] }, { "Name": "Threegrams", "Docs": "", "Typewords": [ "bool" ] }, { "Name": "MaxPower", "Docs": "", "Typewords": [ "float64" ] }, { "Name": "TopWords", "Docs": "", "Typewords": [ "int32" ] }, { "Name": "IgnoreWords", "Docs": "", "Typewords": [ "float64" ] }, { "Name": "RareWords", "Docs": "", "Typewords": [ "int32" ] } ] }, { "Name": "Route", "Docs": "", "Fields": [ { "Name": "FromDomain", "Docs": "", "Typewords": [ "[]", "string" ] }, { "Name": "ToDomain", "Docs": "", "Typewords": [ "[]", "string" ] }, { "Name": "MinimumAttempts", "Docs": "", "Typewords": [ "int32" ] }, { "Name": "Transport", "Docs": "", "Typewords": [ "string" ] }, { "Name": "FromDomainASCII", "Docs": "", "Typewords": [ "[]", "string" ] }, { "Name": "ToDomainASCII", "Docs": "", "Typewords": [ "[]", "string" ] } ] }, { "Name": "ImportProgress", "Docs": "ImportProgress is returned after uploading a file to import.", "Fields": [ { "Name": "Token", "Docs": "For fetching progress, or cancelling an import.", "Typewords": [ "string" ] } ] } ], "Ints": [], "Strings": [ { "Name": "CSRFToken", "Docs": "", "Values": null } ], "SherpaVersion": 0, "SherpadocVersion": 1 }