{
	"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: full name, the default domain,\nand the destinations (keys are email addresses, or localparts to the default\ndomain). todo: replace with a function that returns the whole account, when\nsherpadoc understands unnamed struct fields.",
			"Params": [],
			"Returns": [
				{
					"Name": "r0",
					"Typewords": [
						"string"
					]
				},
				{
					"Name": "r1",
					"Typewords": [
						"Domain"
					]
				},
				{
					"Name": "r2",
					"Typewords": [
						"{}",
						"Destination"
					]
				}
			]
		},
		{
			"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": "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. Empty if this is an ASCII-only domain. No trailing dot.",
					"Typewords": [
						"string"
					]
				}
			]
		},
		{
			"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": "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
}