connect

package module
v0.2.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 4, 2021 License: MIT Imports: 8 Imported by: 0

README

Kerio Connect API

Go Reference

Overview

Client for Kerio API Connect (JSON-RPC 2.0)

Implemented all Administration API for Kerio Connect methods

Installation

go get github.com/igiant/connect

Example

package main

import (
	"fmt"
	"log"

	"github.com/igiant/connect"
)

func main() {
	config := connect.NewConfig("server_addr")
	conn, err := config.NewConnection()
	if err != nil {
		log.Fatal(err)
	}
	app := &connect.Application{
		Name:    "MyApp",
		Vendor:  "Me",
		Version: "v0.0.1",
	}
	err = conn.Login("user_name", "user_password", app)
	if err != nil {
		log.Fatal(err)
	}
	defer func() {
		err = conn.Logout()
		if err != nil {
			log.Println(err)
		}
	}()
	info, err := conn.ServerGetProductInfo()
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf(
		"ProductName: %s\nVersion: %s\nOsName: %s\n",
		info.ProductName,
		info.Version,
		info.OsName,
	)
}

Documentation

RoadMap

  • Add tests and search errors

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ABExtension added in v0.1.2

type ABExtension struct {
	GroupId string `json:"groupId"`
	Label   string `json:"label"`
}

ABExtension - Extension of Apple Address Book

type AboutInfo added in v0.2.0

type AboutInfo struct {
	CurrentUsers    int              `json:"currentUsers"`    // number of created users on domain
	AllowedUsers    MaximumUsers     `json:"allowedUsers"`    // number of allowed users, take stricter limit from max. number for domain, max. number by license
	ServerSoftware  string           `json:"serverSoftware"`  // product name and version string, same as SERVER_SOFTWARE
	Subscription    SubscriptionInfo `json:"subscription"`    // information about subscription
	Copyright       string           `json:"copyright"`       // copyright string
	ProductHomepage string           `json:"productHomepage"` // url to homepage of product
}

AboutInfo - About information

type AccessPolicyConnectionRule added in v0.1.2

type AccessPolicyConnectionRule struct {
	Type    AccessPolicyConnectionRuleType `json:"type"`    // type of rule
	GroupId KId                            `json:"groupId"` // if type of rule is 'ServiceIpAllowed/Denied' there is ID of IP Group
}

type AccessPolicyConnectionRuleType added in v0.1.2

type AccessPolicyConnectionRuleType string
const (
	ServiceAllowed   AccessPolicyConnectionRuleType = "ServiceAllowed"   // service is allowed
	ServiceDenied    AccessPolicyConnectionRuleType = "ServiceDenied"    // service is forbidden
	ServiceIpAllowed AccessPolicyConnectionRuleType = "ServiceIpAllowed" // service is allowed for specific IP group
	ServiceIpDenied  AccessPolicyConnectionRuleType = "ServiceIpDenied"  // service is forbidden for specific IP group
)

type AccessPolicyGroup added in v0.1.2

type AccessPolicyGroup struct {
	Id        KId    `json:"id"`        // [READ-ONLY] [REQUIRED FOR SET] global identification
	Name      string `json:"name"`      // name of policy
	IsDefault bool   `json:"isDefault"` // [READ-ONLY]
}

AccessPolicyGroup - Access policy group details.

type AccessPolicyGroupList added in v0.1.2

type AccessPolicyGroupList []AccessPolicyGroup

AccessPolicyGroupList - List of AccessPolicy.

type AccessPolicyRule added in v0.1.2

type AccessPolicyRule struct {
	Id      KId                        `json:"id"`      // [READ-ONLY] [REQUIRED FOR SET] global identification
	GroupId KId                        `json:"groupId"` // [REQUIRED FOR CREATE] global identification of AccessPolicyGroup
	Service ServiceType                `json:"service"` // type of service
	Rule    AccessPolicyConnectionRule `json:"rule"`    // rule for connections
}

AccessPolicyRule - Access policy rule details.

type AccessPolicyRuleList added in v0.1.2

type AccessPolicyRuleList []AccessPolicyRule

AccessPolicyRuleList - List of AccessPolicyRule.

type ActionAfterDays added in v0.1.0

type ActionAfterDays struct {
	IsEnabled bool `json:"isEnabled"` // is action on/off?
	Days      int  `json:"days"`      // after how many days is an action performed?
}

Message clean out setting Note: all fields must be assigned if used in set methods

type AddResult added in v0.1.2

type AddResult struct {
	Id           KId                `json:"id"`           // purposely not id - loginName is shown
	Success      bool               `json:"success"`      // was operation successful? if yes so id is new id for this item else errorMessage tells why it failed
	ErrorMessage LocalizableMessage `json:"errorMessage"` // contains number of recovered user messages or error message
}

AddResult - Result of the add operation

type AddResultList added in v0.1.2

type AddResultList []AddResult

AddResultList - list of add operation results

type AdditionalFiles added in v0.2.0

type AdditionalFiles []string

AdditionalFiles - List of files attached to the ticket

type AdditionalInfo added in v0.1.2

type AdditionalInfo struct {
	IsEnabled bool   `json:"isEnabled"` // Is used
	Text      string `json:"text"`
}

type AddressType added in v0.2.0

type AddressType string
const (
	AllAddresses  AddressType = "AllAddresses"  // all IP addresses for this machine
	Localhost     AddressType = "Localhost"     // localhost - special case
	RealIpAddress AddressType = "RealIpAddress" // a specific address of this machine
)

type Administration

type Administration struct {
	IsEnabled                   bool   `json:"isEnabled"`                   // administration from other that local machine is enabled/disabled
	IsLimited                   bool   `json:"isLimited"`                   // administration is limited
	GroupId                     KId    `json:"groupId"`                     // IP Address Group identifier on which is limit applied
	GroupName                   string `json:"groupName"`                   // [READ-ONLY] IP Address Group name on which is limit applied
	BuiltInAdminEnabled         bool   `json:"builtInAdminEnabled"`         // if is enabled field builtInAdminPassword is required
	BuiltInAdminUsername        string `json:"builtInAdminUsername"`        // [READ-ONLY] user name
	BuiltInAdminPassword        string `json:"builtInAdminPassword"`        // password
	BuiltInAdminPasswordIsEmpty bool   `json:"builtInAdminPasswordIsEmpty"` // [READ-ONLY] password is empty
	BuiltInAdminUsernameCollide bool   `json:"builtInAdminUsernameCollide"` // [READ-ONLY] username colide with user in primary domain
}

Administration - Note: isEnabled, isLimited and groupId fields must be assigned if any of them is used in set methods

type AdvancedOptionsSetting added in v0.1.2

type AdvancedOptionsSetting struct {
	Miscellaneous        MiscellaneousOptions        `json:"miscellaneous"`
	StoreDirectory       StoreDirectoryOptions       `json:"storeDirectory"`
	MasterAuthentication MasterAuthenticationOptions `json:"masterAuthentication"`
	HttpProxy            HttpProxyOptions            `json:"httpProxy"`
	UpdateChecker        UpdateCheckerOptions        `json:"updateChecker"`
	WebMail              WebMailOptions              `json:"webMail"`
	UserQuota            UserQuota                   `json:"userQuota"`
	Fulltext             FulltextSetting             `json:"fulltext"`
	KoffOptions          KoffOptions                 `json:"koffOptions"`
	OperatorOptions      OperatorOptions             `json:"operatorOptions"`
}

type Alert added in v0.2.0

type Alert struct {
	AlertName     AlertName `json:"alertName"`     // Alert Id
	AlertType     TypeAlert `json:"alertType"`     // Alert type
	CurrentValue  string    `json:"currentValue"`  // Current Value
	CriticalValue string    `json:"criticalValue"` // Critical Value
}

Alert - Alert

type AlertList added in v0.2.0

type AlertList []Alert

type AlertName added in v0.2.0

type AlertName string

AlertName - Type of Alert

const (
	LicenseExpired                AlertName = "LicenseExpired"                // License has expired
	LicenseInvalidMinVersion      AlertName = "LicenseInvalidMinVersion"      // Invalid minimal version of a product found
	LicenseInvalidEdition         AlertName = "LicenseInvalidEdition"         // The license was not issued for this edition of the product
	LicenseInvalidUser            AlertName = "LicenseInvalidUser"            // The license was not issued for this user
	LicenseInvalidDomain          AlertName = "LicenseInvalidDomain"          // The license was not issued for this domain
	LicenseInvalidOS              AlertName = "LicenseInvalidOS"              // The license was not issued for this operating system
	LicenseCheckForwardingEnabled AlertName = "LicenseCheckForwardingEnabled" // The license was not alowed forward the message to another host
	LicenseTooManyUsers           AlertName = "LicenseTooManyUsers"           // More users try login to their mailboxes then allowed License.
	StorageSpaceLow               AlertName = "StorageSpaceLow"               // Low space in storage
	SubscriptionExpired           AlertName = "SubscriptionExpired"           // Subscription has expired
	SubscriptionSoonExpire        AlertName = "SubscriptionSoonExpire"        // Subscription soon expire
	LicenseSoonExpire             AlertName = "LicenseSoonExpire"             // License soon expire
	CoredumpFound                 AlertName = "CoredumpFound"                 // Some coredump was found after crash
	MacOSServicesKeepsPorts       AlertName = "MacOSServicesKeepsPorts"       // Apache on Lion server keeps ports (Eg. port 443), which are assigned to our services. See Services.stopMacOSServices()
	RemoteUpgradeFailed           AlertName = "RemoteUpgradeFailed"           // Remote server upgrade failed
	RemoteUpgradeSucceeded        AlertName = "RemoteUpgradeSucceeded"        // Remote server upgrade succeeded
)

type Alias added in v0.0.3

type Alias struct {
	Id          KId        `json:"id"`          // global identification of alias
	DomainId    KId        `json:"domainId"`    // [REQUIRED FOR CREATE] identification in which domain alias exists
	Name        string     `json:"name"`        // [REQUIRED FOR CREATE] [USED BY QUICKSEARCH] left side of alias
	DeliverToId KId        `json:"deliverToId"` // empty if email or contains public folder kid
	DeliverTo   string     `json:"deliverTo"`   // [REQUIRED FOR CREATE] [USED BY QUICKSEARCH] email address or public folder name
	Type        AliasType  `json:"type"`        // type of the alias
	Description string     `json:"description"` // description
	HomeServer  HomeServer `json:"homeServer"`  // [READ-ONLY] Id of alias homeserver if server is in Cluster
}

Alias - Alias details

type AliasList added in v0.0.3

type AliasList []Alias

AliasList - List of aliases

type AliasTarget added in v0.0.3

type AliasTarget struct {
	Id           KId             `json:"id"`           // unique identifier
	Type         AliasTargetType `json:"type"`         // item type discriminator
	Name         string          `json:"name"`         // loginName for the User, name in square brackets for the Group
	FullName     string          `json:"fullName"`     // fullname for the User, empty string for the Group
	Description  string          `json:"description"`  // description of User/Group
	IsEnabled    bool            `json:"isEnabled"`    // is the User/Group enabled?
	ItemSource   DataSource      `json:"itemSource"`   // is the User/Group stored internally or by LDAP?
	EmailAddress string          `json:"emailAddress"` // first email address
	HomeServer   HomeServer      `json:"homeServer"`   // id of users homeserver if server is in Cluster; groups haven't homeserver
}

AliasTarget - Alias target can be a user or group

type AliasTargetList added in v0.0.3

type AliasTargetList []AliasTarget

AliasTargetList - List of alias targets

type AliasTargetType added in v0.2.0

type AliasTargetType string

AliasTargetType - Alias Target discriminator

const (
	TypeUser  AliasTargetType = "TypeUser"  // user
	TypeGroup AliasTargetType = "TypeGroup" // group
)

type AliasType added in v0.2.0

type AliasType string

AliasType - Alias type definition

const (
	TypePublicFolder AliasType = "TypePublicFolder" // messages are delivered to public folder
	TypeEmailAddress AliasType = "TypeEmailAddress" // messages are delivered to email account
)

type AntiHammeringOptions added in v0.2.0

type AntiHammeringOptions struct {
	IsEnabled           bool           `json:"isEnabled"`           // Enable/disable Anti-Hammering
	FailedLoginsToBlock int            `json:"failedLoginsToBlock"` // Count of failed logins within minute to start blocking
	MinutesToBlock      int            `json:"minutesToBlock"`      // Minutes to keep blocking IP
	ExceptionIpGroup    OptionalEntity `json:"exceptionIpGroup"`    // switchable custom white list IP group
}

type AntiSpamSetting added in v0.2.0

type AntiSpamSetting struct {
	IsRatingEnabled           bool                     `json:"isRatingEnabled"`      // is spam filter rating enabled?
	IsRatingRelayEnabled      bool                     `json:"isRatingRelayEnabled"` // is rating of messages sent from trustworthy relay agents enabled?
	TagScore                  int                      `json:"tagScore"`
	BlockScore                int                      `json:"blockScore"`
	SubjectPrefix             OptionalString           `json:"subjectPrefix"`           // SPAM is marked with this prefix
	SendBounce                bool                     `json:"sendBounce"`              // send bounce message to the sender of SPAM?
	QuarantineAddress         OptionalString           `json:"quarantineAddress"`       // forward SPAM to a Quarantine address?
	CustomWhiteList           OptionalEntity           `json:"customWhiteList"`         // switchable custom white list IP group
	CustomBlackList           BlackListSetting         `json:"customBlackList"`         // switchable custom blacklist list IP group
	SendBounceCustom          bool                     `json:"sendBounceCustom"`        // send bounce message to the sender if rejection was done by custom rule(s)?
	QuarantineAddressCustom   OptionalString           `json:"quarantineAddressCustom"` // forward custom rules identified SPAM to a Quarantine address?
	UseSurbl                  bool                     `json:"useSurbl"`                // use Spam URI Realtime Block List database?
	FilterStatus              BayesState               `json:"filterStatus"`            // read only: Bayesian filter status
	LearnedAsSpam             int                      `json:"learnedAsSpam"`           // read only: number of messages that Bayesian filter learned as Spam
	LearnedAsNotSpam          int                      `json:"learnedAsNotSpam"`        // read only: number of messages that Bayesian filter learned as NOT a Spam
	IsCustomSigningKey        bool                     `json:"isCustomSigningKey"`      // Custom signing key is used for DKIM validation
	CallerSetting             CallerId                 `json:"callerSetting"`           // Caller ID setting
	CallerUrl                 string                   `json:"callerUrl"`               // read only: Caller ID URL with detailed info
	SpfSetting                Spf                      `json:"spfSetting"`              // Sender Policy Framework setting
	RepellentSetting          Repellent                `json:"repellentSetting"`
	GreylistingStatus         Greylisting              `json:"greylistingStatus"`
	UseCustomRulesInSmtp      bool                     `json:"useCustomRulesInSmtp"`      //
	IntegratedAntiSpamSetting IntegratedAntiSpamEngine `json:"integratedAntiSpamSetting"` // Kerio Anti-Spam
}

type AntibombingStats added in v0.1.2

type AntibombingStats struct {
	RejectedConnections    string `json:"rejectedConnections"`
	RejectedMessages       string `json:"rejectedMessages"`
	RejectedHarvestAttacks string `json:"rejectedHarvestAttacks"`
}

type AntivirusOption added in v0.2.0

type AntivirusOption struct {
	Name         string `json:"name"`
	Content      string `json:"content"`
	DefaultValue string `json:"defaultValue"` // read only value
}

AntivirusOption - Note: fields name and content must be assigned if used in set methods

type AntivirusOptionList added in v0.2.0

type AntivirusOptionList []AntivirusOption

type AntivirusPlugin added in v0.2.0

type AntivirusPlugin struct {
	Id                  string              `json:"id"`          // example: avir_avg
	Description         string              `json:"description"` // example: AVG Email Server Edition
	AreOptionsAvailable bool                `json:"areOptionsAvailable"`
	Options             AntivirusOptionList `json:"options"`
}

AntivirusPlugin - Note: field id must be assigned if used in set methods

type AntivirusPluginList added in v0.2.0

type AntivirusPluginList []AntivirusPlugin

type AntivirusSetting added in v0.2.0

type AntivirusSetting struct {
	UseIntegrated      bool                 `json:"useIntegrated"`      // integrated antivirus is used?
	UseExternal        bool                 `json:"useExternal"`        // an external antivirus is used? note: both internal and extenal can be used together
	Status             AntivirusStatus      `json:"status"`             // status of antivirus to be used for informative massage
	Plugins            AntivirusPluginList  `json:"plugins"`            // list of available antivirus plugins
	SelectedId         string               `json:"selectedId"`         // identifier of currently selected antivirus plugin
	Engine             IntegratedEngine     `json:"engine"`             // integrated engine settings
	VirusReaction      FoundVirusBehavior   `json:"virusReaction"`      // found virus reaction setting
	NotScannedReaction ReactionOnNotScanned `json:"notScannedReaction"` // found corruption or encryption reaction type
}

type AntivirusStats added in v0.1.2

type AntivirusStats struct {
	CheckedAttachments string `json:"checkedAttachments"` // how many checked attachments
	FoundViruses       string `json:"foundViruses"`       // how many found viruses
	ProhibitedTypes    string `json:"prohibitedTypes"`    // how many found prohibited filenames/MIME types
}

type AntivirusStatus added in v0.2.0

type AntivirusStatus string

AntivirusStatus - Are all possible states covered

const (
	AntivirusOk     AntivirusStatus = "AntivirusOk"     // no message is needed
	NoAntivirus     AntivirusStatus = "NoAntivirus"     // neither internal nor external antivirus is active
	InternalFailure AntivirusStatus = "InternalFailure" // problem with internal intivirus
	ExternalFailure AntivirusStatus = "ExternalFailure" // problem with external intivirus
	DoubleFailer    AntivirusStatus = "DoubleFailer"    // both internal and external antivirus has failed
)

type ApiApplication added in v0.1.2

type ApiApplication struct {
	Name    string `json:"name"`    // E.g. "Simple server monitor"
	Vendor  string `json:"vendor"`  // E.g. "MyScript Ltd."
	Version string `json:"version"` // E.g. "1.0.0 beta 1"
}

ApiApplication - Describes client (third-party) application or script which uses the Administration API.

func NewApplication

func NewApplication(name, vendor, version string) *ApiApplication

NewApplication returns a pointer to structure with application data

type ApiVersion added in v0.2.0

type ApiVersion int

ApiVersion - higher or equal number as version 7.3.0 - equal if there's no change in API.

type ArchiveOptions added in v0.1.2

type ArchiveOptions struct {
	Paths                     Directories        `json:"paths"`                     // Paths to store/archive/backup
	IsEnabled                 bool               `json:"isEnabled"`                 // Enable mail archiving
	RemoteArchive             OptionalString     `json:"remoteArchive"`             // Archive to remote email address
	ArchiveToLocalFolder      bool               `json:"archiveToLocalFolder"`      // Archive to local folder
	ArchiveFoldersInterval    DayWeekMonthPeriod `json:"archiveFoldersInterval"`    // Interval used for creating of new archive folders (in days/weeks/months)
	CompressOldArchiveFolders bool               `json:"compressOldArchiveFolders"` // Compress old archive folders
	CompressionStartTime      Time               `json:"compressionStartTime"`      // Time in the day when an archive compression shall start
	ArchiveLocalMessages      bool               `json:"archiveLocalMessages"`      // Local messages (local sender, local recipient)
	ArchiveIncomingMessages   bool               `json:"archiveIncomingMessages"`   // Incoming messages (remote sender, local recipient)
	ArchiveOutgoingMessages   bool               `json:"archiveOutgoingMessages"`   // Outgoing messages (local sender, remote recipient)
	ArchiveRelayedMessages    bool               `json:"archiveRelayedMessages"`    // Relayed messages (remote sender, remote recipient)
	ArchiveBeforeFilter       bool               `json:"archiveBeforeFilter"`       // Archive messages before content filter check (viruses and spams will be stored intact in the archive folders)
	IsXmppEnabled             bool               `json:"isXmppEnabled"`             // Enable archiving for instant messaging
	IsEnabledPerDomain        bool               `json:"isEnabledPerDomain"`        // Enable custom per domain settings
}

type ArchiveSettings added in v0.2.0

type ArchiveSettings struct {
	KeepArchive          bool        `json:"keepArchive"`          // maintain archive
	ArchiveOnlyForLogged bool        `json:"archiveOnlyForLogged"` // the archive is available for logged users only
	ArchiveReaderList    TrusteeList `json:"archiveReaderList"`    // list of archive readers, can be either user or group, meaningful only if onlyForLogged is true
}

ArchiveSettings - How is the archive organized?

type AttachmentAction added in v0.2.0

type AttachmentAction string
const (
	Block  AttachmentAction = "Block"
	Accept AttachmentAction = "Accept"
)

type AttachmentItem added in v0.2.0

type AttachmentItem struct {
	Id          KId              `json:"id"`
	Enabled     bool             `json:"enabled"`     // the rule is in use
	Type        AttachmentType   `json:"type"`        // type of the rule
	Content     string           `json:"content"`     // *,? wildcards are supported
	Action      AttachmentAction `json:"action"`      // what to do if the rule maches
	Description string           `json:"description"` //
}

AttachmentItem - Attachment filter rule item

type AttachmentItemList added in v0.2.0

type AttachmentItemList []AttachmentItem

type AttachmentSetting added in v0.2.0

type AttachmentSetting struct {
	Enabled                bool           `json:"enabled"`                // attachment filter is on/off
	WarnSender             bool           `json:"warnSender"`             // sender will (not) obtain warning message
	ForwardOriginal        OptionalString `json:"forwardOriginal"`        // where to forward original message
	ForwardFiltered        OptionalString `json:"forwardFiltered"`        // where to forward filtered message
	EnableZipContentFilter bool           `json:"enableZipContentFilter"` // checks zip content for prohibited extennsions
}

AttachmentSetting - Attachment filter settings

type AttachmentType added in v0.2.0

type AttachmentType string
const (
	FileName AttachmentType = "FileName"
	MimeType AttachmentType = "MimeType"
)

type AuthResult added in v0.1.2

type AuthResult string

AuthResult - Resut of autentication.

const (
	AuthOK           AuthResult = "AuthOK"           // User was autenticated
	AuthFail         AuthResult = "AuthFail"         // Wrong login name or password.
	AuthUserDisabled AuthResult = "AuthUserDisabled" // User cannot to log in, because his account is disabled.
	AuthLicense      AuthResult = "AuthLicense"      // User cannot log in, because license limit was reached.
	AuthDenied       AuthResult = "AuthDenied"       // User is denied to log in.
	AuthTryLater     AuthResult = "AuthTryLater"     // User cannot to log in at this moment, try later.
)

type AuthTypeList added in v0.1.2

type AuthTypeList []UserAuthType

Type for returning authorization type supported by server

type AuthenticationMethodList added in v0.2.0

type AuthenticationMethodList []OptionalString

type BackupInfo added in v0.1.2

type BackupInfo struct {
	IsCreated bool               `json:"isCreated"` // True, if backup was successfully created
	Created   UtcDateTime        `json:"created"`   // Time when backup started (always in GTM)
	Size      ByteValueWithUnits `json:"size"`      // Compressed size of a backup
}

BackupInfo - [READ-ONLY]

type BackupOptions added in v0.1.2

type BackupOptions struct {
	Paths                    Directories  `json:"paths"`                    // Paths to store/archive/backup, this field is used in both, archive and backup, options
	IsEnabled                bool         `json:"isEnabled"`                // Enable message store and configuration recovery backup
	Status                   BackupStatus `json:"status"`                   // Current backup status
	SplitSizeLimit           int          `json:"splitSizeLimit"`           // Split backup files if size reaches 'splitSizeLimit' (MB)
	RotationLimit            int          `json:"rotationLimit"`            // Keep at most 'rotationLimit' complete backups
	NetworkDiskUserName      string       `json:"networkDiskUserName"`      // If the backup directory is on the network disk, you may need to specify user name
	NetworkDiskPassword      string       `json:"networkDiskPassword"`      // ... and password
	NotificationEmailAddress string       `json:"notificationEmailAddress"` // An email address of person that will be notified when backup is completed or if any problems arise
}

type BackupSchedule added in v0.1.2

type BackupSchedule struct {
	Id          KId        `json:"id"`          // [READ-ONLY]
	IsEnabled   bool       `json:"isEnabled"`   // True if backup schedule is enabled
	Type        BackupType `json:"type"`        // Backup type
	DayType     DayType    `json:"day"`         // Backup schedule day of week
	Time        TimeHMS    `json:"time"`        // Backup schedule start time - days are ignored!
	Description string     `json:"description"` // description of the backup schedule
}

type BackupScheduleList added in v0.1.2

type BackupScheduleList []BackupSchedule

type BackupStatus added in v0.1.2

type BackupStatus struct {
	BackupInProgress bool             `json:"backupInProgress"` // True, if backup is in progress; otherwise, false
	Percents         int              `json:"percents"`         // Backup progress in percents (form 0 to 100)
	LastBackupStatus LastBackupStatus `json:"lastBackupStatus"` // Status of the last backup run
	ElapsedTime      Distance         `json:"elapsedTime"`      // Time from last started backup
	RemainingTime    Distance         `json:"remainingTime"`    // Approximated time to end of current backup
	LastFull         BackupInfo       `json:"lastFull"`         // Information about last full backup
	LastDifferential BackupInfo       `json:"lastDifferential"` // Information about last differential backup
	LastMirror       BackupInfo       `json:"lastMirror"`       // Information about last mirror backup
}

BackupStatus - [READ-ONLY]

type BackupType added in v0.1.2

type BackupType string

type BayesState added in v0.2.0

type BayesState string
const (
	Disabled BayesState = "Disabled" // Bayes database statistics are not provided
	Learning BayesState = "Learning"
	Active   BayesState = "Active"
)

type BlackList added in v0.2.0

type BlackList struct {
	Id          KId          `json:"id"` // global identifier
	Enabled     bool         `json:"enabled"`
	DnsSuffix   string       `json:"dnsSuffix"`
	Description string       `json:"description"`
	Action      BlockOrScore `json:"action"` // what to do if IP address is found on blacklist
	Score       int          `json:"score"`
	AskDirectly bool         `json:"askDirectly"`
}

type BlackListList added in v0.2.0

type BlackListList []BlackList

type BlackListSetting added in v0.2.0

type BlackListSetting struct {
	Enabled bool         `json:"enabled"`
	Id      KId          `json:"id"` // global identifier
	Name    string       `json:"name"`
	Action  BlockOrScore `json:"action"`
	Score   int          `json:"score"`
}

BlackListSetting - Custom setting of blacklist spammer IP addresses

type BlockOrScore added in v0.2.0

type BlockOrScore string
const (
	BlockMessage BlockOrScore = "BlockMessage" // block the message
	ScoreMessage BlockOrScore = "ScoreMessage" // add SPAM score to the message
)

type BuildType added in v0.1.2

type BuildType string
const (
	Alpha BuildType = "Alpha"
	Beta  BuildType = "Beta"
	Rc    BuildType = "Rc"
	Final BuildType = "Final"
	Patch BuildType = "Patch"
)

type ButtonColor added in v0.1.2

type ButtonColor struct {
	IsEnabled       bool   `json:"isEnabled"` // Is used
	TextColor       string `json:"textColor"`
	BackgroundColor string `json:"backgroundColor"`
}

type ByteUnits added in v0.1.2

type ByteUnits string

ByteUnits - Units used for handling large values of bytes. See also userinfo.idl: enum UserValueUnits.

const (
	Bytes     ByteUnits = "Bytes"
	KiloBytes ByteUnits = "KiloBytes"
	MegaBytes ByteUnits = "MegaBytes"
	GigaBytes ByteUnits = "GigaBytes"
	TeraBytes ByteUnits = "TeraBytes"
	PetaBytes ByteUnits = "PetaBytes"
)

type ByteValueWithUnits added in v0.1.2

type ByteValueWithUnits struct {
	Value int       `json:"value"`
	Units ByteUnits `json:"units"`
}

ByteValueWithUnits - Stores size of very large values of bytes e.g. for user quota Note: all fields must be assigned if used in set methods

type CallerId added in v0.2.0

type CallerId struct {
	Enabled          bool           `json:"enabled"`
	Action           SpamAction     `json:"action"`
	Score            int            `json:"score"`
	ApplyOnTesting   bool           `json:"applyOnTesting"`
	ExceptionIpGroup OptionalEntity `json:"exceptionIpGroup"` // switchable custom white list IP group
}

type Certificate added in v0.1.2

type Certificate struct {
	Id                         KId                 `json:"id"`
	Status                     StoreStatus         `json:"status"`
	Name                       string              `json:"name"`
	Issuer                     NamedValueList      `json:"issuer"`
	Subject                    NamedValueList      `json:"subject"`
	SubjectAlternativeNameList NamedMultiValueList `json:"subjectAlternativeNameList"`
	Fingerprint                string              `json:"fingerprint"`       // 128-bit MD5, i.e. 16 hexa values separated by colons
	FingerprintSha1            string              `json:"fingerprintSha1"`   // 160-bit SHA1, i.e. 20 hexa values separated by colons
	FingerprintSha256          string              `json:"fingerprintSha256"` // 512-bit SHA256, i.e. 64 hexa values separated by colons
	ValidPeriod                ValidPeriod         `json:"validPeriod"`
	Valid                      bool                `json:"valid"` // exists and valid content
	Type                       CertificateType     `json:"type"`
	IsUntrusted                bool                `json:"isUntrusted"`
	VerificationMessage        string              `json:"verificationMessage"`
	ChainInfo                  StringList          `json:"chainInfo"`
	IsSelfSigned               bool                `json:"isSelfSigned"`
}

Certificate properties issuer & subject valid names:

hostname;        // max 127 bytes
organizationName;    // max 127 bytes
organizationalUnitName; // max 127 bytes
city;          // max 127 bytes
state;          // max 127 bytes
country;         // ISO 3166 code

Certificate - emailAddress; // max 255 bytes

type CertificateList added in v0.1.2

type CertificateList []Certificate

type CertificateType added in v0.1.2

type CertificateType string
const (
	ActiveCertificate   CertificateType = "ActiveCertificate"
	InactiveCertificate CertificateType = "InactiveCertificate"
	CertificateRequest  CertificateType = "CertificateRequest"
	Authority           CertificateType = "Authority"
	LocalAuthority      CertificateType = "LocalAuthority"
	BuiltInAuthority    CertificateType = "BuiltInAuthority"
	ServerCertificate   CertificateType = "ServerCertificate"
)

type Chart added in v0.1.2

type Chart struct {
	Classname  string    `json:"classname"`  // A class name of chart
	Name       string    `json:"name"`       // A chart name
	Xtype      string    `json:"xtype"`      // An x scale type
	Ytype      string    `json:"ytype"`      // An y scale type
	ScaleCount int       `json:"scaleCount"` // A count of scales
	Scale      ScaleList `json:"scale"`      // List of scales
}

Chart - Descriptions of charts graph

type ChartData added in v0.1.2

type ChartData struct {
	XName       string             `json:"xName"`       // Name of X axis
	XValues     ChartValueList     `json:"xValues"`     // Values of X axis
	CountValues int                `json:"countValues"` // A count of values in X axis
	CountRows   int                `json:"countRows"`   // A count of rows
	RowNames    ChartRowNamesList  `json:"rowNames"`    // Array of names of rows
	RowValues   ChartRowValuesList `json:"rowValues"`   // Array of values of rows
}

ChartData - Values of charts graph

type ChartList added in v0.1.2

type ChartList []Chart

type ChartRowNamesList added in v0.1.2

type ChartRowNamesList []string

type ChartRowValuesList added in v0.1.2

type ChartRowValuesList []ChartValueList

type ChartValueList added in v0.1.2

type ChartValueList []int

type CleanOut added in v0.1.2

type CleanOut struct {
	IsUsedDomain bool            `json:"isUsedDomain"` // use domain settings
	DeletedItems ActionAfterDays `json:"deletedItems"` // clean Deleted Items folder (maximum: 24855)
	JunkEmail    ActionAfterDays `json:"junkEmail"`    // clean Junk Email folder (maximum: 24855)
	SentItems    ActionAfterDays `json:"sentItems"`    // clean Sent Items folder (maximum: 24855)
	AutoDelete   ActionAfterDays `json:"autoDelete"`   // clean all folders (maximum: 24855)
}

CleanOut - Per-user message retention policy.

type ClusterAuthentication added in v0.2.0

type ClusterAuthentication struct {
	HostName  string `json:"hostName"`
	AdminUser string `json:"adminUser"`
	Password  string `json:"password"`
}

type ClusterConflict added in v0.2.0

type ClusterConflict struct {
	Type       ClusterConflictTarget `json:"type"`
	Name       string                `json:"name"`
	Domain     string                `json:"domain"`
	HomeServer string                `json:"homeServer"`
}

type ClusterConflictList added in v0.2.0

type ClusterConflictList []ClusterConflict

type ClusterConflictTarget added in v0.2.0

type ClusterConflictTarget string

type ClusterDomainStatus added in v0.2.0

type ClusterDomainStatus string

type ClusterError added in v0.2.0

type ClusterError struct {
	Type         ClusterErrorType    `json:"type"`
	ErrorMessage LocalizableMessage  `json:"errorMessage"` // is assigned if type is clError
	ConflictList ClusterConflictList `json:"conflictList"` // List of Resources/Aliases/MLists which are already defined in cluster. The conflictList is empty if type is different from dataConflict.
}

type ClusterErrorType added in v0.2.0

type ClusterErrorType string

type ClusterRole added in v0.2.0

type ClusterRole string

ClusterRole - Role of the server in cluster

type ClusterServer added in v0.2.0

type ClusterServer struct {
	Hostname      string                 `json:"hostname"`
	IsPrimary     bool                   `json:"isPrimary"`
	IsLocal       bool                   `json:"isLocal"`
	Status        ClusterStatus          `json:"status"`
	ErrorMessages LocalizableMessageList `json:"errorMessages"` // is assigned if type is clError
	DomainStatus  ClusterDomainStatus    `json:"domainStatus"`
}

type ClusterServerList added in v0.2.0

type ClusterServerList []ClusterServer

type ClusterStatus added in v0.2.0

type ClusterStatus string

type CompanyContact added in v0.2.0

type CompanyContact struct {
	Id       KId    `json:"id"`
	Name     string `json:"name"` // name of company contact (caption of item in list of contacts)
	Company  string `json:"company"`
	Street   string `json:"street"`
	Locality string `json:"locality"`
	State    string `json:"state"`
	Zip      string `json:"zip"`
	Country  string `json:"country"`
	Url      string `json:"url"`
	Phone    string `json:"phone"`
	Fax      string `json:"fax"`
	DomainId KId    `json:"domainId"` // id of domain associated with company contact
}

type CompanyContactList added in v0.2.0

type CompanyContactList []CompanyContact

CompanyContactList - List of company contacts

type CompareOperator added in v0.1.0

type CompareOperator string

CompareOperator - Simple Query Operator

const (
	Eq          CompareOperator = "Eq"          // '='  - equal
	NotEq       CompareOperator = "NotEq"       // '!=' - not equal
	LessThan    CompareOperator = "LessThan"    // '<'  - lower that
	GreaterThan CompareOperator = "GreaterThan" // '>'  - greater that
	LessEq      CompareOperator = "LessEq"      // '<=' - lower or equal
	GreaterEq   CompareOperator = "GreaterEq"   // '>=' - greater or equal
	Like        CompareOperator = "NotEq"       // contains substring, % is wild character
)

type ConcurrentConnections added in v0.2.0

type ConcurrentConnections struct {
	IsSet bool `json:"isSet"` // is set maximum of concurrent connections?
	Value int  `json:"value"` // maximum of concurrent connections
}

ConcurrentConnections - Note: all fields must be assigned if used in set methods

type Config

type Config struct {
	// contains filtered or unexported fields
}

func NewConfig

func NewConfig(server string) *Config

NewConfig returns a pointer to structure with the configuration for connecting to the API server

server - address without schema and port

func (*Config) NewConnection

func (c *Config) NewConnection() (*ServerConnection, error)

type Connection

type Connection struct {
	Proto       Protocol      `json:"proto"`
	Extension   HttpExtension `json:"extension"`
	IsSecure    bool          `json:"isSecure"`
	Time        string        `json:"time"`
	From        string        `json:"from"`
	User        string        `json:"user"`
	Description string        `json:"description"`
}

type ConnectionList

type ConnectionList []Connection

type CoreDump added in v0.2.0

type CoreDump struct {
	Size      ByteValueWithUnits `json:"size"`
	Timestamp DateTimeStamp      `json:"timestamp"`
}

type CreateResult added in v0.0.3

type CreateResult struct {
	InputIndex int `json:"inputIndex"` // 0-based index to input array, e.g. 3 means that the relates to the 4th element of the input parameter array
	Id         KId `json:"id"`         // ID of created item.
}

CreateResult - Details about a particular item created.

type CreateResultList added in v0.0.3

type CreateResultList []CreateResult

type Credentials

type Credentials struct {
	UserName string `json:"userName"` // UserName
	Password string `json:"password"` // Password
}

Credentials - Credentials contains userName and password

type CustomImage added in v0.1.2

type CustomImage struct {
	IsEnabled bool   `json:"isEnabled"` // Is used
	Url       string `json:"url"`       // [READ ONLY]
	Id        string `json:"id"`        // [WRITE ONCE] Id of uploaded image.
}

type CustomRule added in v0.2.0

type CustomRule struct {
	Id          KId              `json:"id"` // global identifier
	Enabled     bool             `json:"enabled"`
	Kind        CustomRuleKind   `json:"kind"`
	Header      string           `json:"header"`
	Content     string           `json:"content"`
	Description string           `json:"description"`
	Type        CustomRuleType   `json:"type"`
	Action      CustomRuleAction `json:"action"`
	Score       int              `json:"score"`
	LastUsed    DistanceOrNull   `json:"lastUsed"`
}

type CustomRuleAction added in v0.2.0

type CustomRuleAction string
const (
	TreatAsSpam       CustomRuleAction = "TreatAsSpam"
	TreatAsNotSpam    CustomRuleAction = "TreatAsNotSpam"
	IncreaseSpamScore CustomRuleAction = "IncreaseSpamScore"
)

type CustomRuleKind added in v0.2.0

type CustomRuleKind string
const (
	Header CustomRuleKind = "Header"
	Body   CustomRuleKind = "Body"
)

type CustomRuleList added in v0.2.0

type CustomRuleList []CustomRule

type CustomRuleType added in v0.2.0

type CustomRuleType string
const (
	IsEmpty           CustomRuleType = "IsEmpty"
	IsMissing         CustomRuleType = "IsMissing"
	ContainsAddress   CustomRuleType = "ContainsAddress"
	ContainsDomain    CustomRuleType = "ContainsDomain"
	ContainsSubstring CustomRuleType = "ContainsSubstring"
	ContainsBinary    CustomRuleType = "ContainsBinary"
)

type DataSource added in v0.1.2

type DataSource string

source of user data

const (
	DSInternalSource DataSource = "DSInternalSource" // internal source of user data
	DSLDAPSource     DataSource = "DSLDAPSource"     // LDAP source of user data
)

type Date added in v0.1.2

type Date struct {
	Year  int `json:"year"`
	Month int `json:"month"` // 0-11
	Day   int `json:"day"`   // 1-31 max day is limited by month
}

Date - Note: all fields must be assigned if used in set methods

type DateTimeStamp added in v0.1.2

type DateTimeStamp int

DateTimeStamp - Type for date/time representation

type DateTimeStampList added in v0.1.2

type DateTimeStampList []DateTimeStamp

DateTimeStampList - Type for lists of date/times

type DayList added in v0.2.0

type DayList []DayType

type DayType added in v0.2.0

type DayType string
const (
	Monday    DayType = "Monday"
	Tuesday   DayType = "Tuesday"
	Wednesday DayType = "Wednesday"
	Thursday  DayType = "Thursday"
	Friday    DayType = "Friday"
	Saturday  DayType = "Saturday"
	Sunday    DayType = "Sunday"
)

type DayWeekMonthPeriod added in v0.1.2

type DayWeekMonthPeriod string

type DeliveryRule added in v0.2.0

type DeliveryRule struct {
	Id          KId        `json:"id"`          // [READ-ONLY] global identification
	IsEnabled   bool       `json:"isEnabled"`   // says whether rule is enabled
	Description string     `json:"description"` // contains rules description
	Rule        FilterRule `json:"rule"`
}

type DeliveryRuleList added in v0.2.0

type DeliveryRuleList []DeliveryRule

type DeliveryType added in v0.2.0

type DeliveryType string

DeliveryType - Delivery Type

const (
	Online           DeliveryType = "Online"           // deliver online, immediatelly
	OfflineScheduler DeliveryType = "OfflineScheduler" // delivery is started by scheduler
	OfflineEtrn      DeliveryType = "OfflineEtrn"      // delivery is started by ETRN command from remote host
)

type DeployedType added in v0.1.2

type DeployedType string
const (
	DeployedStandalone DeployedType = "DeployedStandalone" // Normal installation
	DeployedCloud      DeployedType = "DeployedCloud"      // Kerio Connect is running in a cloud
	DeployedKerioVA    DeployedType = "DeployedKerioVA"    // Kerio Connect VMWare Virtual Appliance
)

type DeviceStatus added in v0.2.0

type DeviceStatus string

DeviceStatus - Mobile device status.

const (
	OK                   DeviceStatus = "OK"                   // no wipe
	DeviceNotProvisioned DeviceStatus = "DeviceNotProvisioned" // not (fully) provisioned (yet)
	DeviceWipeInitiated  DeviceStatus = "DeviceWipeInitiated"  // wipe process submitted
	DeviceWipeInProgress DeviceStatus = "DeviceWipeInProgress" // wipe process in progress
	DeviceWipeFinished   DeviceStatus = "DeviceWipeFinished"   // wipe process finished
	DeviceConnected      DeviceStatus = "DeviceConnected"
	DeviceDisconnected   DeviceStatus = "DeviceDisconnected"
)

type Directories added in v0.1.0

type Directories struct {
	StorePath   string `json:"storePath"`   // Path to the store directory
	ArchivePath string `json:"archivePath"` // Path to the archive directory
	BackupPath  string `json:"backupPath"`  // Path to the backup directory
}

type Directory added in v0.1.2

type Directory struct {
	Name            string `json:"name"`
	HasSubdirectory bool   `json:"hasSubdirectory"`
}

Information about directory

type DirectoryAccessResult added in v0.1.2

type DirectoryAccessResult string

Except getAboutInfo() all methods are available for non-authenticated users

type DirectoryAuthentication added in v0.2.0

type DirectoryAuthentication struct {
	Username string `json:"username"`
	Password string `json:"password"`
	IsSecure bool   `json:"isSecure"` // is used LDAPS?
}

DirectoryAuthentication - Note: all fields must be assigned if used in set methods (except password)

type DirectoryList added in v0.1.2

type DirectoryList []Directory

List of restrictions

type DirectoryService added in v0.2.0

type DirectoryService struct {
	IsEnabled      bool                    `json:"isEnabled"`      // directory service is in use / isEnabled must be always assigned if used in set methods
	ServiceType    DirectoryServiceType    `json:"serviceType"`    // type of the service
	CustomMapFile  string                  `json:"customMapFile"`  // Custom Generic LDAP only: custom map filename
	Authentication DirectoryAuthentication `json:"authentication"` // authentication information
	Hostname       string                  `json:"hostname"`       // directory service hostname
	BackupHostname string                  `json:"backupHostname"` // directory service backup hostname
	DirectoryName  string                  `json:"directoryName"`  // Active Directory only: Directory name
	LdapSuffix     string                  `json:"ldapSuffix"`     // Apple Directory, Kerio Directory: LDAP Search Suffix
}

DirectoryService - Directory service information

type DirectoryServiceConfiguration added in v0.2.0

type DirectoryServiceConfiguration struct {
	ServiceType    DirectoryServiceType    `json:"serviceType"`    // type of the service
	Authentication DirectoryAuthentication `json:"authentication"` // authentication information
	DirectoryName  string                  `json:"directoryName"`  // Active Directory only: Directory name
	LdapSuffix     string                  `json:"ldapSuffix"`     // Apple Directory, Kerio Directory: LDAP Search Suffix
}

DirectoryServiceConfiguration - Directory service configuration

type DirectoryServiceDeleteMode added in v0.1.2

type DirectoryServiceDeleteMode string

Type of deleting a user

const (
	DSModeDeactivate DirectoryServiceDeleteMode = "DSModeDeactivate" // User is deactivated but not deleted
	DSModeDelete     DirectoryServiceDeleteMode = "DSModeDelete"     // User is deleted
)

type DirectoryServiceType added in v0.2.0

type DirectoryServiceType string
const (
	WindowsActiveDirectory DirectoryServiceType = "WindowsActiveDirectory" // Windows Active Directory
	AppleDirectoryKerberos DirectoryServiceType = "AppleDirectoryKerberos" // Apple Open Directory with Kerberos authentication
	AppleDirectoryPassword DirectoryServiceType = "AppleDirectoryPassword" // Apple Open Directory with Password Server authentication
	KerioDirectory         DirectoryServiceType = "KerioDirectory"         // Kerio Directory (reserved for future use)
	CustomLDAP             DirectoryServiceType = "CustomLDAP"             // Custom Generic LDAP
)

type Distance added in v0.1.0

type Distance struct {
	Days    int `json:"days"`
	Hours   int `json:"hours"`
	Minutes int `json:"minutes"`
}

Note: all fields must be assigned if used in set methods

type DistanceOrNull added in v0.1.0

type DistanceOrNull struct {
	Type     DistanceType `json:"type"`
	TimeSpan Distance     `json:"timeSpan"`
}

type DistanceType added in v0.1.2

type DistanceType string

type DnsResolverStats added in v0.1.2

type DnsResolverStats struct {
	HostnameQueries       string `json:"hostnameQueries"`
	CachedHostnameQueries string `json:"cachedHostnameQueries"`
	MxQueries             string `json:"mxQueries"`
	CachedMxQueries       string `json:"cachedMxQueries"`
}

type Domain

type Domain struct {
	Id                        KId              `json:"id"`                        // [READ-ONLY] global identification of domain
	Name                      string           `json:"name"`                      // [REQUIRED FOR CREATE] [WRITE-ONCE] name
	Description               string           `json:"description"`               // description
	IsPrimary                 bool             `json:"isPrimary"`                 // is this domain primary?
	UserMaxCount              int              `json:"userMaxCount"`              // maximum users per domain, 'unlimited' constant can be used
	PasswordExpirationEnabled bool             `json:"passwordExpirationEnabled"` // is password expiration enabled for this domain?
	PasswordExpirationDays    int              `json:"passwordExpirationDays"`    // password expiration interval
	PasswordHistoryCount      int              `json:"passwordHistoryCount"`      // lenght of password history
	PasswordComplexityEnabled bool             `json:"passwordComplexityEnabled"` // is password complexity enabled for this domain?
	PasswordMinimumLength     int              `json:"passwordMinimumLength"`     // minimum password length for complexity feature
	OutgoingMessageLimit      SizeLimit        `json:"outgoingMessageLimit"`      // outgoing message size limit
	DeletedItems              ActionAfterDays  `json:"deletedItems"`              // clean Deleted Items folder (AC maximum: 24855)
	JunkEmail                 ActionAfterDays  `json:"junkEmail"`                 // clean Junk Email folder (AC maximum: 24855)
	SentItems                 ActionAfterDays  `json:"sentItems"`                 // clean Sent Items folder (AC maximum: 24855)
	AutoDelete                ActionAfterDays  `json:"autoDelete"`                // clean all folders (AC minimun:30, maximum: 24855)
	KeepForRecovery           ActionAfterDays  `json:"keepForRecovery"`           // keep deleted messages for recovery
	AliasList                 StringList       `json:"aliasList"`                 // list of domain alternative names
	ForwardingOptions         Forwarding       `json:"forwardingOptions"`         // forwarding settings
	Service                   DirectoryService `json:"service"`                   // directory service configuration
	DomainFooter              Footer           `json:"domainFooter"`              // domain footer setting
	KerberosRealm             string           `json:"kerberosRealm"`             // Kerberos Realm name
	WinNtName                 string           `json:"winNtName"`                 // Windows NT domain name - available on windows only
	PamRealm                  string           `json:"pamRealm"`                  // PAM Realm name - available on linux only
	IpAddressBind             OptionalString   `json:"ipAddressBind"`             // specific IP address bind
	CheckSpoofedSender        bool             `json:"checkSpoofedSender"`        //
	RenameInfo                DomainRenameInfo `json:"renameInfo"`                // [READ-ONLY] if domain was renamed, contain old and new domain name
	DomainQuota               DomainQuota      `json:"domainQuota"`               // domain's quota settings
	IsDistributed             bool             `json:"isDistributed"`             // [READ-ONLY] if domain is distributed
	IsDkimEnabled             bool             `json:"isDkimEnabled"`             // true if DKIM is used for this domain
	IsLdapManagementAllowed   bool             `json:"isLdapManagementAllowed"`   // [READ-ONLY] true if directory service user/group can be created/deleted
	IsInstantMessagingEnabled bool             `json:"isInstantMessagingEnabled"` // true if Instant Messaging is enabled for this domain
	UseRemoteArchiveAddress   bool             `json:"useRemoteArchiveAddress"`   // if true emails are archived to remoteArchiveAddress
	RemoteArchiveAddress      string           `json:"remoteArchiveAddress"`      // remote archiving address
	ArchiveLocalMessages      bool             `json:"archiveLocalMessages"`      // if true emails from emails are archived to remoteArchiveAddress
	ArchiveIncomingMessages   bool             `json:"archiveIncomingMessages"`   // if true emails are archived to remoteArchiveAddress
	ArchiveOutgoingMessages   bool             `json:"archiveOutgoingMessages"`   // if true emails are archived to remoteArchiveAddress
	ArchiveBeforeFilter       bool             `json:"archiveBeforeFilter"`       // if true emails are archived before content filter check
}

Domain - Domain details

type DomainList

type DomainList []Domain

DomainList - List of domains

type DomainQuota added in v0.2.0

type DomainQuota struct {
	DiskSizeLimit SizeLimit          `json:"diskSizeLimit"` // max. disk usage
	ConsumedSize  ByteValueWithUnits `json:"consumedSize"`  // [READ-ONLY] current disk usage
	Notification  QuotaNotification  `json:"notification"`  // option for notification
	WarningLimit  int                `json:"warningLimit"`  // limit in per cent
	Email         string             `json:"email"`         // if quota is exceeded the notification will be sent to this address
	Blocks        bool               `json:"blocks"`        // if reaching the quota will block creation of a new items
}

type DomainRenameInfo added in v0.2.0

type DomainRenameInfo struct {
	IsRenamed bool   `json:"isRenamed"`
	OldName   string `json:"oldName"`
	NewName   string `json:"newName"`
}

type DomainSetting

type DomainSetting struct {
	Hostname               string `json:"hostname"`               // internet hostname - how this machine introduces itself in SMTP,POP3...
	PublicFoldersPerDomain bool   `json:"publicFoldersPerDomain"` // true=public folders are unique per each domain / false=global for all domains
	ServerId               KId    `json:"serverId"`               // id of server primary used in cluster
}

DomainSetting - Identical settings for all domains

type Download added in v0.1.2

type Download struct {
	Url    string `json:"url"`    // download url
	Name   string `json:"name"`   // filename
	Length int    `json:"length"` // file size in bytes
}

Download - important information about download

type DownloadList added in v0.1.2

type DownloadList []Download

type DumpList added in v0.2.0

type DumpList []CoreDump

type EffectiveUserRights added in v0.1.2

type EffectiveUserRights struct {
	UserId               KId  `json:"userId"`               // [READ-ONLY] global identification
	HasDomainRestriction bool `json:"hasDomainRestriction"` // user can send/receive from/to his/her domain only
}

EffectiveUserRights - User effective rights (inherited from groups)

type EffectiveUserRightsList added in v0.1.2

type EffectiveUserRightsList []EffectiveUserRights

EffectiveUserRightsList - List of users effective rights

type EmailAddress added in v0.1.2

type EmailAddress struct {
	Address            string           `json:"address"`
	Name               string           `json:"name"`
	Preferred          bool             `json:"preferred"`
	IsValidCertificate bool             `json:"isValidCertificate"`
	Type               EmailAddressType `json:"type"`
	RefId              KId              `json:"refId"` // Global identification of reference. Valid for types 'RefContact' and 'RefDistributionList'.
	Extension          ABExtension      `json:"extension"`
}

EmailAddress - Structure describing an email address in contact.

type EmailAddressList added in v0.1.2

type EmailAddressList []EmailAddress

EmailAddressList - Sequence of email addresses.

type EmailAddressType added in v0.1.2

type EmailAddressType string

EmailAddressType - Email address type.

const (
	EmailWork   EmailAddressType = "EmailWork"
	EmailHome   EmailAddressType = "EmailHome"
	EmailOther  EmailAddressType = "EmailOther"
	EmailCustom EmailAddressType = "EmailCustom" // no type defined
	// valid for distribution lists only
	RefContact          EmailAddressType = "RefContact"          // Reference to existing conatact
	RefDistributionList EmailAddressType = "RefDistributionList" // Reference to existing distribution list
)

type EmailForwarding added in v0.1.2

type EmailForwarding struct {
	Mode           UserForwardMode      `json:"mode"`
	EmailAddresses UserEmailAddressList `json:"emailAddresses"` // list of email addresses, make sense only for UForwardDeliver
}

EmailForwarding - Settings of email forwarding. Note: all fields must be assigned if used in set methods.

type Entity added in v0.2.0

type Entity string

Entity - Available entities, entity prefix due to name collision

const (
	EntityUser           Entity = "EntityUser"           // User Entity
	EntityAlias          Entity = "EntityAlias"          // Alias Entity
	EntityGroup          Entity = "EntityGroup"          // Group Entity
	EntityMailingList    Entity = "EntityMailingList"    // Mailing List Entity
	EntityResource       Entity = "EntityResource"       // Resource Scheduling Entity
	EntityTimeRange      Entity = "EntityTimeRange"      // Time Range Entity
	EntityTimeRangeGroup Entity = "EntityTimeRangeGroup" // Time Range Group Entity
	EntityIpAddress      Entity = "EntityIpAddress"      // Ip Address Entity
	EntityIpAddressGroup Entity = "EntityIpAddressGroup" // Ip Address Group Entity
	EntityService        Entity = "EntityService"        // Service Entity
	EntityDomain         Entity = "EntityDomain"
)

type EntityDetail added in v0.2.0

type EntityDetail struct {
	Kind Entity `json:"kind"` // which entity is inserting
	Id   KId    `json:"id"`   // entity global identification of updated entity
}

EntityDetail - Detail about entity to be checked. Kind or id must be filled.

type EntityDuplicate added in v0.2.0

type EntityDuplicate struct {
	Kind             Entity `json:"kind"` // which entity was found as first duplicate
	Name             string `json:"name"` // name of duplicate
	CollisionAddress string `json:"collisionAddress"`
	Win              bool   `json:"win"`       // if entity is winner in this collision of mail address
	IsPattern        bool   `json:"isPattern"` // is true if it is the pattern to check (self duplicity)
}

EntityDuplicate - Potential duplicate

type EntityDuplicateList added in v0.2.0

type EntityDuplicateList []EntityDuplicate

type Error added in v0.0.3

type Error struct {
	InputIndex        int                          `json:"inputIndex"`        // 0-based index to input array, e.g. 3 means that the relates to the 4th element of the input parameter array
	Code              int                          `json:"code"`              // -32767..-1 (JSON-RPC) or 1..32767 (application)
	Message           string                       `json:"message"`           // text with placeholders %1, %2, etc., e.g. "User %1 cannot be deleted."
	MessageParameters LocalizableMessageParameters `json:"messageParameters"` // strings to replace placeholders in message, and message plurality.
}

Error - Error details regarding a particular item, e.g. one of users that could not be updated or removed.

type ErrorList added in v0.0.3

type ErrorList []Error

type ErrorReport

type ErrorReport struct {
	Code    int    `json:"code"`
	Message string `json:"message"`
	Data    struct {
		MessageParameters struct {
			PositionalParameters []string `json:"positionalParameters"`
			Plurality            int      `json:"plurality"`
		} `json:"messageParameters"`
	} `json:"data"`
}

type EtrnDownload added in v0.2.0

type EtrnDownload struct {
	Id                    KId    `json:"id"`
	IsActive              bool   `json:"isActive"`
	Server                string `json:"server"`  // server URL
	Domains               string `json:"domains"` // semicolon separated list of domain names
	Description           string `json:"description"`
	RequireAuthentication bool   `json:"requireAuthentication"` // Is authentication required?
	UserName              string `json:"userName"`              // make sense only if authentication is required
	Password              string `json:"password"`              // make sense only if authentication is required
}

type EtrnDownloadList added in v0.2.0

type EtrnDownloadList []EtrnDownload

type EvaluationModeType added in v0.2.0

type EvaluationModeType string

EvaluationModeType - Types of filter's conditions evaluation.

const (
	EmAnyOf EvaluationModeType = "EmAnyOf"
	EmAllOf EvaluationModeType = "EmAllOf"
)

type ExpireInfo added in v0.2.0

type ExpireInfo struct {
	Type          ExpireType `json:"type"`          // type of expiration
	IsUnlimited   bool       `json:"isUnlimited"`   // is it a special license with expiration == never ?
	RemainingDays int        `json:"remainingDays"` // days remaining to subscription expiration
	Date          int        `json:"date"`          // last date of subscription
}

ExpireInfo - Expire date information

type ExpireType added in v0.2.0

type ExpireType string

ExpireType - Type of expiration

const (
	License      ExpireType = "License"      // License
	Subscription ExpireType = "Subscription" // Subscription
)

type ExportFormat added in v0.1.2

type ExportFormat string

ExportFormat - File type for log export

const (
	PlainText ExportFormat = "PlainText" // export in plain text
	Html      ExportFormat = "Html"      // export in html
)

type Extension added in v0.2.0

type Extension struct {
	Name string `json:"name"` // extension name
}

Extension - @brief Extension information

type ExtensionList added in v0.2.0

type ExtensionList []Extension

ExtensionList - @brief A list of extensions related to a registration.

type FacilityUnit added in v0.1.2

type FacilityUnit string

FacilityUnit - Available types of syslog facility according RFC 3164

const (
	FacilityKernel        FacilityUnit = "FacilityKernel"        // 0 = kernel messages
	FacilityUserLevel     FacilityUnit = "FacilityUserLevel"     // 1 = user-level messages
	FacilityMailSystem    FacilityUnit = "FacilityMailSystem"    // 2 = mail system
	FacilitySystemDaemons FacilityUnit = "FacilitySystemDaemons" // 3 = system daemons
	FacilitySecurity1     FacilityUnit = "FacilitySecurity1"     // 4 = security/authorization messages
	FacilityInternal      FacilityUnit = "FacilityInternal"      // 5 = messages generated internally by syslogd
	FacilityLinePrinter   FacilityUnit = "FacilityLinePrinter"   // 6 = line printer subsystem
	FacilityNetworkNews   FacilityUnit = "FacilityNetworkNews"   // 7 = network news subsystem
	FacilityUucpSubsystem FacilityUnit = "FacilityUucpSubsystem" // 8 = UUCP subsystem
	FacilityClockDaemon1  FacilityUnit = "FacilityClockDaemon1"  // 9 = clock daemon
	FacilitySecurity2     FacilityUnit = "FacilitySecurity2"     // 10 = security/authorization messages
	FacilityFtpDaemon     FacilityUnit = "FacilityFtpDaemon"     // 11 = FTP daemon
	FacilityNtpSubsystem  FacilityUnit = "FacilityNtpSubsystem"  // 12 = NTP subsystem
	FacilityLogAudit      FacilityUnit = "FacilityLogAudit"      // 13 = log audit
	FacilityLogAlert      FacilityUnit = "FacilityLogAlert"      // 14 = log alert
	FacilityClockDaemon2  FacilityUnit = "FacilityClockDaemon2"  // 15 = clock daemon
	FacilityLocal0        FacilityUnit = "FacilityLocal0"        // 16 = local use 0
	FacilityLocal1        FacilityUnit = "FacilityLocal1"        // 17 = local use 1
	FacilityLocal2        FacilityUnit = "FacilityLocal2"        // 18 = local use 2
	FacilityLocal3        FacilityUnit = "FacilityLocal3"        // 19 = local use 3
	FacilityLocal4        FacilityUnit = "FacilityLocal4"        // 20 = local use 4
	FacilityLocal5        FacilityUnit = "FacilityLocal5"        // 21 = local use 5
	FacilityLocal6        FacilityUnit = "FacilityLocal6"        // 22 = local use 6
	FacilityLocal7        FacilityUnit = "FacilityLocal7"        // 23 = local use 7
)

type FailureAndBounce added in v0.1.2

type FailureAndBounce struct {
	TransientFailures string `json:"transientFailures"` // transient delivery failures
	PermanentFailures string `json:"permanentFailures"` // permanent delivery failures
}

type FileFormatType added in v0.1.2

type FileFormatType string

FileFormatType - Export format type.

const (
	TypeXml FileFormatType = "TypeXml" // Extensible Markup Language
	TypeCsv FileFormatType = "TypeCsv" // Comma Separated Values
)

type FilterAction added in v0.2.0

type FilterAction struct {
	Type       FilterActionType `json:"type"`
	Parameters StringList       `json:"parameters"` // list of parameters (see FilterActionType for more info)
}

FilterAction - meet.

type FilterActionList added in v0.2.0

type FilterActionList []FilterAction

type FilterActionType added in v0.2.0

type FilterActionType string

FilterActionType - to filter action that this type of action requires.

const (
	FaAddHeader     FilterActionType = "FaAddHeader"     // two mandatory parameters: 1. header name, 2. header value (Headers 'Content-*' are forbidden)
	FaSetHeader     FilterActionType = "FaSetHeader"     // two mandatory parameters: 1. header name, 2. header value (Headers 'Content-*' are forbidden)
	FaRemoveHeader  FilterActionType = "FaRemoveHeader"  // one mandatory parameter: 1. header name (Headers 'Content-*' and 'Receive' are forbidden)
	FaAddRecipient  FilterActionType = "FaAddRecipient"  // one mandatory parameter: 1. address
	FaCopyToAddress FilterActionType = "FaCopyToAddress" // one mandatory parameter: 1. address
	FaReject        FilterActionType = "FaReject"        // one mandatory parameter: 1. reason (for mail rejection)
	FaFileInto      FilterActionType = "FaFileInto"      // one mandatory parameter: 1. path to directory where to store mail
	FaRedirect      FilterActionType = "FaRedirect"      // one mandatory parameter: 1. address where to redirect mail
	FaDiscard       FilterActionType = "FaDiscard"       // no parameters required
	FaKeep          FilterActionType = "FaKeep"          // no parameters required
	FaNotify        FilterActionType = "FaNotify"        // three mandatory parameters: 1. address; 2. subject; 3. text of notification
	FaSetReadFlag   FilterActionType = "FaSetReadFlag"   // no parameters required
	FaAutoReply     FilterActionType = "FaAutoReply"     // one mandatory parameter: 1. text of message
	FaStop          FilterActionType = "FaStop"          // no parameters required
)

type FilterComparatorType added in v0.2.0

type FilterComparatorType string

FilterComparatorType - which can be used to test filter's initial conditions.

const (
	CcEqual        FilterComparatorType = "CcEqual"        // tests whether target (ex. sender) is EQUAL to some string
	CcContain      FilterComparatorType = "CcContain"      // tests whether target (ex. sender) CONTAINS to some string
	CcNotContain   FilterComparatorType = "CcNotContain"   // tests whether target (ex. sender) NOT CONTAINS to some string
	CcNotEqual     FilterComparatorType = "CcNotEqual"     // tests whether target (ex. sender) IS NOT to some string
	CcUnder        FilterComparatorType = "CcUnder"        // tests whether size of mail is UNDER some number of Bytes
	CcOver         FilterComparatorType = "CcOver"         // tests whether size of mail is OVER some number of Bytes
	CcNoComparator FilterComparatorType = "CcNoComparator" // marks conditions that do not need any comparator (ex. has attachment, for all messages and is spam)
)

type FilterCondition added in v0.2.0

type FilterCondition struct {
	TestedTarget FilterConditionType  `json:"testedTarget"` // some aspect of message that will be tested using selected comparator and against parameters
	Comparator   FilterComparatorType `json:"comparator"`   // type of target comparator (has to be set correctly, even for CtAttachment and CtAll - CcNoComparator)
	Parameters   StringList           `json:"parameters"`   // zero, one or more values that will be used to compare to target using selected comparator
}

FilterCondition - filter should be applied or not.

type FilterConditionList added in v0.2.0

type FilterConditionList []FilterCondition

type FilterConditionType added in v0.2.0

type FilterConditionType string

FilterConditionType - tested as filter's initial condition.

const (
	CtEnvelopeRecipient FilterConditionType = "CtEnvelopeRecipient" // Recipient from SMTP envelope 'RCPT TO:'
	CtEnvelopeSender    FilterConditionType = "CtEnvelopeSender"    // Sender from SMTP envelope 'MAIL FROM:'
	CtRecipient         FilterConditionType = "CtRecipient"         // content of message headers 'To' and 'Cc'
	CtSender            FilterConditionType = "CtSender"            // content of message header 'Sender'
	CtFrom              FilterConditionType = "CtFrom"              // content of message header 'From'
	CtCc                FilterConditionType = "CtCc"                // content of message header 'Cc'
	CtTo                FilterConditionType = "CtTo"                // content of message header 'To'
	CtSubject           FilterConditionType = "CtSubject"           // messages with certain subject
	CtAttachment        FilterConditionType = "CtAttachment"        // messages that have attachment
	CtSize              FilterConditionType = "CtSize"              // messages with certain size (in Bytes)
	CtSpam              FilterConditionType = "CtSpam"              // messages marked as spam
	CtAll               FilterConditionType = "CtAll"               // all messages
)

type FilterRule added in v0.2.0

type FilterRule struct {
	IsIncomplete   bool                `json:"isIncomplete"`   // if rule is not completed (it does not contain any definition of conditions and actions)
	EvaluationMode EvaluationModeType  `json:"evaluationMode"` // determines evaluation mod of initial conditions
	Conditions     FilterConditionList `json:"conditions"`     // list of rule's initial conditions
	Actions        FilterActionList    `json:"actions"`        // list of rule's actions (performed if initial conditions are meet)
}

type FolderIcon added in v0.2.0

type FolderIcon string

FolderIcon - Folder icon enumeration.

const (
	FIMail     FolderIcon = "FIMail"
	FIContact  FolderIcon = "FIContact"
	FICalendar FolderIcon = "FICalendar"
	FITodo     FolderIcon = "FITodo"
	FIJournal  FolderIcon = "FIJournal"
	FINote     FolderIcon = "FINote"
	FIInbox    FolderIcon = "FIInbox"
	FIDeleted  FolderIcon = "FIDeleted"
)

type FolderInfo

type FolderInfo struct {
	FolderName     string       `json:"folderName"`
	ReferenceCount int          `json:"referenceCount"`
	IndexLoaded    bool         `json:"indexLoaded"`
	Users          UserNameList `json:"users"`
}

type FolderInfoList

type FolderInfoList []FolderInfo
type Footer struct {
	IsUsed         bool   `json:"isUsed"`         // is footer used
	Text           string `json:"text"`           // text that will be appended to every message sent from this domain
	IsHtml         bool   `json:"isHtml"`         // if is value false the text is precessed as plaintext
	IsUsedInDomain bool   `json:"isUsedInDomain"` // footer is used also for e-mails within domain
}

Footer - Note: all fields must be assigned if used in set methods

type Forwarding added in v0.2.0

type Forwarding struct {
	IsEnabled   bool         `json:"isEnabled"`   // is forwarding enabled?
	Host        string       `json:"host"`        // hostname or IP address to forward
	Port        int          `json:"port"`        // host port
	How         DeliveryType `json:"how"`         // how to deliver
	PreventLoop bool         `json:"preventLoop"` // do not deliver to domain alias (applicable when Domain.aliasList is not empty)
}

Forwarding action Forwarding - Note: all fields must be assigned if used in set methods

type ForwardingOptions

type ForwardingOptions struct {
	IsEnabled   bool   `json:"isEnabled"`
	Host        string `json:"host"`
	Port        int    `json:"port"`
	How         string `json:"how"`
	PreventLoop bool   `json:"preventLoop"`
}

type FoundVirusBehavior added in v0.2.0

type FoundVirusBehavior struct {
	Reaction        ReactionOnVirus `json:"reaction"`
	ForwardOriginal OptionalString  `json:"forwardOriginal"` // should be original message forwarded?
	ForwardFiltered OptionalString  `json:"forwardFiltered"` // should be filtered message forwarded?
}

type FulltextRebuildStatus added in v0.1.2

type FulltextRebuildStatus struct {
	Status       FulltextStatus `json:"status"`       // [READ ONLY] state of rebuild process
	UsersLeft    int            `json:"usersLeft"`    // [status IndexRebuilding] - the current number of user re-indexed mailboxes
	MessagesLeft int            `json:"messagesLeft"` // [status IndexMessages] - number of new delivered messages to index
	Size         int            `json:"size"`         // index size or estimate size in status IndexMessages or IndexRebuilding
	FreeSpace    int            `json:"freeSpace"`    // free space in path for index files
}

FulltextRebuildStatus - [READ ONLY] progres of index

type FulltextRebuildingCommand added in v0.1.2

type FulltextRebuildingCommand struct {
	Scope FulltextScope `json:"scope"`
	Id    KId           `json:"id"` // domain id for scope 'IndexDomain' or user id for scope 'IndexUser'
}

type FulltextScope added in v0.1.2

type FulltextScope string

FulltextScope - Scope of reindex

const (
	IndexAll    FulltextScope = "IndexAll"    // all users to reindex
	IndexDomain FulltextScope = "IndexDomain" // only users from domain to reindex
	IndexUser   FulltextScope = "IndexUser"   // only user to reindex
)

type FulltextSetting added in v0.1.2

type FulltextSetting struct {
	Enabled bool   `json:"enabled"` // enabled/disabled
	Path    string `json:"path"`    // path to directory where are indexes
}

type FulltextStatus added in v0.1.2

type FulltextStatus string

FulltextStatus - State of index

const (
	IndexRebuilding    FulltextStatus = "IndexRebuilding"    // reindexing is in progress
	IndexMessages      FulltextStatus = "IndexMessages"      // indexing new delivered messages
	IndexFinished      FulltextStatus = "IndexFinished"      // reindexing is finnished, it also mean "Up To Date"
	IndexDisabled      FulltextStatus = "IndexDisabled"      // indexing is disabled
	IndexError         FulltextStatus = "IndexError"         // some error occured
	IndexErrorLowSpace FulltextStatus = "IndexErrorLowSpace" // available disk space is below Soft Limit
)

type Greylisting added in v0.2.0

type Greylisting struct {
	Enabled bool `json:"enabled"` // is greylisting enabled?
	/// When enabled is set to true, the setAntiSpamSetting method attempts to connect to the greylisting service asynchronously.
	/// When enabled is set to false, connection to the greylisting service is closed.
	CustomWhiteList  OptionalEntity    `json:"customWhiteList"`  // switchable custom whitelist IP group
	Status           GreylistingStatus `json:"status"`           // read only: current status
	MessagesAccepted string            `json:"messagesAccepted"` // read only: messages accepted
	MessagesDelayed  string            `json:"messagesDelayed"`  // read only: messages temoprarily rejected
	MessagesSkipped  string            `json:"messagesSkipped"`  // read only: messages skipped
}

type GreylistingStats added in v0.1.2

type GreylistingStats struct {
	MessagesAccepted string `json:"messagesAccepted"`
	MessagesDelayed  string `json:"messagesDelayed"`
	MessagesSkipped  string `json:"messagesSkipped"`
}

type GreylistingStatus added in v0.2.0

type GreylistingStatus string

GreylistingStatus - State of the Greylisting client.

const (
	GreylistingOff   GreylistingStatus = "GreylistingOff"
	GreylistingOn    GreylistingStatus = "GreylistingOn"
	GreylistingError GreylistingStatus = "GreylistingError" // Greylisting encountered an error. Call Content.testGreylistConnection() for a more detailed error description.
)

type Group added in v0.2.0

type Group struct {
	Id                   KId          `json:"id"`                   // global identification of group
	DomainId             KId          `json:"domainId"`             // identification in which domain group exists
	Name                 string       `json:"name"`                 // group name
	EmailAddresses       StringList   `json:"emailAddresses"`       // group email addresses
	Role                 UserRoleType `json:"role"`                 // access rights list
	HasDomainRestriction bool         `json:"hasDomainRestriction"` // user can send/receive from/to his domain only
	Description          string       `json:"description"`          // description
	ItemSource           DataSource   `json:"itemSource"`           // internal database or mapped from LDAP?
	PublishInGal         bool         `json:"publishInGal"`         // publish user in global address list? - default is true
}

Group - Group details

type GroupLimit added in v0.2.0

type GroupLimit struct {
	IsUsed  bool           `json:"isUsed"`  // is group limit set
	IpGroup IpAddressGroup `json:"ipGroup"` // IP address group
}

type GroupList added in v0.2.0

type GroupList []Group

GroupList - List of groups

type GroupRemovalRequest added in v0.2.0

type GroupRemovalRequest struct {
	GroupId KId                        `json:"groupId"` // ID of group to be removed
	Mode    DirectoryServiceDeleteMode `json:"mode"`    // delete mode
}

type GroupRemovalRequestList added in v0.2.0

type GroupRemovalRequestList []GroupRemovalRequest

type HighlightColor added in v0.1.2

type HighlightColor string

HighlightColor - Highlight color definition in format RRGGBB

type HighlightItem added in v0.1.2

type HighlightItem struct {
	Id             KId            `json:"id"`             // global identification
	Enabled        bool           `json:"enabled"`        // Rule is [dis|en]abled
	Description    string         `json:"description"`    // Text description
	Condition      string         `json:"condition"`      // Match condition
	IsRegex        bool           `json:"isRegex"`        // Is condition held as regular expression? (server does NOT check if regex is valid)
	Color          HighlightColor `json:"color"`          // Highlight matching log lines by this color
	IsOrderChanged bool           `json:"isOrderChanged"` // True if item order was changed by user
}

HighlightItem - Log highlighting item

type HighlightRules added in v0.1.2

type HighlightRules []HighlightItem

HighlightRules - List of highlight items to be applied on all logs (global settings)

type HistogramIntervalType added in v0.2.0

type HistogramIntervalType string
const (
	HistogramInterval5m  HistogramIntervalType = "HistogramInterval5m"  // Data interval: 5min, Max samples: 288, Length 1day
	HistogramInterval20s HistogramIntervalType = "HistogramInterval20s" // Data interval: 20sec, Max samples: 360, Length 2Hours
	HistogramInterval30m HistogramIntervalType = "HistogramInterval30m" // Data interval: 30min, Max samples: 336, Length 1Week
	HistogramInterval2h  HistogramIntervalType = "HistogramInterval2h"  // Data interval: 2h,  Max samples: 372, Length 1Month
)

type HistogramType added in v0.2.0

type HistogramType string
const (
	HistogramOneDay   HistogramType = "HistogramOneDay"   // Data interval: 5min, Max samples: 288
	HistogramTwoHours HistogramType = "HistogramTwoHours" // Data interval: 20sec, Max samples: 360
	HistogramOneWeek  HistogramType = "HistogramOneWeek"  // Data interval: 30min, Max samples: 336
	HistogramOneMonth HistogramType = "HistogramOneMonth" // Data interval: 2h,  Max samples: 372
)

type HomeServer added in v0.0.3

type HomeServer struct {
	Id   KId    `json:"id"`   // server's id
	Name string `json:"name"` // server's Internet hostname
}

HomeServer - User's home server in a distributed domain.

type HomeServerList added in v0.2.0

type HomeServerList []HomeServer

type HourOrDay added in v0.2.0

type HourOrDay string
const (
	Hour HourOrDay = "Hour"
	Day  HourOrDay = "Day"
)

type HttpExtension added in v0.2.0

type HttpExtension string
const (
	NoExtension HttpExtension = "NoExtension"
	WebGeneric  HttpExtension = "WebGeneric" // WebMail or WebMail Mini or WebAdmin
	WebDav      HttpExtension = "WebDav"
	CalDav      HttpExtension = "CalDav"
	ActiveSync  HttpExtension = "ActiveSync"
	KocOffline  HttpExtension = "KocOffline"
	KBC         HttpExtension = "KBC" // Kerio Connector for BlackBerry Enterprise Server
	EWS         HttpExtension = "EWS" // Exchange Web Services
)

type HttpProxyOptions added in v0.1.2

type HttpProxyOptions struct {
	IsEnabled              bool   `json:"isEnabled"` // Use HTTP proxy for antivirus updates, Kerio update checker and other web services
	Address                string `json:"address"`
	Port                   int    `json:"port"`
	RequiresAuthentication bool   `json:"requiresAuthentication"` // Proxy requires authentication
	UserName               string `json:"userName"`
	Password               string `json:"password"`
}

type IdEntity added in v0.1.2

type IdEntity struct {
	Id   KId    `json:"id"`   // global identifier of entity
	Name string `json:"name"` // [READ-ONLY] name or description of entity
}

type ImapServerStats added in v0.1.2

type ImapServerStats struct {
	TotalIncomingConnections string `json:"totalIncomingConnections"`
	AuthenticationFailures   string `json:"authenticationFailures"`
}

type ImportServer added in v0.1.2

type ImportServer struct {
	DirectoryType      ServerDirectoryType `json:"directoryType"`
	RemoteDomainName   string              `json:"remoteDomainName"`
	Address            string              `json:"address"` // server IP or FQDN
	LoginName          string              `json:"loginName"`
	Password           string              `json:"password"`
	LdapFilter         string              `json:"ldapFilter"`
	IsSecureConnection bool                `json:"isSecureConnection"`
}

ImportServer - Properties of the server from which users are imported.

type Importee added in v0.1.2

type Importee struct {
	UserItem     User   `json:"userItem"`     // user data
	IsImportable bool   `json:"isImportable"` // [READ-ONLY] user can be imported
	Message      string `json:"message"`      // [READ-ONLY] error message if user is not importable
}

Importee - A user being imported from directory server.

type ImporteeList added in v0.1.2

type ImporteeList []Importee

type IntegerList added in v0.1.2

type IntegerList []int

IntegerList - Type for lists of integers.

type IntegratedAntiSpamEngine added in v0.2.0

type IntegratedAntiSpamEngine struct {
	Enabled       bool                     `json:"enabled"`
	Score         int                      `json:"score"`         // Spam score(default 10)
	NegativeScore int                      `json:"negativeScore"` // Score for legit messages (default 0)
	SubmitSpam    bool                     `json:"submitSpam"`    // Submit spam samples(default on)
	SubmitLegit   bool                     `json:"submitLegit"`   // Submit legit samples(default on)
	Status        IntegratedAntiSpamStatus `json:"status"`        // [READ-ONLY]
	IsLicensed    bool                     `json:"isLicensed"`    // [READ-ONLY] Is license valid and not expired? If false engine is not running no matter on value in enabled.
}

type IntegratedAntiSpamStatus added in v0.2.0

type IntegratedAntiSpamStatus string
const (
	AntiSpamReady          IntegratedAntiSpamStatus = "AntiSpamReady"
	AntiSpamDisabled       IntegratedAntiSpamStatus = "AntiSpamDisabled"
	AntiSpamNotLicenced    IntegratedAntiSpamStatus = "AntiSpamNotLicenced"
	AntiSpamNotInitialized IntegratedAntiSpamStatus = "AntiSpamNotInitialized"
	AntiSpamNotConnected   IntegratedAntiSpamStatus = "AntiSpamNotConnected"
)

type IntegratedAvirUpdateStatus added in v0.2.0

type IntegratedAvirUpdateStatus struct {
	Status  UpdateStatus `json:"status"`  // state of update process
	Percent int          `json:"percent"` // percent of downloaded data
}

type IntegratedEngine added in v0.2.0

type IntegratedEngine struct {
	CheckForUpdates         bool           `json:"checkForUpdates"`   // should we periodically ask for a new version?
	UpdatePeriod            int            `json:"updatePeriod"`      // update checking period in hours
	DatabaseAge             DistanceOrNull `json:"databaseAge"`       // how old is virus database
	LastUpdateCheck         DistanceOrNull `json:"lastUpdateCheck"`   // how long is since last database update check
	DatabaseVersion         string         `json:"databaseVersion"`   // virus database version
	EngineVersion           string         `json:"engineVersion"`     // scanning engine version
	IsPluginAvailable       bool           `json:"isPluginAvailable"` // says if plugins dll is on hardrive
	IsLiveProtectionEnabled bool           `json:"isLiveProtectionEnabled"`
}

type InternetConnection added in v0.2.0

type InternetConnection string
const (
	Permanent      InternetConnection = "Permanent"      // permanent Internet connection
	Triggered      InternetConnection = "Triggered"      // connection is established by scheduler
	TriggeredOnRas InternetConnection = "TriggeredOnRas" // Remote Access Service - Windows only option
)

type InternetSettings added in v0.2.0

type InternetSettings struct {
	Type                 InternetConnection `json:"type"`                 // type of Internet settings connection
	RasLine              string             `json:"rasLine"`              // name of RAS line
	UseSystemCredentials bool               `json:"useSystemCredentials"` // use username and password defined in system
	RasUser              string             `json:"rasUser"`              // RAS username
	RasPassword          string             `json:"rasPassword"`          // write only; password to RAS
	DialOnHigh           bool               `json:"dialOnHigh"`           // enable dial-up on high priority message
}

type IpAddress added in v0.1.2

type IpAddress string

type IpAddressEntry added in v0.2.0

type IpAddressEntry struct {
	Id             KId                `json:"id"`
	GroupId        KId                `json:"groupId"`
	SharedId       KId                `json:"sharedId"` // read-only; filled when the item is shared in MyKerio
	GroupName      string             `json:"groupName"`
	Description    string             `json:"description"`
	Type           IpAddressGroupType `json:"type"`
	Enabled        bool               `json:"enabled"`
	Status         StoreStatus        `json:"status"`
	Host           string             `json:"host"`  // name, IP or IP prefix
	Addr1          IpAddress          `json:"addr1"` // network/from, e.g. 192.168.0.0
	Addr2          IpAddress          `json:"addr2"` // mask/to, e.g. 255.255.0.0
	ChildGroupId   KId                `json:"childGroupId"`
	ChildGroupName string             `json:"childGroupName"`
}

IpAddressEntry - type + host + (addr1, addr2) + childGroupId

type IpAddressEntryList added in v0.2.0

type IpAddressEntryList []IpAddressEntry

type IpAddressGroup added in v0.2.0

type IpAddressGroup struct {
	Id   KId    `json:"id"`
	Name string `json:"name"`
}

type IpAddressGroupList added in v0.2.0

type IpAddressGroupList []IpAddressGroup

type IpAddressGroupType added in v0.2.0

type IpAddressGroupType string

IpAddressGroupType -

const (
	Host        IpAddressGroupType = "Host"
	Network     IpAddressGroupType = "Network"
	Range       IpAddressGroupType = "Range"
	ChildGroup  IpAddressGroupType = "ChildGroup"
	ThisMachine IpAddressGroupType = "ThisMachine"
	IpPrefix    IpAddressGroupType = "IpPrefix"
)

type IpAddressList added in v0.1.2

type IpAddressList []IpAddress

type IpLimit added in v0.2.0

type IpLimit struct {
	MaximumFromIp      ItemCountLimit `json:"maximumFromIp"`      // maximum number of messages per hour from 1 IP address
	MaximumConnections ItemCountLimit `json:"maximumConnections"` // maximum number of concurrent SMTP connections from 1 IP address
	MaximumUnknowns    ItemCountLimit `json:"maximumUnknowns"`    // maximum number of unknown recipients
	IpAddressGroupName string         `json:"ipAddressGroupName"` // output only: name of IP group on which limits are NOT applied
	IpAddressGroupId   KId            `json:"ipAddressGroupId"`   // ID of IP group on which limits are NOT applied
}

type ItemCountLimit added in v0.1.2

type ItemCountLimit struct {
	IsActive bool `json:"isActive"`
	Limit    int  `json:"limit"`
}

ItemCountLimit - Settings of items limit. Note: all fields must be assigned if used in set methods.

type ItemName added in v0.1.2

type ItemName string

ItemName - Item of the Entity; used in restrictions

const (
	Name        ItemName = "Name"        // Entity Name
	Description ItemName = "Description" // Entity Description
	Email       ItemName = "Email"       // Entity Email Address
	FullName    ItemName = "FullName"    // Entity Full Name
	TimeItem    ItemName = "TimeItem"    // Entity Time - it cannot be simply Time because of C++ conflict - see bug 34684 comment #3
	DateItem    ItemName = "DateItem"    // Entity Date - I expect same problem with Date as with Time
	DomainName  ItemName = "DomainName"  // differs from name (eg. cannot contains underscore)
)

type JavaScriptDate added in v0.2.0

type JavaScriptDate string

JavaScriptDate - JavaScript timestamp

type KId added in v0.1.2

type KId string

KId - global object identification

type KIdList added in v0.1.2

type KIdList []KId

KIdList - list of global object identifiers

type KeepForRecovery

type KeepForRecovery struct {
	IsEnabled bool `json:"isEnabled"`
	Days      int  `json:"days"`
}

type KoffOptions added in v0.1.2

type KoffOptions struct {
	UpgradePolicy KoffUpgradePolicy `json:"upgradePolicy"`
}

type KoffUpgradePolicy added in v0.1.2

type KoffUpgradePolicy string
const (
	KoffUPolicyAskVoluntary          KoffUpgradePolicy = "KoffUPolicyAskVoluntary"          // Ask user for each version change and do not allow the update.
	KoffUPolicyAskRequired           KoffUpgradePolicy = "KoffUPolicyAskRequired"           // Ask user for each version change and require the update.
	KoffUPolicyAlwaysSilent          KoffUpgradePolicy = "KoffUPolicyAlwaysSilent"          // Do update for each version change. Update silently when Outlook starts. Ask users when Outlook is running and require update.
	KoffUPolicyOnStartSilent         KoffUpgradePolicy = "KoffUPolicyOnStartSilent"         // default, available in WebAdmin. Do update for each version change. Update silently when Outlook starts. When Outlook is running do nothing and wait for next Outlook start.
	KoffUPolicyOnlyIfNecessaryAsk    KoffUpgradePolicy = "KoffUPolicyOnlyIfNecessaryAsk"    // Update only if necessary. Ask users and require the update.
	KoffUPolicyOnlyIfNecessarySilent KoffUpgradePolicy = "KoffUPolicyOnlyIfNecessarySilent" // available in WebAdmin, Update only if necessary. Update silently when Outlook starts. Ask users when Outlook is running and require update.
)

type LangDescription added in v0.1.2

type LangDescription struct {
	Name      string `json:"name"`      // name of language (national form)
	Code      string `json:"code"`      // code of language; E.g.: "en-gb"
	ShortCode string `json:"shortCode"` // short code of language which is used to identify language file; e.g. "en"
}

type LangDescriptionList added in v0.1.2

type LangDescriptionList []LangDescription

type LastBackupStatus added in v0.1.2

type LastBackupStatus string

type LastLogin added in v0.1.2

type LastLogin struct {
	DateTime DateTimeStamp `json:"dateTime"` // date and time of last login
	Protocol string        `json:"protocol"` // protocol name of last login, example POP3
}

LastLogin - Last login information.

type LdapServerStats added in v0.1.2

type LdapServerStats struct {
	TotalIncomingConnections string `json:"totalIncomingConnections"`
	AuthenticationFailures   string `json:"authenticationFailures"`
	TotalSearchRequests      string `json:"totalSearchRequests"`
}

type LeaveOnServer added in v0.2.0

type LeaveOnServer struct {
	Enabled           bool         `json:"enabled"`
	RemoveAfterPeriod OptionalLong `json:"removeAfterPeriod"`
}

LeaveOnServer - If removeAfterPeriod is enabled, messages are deleted after specified period (in days).

type LicenseDetail added in v0.2.0

type LicenseDetail struct {
	Organization string `json:"organization"` // compulsory
	Person       string `json:"person"`       // compulsory
	Email        string `json:"email"`        // compulsory
	Phone        string `json:"phone"`        // compulsory
	Web          string `json:"web"`
	Country      string `json:"country"` // compulsory
	State        string `json:"state"`   // compulsory for countries such as USA, Canada, Australia etc.
	City         string `json:"city"`    // compulsory
	Street       string `json:"street"`  // compulsory
	Zip          string `json:"zip"`     // compulsory
	Comment      string `json:"comment"`
}

LicenseDetail - @brief Details about the license's owner

type LicenseExpireInfo added in v0.2.0

type LicenseExpireInfo []ExpireInfo

LicenseExpireInfo - All expiration dates information in license

type Listener added in v0.2.0

type Listener struct {
	Type    AddressType `json:"type"`
	Address IpAddress   `json:"address"` // can obtain localizable string "All addresses"
	Port    int         `json:"port"`
}

Listener - Listening entity Note: all fields must be assigned if used in set methods

type ListenerList added in v0.2.0

type ListenerList []Listener

type LocalizableMessage added in v0.1.2

type LocalizableMessage struct {
	Message              string     `json:"message"`              // text with placeholders %1, %2, etc., e.g. "User %1 cannot be deleted."
	PositionalParameters StringList `json:"positionalParameters"` // additional strings to replace the placeholders in message (first string replaces %1 etc.)
	Plurality            int        `json:"plurality"`            // count of items, used to distinguish among singular/paucal/plural; 1 for messages with no counted items
}

LocalizableMessage - Message can contain replacement marks: { "User %1 cannot be deleted.", ["jsmith"], 1 }

type LocalizableMessageList added in v0.1.2

type LocalizableMessageList []LocalizableMessage

type LocalizableMessageParameters added in v0.0.3

type LocalizableMessageParameters struct {
	PositionalParameters StringList `json:"positionalParameters"` // additional strings to replace the placeholders in message (first string replaces %1 etc.)
	Plurality            int        `json:"plurality"`            // count of items, used to distinguish among singular/paucal/plural; 1 for messages with no counted items
}

LocalizableMessageParameters - Message can contain replacement marks: { "User %1 cannot be deleted.", ["jsmith"], 1 }. This is the parameters structure.

type LogFileSettings added in v0.1.2

type LogFileSettings struct {
	Enabled  bool   `json:"enabled"`  // Is logging to file enabled
	FileName string `json:"fileName"` // log file name
}

LogFileSettings - general log settings

type LogItem added in v0.1.2

type LogItem struct {
	LogName     LogType `json:"logName"`     // name of the log
	HasMessages bool    `json:"hasMessages"` // has the log messages?
}

LogItem - 1 log

type LogRotationSettings added in v0.1.2

type LogRotationSettings struct {
	Period      RotationPeriod `json:"period"`      // How often does log rotate?
	MaxLogSize  int            `json:"maxLogSize"`  // Maximum log file size [MegaBytes]; Unlimited CAN be used
	RotateCount int            `json:"rotateCount"` // How many rotated files can be kept at most?; Unlimited CANNOT be used
}

LogRotationSettings - log rotation settings

type LogRow added in v0.1.2

type LogRow struct {
	Content   string         `json:"content"`   // 1 data row
	Highlight HighlightColor `json:"highlight"` // appropriate highlight color
}

LogRow - row of the log

type LogRowList added in v0.1.2

type LogRowList []LogRow

type LogSet added in v0.1.2

type LogSet []LogItem

LogSet - List of valid logs

type LogSettings added in v0.1.2

type LogSettings struct {
	General  LogFileSettings     `json:"general"`  // general log settings
	Rotation LogRotationSettings `json:"rotation"` // log rotation settings
	Syslog   SyslogSettings      `json:"syslog"`   // syslog settings
}

LogSettings - Log file and output settings for 1 log

type LogType added in v0.1.2

type LogType string

LogType - valid Control names: alert, config, connection, debug, dial, error, filter, http, security, sslvpn, warning, web

type LogicalOperator added in v0.1.2

type LogicalOperator string

LogicalOperator - Compound Operator

const (
	Or  LogicalOperator = "Or"
	And LogicalOperator = "And"
)

type LoginStats added in v0.1.2

type LoginStats struct {
	Count     int    `json:"count"`
	LastLogin string `json:"lastLogin"`
}

LoginStats - Login statistics - count and timestamp of the last login.

type MLMemberImportee added in v0.2.0

type MLMemberImportee struct {
	Member       UserOrEmail `json:"member"`       // ML member data
	IsImportable bool        `json:"isImportable"` // ML member can be imported
	Message      string      `json:"message"`      // error message if ML member is not importable
}

MLMemberImportee - A ML member being imported from CSV file.

type MLMemberImporteeList added in v0.2.0

type MLMemberImporteeList []MLMemberImportee

type MailboxCount added in v0.1.2

type MailboxCount struct {
	Active int `json:"active"` // the number of active mailboxes on server
	Total  int `json:"total"`  // the number of created users on server
}

type ManipulationError added in v0.1.2

type ManipulationError struct {
	Id           KId                `json:"id"` // entity KId, can be user, group, alias, ML...
	ErrorMessage LocalizableMessage `json:"errorMessage"`
}

ManipulationError - error structure to be used when manipulating with globally addressable list items

type ManipulationErrorList added in v0.1.2

type ManipulationErrorList []ManipulationError

type MasterAuthenticationOptions added in v0.1.2

type MasterAuthenticationOptions struct {
	IsEnabled        bool   `json:"isEnabled"`        // Enable master authentication to this server
	GroupRestriction KId    `json:"groupRestriction"` // Allow master authentication only from IP address group
	Password         string `json:"password"`         // [WriteOnly] Master password
}

type MaximumUsers added in v0.2.0

type MaximumUsers struct {
	IsUnlimited  bool          `json:"isUnlimited"`  // is it a special case with no limit for users ?
	AllowedUsers int           `json:"allowedUsers"` // number of allowed users (take minimum of server and domain limit)
	Limit        int           `json:"limit"`        // max. user limit
	LimitType    UserLimitType `json:"limitType"`    // max. user limit type, if domain limit == license limit -> use license
}

MaximumUsers - User limit information

type MessageInProcess added in v0.2.1

type MessageInProcess struct {
	Id          KId                `json:"id"`          // Queue ID
	MessageSize ByteValueWithUnits `json:"messageSize"` // message size in appropriate units
	From        string             `json:"from"`        // sender email address
	To          string             `json:"to"`          // recipient email address
	Status      MessageStatus      `json:"status"`      // message status
	Percentage  int                `json:"percentage"`  // only for processing: completed percentage
	Server      string             `json:"server"`      // server name or IP
	Time        string             `json:"time"`        // time in process
}

MessageInProcess - Message being processed by server

type MessageInProcessList added in v0.2.1

type MessageInProcessList []MessageInProcess

type MessageInQueue added in v0.2.1

type MessageInQueue struct {
	Id           KId                `json:"id"`           // Queue ID
	CreationTime string             `json:"creationTime"` // when the message was created
	NextTry      string             `json:"nextTry"`      // when to try send message
	MessageSize  ByteValueWithUnits `json:"messageSize"`  // message size in appropriate units
	From         string             `json:"from"`         // sender email address
	To           string             `json:"to"`           // recipient email address
	Status       string             `json:"status"`       // message status
	AuthSender   string             `json:"authSender"`   // email address of authenticated sender
	SenderIp     IpAddress          `json:"senderIp"`     // IP address of authenticated sender
}

MessageInQueue - Message waiting in the queue

type MessageInQueueList added in v0.2.1

type MessageInQueueList []MessageInQueue

type MessageStatus added in v0.2.1

type MessageStatus string

type MessageThroughput added in v0.1.2

type MessageThroughput struct {
	Count      string             `json:"count"`      // how many messages
	Volume     ByteValueWithUnits `json:"volume"`     // how much space is occupied by messages
	Recipients string             `json:"recipients"` // how many recipients in messages
}

type MigrationStatus added in v0.2.0

type MigrationStatus struct {
	MigrationStatus    MigrationStatusEnum `json:"migrationStatus"`    // current status of the migration
	ProgressInPercents int                 `json:"progressInPercents"` // number from 0 to 100
	ErrorMessage       string              `json:"errorMessage"`       // If migrationStatus is migError, errorMessage optionaly contains detailed info about error in english
}

MigrationStatus - Status of the migration task and progress of migration in percents.

type MigrationStatusEnum added in v0.2.0

type MigrationStatusEnum string

type MigrationTask added in v0.2.0

type MigrationTask struct {
	Id           KId        `json:"id"`           // id of migration task
	UserId       KId        `json:"userId"`       // id of migrated user
	UserName     string     `json:"userName"`     // name of migrated user
	SourceServer HomeServer `json:"sourceServer"` // source homeserver
	// HomeServer targetServer;   // in current implementation it's always current server -
	Status MigrationStatus `json:"status"` // status of the migration
}

MigrationTask - Whole structure is READ-ONLY

type MigrationTaskList added in v0.2.0

type MigrationTaskList []MigrationTask

MigrationTaskList - List of migration tasks

type MiscellaneousOptions added in v0.1.2

type MiscellaneousOptions struct {
	LogHostNames              bool `json:"logHostNames"`              // Log hostnames for incoming connections
	ShowProgramNameAndVersion bool `json:"showProgramNameAndVersion"` // Show program name and version in network communication for non-authenticated users
	InsertXEnvelopeTo         bool `json:"insertXEnvelopeTo"`         // Insert X-Envelope-To header to locally delivered messages
	EnableTNEFDecoding        bool `json:"enableTNEFDecoding"`        // Enable decoding of TNEF messages (winmail.dat attachments)
	EnableUUEncodedConversion bool `json:"enableUUEncodedConversion"` // Enable conversion of uuencoded messages to MIME
}

type Ml added in v0.2.0

type Ml struct {
	Id                KId                `json:"id"`                // [READ-ONLY] global identification of ML
	DomainId          KId                `json:"domainId"`          // [REQUIRED FOR CREATE] [WRITE-ONCE] identification in which domain ML exists
	Name              string             `json:"name"`              // [REQUIRED FOR CREATE] [WRITE-ONCE] ML name, name@domain is email address
	Description       string             `json:"description"`       // description
	LanguageId        KId                `json:"languageId"`        // language to be spoken withing mailing list
	WelcomeString     string             `json:"welcomeString"`     // string to be sent as welcome of a new memeber
	FooterString      string             `json:"footerString"`      // string to be sent as footer of each contribution
	Subscription      SubscriptionPolicy `json:"subscription"`      // type of ML subscription policy
	Posting           PostingPolicy      `json:"posting"`           // type of ML posting policy
	ReplyTo           MlReplyTo          `json:"replyTo"`           // how should be replied to
	OtherAddress      string             `json:"otherAddress"`      // if replyTo is OtherAddress, it contains email address
	SubjectPrefix     string             `json:"subjectPrefix"`     // prefix for each subject
	HideSenderAddress bool               `json:"hideSenderAddress"` // replace sender's email address by ML address
	AllowEmptySubject bool               `json:"allowEmptySubject"` // allow posting with empty subject
	Archive           ArchiveSettings    `json:"archive"`           // archive settings
	MembersCount      int                `json:"membersCount"`      // [READ-ONLY] Number of members.
	HomeServer        HomeServer         `json:"homeServer"`        // [READ-ONLY] Id of users homeserver if server is in Cluster
}

Ml - Mailing List Structure

type MlList added in v0.2.0

type MlList []Ml

MlList - List of mailing lists

type MlMembership added in v0.2.0

type MlMembership string

MlMembership - Type of Mailing List Membership

const (
	Member    MlMembership = "Member"    // obtains contributions
	Moderator MlMembership = "Moderator" // can manipulate with members but does not obtain contributions
)

type MlPermission added in v0.2.0

type MlPermission string

MlPermission - Mailing List (=ML) Action Access Right Type

const (
	Allowed   MlPermission = "Allowed"   // certain action is allowed
	Moderated MlPermission = "Moderated" // certain action must be approved by moderator
	Denied    MlPermission = "Denied"    // certain action is denied
)

type MlReplyTo added in v0.2.0

type MlReplyTo string

MlReplyTo - ML Addressee Type

const (
	Sender         MlReplyTo = "Sender"         // email address of the sender
	ThisList       MlReplyTo = "ThisList"       // email address of the ML
	OtherAddress   MlReplyTo = "OtherAddress"   // the address of the original sender will be substituted by a user defined email address
	SenderThisList MlReplyTo = "SenderThisList" // Sender + ThisList
)

type MobileDevice added in v0.2.0

type MobileDevice struct {
	ProtocolType        ProtocolType   `json:"protocolType"`
	DeviceId            string         `json:"deviceId"`
	ProtocolVersion     string         `json:"protocolVersion"`     // used ActiveSync protocol version
	RegistrationDate    DateTimeStamp  `json:"registrationDate"`    // date of registration
	RegistrationDateIso UtcDateTime    `json:"registrationDateIso"` // date of registration
	LastSyncDate        DateTimeStamp  `json:"lastSyncDate"`        // date of last synchronization
	LastSyncDateIso     UtcDateTime    `json:"lastSyncDateIso"`     // date of last synchronization
	FolderList          SyncFolderList `json:"folderList"`          // list of synchronized folders
	Status              DeviceStatus   `json:"status"`              // wipe status
	Method              SyncMethod     `json:"method"`              // synchronization method
	RemoteHost          string         `json:"remoteHost"`          // typically IP address of device
	Os                  string         `json:"os"`                  // operating system - eg. Windows Mobile(R) 2003
	Platform            string         `json:"platform"`            // PocketPC
	DeviceIcon          string         `json:"deviceIcon"`          // Device icon Eg. 'pocketpc' or 'unknown'
}

MobileDevice - Mobile device properties.

type MobileDeviceList added in v0.2.0

type MobileDeviceList []MobileDevice

MobileDeviceList - List of mobile devices.

type ModeratorPermission added in v0.2.0

type ModeratorPermission string

ModeratorPermission - Moderator Posting Access Right Type

const (
	PostAllowed             ModeratorPermission = "PostAllowed"             // certain action is allowed
	PostModerated           ModeratorPermission = "PostModerated"           // certain action must be approved by moderator
	PostAccordingMembership ModeratorPermission = "PostAccordingMembership" // certain action is ruled according modarator membership
)

type NamedConstant added in v0.1.2

type NamedConstant struct {
	Name  string `json:"name"`  // constant name
	Value string `json:"value"` // a value of constant
}

A way how to say client that the server has a constant

type NamedConstantList

type NamedConstantList []NamedConstant

type NamedMultiValue added in v0.1.0

type NamedMultiValue struct {
	Name  string     `json:"name"` // Name-value pair
	Value StringList `json:"value"`
}

NamedMultiValue - Note: all fields must be assigned if used in set methods

type NamedMultiValueList added in v0.1.2

type NamedMultiValueList []NamedMultiValue

NamedMultiValueList - List of name-multivalue pairs

type NamedValue added in v0.1.0

type NamedValue struct {
	Name  string `json:"name"` // Name-value pair
	Value string `json:"value"`
}

NamedValue - Note: all fields must be assigned if used in set methods

type NamedValueList added in v0.1.2

type NamedValueList []NamedValue

NamedValueList - List of name-value pairs

type NotificationType added in v0.1.2

type NotificationType string

type Notifications added in v0.1.2

type Notifications struct {
	Success string `json:"success"` // how many sent success notifications
	Delay   string `json:"delay"`   // how many sent delay notifications
	Failure string `json:"failure"` // how many sent failure notifications
}

type OccupiedStorage added in v0.1.2

type OccupiedStorage struct {
	Total      ByteValueWithUnits `json:"total"`      // total space on disc
	Occupied   ByteValueWithUnits `json:"occupied"`   // occupied space on disc
	Percentage string             `json:"percentage"` // how many per cent is occupied
}

type OperatorOptions added in v0.1.2

type OperatorOptions struct {
	IsEnabled bool   `json:"isEnabled"`
	Address   string `json:"address"`
}

type OptionalEntity added in v0.1.2

type OptionalEntity struct {
	Enabled bool   `json:"enabled"`
	Id      KId    `json:"id"` // global identifier
	Name    string `json:"name"`
}

OptionalEntity - IP Address Group / Time Range / ... that can be switched on/off Note: all fields must be assigned if used in set methods

type OptionalLong added in v0.1.2

type OptionalLong struct {
	Enabled bool `json:"enabled"`
	Value   int  `json:"value"`
}

OptionalLong - Note: all fields must be assigned if used in set methods

type OptionalString added in v0.1.2

type OptionalString struct {
	Enabled bool   `json:"enabled"`
	Value   string `json:"value"`
}

OptionalString - A string that can be switched on/off. String is meaningful only if switched on. Note: all fields must be assigned if used in set methods

type OtherStats added in v0.1.2

type OtherStats struct {
	Largest ByteValueWithUnits `json:"largest"` // the largest messages received by server
	Loops   string             `json:"loops"`   // how many detected message loops
}

type OutgoingMessageLimit

type OutgoingMessageLimit struct {
	IsActive bool `json:"isActive"`
	Limit    struct {
		Value int    `json:"value"`
		Units string `json:"units"`
	} `json:"limit"`
}

type PercentHistogram added in v0.2.0

type PercentHistogram []float64

PercentHistogram - 0-100%, sample count and rate depens on requested type and is the same as in ActiveHost histogram

type PersonalContact added in v0.1.2

type PersonalContact struct {
	CommonName           string           `json:"commonName"`
	FirstName            string           `json:"firstName"`
	MiddleName           string           `json:"middleName"`
	SurName              string           `json:"surName"`
	TitleBefore          string           `json:"titleBefore"`
	TitleAfter           string           `json:"titleAfter"`
	NickName             string           `json:"nickName"`
	PhoneNumberWorkVoice string           `json:"phoneNumberWorkVoice"`
	PhoneNumberMobile    string           `json:"phoneNumberMobile"`
	PostalAddressWork    PostalAddress    `json:"postalAddressWork"`
	UrlWork              string           `json:"urlWork"`
	BirthDay             UtcDateTime      `json:"birthDay"`
	Anniversary          UtcDateTime      `json:"anniversary"`
	CompanyName          string           `json:"companyName"`
	DepartmentName       string           `json:"departmentName"`
	Profession           string           `json:"profession"`
	ManagerName          string           `json:"managerName"`
	AssistantName        string           `json:"assistantName"`
	Comment              string           `json:"comment"`
	IMAddress            string           `json:"IMAddress"`
	Photo                PhotoAttachment  `json:"photo"`
	IsReadOnly           bool             `json:"isReadOnly"`
	EmailAddresses       EmailAddressList `json:"emailAddresses"`
}

PersonalContact - Personal Contact detail.

type PersonalContactList added in v0.1.2

type PersonalContactList []PersonalContact

type PhoneNumber added in v0.1.2

type PhoneNumber struct {
	Type      PhoneNumberType `json:"type"`
	Number    string          `json:"number"` // A number - based on the X.500 Telephone Number attribute
	Extension ABExtension     `json:"extension"`
}

PhoneNumber - Structure desribing a contact phone number

type PhoneNumberList added in v0.1.2

type PhoneNumberList []PhoneNumber

type PhoneNumberType added in v0.1.2

type PhoneNumberType string

PhoneNumberType - Type of a contact phone number

const (
	TypeAssistant  PhoneNumberType = "TypeAssistant"
	TypeWorkVoice  PhoneNumberType = "TypeWorkVoice"
	TypeWorkFax    PhoneNumberType = "TypeWorkFax"
	TypeCallback   PhoneNumberType = "TypeCallback"
	TypeCar        PhoneNumberType = "TypeCar"
	TypeCompany    PhoneNumberType = "TypeCompany"
	TypeHomeVoice  PhoneNumberType = "TypeHomeVoice"
	TypeHomeFax    PhoneNumberType = "TypeHomeFax"
	TypeIsdn       PhoneNumberType = "TypeIsdn"
	TypeMobile     PhoneNumberType = "TypeMobile"
	TypeOtherVoice PhoneNumberType = "TypeOtherVoice"
	TypeOtherFax   PhoneNumberType = "TypeOtherFax"
	TypePager      PhoneNumberType = "TypePager"
	TypePrimary    PhoneNumberType = "TypePrimary"
	TypeRadio      PhoneNumberType = "TypeRadio"
	TypeTelex      PhoneNumberType = "TypeTelex"
	TypeTtyTdd     PhoneNumberType = "TypeTtyTdd"
	TypeCustom     PhoneNumberType = "TypeCustom" // no type defined
)

type PhotoAttachment added in v0.1.2

type PhotoAttachment struct {
	Id  string `json:"id"`  // origin ID of attachment or ID from upload response
	Url string `json:"url"` // [READ-ONLY] Relative URL from root of web. Eg.: /webmail/api/download/attachment/ba5767a9-7a70-4c90-a6bf-dc8dd62e259c/14/0-1-0-1/picture.jpg
}

PhotoAttachment - A contact photo. Only JPEG format is supported. Maximum size is 256 kB.

type Pop3Account added in v0.2.0

type Pop3Account struct {
	Id              KId                `json:"id"`
	IsActive        bool               `json:"isActive"`
	Server          string             `json:"server"`   // POP3 server name
	UserName        string             `json:"userName"` // username on POP3 server
	Password        string             `json:"password"` // password appropriate to username
	Description     string             `json:"description"`
	DeliveryAddress string             `json:"deliveryAddress"`
	UseSortingRules bool               `json:"useSortingRules;//"` // If value is true sortType will save otherwise deliveryAddress will save. Default is false.
	SortType        string             `json:"sortType"`
	DropDuplicates  bool               `json:"dropDuplicates"` // drop duplicate messages?
	Mode            SslMode            `json:"mode"`
	Port            int                `json:"port"`
	Authentication  Pop3Authentication `json:"authentication"`
	MessageLimit    ByteValueWithUnits `json:"messageLimit"` // per session download limit - total message size
	MaxCount        int                `json:"maxCount"`     // per session download limit - maximum message count
	LeaveOnServer   LeaveOnServer      `json:"leaveOnServer"`
}

type Pop3AccountList added in v0.2.0

type Pop3AccountList []Pop3Account

type Pop3Authentication added in v0.2.0

type Pop3Authentication string
const (
	PlainPop3 Pop3Authentication = "PlainPop3"
	Apop      Pop3Authentication = "Apop"
)

type Pop3ClientStats added in v0.1.2

type Pop3ClientStats struct {
	ConnectionAttempts     string `json:"connectionAttempts"`
	ConnectionFailures     string `json:"connectionFailures"`
	AuthenticationFailures string `json:"authenticationFailures"`
	TotalDownloads         string `json:"totalDownloads"`
}

type Pop3ServerStats added in v0.1.2

type Pop3ServerStats struct {
	TotalIncomingConnections string `json:"totalIncomingConnections"`
	AuthenticationFailures   string `json:"authenticationFailures"`
	SentMessages             string `json:"sentMessages"`
}

type Pop3Sorting added in v0.2.0

type Pop3Sorting struct {
	Id          KId    `json:"id"`
	IsActive    bool   `json:"isActive"`
	SortAddress string `json:"sortAddress"`
	DeliverTo   string `json:"deliverTo"`
	Description string `json:"description"`
}

type Pop3SortingList added in v0.2.0

type Pop3SortingList []Pop3Sorting

type PostalAddress added in v0.1.2

type PostalAddress struct {
	Preferred       bool              `json:"preferred"`
	Pobox           string            `json:"pobox"`           // the post office box
	ExtendedAddress string            `json:"extendedAddress"` // e.g., apartment or suite number
	Street          string            `json:"street"`          // the street address
	Locality        string            `json:"locality"`        // the locality (e.g., city)
	State           string            `json:"state"`           // the region (e.g., state or province);
	Zip             string            `json:"zip"`             // the postal code
	Country         string            `json:"country"`         // the country name (full name)
	Label           string            `json:"label"`
	Type            PostalAddressType `json:"type"`
	Extension       ABExtension       `json:"extension"`
}

PostalAddress - Structure describing a postal address in contact.

type PostalAddressList added in v0.1.2

type PostalAddressList []PostalAddress

PostalAddressList - A sequence of postal addresses.

type PostalAddressType added in v0.1.2

type PostalAddressType string

PostalAddressType - Type of a postal address

const (
	AddressHome   PostalAddressType = "AddressHome"
	AddressWork   PostalAddressType = "AddressWork"
	AddressOther  PostalAddressType = "AddressOther"
	AddressCustom PostalAddressType = "AddressCustom" // no type defined
)

type PostingPolicy added in v0.2.0

type PostingPolicy struct {
	MemberPosting           MlPermission        `json:"memberPosting"`           // posting policy for ML member(s)
	NonMemberPosting        MlPermission        `json:"nonMemberPosting"`        // posting policy for ML non-member(s)
	ModeratorPosting        ModeratorPermission `json:"moderatorPosting"`        // posting policy for ML moderator(s)
	UserPostingNotification bool                `json:"userPostingNotification"` // notify user that the posting will be reviewed by a moderator
	SendErrorsToModerator   bool                `json:"sendErrorsToModerator"`   // send delivery errors to moderator(s)
}

PostingPolicy - Rules for posting

type PrincipalDescription added in v0.2.0

type PrincipalDescription struct {
	Type        PrincipalType `json:"type"`
	Id          KId           `json:"id"`
	Name        string        `json:"name"`
	DomainName  string        `json:"domainName"`
	FullName    string        `json:"fullName"`
	Description string        `json:"description"`
	IsEnabled   bool          `json:"isEnabled"`
	ItemSource  DataSource    `json:"itemSource"` // internal/LDAP
	HomeServer  HomeServer    `json:"homeServer"` // id of users homeserver if server is in Cluster; groups haven't homeserver
}

PrincipalDescription - Principal descriptor [READ-ONLY]

type PrincipalList added in v0.2.0

type PrincipalList []PrincipalDescription

PrincipalList - List of principals

type PrincipalType added in v0.2.0

type PrincipalType string

PrincipalType - Principal type

const (
	AuthDomainPrincipal PrincipalType = "AuthDomainPrincipal" // represents all users from a specified domain
	AuthUserPrincipal   PrincipalType = "AuthUserPrincipal"   // represents all users from all domains
	AnyonePrincipal     PrincipalType = "AnyonePrincipal"     // represents authorized users from all domains
	UserPrincipal       PrincipalType = "UserPrincipal"       // represents an user
	GroupPrincipal      PrincipalType = "GroupPrincipal"      // represents an group
	NonePrincipal       PrincipalType = "NonePrincipal"       // target is empty
)

type ProductInfo

type ProductInfo struct {
	ProductName  string       `json:"productName"`
	Version      string       `json:"version"`
	BuildNumber  string       `json:"buildNumber"`
	OsName       string       `json:"osName"`
	Os           ServerOs     `json:"os"`
	ReleaseType  BuildType    `json:"releaseType"`
	DeployedType DeployedType `json:"deployedType"`
	UpdateInfo   UpdateInfo   `json:"updateInfo"`
}

type ProductVersion added in v0.2.0

type ProductVersion struct {
	ProductName   string    `json:"productName"`   // e.g. "Kerio Connect"
	Major         int       `json:"major"`         // e.g. 7
	Minor         int       `json:"minor"`         // e.g. 4
	Revision      int       `json:"revision"`      // e.g. 0
	Build         int       `json:"build"`         // e.g. 4528
	Order         int       `json:"order"`         // e.g. 1 for alpha/beta/rc/patch 1
	ReleaseType   BuildType `json:"releaseType"`   // e.g. Patch
	DisplayNumber string    `json:"displayNumber"` // e.g. "7.4.0 patch 1"
}

ProductVersion - Product version, machine- and human-readable.

type Protocol added in v0.2.0

type Protocol string

type ProtocolType added in v0.2.0

type ProtocolType string

type PublicFolder added in v0.0.3

type PublicFolder struct {
	Id   KId    `json:"id"`
	Name string `json:"name"`
}

type PublicFolderList added in v0.0.3

type PublicFolderList []PublicFolder

type QuotaNotification added in v0.1.2

type QuotaNotification struct {
	Type   NotificationType `json:"type"`
	Period TimeLimit        `json:"period"`
}

type QuotaUsage added in v0.1.2

type QuotaUsage struct {
	Items   int                `json:"items"`
	Storage ByteValueWithUnits `json:"storage"`
}

QuotaUsage - Amount of storage used and items currently stored in user's store.

type QuotaUsageList added in v0.1.2

type QuotaUsageList []QuotaUsage

QuotaUsageList - List of QuotaUsage.

type ReactionOnNotScanned added in v0.2.0

type ReactionOnNotScanned string

ReactionOnNotScanned - What to do with a corrupted or encrypted file

const (
	DeliverWithWarning ReactionOnNotScanned = "DeliverWithWarning" // deliver original message with prepended warning
	SameAsVirus        ReactionOnNotScanned = "SameAsVirus"        // the same reaction as for ReactionOnVirus
)

type ReactionOnVirus added in v0.2.0

type ReactionOnVirus string

ReactionOnVirus - What to do with an infected file

const (
	DiscardMessage ReactionOnVirus = "DiscardMessage" // completely dicard the message
	RemoveVirus    ReactionOnVirus = "RemoveVirus"    // deliver the message but remove malicious code
)

type RegDate added in v0.2.0

type RegDate struct {
	Year  int `json:"year"`  // year
	Month int `json:"month"` // 1-12
	Day   int `json:"day"`   // 1-31 max day is limited by month
}

RegDate - @brief a date structure

type RegStringList added in v0.2.0

type RegStringList []string

RegStringList - @brief A list of strings

type Registration added in v0.2.0

type Registration struct {
	Details          LicenseDetail          `json:"details"`          // Information about user
	ExpirationDate   RegDate                `json:"expirationDate"`   // Expiration date
	Subscribers      int                    `json:"subscribers"`      // A count of Subscribers (typically users) of the product
	ShowQuestions    bool                   `json:"showQuestions"`    // Have to show questions?
	RegistrationType int                    `json:"registrationType"` // is it edu/gov registration?
	EduInfo          string                 `json:"eduInfo"`          // information special for EDUcational type of organization
	RegNumbers       RegistrationNumberList `json:"regNumbers"`       // All registration numbers included in registration
	SurveyAnswers    SurveyAnswerList       `json:"surveyAnswers"`    // Survey answers - Answers should be sent in the same order as the questions are displayed.
	Extensions       ExtensionList          `json:"extensions"`       // list of extensions
}

Registration - @see getRegistrationInfo, finishRegistration

type RegistrationFinishType added in v0.2.0

type RegistrationFinishType string

RegistrationFinishType - Type of registration finish

type RegistrationFullStatus added in v0.2.0

type RegistrationFullStatus struct {
	RegType     RegistrationType  `json:"regType"`     // The registration type of the current prooduct
	Id          string            `json:"Id"`          // Base or trial ID used for registration
	Company     string            `json:"company"`     // Company name
	Users       int               `json:"users"`       // Users count
	Expirations LicenseExpireInfo `json:"expirations"` // sequence of expire information
}

RegistrationFullStatus - Full status information

type RegistrationNumber added in v0.2.0

type RegistrationNumber struct {
	Key         string `json:"key"`         // Registration number
	Type        string `json:"type"`        // A type of the reg. number (base id, addon...)
	Description string `json:"description"` // A description of the reg. number.
}

RegistrationNumber - @brief Registration Number info

type RegistrationNumberList added in v0.2.0

type RegistrationNumberList []RegistrationNumber

RegistrationNumberList - @brief A list of registration numbers related to a registration.

type RegistrationStatus added in v0.2.0

type RegistrationStatus struct {
	RegType RegistrationType `json:"regType"` // The registration type of the current prooduct
	Id      string           `json:"Id"`      // Base or trial ID used for registration
}

RegistrationStatus - A registration Status of the current product.

type RegistrationType added in v0.2.0

type RegistrationType string

RegistrationType - A type of the current registration of the product

type Relay added in v0.2.0

type Relay struct {
	IsRestricted              bool           `json:"isRestricted"`              // is relay restricted? false == open relay enabled
	IpAddressGroupName        string         `json:"ipAddressGroupName"`        // output only: name of IP group from which open relay is enabled
	IpAddressGroupId          KId            `json:"ipAddressGroupId"`          // ID of IP group from which open relay is enabled
	AuthenticateOutgoing      bool           `json:"authenticateOutgoing"`      // client must authenticate before sending a message
	ForwardPop3authentication ItemCountLimit `json:"forwardPop3authentication"` // client can be authenticated by POP3 before SMTP relay for certain number of minutes
	HideLocalIpInRcv          bool           `json:"hideLocalIpInRcv"`          // hide local IP address in receive headers
}

Relay - SMTP Relay options

type RelayAuthentication added in v0.2.0

type RelayAuthentication struct {
	IsRequired bool               `json:"isRequired"` // is authentication required?
	UserName   string             `json:"userName"`   // a user name for relay server authentication
	Password   string             `json:"password"`   // a password for relay server authentication, it's allowed to send ID of a rule to copy a password
	AuthType   SmtpAuthentication `json:"authType"`   // type of authentication
}

type RelayDeliveryRule added in v0.2.0

type RelayDeliveryRule struct {
	Id             KId                 `json:"id"` // [READ-ONLY] global identification
	IsEnabled      bool                `json:"isEnabled"`
	Description    string              `json:"description"`    // contains rule description
	HostName       string              `json:"hostName"`       // relay server hostname
	Port           int                 `json:"port"`           // relay server port
	Authentication RelayAuthentication `json:"authentication"` // relay server authentication parameters
	Condition      RelayRuleCondition  `json:"condition"`
}

type RelayDeliveryRuleList added in v0.2.0

type RelayDeliveryRuleList []RelayDeliveryRule

type RelayRuleComparatorType added in v0.2.0

type RelayRuleComparatorType string
const (
	RelayCompEqual    RelayRuleComparatorType = "RelayCompEqual"
	RelayCompNotEqual RelayRuleComparatorType = "RelayCompNotEqual"
)

type RelayRuleCondType added in v0.2.0

type RelayRuleCondType string
const (
	RelayCondNone      RelayRuleCondType = "RelayCondNone"      // there is none condition; it's always true
	RelayCondRecipient RelayRuleCondType = "RelayCondRecipient" // recipient from envelope
	RelayCondSender    RelayRuleCondType = "RelayCondSender"    // sender from envelope
)

type RelayRuleCondition added in v0.2.0

type RelayRuleCondition struct {
	Test       RelayRuleCondType       `json:"test"`
	Comparator RelayRuleComparatorType `json:"comparator"`
	Pattern    string                  `json:"pattern"` // patern shoud be type match E.g. *@example.com
}

type RemovalRequest added in v0.1.2

type RemovalRequest struct {
	UserId           KId                        `json:"userId"`           // ID of user to be removed
	Method           UserDeleteFolderMode       `json:"method"`           // removal method
	RemoveReferences bool                       `json:"removeReferences"` // if true all reference to this user is going to be removed as well
	TargetUserId     KId                        `json:"targetUserId"`     // applicable only when moving user's store to another user, use empty string if not moving user's messages to target mailbox
	Mode             DirectoryServiceDeleteMode `json:"mode"`             // delete mode
}

RemovalRequest - User to be removed, what to do with his/her mailbox.

type RemovalRequestList added in v0.1.2

type RemovalRequestList []RemovalRequest

type RenameInfo

type RenameInfo struct {
	IsRenamed bool   `json:"isRenamed"`
	OldName   string `json:"oldName"`
	NewName   string `json:"newName"`
}

type Repellent added in v0.2.0

type Repellent struct {
	Enabled          bool           `json:"enabled"`
	Delay            int            `json:"delay"`
	CustomWhiteList  OptionalEntity `json:"customWhiteList"`  // switchable custom white list IP group
	ReportToSecurity bool           `json:"reportToSecurity"` // do (not) report a spam attack to security log
}

type Resource added in v0.2.0

type Resource struct {
	Id            KId                  `json:"id"`            // [READ-ONLY] global identification of resource
	DomainId      KId                  `json:"domainId"`      // [REQUIRED FOR CREATE] [WRITE-ONCE] identification in which domain resource exists
	Name          string               `json:"name"`          // [REQUIRED FOR CREATE] [WRITE-ONCE] resource name
	Address       string               `json:"address"`       // [READ-ONLY] email of resource
	Description   string               `json:"description"`   // resource description
	Type          ResourceType         `json:"type"`          // type of the resource
	IsEnabled     bool                 `json:"isEnabled"`     // is resource enabled? default == true
	ResourceUsers PrincipalList        `json:"resourceUsers"` // list of groups / users /
	Manager       PrincipalDescription `json:"manager"`       // identification of user who is a manager
	HomeServer    HomeServer           `json:"homeServer"`    // [READ-ONLY] Id of users homeserver if server is in Cluster
}

Resource - Resource details

type ResourceList added in v0.2.0

type ResourceList []Resource

ResourceList - List of resources

type ResourceType added in v0.2.0

type ResourceType string

ResourceType - Export format type

const (
	Room      ResourceType = "Room"      // resource is a room
	Equipment ResourceType = "Equipment" // resource is something else, eg: a car
)

type Restriction added in v0.2.0

type Restriction struct {
	EntityName Entity               `json:"entityName"` // IDL entity name, eg. User
	Tuples     RestrictionTupleList `json:"tuples"`     // Restriction tuples
}

Restriction - Entity name restriction definition

type RestrictionKind added in v0.1.2

type RestrictionKind string

RestrictionKind - A kind of restriction

const (
	Regex                  RestrictionKind = "Regex"                  // regular expression
	ByteLength             RestrictionKind = "ByteLength"             // maximal length in Bytes
	ForbiddenNameList      RestrictionKind = "ForbiddenNameList"      // list of denied exact names due to filesystem or KMS store
	ForbiddenPrefixList    RestrictionKind = "ForbiddenPrefixList"    // list of denied preffixes due to filesystem or KMS store
	ForbiddenSuffixList    RestrictionKind = "ForbiddenSuffixList"    // list of denied suffixes due to filesystem or KMS store
	ForbiddenCharacterList RestrictionKind = "ForbiddenCharacterList" // list of denied characters
)

type RestrictionList added in v0.2.0

type RestrictionList []Restriction

RestrictionList - List of restrictions

type RestrictionTuple added in v0.2.0

type RestrictionTuple struct {
	Name   ItemName        `json:"name"`
	Kind   RestrictionKind `json:"kind"`
	Values StringList      `json:"values"`
}

RestrictionTuple - Restriction Items

type RestrictionTupleList added in v0.2.0

type RestrictionTupleList []RestrictionTuple

RestrictionTupleList - Restriction tuple for 1 entity

type ResultTriplet added in v0.1.2

type ResultTriplet struct {
	InputIndex int `json:"inputIndex"`
	ItemsCount int `json:"itemsCount"`
}

ResultTriplet - Result of a mass operation.

type ResultTripletList added in v0.1.2

type ResultTripletList []ResultTriplet

ResultTripletList - List of mass operation results.

type RotationPeriod added in v0.1.2

type RotationPeriod string

RotationPeriod - Period of rotation

const (
	RotateNever   RotationPeriod = "RotateNever"   // don't rotate
	RotateHourly  RotationPeriod = "RotateHourly"  // rotate hourly
	RotateDaily   RotationPeriod = "RotateDaily"   // rotate daily
	RotateWeekly  RotationPeriod = "RotateWeekly"  // rotate weekly
	RotateMonthly RotationPeriod = "RotateMonthly" // rotate monthly
)

type Scale added in v0.1.2

type Scale struct {
	Id         int `json:"id"`
	ScaleTime  int `json:"scaleTime"`  // The time scale
	SampleTime int `json:"sampleTime"` // The sample scale
}

type ScaleList added in v0.1.2

type ScaleList []Scale

type ScheduledAction added in v0.2.0

type ScheduledAction struct {
	Id          KId                   `json:"id"`
	IsActive    bool                  `json:"isActive"` // record is active
	Description string                `json:"description"`
	Condition   TimeCondition         `json:"condition"`
	AllowDialUp bool                  `json:"allowDialUp"` // allow to establish dial-up connection if necessary
	Action      ScheduledActionAction `json:"action"`
}

type ScheduledActionAction added in v0.2.0

type ScheduledActionAction struct {
	SendFromQueue bool `json:"sendFromQueue"` // send messages from outgoing queue
	Pop3Download  bool `json:"pop3Download"`  // download messages from POP3 mailboxes
	SendEtrn      bool `json:"sendEtrn"`      // send ETRN command to invoke mail transfer
}

ScheduledActionAction - Note: all fields must be assigned if used in set methods

type ScheduledActionList added in v0.2.0

type ScheduledActionList []ScheduledAction

type SearchQuery

type SearchQuery struct {
	Fields     StringList       `json:"fields"`     // empty = give me all fields, applicable constants: ADD_USERS, LIST_USERS
	Conditions SubConditionList `json:"conditions"` // empty = without condition
	Combining  LogicalOperator  `json:"combining"`  // the list of conditions can be either combined by 'ORs' or 'ANDs'
	Start      int              `json:"start"`      // how many items to skip before filling a result list (0 means skip none)
	Limit      int              `json:"limit"`      // how many items to put to a result list (if there are enough items); applicable constant: Unlimited
	OrderBy    SortOrderList    `json:"orderBy"`
}

SearchQuery - General Query for Searching Query substitution (quicksearch): SearchQuery doesn't support complex queries, only queries with all AND operators (or all OR operators) are supported. Combination of AND and OR is not allowed. This limitation is for special cases solved by using substitution of complicated query-part by simple condition. Only the quicksearch is currently implemented and only in "Users::get()" method. Behavior of quicksearch in Users::get(): QUICKSEACH = "x" is equal to: (loginName = "x") OR (fullName = "x") QUICKSEACH LIKE "x*" is equal to: (loginName LIKE "x*") OR (fullName LIKE "x*") SearchQuery - QUICKSEACH <> "x" is equal to: (loginName <> "x") AND (fullName <> "x")

type SearchStatus added in v0.1.2

type SearchStatus string

SearchStatus - Status of the Search

const (
	ResultFound    SearchStatus = "ResultFound"    // the seach is finished and the match has been found
	Searching      SearchStatus = "Searching"      // the search still continues, the result is not available so far
	Cancelled      SearchStatus = "Cancelled"      // the search was cancelled by client
	ResultNotFound SearchStatus = "ResultNotFound" // the seach is finished but nothing was found
)

type SecurityPolicyMode added in v0.2.0

type SecurityPolicyMode string
const (
	SPNoRestrictions         SecurityPolicyMode = "SPNoRestrictions"         // No restriction
	SPAuthenticationRequired SecurityPolicyMode = "SPAuthenticationRequired" // Require secure authentication
	SPEncryptionRequired     SecurityPolicyMode = "SPEncryptionRequired"     // Require encrypted connection
)

type SecurityPolicyOptions added in v0.2.0

type SecurityPolicyOptions struct {
	Mode                         SecurityPolicyMode       `json:"mode"`
	AuthenticationExceptionGroup OptionalEntity           `json:"authenticationExceptionGroup"` // Is used if mode == SPAuthenticationRequired
	EncryptionExceptionGroup     OptionalEntity           `json:"encryptionExceptionGroup"`     // Is used if mode == SPEncryptionRequired
	AuthenticationMethods        AuthenticationMethodList `json:"authenticationMethods"`        // List of authentication methods and its status. In any set operation, all methods should be present in list. Methods which are not specified are reset to 'enabled'.
	AllowNtlmForKerberosUsers    bool                     `json:"allowNtlmForKerberosUsers"`    // Allow NTLM authentication for users with Kerberos� authentication (for Active Directory� users)
	EnableLockout                bool                     `json:"enableLockout"`                // Enable/disable account lockout feature
	FailedLoginsToLock           int                      `json:"failedLoginsToLock"`           // Count of failed logins to lock user account
	MinutesToUnlock              int                      `json:"minutesToUnlock"`              // Minutes to unlock locked account
	AntiHammering                AntiHammeringOptions     `json:"antiHammering"`                // Anti-Hammering settings
}

type SenderPolicyOptions added in v0.2.0

type SenderPolicyOptions struct {
	AuthenticationRequired bool           `json:"authenticationRequired"` // Require sender authentication for local domains
	AntiSpoofingEnabled    bool           `json:"antiSpoofingEnabled"`    // Is Antispoofing enabled
	IPWhiteList            OptionalEntity `json:"IPWhiteList"`            // Trusted senders (Not chceked by anti-spoofing)
}

type ServerConnection added in v0.2.0

type ServerConnection struct {
	Config *Config
	Token  *string
	// contains filtered or unexported fields
}

func (*ServerConnection) AccessPolicyCreate added in v0.2.0

func (s *ServerConnection) AccessPolicyCreate(rules AccessPolicyRuleList) (ErrorList, CreateResultList, error)

AccessPolicyCreate - Add new policies.

rules - new policies rules

Return

errors - error message list
result - list of IDs of created rules

func (*ServerConnection) AccessPolicyCreateGroupList added in v0.2.0

func (s *ServerConnection) AccessPolicyCreateGroupList(groups AccessPolicyGroupList) (ErrorList, CreateResultList, error)

AccessPolicyCreateGroupList - Create the list of groups.

groups - list of groups to create

Return

errors - error message list
result - list of IDs of created groups

func (*ServerConnection) AccessPolicyGet added in v0.2.0

func (s *ServerConnection) AccessPolicyGet(query SearchQuery) (AccessPolicyRuleList, int, error)

AccessPolicyGet - Obtain a list of policies.

query - query attributes and limits

Return

	list - policies
 totalItems - number of policies found

func (*ServerConnection) AccessPolicyGetGroupList added in v0.2.0

func (s *ServerConnection) AccessPolicyGetGroupList() (AccessPolicyGroupList, error)

AccessPolicyGetGroupList - Get the list of groups, sorted in ascending order. Return

groups - list of Access policy groups

func (*ServerConnection) AccessPolicyGetServiceList added in v0.2.0

func (s *ServerConnection) AccessPolicyGetServiceList() (ServiceTypeInfoList, error)

AccessPolicyGetServiceList - Get the list of services. Return

services - list of service info

func (*ServerConnection) AccessPolicyRemove added in v0.2.0

func (s *ServerConnection) AccessPolicyRemove(ruleIds KIdList) (ErrorList, error)

AccessPolicyRemove - Remove policies.

ruleIds - list of IDs of policy to be removed

Return

errors - error message list

func (*ServerConnection) AccessPolicyRemoveGroupList added in v0.2.0

func (s *ServerConnection) AccessPolicyRemoveGroupList(groupIds KIdList) (ErrorList, error)

AccessPolicyRemoveGroupList - Remove the list of groups.

groupIds - list of IDs of group policy to be removed

Return

errors - error message list

func (*ServerConnection) AccessPolicySet added in v0.2.0

func (s *ServerConnection) AccessPolicySet(rules AccessPolicyRuleList) (ErrorList, error)

AccessPolicySet - Set policy details.

rules - rules to save

Return

errors - error message list

func (*ServerConnection) AccessPolicySetGroupList added in v0.2.0

func (s *ServerConnection) AccessPolicySetGroupList(groups AccessPolicyGroupList) (ErrorList, error)

AccessPolicySetGroupList - Set the list of groups.

groups - list of group to set

Return

errors - error message list

func (*ServerConnection) AdvancedOptionsCheckUpdates added in v0.2.0

func (s *ServerConnection) AdvancedOptionsCheckUpdates() (*UpdateCheckerOptions, error)

AdvancedOptionsCheckUpdates - Check for updates. Return

options - new version details

func (*ServerConnection) AdvancedOptionsGet added in v0.2.0

func (s *ServerConnection) AdvancedOptionsGet() (*AdvancedOptionsSetting, error)

AdvancedOptionsGet - Obtain Advanced options. Return

options - current advanced options

func (*ServerConnection) AdvancedOptionsGetFulltextStatus added in v0.2.0

func (s *ServerConnection) AdvancedOptionsGetFulltextStatus() (*FulltextRebuildStatus, error)

AdvancedOptionsGetFulltextStatus - Get information about index status. Return

info - structure with information

func (*ServerConnection) AdvancedOptionsSet added in v0.2.0

func (s *ServerConnection) AdvancedOptionsSet(options AdvancedOptionsSetting) error

AdvancedOptionsSet - Set advanced options.

options - options to be updated

func (*ServerConnection) AdvancedOptionsStartRebuildFulltext added in v0.2.0

func (s *ServerConnection) AdvancedOptionsStartRebuildFulltext(parameters FulltextRebuildingCommand) error

AdvancedOptionsStartRebuildFulltext - Launch re-index according parameters.

parameters - parameters for launching re-index

func (*ServerConnection) AliasesCheck added in v0.2.0

func (s *ServerConnection) AliasesCheck(checkString string) (StringList, error)

AliasesCheck - Obtain a list of mail addresses and/or public folders on which given string will be expanded.

checkString - string to be checked

Return

result - list of expansions

func (*ServerConnection) AliasesCreate added in v0.2.0

func (s *ServerConnection) AliasesCreate(aliases AliasList) (ErrorList, CreateResultList, error)

AliasesCreate - Create new aliases

aliases - new alias entities

Return

errors - list of error messages for appropriate new aliases
result - list of IDs of created aliases

func (*ServerConnection) AliasesGet added in v0.2.0

func (s *ServerConnection) AliasesGet(query SearchQuery, domainId KId) (AliasList, int, error)

AliasesGet - Obtain list of aliases.

query - query conditions and limits

Return

	list - aliases
 totalItems - amount of aliases for given search condition, useful when limit is defined in query

func (*ServerConnection) AliasesGetMailPublicFolderList added in v0.2.0

func (s *ServerConnection) AliasesGetMailPublicFolderList(domainId KId) (PublicFolderList, error)

AliasesGetMailPublicFolderList - Obtain a list of mail public folders in the given domain.

domainId - global identification of the domain

Return

publicFolderList - list of public folders

func (*ServerConnection) AliasesGetTargetList added in v0.2.0

func (s *ServerConnection) AliasesGetTargetList(query SearchQuery, domainId KId) (AliasTargetList, int, error)

AliasesGetTargetList - Obtain a list of alias targets.

query - query conditions and limits
domainId - global identification of the domain

Return

	list - alias targets
 totalItems - amount of aliases for given search condition, useful when a limit is defined in the query

func (*ServerConnection) AliasesRemove added in v0.2.0

func (s *ServerConnection) AliasesRemove(aliasIds KIdList) (ErrorList, error)

AliasesRemove - Delete aliases. Return

errors - error message list

func (*ServerConnection) AliasesSet added in v0.2.0

func (s *ServerConnection) AliasesSet(aliasIds KIdList, pattern Alias) (ErrorList, error)

AliasesSet - Set an existing alias.

aliasIds - list of alias global identifier(s)
pattern - pattern to use for new values

Return

errors - error message list

func (*ServerConnection) ArchiveGet added in v0.2.0

func (s *ServerConnection) ArchiveGet() (*ArchiveOptions, error)

ArchiveGet - Obtain archive options. Return

options - current archive options

func (*ServerConnection) ArchiveGetImArchiveFile added in v0.2.0

func (s *ServerConnection) ArchiveGetImArchiveFile(fromDate Date, toDate Date) (*Download, error)

ArchiveGetImArchiveFile - Returns link to IM archive file in given period

func (*ServerConnection) ArchiveGetXmppArchiveFiles added in v0.2.0

func (s *ServerConnection) ArchiveGetXmppArchiveFiles() (DownloadList, error)

ArchiveGetXmppArchiveFiles - Returns links to available Instant Messaging archive files

func (*ServerConnection) ArchiveSet added in v0.2.0

func (s *ServerConnection) ArchiveSet(options ArchiveOptions) error

ArchiveSet - Set archive options.

options - archive options

func (*ServerConnection) BackupGet added in v0.2.0

func (s *ServerConnection) BackupGet() (*BackupOptions, error)

BackupGet - Obtain backup options. Return

options - current backup options

func (*ServerConnection) BackupGetScheduleList added in v0.2.0

func (s *ServerConnection) BackupGetScheduleList(query SearchQuery) (BackupScheduleList, error)

BackupGetScheduleList - Obtain list of backup scheduling.

query - order by, limits

Return

scheduleList

func (*ServerConnection) BackupGetStatus added in v0.2.0

func (s *ServerConnection) BackupGetStatus() (*BackupStatus, error)

BackupGetStatus - Return current backup status. Return

status - backup status

func (*ServerConnection) BackupSet added in v0.2.0

func (s *ServerConnection) BackupSet(options BackupOptions) error

BackupSet - Set backup options.

options - backup options

func (*ServerConnection) BackupSetScheduleList added in v0.2.0

func (s *ServerConnection) BackupSetScheduleList(scheduleList BackupScheduleList) error

BackupSetScheduleList - Set all backup schedules.

scheduleList

func (*ServerConnection) BackupStart added in v0.2.0

func (s *ServerConnection) BackupStart(backupType BackupType) error

BackupStart - Start backup according to current settings.

backupType - backup type

func (*ServerConnection) CallRaw added in v0.2.0

func (s *ServerConnection) CallRaw(method string, params interface{}) ([]byte, error)

func (*ServerConnection) CertificatesExportCertificate added in v0.2.0

func (s *ServerConnection) CertificatesExportCertificate(id KId) (*Download, error)

CertificatesExportCertificate - Export of certificate or certificate request

id - ID of the certificate or certificate request

Return

fileDownload - description of the output file

func (*ServerConnection) CertificatesExportPrivateKey added in v0.2.0

func (s *ServerConnection) CertificatesExportPrivateKey(id KId) (*Download, error)

CertificatesExportPrivateKey - Export of certificate or request privatekey

id - ID of the certificate or certificate request

Return

fileDownload - description of the output file

func (*ServerConnection) CertificatesGenerate added in v0.2.0

func (s *ServerConnection) CertificatesGenerate(subject NamedValueList, name string, certificateType CertificateType, period ValidPeriod) (KId, error)

CertificatesGenerate - Generate certificate.

subject - properties specified by user
name - name of the new certificate
certificateType - type of certificate to be generated, valid input is one of: InactiveCertificate/CertificateRequest/LocalAuthority
period - time properties specified by user, not relevant for CertificateRequest

Return

id - ID of generated certificate

func (*ServerConnection) CertificatesGet added in v0.2.0

func (s *ServerConnection) CertificatesGet(query SearchQuery) (CertificateList, int, error)

CertificatesGet - Obtain a list of certificates

query - conditions and limits. Included from weblib.

Return

	certificates - current list of certificates
 totalItems - count of all services on server (before the start/limit applied)

func (*ServerConnection) CertificatesGetCountryList added in v0.2.0

func (s *ServerConnection) CertificatesGetCountryList() (NamedValueList, error)

CertificatesGetCountryList - Get a list of countries. Return

countries - list of countries (name and ISO 3166 code)

func (*ServerConnection) CertificatesImportCertificate added in v0.2.0

func (s *ServerConnection) CertificatesImportCertificate(keyId KId, fileId string, name string, certificateType CertificateType) (KId, error)

CertificatesImportCertificate - Import certificate in PEM format

keyId - ID assigned to imported private key, @see importPrivateKey
fileId - id of uploaded file
name - name of the new certificate
certificateType - type of certificate to be imported, valid input is one of: InactiveCertificate/Authority/LocalAuthority

Return

id - ID of generated certificate

func (*ServerConnection) CertificatesImportPrivateKey added in v0.2.0

func (s *ServerConnection) CertificatesImportPrivateKey(fileId string) (KId, bool, error)

CertificatesImportPrivateKey - Import private key. It generates ID, so it can be linked to Certificate content imported later, @see importCertificate

fileId - id of uploaded file

Return

keyId - generated ID for new key
needPassword - true if private key is encrypted with password

func (*ServerConnection) CertificatesRemove added in v0.2.0

func (s *ServerConnection) CertificatesRemove(ids KIdList) (ErrorList, error)

CertificatesRemove - Remove list of certificate records

ids - list of identifiers of deleted user templates

Return

errors - error message list

func (*ServerConnection) CertificatesSetName added in v0.2.0

func (s *ServerConnection) CertificatesSetName(id KId, name string) error

CertificatesSetName - Renames certificate

id - ID of certificate to rename
name - new name of the certificate

func (*ServerConnection) CertificatesToSource added in v0.2.0

func (s *ServerConnection) CertificatesToSource(id KId) (string, error)

CertificatesToSource - Obtain source (plain-text representation) of the certificate

id - global identifier

Return

source - certificate in plain text

func (*ServerConnection) CertificatesUnlockPrivateKey added in v0.2.0

func (s *ServerConnection) CertificatesUnlockPrivateKey(keyId KId, password string) error

CertificatesUnlockPrivateKey - Try to parse imported private key. Need to be called, when @importPrivateKey returns needPassword == true.

keyId - ID assigned to imported private key, @see importPrivateKey
password - certificate password

func (*ServerConnection) CompanyContactsCreate added in v0.2.0

func (s *ServerConnection) CompanyContactsCreate(companyContacts CompanyContactList) (ErrorList, CreateResultList, error)

CompanyContactsCreate - Create new company contacts. Return

errors - error message list
result - particular results for all items

func (*ServerConnection) CompanyContactsGet added in v0.2.0

func (s *ServerConnection) CompanyContactsGet(query SearchQuery) (CompanyContactList, int, error)

CompanyContactsGet - Obtain a list of company contacts.

query - query conditions and limits

Return

	list - list of company contacts
 totalItems - amount of company contacts for given search condition, useful when limit is defined in SearchQuery

func (*ServerConnection) CompanyContactsGetAvailable added in v0.2.0

func (s *ServerConnection) CompanyContactsGetAvailable(domainId KId) (CompanyContactList, error)

CompanyContactsGetAvailable - - Only company contacts for given domain and global company contacts are listed.

domainId - Only company contacts for given domain and global company contacts are listed.

Return

companyContactList - list of user templates

func (*ServerConnection) CompanyContactsRemove added in v0.2.0

func (s *ServerConnection) CompanyContactsRemove(companyContactsIds KIdList) (ErrorList, error)

CompanyContactsRemove - Remove company contacts. Return

errors - error message list

func (*ServerConnection) CompanyContactsSet added in v0.2.0

func (s *ServerConnection) CompanyContactsSet(companyContactsIds KIdList, pattern CompanyContact) (ErrorList, error)

CompanyContactsSet - Set existing company contacts to given pattern.

companyContactsIds - list of the company contacts's global identifier(s)
pattern - pattern to use for new values

Return

errors - error message list

func (*ServerConnection) ConnectCertificateExportCertificate added in v0.2.0

func (s *ServerConnection) ConnectCertificateExportCertificate(id KId) (*Download, error)

ConnectCertificateExportCertificate - Note: "export" is a keyword in C++, so name of the method must be changed: exportCertificate

id - ID of the certificate or certificate request

Return

fileDownload - description of the output file

func (*ServerConnection) ConnectCertificateExportPrivateKey added in v0.2.0

func (s *ServerConnection) ConnectCertificateExportPrivateKey(id KId) (*Download, error)

ConnectCertificateExportPrivateKey - Note: "export" is a keyword in C++, so the name of the method must be changed: exportPrivateKey

id - ID of the certificate or certificate request

Return

fileDownload - description of the output file

func (*ServerConnection) ConnectCertificateGenerate added in v0.2.0

func (s *ServerConnection) ConnectCertificateGenerate(subject NamedValueList, valid int) (*KId, error)

ConnectCertificateGenerate - Generate a self-signed certificate

subject - information about subject
valid - length of the certificate's validity (in years, max value is 10)

Return

id - ID of the new generated certificate

func (*ServerConnection) ConnectCertificateGenerateRequest added in v0.2.0

func (s *ServerConnection) ConnectCertificateGenerateRequest(subject NamedValueList) (*KId, error)

ConnectCertificateGenerateRequest - Generate certificate request

subject - information about subject

Return

id - ID of the new generated certificate request

func (*ServerConnection) ConnectCertificateGet added in v0.2.0

func (s *ServerConnection) ConnectCertificateGet() (CertificateList, error)

ConnectCertificateGet - Obtain a list of certificates Return

certificates - current list of certificates

func (*ServerConnection) ConnectCertificateImportCertificate added in v0.2.0

func (s *ServerConnection) ConnectCertificateImportCertificate(id KId, fileId string, password string) error

ConnectCertificateImportCertificate - Import private key for the new certificate.

id - ID of private key or certificate request which belongs to the certificate
fileId - ID of the uploaded file
password - certificate password, if it is set (use empty string if password is not set)

func (*ServerConnection) ConnectCertificateImportPrivateKey added in v0.2.0

func (s *ServerConnection) ConnectCertificateImportPrivateKey(fileId string) (bool, *KId, error)

ConnectCertificateImportPrivateKey - Import private key for the new certificate.

fileId - ID of the uploaded file

Return

needPassword - true if private key is encrypted with password
id - temporary ID to assign certificate to private key

func (*ServerConnection) ConnectCertificateRemove added in v0.2.0

func (s *ServerConnection) ConnectCertificateRemove(certificateIds KIdList) (ErrorList, error)

ConnectCertificateRemove - Remove list of certificate records Return

errors - error message list

func (*ServerConnection) ConnectCertificateSetActive added in v0.2.0

func (s *ServerConnection) ConnectCertificateSetActive(id KId) error

ConnectCertificateSetActive - Set active certificate

id - ID of the new active certificate

func (*ServerConnection) ConnectCertificateToSource added in v0.2.0

func (s *ServerConnection) ConnectCertificateToSource(id KId) (string, error)

ConnectCertificateToSource - Obtain source (plain-text representation) of the certificate

id - global identifier

Return

source - certificate in plain text

func (*ServerConnection) ContentAddBlackLists added in v0.2.0

func (s *ServerConnection) ContentAddBlackLists(items BlackListList) (ErrorList, error)

ContentAddBlackLists - Add a blacklist item.

items - array of new items

Return

errors - error message list

func (*ServerConnection) ContentGetAntiSpamSetting added in v0.2.0

func (s *ServerConnection) ContentGetAntiSpamSetting() (*AntiSpamSetting, error)

ContentGetAntiSpamSetting - Get antiSPAM settings. Return

setting - new antivirus filter settings

func (*ServerConnection) ContentGetAntivirusSetting added in v0.2.0

func (s *ServerConnection) ContentGetAntivirusSetting() (*AntivirusSetting, error)

ContentGetAntivirusSetting - Get antivirus filter settings. Return

setting - new antivirus filter settings

func (*ServerConnection) ContentGetAttachmentRules added in v0.2.0

func (s *ServerConnection) ContentGetAttachmentRules() (AttachmentItemList, error)

ContentGetAttachmentRules - Get a list of attachment filter rules. Return

filterRules - attachment filter rules

func (*ServerConnection) ContentGetAttachmentSetting added in v0.2.0

func (s *ServerConnection) ContentGetAttachmentSetting() (*AttachmentSetting, error)

ContentGetAttachmentSetting - Obtain attachment filter settings. Return

setting - current attachment filter settings

func (*ServerConnection) ContentGetAvailableAttachments added in v0.2.0

func (s *ServerConnection) ContentGetAvailableAttachments() (StringList, StringList, error)

ContentGetAvailableAttachments - When adding a new attachment rule this can be used to find out available values. Return

fileNames - list of available file names
mimeTypes - list of available MIME types

func (*ServerConnection) ContentGetBlackListList added in v0.2.0

func (s *ServerConnection) ContentGetBlackListList() (BlackListList, error)

ContentGetBlackListList - Obtain all blacklist items. Return

list - blacklist items

func (*ServerConnection) ContentGetCustomRuleList added in v0.2.0

func (s *ServerConnection) ContentGetCustomRuleList(query SearchQuery) (CustomRuleList, int, error)

ContentGetCustomRuleList - Obtain all custom rules.

query - condition and limit definition (orderBy is ignored)

Return

	list - custom rules
 totalItems - amount of rules for given search condition, useful when a limit is defined in search query

func (*ServerConnection) ContentRemoveBlackLists added in v0.2.0

func (s *ServerConnection) ContentRemoveBlackLists(ids KIdList) (ErrorList, error)

ContentRemoveBlackLists - Remove blacklist items.

ids - identifier list of blacklists to be deleted

Return

errors - error message list

func (*ServerConnection) ContentRemoveUnusedCustomRules added in v0.2.0

func (s *ServerConnection) ContentRemoveUnusedCustomRules(number int, unit HourOrDay) error

ContentRemoveUnusedCustomRules - Remove custom rules which are not used for a specified time.

number - how many hours/days is the rule unused
unit - which unit is used to measure

func (*ServerConnection) ContentSetAntiSpamSetting added in v0.2.0

func (s *ServerConnection) ContentSetAntiSpamSetting(setting AntiSpamSetting) error

ContentSetAntiSpamSetting - Set antiSPAM filter settings.

setting - new antivirus filter settings

func (*ServerConnection) ContentSetAntivirusSetting added in v0.2.0

func (s *ServerConnection) ContentSetAntivirusSetting(setting AntivirusSetting) (ErrorList, error)

ContentSetAntivirusSetting - Set antivirus filter settings.

setting - new antivirus filter settingss

Return

errors - error message; Value of inputIndex means type of antivirus (integrated = 0 and external = 1).

func (*ServerConnection) ContentSetAttachmentRules added in v0.2.0

func (s *ServerConnection) ContentSetAttachmentRules(filterRules AttachmentItemList) error

ContentSetAttachmentRules - Set list of attachment filter rules.

filterRules - attachment filter rules

func (*ServerConnection) ContentSetAttachmentSetting added in v0.2.0

func (s *ServerConnection) ContentSetAttachmentSetting(setting AttachmentSetting) error

ContentSetAttachmentSetting - Set attachment filter settings.

setting - new attachment filter settings

func (*ServerConnection) ContentSetBlackLists added in v0.2.0

func (s *ServerConnection) ContentSetBlackLists(ids KIdList, pattern BlackList) (ErrorList, error)

ContentSetBlackLists - Set blacklist item.

ids - list of blacklist global identifier(s)
pattern - pattern to use for new values

Return

errors - error message list

func (*ServerConnection) ContentSetCustomRuleList added in v0.2.0

func (s *ServerConnection) ContentSetCustomRuleList(list CustomRuleList) error

ContentSetCustomRuleList - Set custom rules.

list - custom rule records

func (*ServerConnection) ContentTestGreylistConnection added in v0.2.0

func (s *ServerConnection) ContentTestGreylistConnection() error

ContentTestGreylistConnection - Test connection to the greylisting service. Returns nothing if successful.

func (*ServerConnection) ContentTestIntegratedAntiSpamEngine added in v0.2.0

func (s *ServerConnection) ContentTestIntegratedAntiSpamEngine() (*IntegratedAntiSpamStatus, error)

ContentTestIntegratedAntiSpamEngine - Test connection to the anti-spam service. Returns nothing if successful.

func (*ServerConnection) ContentUpdateAntivirusStatus added in v0.2.0

func (s *ServerConnection) ContentUpdateAntivirusStatus() (*IntegratedAvirUpdateStatus, error)

ContentUpdateAntivirusStatus - Get progress of antivirus updating. Return

status - status of the update process

func (*ServerConnection) ContentUpdateIntegratedAntivirus added in v0.2.0

func (s *ServerConnection) ContentUpdateIntegratedAntivirus() error

ContentUpdateIntegratedAntivirus - Force update of the integrated antivirus.

func (*ServerConnection) DeliveryAddEtrnDownloadList added in v0.2.0

func (s *ServerConnection) DeliveryAddEtrnDownloadList(downloads EtrnDownloadList) (ErrorList, error)

DeliveryAddEtrnDownloadList - Add new ETRN downloads.

downloads - new ETRN download records

Return

errors - list of error messages

func (*ServerConnection) DeliveryAddPop3AccountList added in v0.2.0

func (s *ServerConnection) DeliveryAddPop3AccountList(accounts Pop3AccountList) (ErrorList, error)

DeliveryAddPop3AccountList - Add new POP3 accounts.

accounts - new POP3 account records

Return

errors - list of error messages

func (*ServerConnection) DeliveryAddPop3SortingList added in v0.2.0

func (s *ServerConnection) DeliveryAddPop3SortingList(sortings Pop3SortingList) (ErrorList, error)

DeliveryAddPop3SortingList - Add new POP3 sorting rules.

sortings - new POP3 sorting records

Return

errors - list of error messages

func (*ServerConnection) DeliveryAddScheduledActionList added in v0.2.0

func (s *ServerConnection) DeliveryAddScheduledActionList(actions ScheduledActionList) (ErrorList, error)

DeliveryAddScheduledActionList - Add scheduled actions.

actions - new scheduler actions

Return

errors - list of error messages

func (*ServerConnection) DeliveryDownloadEtrn added in v0.2.0

func (s *ServerConnection) DeliveryDownloadEtrn() error

DeliveryDownloadEtrn - Start ETRN downloads.

func (*ServerConnection) DeliveryGetEtrnDownloadList added in v0.2.0

func (s *ServerConnection) DeliveryGetEtrnDownloadList(query SearchQuery) (EtrnDownloadList, int, error)

DeliveryGetEtrnDownloadList - Obtain list of ETRN download items.

query - query conditions and limits

Return

	list - ETRN download records
 totalItems - amount of records for given search condition, useful when a limit is defined in the query

func (*ServerConnection) DeliveryGetEtrnTimeout added in v0.2.0

func (s *ServerConnection) DeliveryGetEtrnTimeout() (int, error)

DeliveryGetEtrnTimeout - Get timeout for ETRN reply on dial-up line Return

seconds - number of seconds for ETRN timeout

func (*ServerConnection) DeliveryGetInternetSettings added in v0.2.0

func (s *ServerConnection) DeliveryGetInternetSettings() (*InternetSettings, error)

DeliveryGetInternetSettings - Obtain Internet connection settings. Return

settings - Internet connection settings

func (*ServerConnection) DeliveryGetPop3AccountList added in v0.2.0

func (s *ServerConnection) DeliveryGetPop3AccountList(query SearchQuery) (Pop3AccountList, int, error)

DeliveryGetPop3AccountList - Obtain list of POP3 accounts.

query - query conditions and limits

Return

	list - POP3 accounts
 totalItems - amount of accounts for given search condition, useful when a limit is defined in the query

func (*ServerConnection) DeliveryGetPop3SortingList added in v0.2.0

func (s *ServerConnection) DeliveryGetPop3SortingList(query SearchQuery) (Pop3SortingList, int, error)

DeliveryGetPop3SortingList - Obtain list of POP3 sorting rules

query - query conditions and limits

Return

	list - POP3 sorting records
 totalItems - amount of records for given search condition, useful when a limit is defined in the query

func (*ServerConnection) DeliveryGetRasNames added in v0.2.0

func (s *ServerConnection) DeliveryGetRasNames() (StringList, error)

DeliveryGetRasNames - Obtain Remote Access Service. Valid information available on Windows only. Return

names - list of available RAS names

func (*ServerConnection) DeliveryGetScheduledActionList added in v0.2.0

func (s *ServerConnection) DeliveryGetScheduledActionList(query SearchQuery) (ScheduledActionList, int, error)

DeliveryGetScheduledActionList - Obtain a list of scheduler actions.

query - query conditions and limits

Return

	list - scheduler actions
 totalItems - amount of actions for given search condition, useful when limit is defined in query

func (*ServerConnection) DeliveryRemoveEtrnDownloadList added in v0.2.0

func (s *ServerConnection) DeliveryRemoveEtrnDownloadList(ids KIdList) (ErrorList, error)

DeliveryRemoveEtrnDownloadList - Remove ETRN download items.

ids - identifier list of ETRN download records to be deleted

Return

errors - error message list

func (*ServerConnection) DeliveryRemovePop3AccountList added in v0.2.0

func (s *ServerConnection) DeliveryRemovePop3AccountList(ids KIdList) (ErrorList, error)

DeliveryRemovePop3AccountList - Remove POP3 accounts.

ids - identifier list of POP3 account records to be deleted

Return

errors - list of error messages

func (*ServerConnection) DeliveryRemovePop3SortingList added in v0.2.0

func (s *ServerConnection) DeliveryRemovePop3SortingList(ids KIdList) (ErrorList, error)

DeliveryRemovePop3SortingList - Remove POP3 sorting rules.

ids - identifier list of POP3 sorting records to be deleted

Return

errors - list of error messages

func (*ServerConnection) DeliveryRemoveScheduledActionList added in v0.2.0

func (s *ServerConnection) DeliveryRemoveScheduledActionList(ids KIdList) (ErrorList, error)

DeliveryRemoveScheduledActionList - Remove scheduled actions.

ids - identifier list of scheduler actions to be deleted

Return

errors - error message list

func (*ServerConnection) DeliveryRunPop3Downloads added in v0.2.0

func (s *ServerConnection) DeliveryRunPop3Downloads() error

DeliveryRunPop3Downloads - Proceed all POP3 downloads right now.

func (*ServerConnection) DeliverySetEtrnDownload added in v0.2.0

func (s *ServerConnection) DeliverySetEtrnDownload(downloadId KId, download EtrnDownload) error

DeliverySetEtrnDownload - Set 1 ETRN download item.

downloadId - updated ETRN download identifier
download - new ETRN download record

func (*ServerConnection) DeliverySetEtrnTimeout added in v0.2.0

func (s *ServerConnection) DeliverySetEtrnTimeout(seconds int) error

DeliverySetEtrnTimeout - Set timeout for ETRN reply on dial-up line.

seconds - number of seconds for ETRN timeout

func (*ServerConnection) DeliverySetInternetSettings added in v0.2.0

func (s *ServerConnection) DeliverySetInternetSettings(settings InternetSettings) error

DeliverySetInternetSettings - Set Internet connection settings.

settings - Internet connection settings

func (*ServerConnection) DeliverySetPop3Account added in v0.2.0

func (s *ServerConnection) DeliverySetPop3Account(accountId KId, account Pop3Account) error

DeliverySetPop3Account - Set POP3 account.

accountId - updated POP3 account identifier
account - new POP3 account record

func (*ServerConnection) DeliverySetPop3Sorting added in v0.2.0

func (s *ServerConnection) DeliverySetPop3Sorting(sortingId KId, sorting Pop3Sorting) error

DeliverySetPop3Sorting - Set POP3 sorting rule.

sortingId - updated POP3 sorting identifier
sorting - new POP3 sorting record

func (*ServerConnection) DeliverySetScheduledAction added in v0.2.0

func (s *ServerConnection) DeliverySetScheduledAction(actionId KId, action ScheduledAction) error

DeliverySetScheduledAction - Set a scheduled action.

actionId - updated action identifier
action - new scheduler actions

func (*ServerConnection) DistributedDomainConnect added in v0.2.0

func (s *ServerConnection) DistributedDomainConnect(hostName string, adminUser string, password string) (*ClusterError, error)

DistributedDomainConnect - Connect server to cluster as slave.

hostName - name of the master server
adminUser - username of administrator on the master server
password - administrator's password

Return

result - if ClusterErrorType is not clSuccess, error argument contains additional error info

func (*ServerConnection) DistributedDomainCopy added in v0.2.0

func (s *ServerConnection) DistributedDomainCopy(domainName string) error

DistributedDomainCopy - Copy domain from the master server.

domainName - name of the domain on the master server that you want to copy. Name can be obtained by using method getDomainsFromServer.

func (*ServerConnection) DistributedDomainDisconnect added in v0.2.0

func (s *ServerConnection) DistributedDomainDisconnect() error

DistributedDomainDisconnect - Disconnect server from the cluster.

func (*ServerConnection) DistributedDomainGetDistributable added in v0.2.0

func (s *ServerConnection) DistributedDomainGetDistributable(authentication ClusterAuthentication, connected bool) (StringList, error)

DistributedDomainGetDistributable - Retrieve domains, which can be distributed, from the master server as a standalone server.

connected - true means the caller is connected to cluster
authentication - Structure with a credential. Credential will be used when connected is false.

Return

domainNames - List of domains which can be distributed (they have a directory service set).

func (*ServerConnection) DistributedDomainGetHomeServerList added in v0.2.0

func (s *ServerConnection) DistributedDomainGetHomeServerList() (HomeServerList, error)

DistributedDomainGetHomeServerList - Retrieve information about servers in the cluster. Return

servers - List of all servers in cluster.

func (*ServerConnection) DistributedDomainGetRole added in v0.2.0

func (s *ServerConnection) DistributedDomainGetRole() (*ClusterRole, bool, error)

DistributedDomainGetRole - Return server role in the cluster.

func (*ServerConnection) DistributedDomainGetServerList added in v0.2.0

func (s *ServerConnection) DistributedDomainGetServerList() (ClusterServerList, error)

DistributedDomainGetServerList - Retrieve information about servers in the cluster. Return

servers - List of all servers in cluster.

func (*ServerConnection) DistributedDomainGetStatus added in v0.2.0

func (s *ServerConnection) DistributedDomainGetStatus() (bool, bool, error)

DistributedDomainGetStatus - Notes: This method fails if caller has not admin rights; This method fails if there is no cluster Return

isInCluster true if server is not standalone
isError status of error in cluster

func (*ServerConnection) DomainsCheckPublicFoldersIntegrity added in v0.2.0

func (s *ServerConnection) DomainsCheckPublicFoldersIntegrity() error

DomainsCheckPublicFoldersIntegrity - If corrupted folder is found, try to fix it.

func (*ServerConnection) DomainsCreate added in v0.2.0

func (s *ServerConnection) DomainsCreate(domains DomainList) (ErrorList, CreateResultList, error)

DomainsCreate - Create new domains.

domains - new domain entities

Return

errors - error message list
result - particular results for all items

func (*ServerConnection) DomainsGeneratePassword added in v0.2.0

func (s *ServerConnection) DomainsGeneratePassword(domainId KId) (string, error)

DomainsGeneratePassword - Generate password which meets current password policy of a given domain.

domainId - ID of the domain

Return

password - generated password

func (*ServerConnection) DomainsGet added in v0.2.0

func (s *ServerConnection) DomainsGet(query SearchQuery) (DomainList, int, error)

DomainsGet - Obtain a list of domains.

query - query conditions and limits

Return

	list - domains
 totalItems - amount of domains for given search condition, useful when limit is defined in SearchQuery

func (*ServerConnection) DomainsGetDkimDnsRecord added in v0.2.0

func (s *ServerConnection) DomainsGetDkimDnsRecord(domain string) (string, error)

DomainsGetDkimDnsRecord - Returns DNS TXT record to be added into DNS.

func (*ServerConnection) DomainsGetDomainFooterPlaceholders added in v0.2.0

func (s *ServerConnection) DomainsGetDomainFooterPlaceholders() (NamedConstantList, error)

DomainsGetDomainFooterPlaceholders - Return all supported placeholders for domain footer

func (*ServerConnection) DomainsGetSettings added in v0.2.0

func (s *ServerConnection) DomainsGetSettings() (*DomainSetting, error)

DomainsGetSettings - Get settings common in all domains. Return

setting - domain global setting

func (*ServerConnection) DomainsGetUserCountInfo added in v0.2.0

func (s *ServerConnection) DomainsGetUserCountInfo(domainId KId) (*UserDomainCountInfo, error)

DomainsGetUserCountInfo - Get information about user count and limit for domain. Disabled users are not counted.

domainId - ID of the domain which will be renamed

Return

countInfo - structure with users count and limit

func (*ServerConnection) DomainsRemove added in v0.2.0

func (s *ServerConnection) DomainsRemove(domainIds KIdList) (ErrorList, error)

DomainsRemove - Remove domains.

domainIds - list of global identifiers of domains to be deleted

Return

errors - error message list

func (*ServerConnection) DomainsRename added in v0.2.0

func (s *ServerConnection) DomainsRename(domainId KId, newName string) (*ClusterError, error)

DomainsRename - Start domain renaming process.

domainId - ID of the domain which will be renamed
newName - new domain name

Return

error - error message

func (*ServerConnection) DomainsSaveFooterImage added in v0.2.0

func (s *ServerConnection) DomainsSaveFooterImage(fileId string) (string, error)

DomainsSaveFooterImage - Save a new footer's image.

fileId - id of uploaded file

Return

imgUrl - url to saved image
func (s *ServerConnection) DomainsSaveWebMailLogo(fileId string, domainId KId) (string, error)

DomainsSaveWebMailLogo - Save a new logo.

fileId - ID of the uploaded file
domainId - global domain identifier

Return

logoUrl - path to the saved file

func (*ServerConnection) DomainsSet added in v0.2.0

func (s *ServerConnection) DomainsSet(domainIds KIdList, pattern Domain) (ErrorList, error)

DomainsSet - Set existing domains to given pattern.

domainIds - list of the domain's global identifier(s)
pattern - pattern to use for new values

Return

errors - error message list

func (*ServerConnection) DomainsSetSettings added in v0.2.0

func (s *ServerConnection) DomainsSetSettings(setting DomainSetting) error

DomainsSetSettings - Set settings for all domains.

setting - domain global settings

func (*ServerConnection) DomainsTestDkimDnsStatus added in v0.2.0

func (s *ServerConnection) DomainsTestDkimDnsStatus(hostnames StringList) (ErrorList, error)

DomainsTestDkimDnsStatus - Tests DKIM DNS TXT status for domain list.

hostnames - hostnames checked for DKIM public key in DNS

Return

errors - error message

func (*ServerConnection) DomainsTestDomainController added in v0.2.0

func (s *ServerConnection) DomainsTestDomainController(hostnames StringList, config DirectoryServiceConfiguration, domainId KId) (ErrorList, error)

DomainsTestDomainController - Test connection between Kerio Connect and domain controller.

hostnames - directory server (primary and secondary if any)
config - directory service configuration. If password is empty then it is taken from domain by 'domainId'.
domainId - global domain identifier

Return

errors - error message

func (*ServerConnection) DownloadsRemove added in v0.2.0

func (s *ServerConnection) DownloadsRemove(url string) error

DownloadsRemove - Remove file prepared to download.

url - url of file prepared to download

func (*ServerConnection) DumpsGet added in v0.2.0

func (s *ServerConnection) DumpsGet() (DumpList, error)

DumpsGet - Obtain list of available crash dumps Return

dumps - list of all available crash dumps

func (*ServerConnection) DumpsRemove added in v0.2.0

func (s *ServerConnection) DumpsRemove() error

DumpsRemove - Remove all crash dumps from server disk

func (*ServerConnection) DumpsSend added in v0.2.0

func (s *ServerConnection) DumpsSend(description string, email string) error

DumpsSend - Upload last available crash dump to Kerio.

description - plain text information to be sent with crash dump
email - contact information to be sent with crash dump

func (*ServerConnection) GroupsActivate added in v0.2.0

func (s *ServerConnection) GroupsActivate(groupIdList KIdList) (ErrorList, error)

GroupsActivate - Activate groups from a directory service Return

errors - list of error messages for appropriate groups

func (*ServerConnection) GroupsAddMemberList added in v0.2.0

func (s *ServerConnection) GroupsAddMemberList(groupId KId, userList KIdList) (ErrorList, error)

GroupsAddMemberList - Add new member(s) to a group.

groupId - global group identifier
userList - list of global identifiers of users to be added to a group

Return

errors - error message list

func (*ServerConnection) GroupsCreate added in v0.2.0

func (s *ServerConnection) GroupsCreate(groups GroupList) (ErrorList, CreateResultList, error)

GroupsCreate - Create new groups.

groups - new group entities

Return

errors - error message list
result - list of IDs of created groups

func (*ServerConnection) GroupsCreateLdap added in v0.2.0

func (s *ServerConnection) GroupsCreateLdap(groups GroupList) (ErrorList, CreateResultList, error)

GroupsCreateLdap - Create new groups in directory service.

groups - new group entities

Return

errors - error message list
result - list of IDs of created groups

func (*ServerConnection) GroupsGet added in v0.2.0

func (s *ServerConnection) GroupsGet(query SearchQuery, domainId KId) (GroupList, int, error)

GroupsGet - Obtain a list of groups.

query - query conditions and limits

Return

	list - groups
 totalItems - amount of groups for given search condition, useful when limit is defined in SearchQuery

func (*ServerConnection) GroupsRemove added in v0.2.0

func (s *ServerConnection) GroupsRemove(requests GroupRemovalRequestList) (ErrorList, error)

GroupsRemove - Note: it is not necessary to remove members before deleting a group Return

errors - error message list

func (*ServerConnection) GroupsRemoveMemberList added in v0.2.0

func (s *ServerConnection) GroupsRemoveMemberList(groupId KId, userIds KIdList) (ErrorList, error)

GroupsRemoveMemberList - Remove member(s) from a group.

groupId - global group identifier
userIds - list of global identifiers of users to be add to a group

Return

errors - error message list

func (*ServerConnection) GroupsSet added in v0.2.0

func (s *ServerConnection) GroupsSet(groupIds KIdList, pattern Group) (ErrorList, error)

GroupsSet - Create a new group.

groupIds - a list group global identifier(s)
pattern - pattern to use for new values

Return

errors - error message list

func (*ServerConnection) InitCheckHostname added in v0.2.0

func (s *ServerConnection) InitCheckHostname(hostname string) error

InitCheckHostname - Check existence of domain name in the DNS. Existence of DN record with type "A" in appropriate DNS zone.

hostname - fully qualified domain name of the server

func (*ServerConnection) InitCheckMessageStorePath added in v0.2.0

func (s *ServerConnection) InitCheckMessageStorePath(path string) (*DirectoryAccessResult, int, error)

InitCheckMessageStorePath - Check if message store path is correct and can be created in the file system.

path - full path to message store directory

Return

result - result of the check
freeSpace - amount of free space in the directory

func (*ServerConnection) InitCheckMxRecord added in v0.2.0

func (s *ServerConnection) InitCheckMxRecord(domainName string) error

InitCheckMxRecord - Check existence of MX record in the DNS for specified domain.

domainName - fully qualified domain name

func (*ServerConnection) InitCreateAdministratorAccount added in v0.2.0

func (s *ServerConnection) InitCreateAdministratorAccount(loginName string, password string) error

InitCreateAdministratorAccount - Creates the administrator account. This account will be created in primary domain.

loginName - login name for administrator (without domain name)
password - administrator password

func (*ServerConnection) InitCreateDistributableDomain added in v0.2.0

func (s *ServerConnection) InitCreateDistributableDomain(domainName string, authentication ClusterAuthentication) (*ClusterError, error)

InitCreateDistributableDomain - Connect server to cluster as slave and create distributable domain.

domainName - domain which can be distributed (they have a directory service set) and exist on master server.
authentication - Structure with a credential. Credential will be used when connected is false.

Return

result - if ClusterErrorType is not clSuccess, error argument contains additional error info

func (*ServerConnection) InitCreatePrimaryDomain added in v0.2.0

func (s *ServerConnection) InitCreatePrimaryDomain(domainName string) error

InitCreatePrimaryDomain - Creates the primary email domain.

domainName - fully qualified name of the domain

func (*ServerConnection) InitFinish added in v0.2.0

func (s *ServerConnection) InitFinish() error

InitFinish - Finish initial configuration of Kerio Connect.

func (*ServerConnection) InitGetBrowserLanguages added in v0.2.0

func (s *ServerConnection) InitGetBrowserLanguages() (StringList, error)

InitGetBrowserLanguages - Returns a list of user-preferred languages set in browser. Return

calculatedLanguage - a list of 2-character language codes

func (*ServerConnection) InitGetDirs added in v0.2.0

func (s *ServerConnection) InitGetDirs(fullPath string) (DirectoryList, error)

InitGetDirs - Obtain a list of directories in a particular path.

fullPath - directory for listing, if full path is empty logical drives will be listed

Return

dirList - List of directories

func (*ServerConnection) InitGetDistributableDomains added in v0.2.0

func (s *ServerConnection) InitGetDistributableDomains(authentication ClusterAuthentication) (StringList, error)

InitGetDistributableDomains - Retrieve domains, which can be distributed, from the master server as a standalone server.

authentication - Structure with a credential. Credential will be used when connected is false.

Return

domainNames - List of domains which can be distributed (they have a directory service set).

func (*ServerConnection) InitGetEula added in v0.2.0

func (s *ServerConnection) InitGetEula() (string, error)

InitGetEula - Obtain EULA. Return

content - plain text of EULA

func (*ServerConnection) InitGetHostname added in v0.2.0

func (s *ServerConnection) InitGetHostname() (string, error)

InitGetHostname - Returns FQDN (fully qualified domain name) of the server (e.g. mail.companyname.com). Return

hostname - name of the server

func (*ServerConnection) InitGetMessageStorePath added in v0.2.0

func (s *ServerConnection) InitGetMessageStorePath() (string, int, error)

InitGetMessageStorePath - Get current path to message store. Default path is "store" subdirectory in installation directory. Return

path - full path to message store directory
freeSpace - amoun