connect

package module
v0.1.2 Latest Latest
Warning

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

Go to latest
Published: May 30, 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 several Administration API for Kerio Connect methods

Created the basis for easily adding your own 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 remaining methods for Kerio Connect

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 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 AdditionalInfo added in v0.1.2

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

type Administration

type Administration struct {
	IsEnabled                   bool   `json:"isEnabled"`
	IsLimited                   bool   `json:"isLimited"`
	GroupID                     string `json:"groupId"`
	GroupName                   string `json:"groupName"`
	BuiltInAdminEnabled         bool   `json:"builtInAdminEnabled"`
	BuiltInAdminUsername        string `json:"builtInAdminUsername"`
	BuiltInAdminPassword        string `json:"builtInAdminPassword"`
	BuiltInAdminPasswordIsEmpty bool   `json:"builtInAdminPasswordIsEmpty"`
	BuiltInAdminUsernameCollide bool   `json:"builtInAdminUsernameCollide"`
}

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 Alias added in v0.0.3

type Alias struct {
	ID          KId        `json:"id"`
	DomainID    KId        `json:"domainId"`
	Name        string     `json:"name"`
	DeliverToID KId        `json:"deliverToId"`
	DeliverTo   string     `json:"deliverTo"`
	Type        string     `json:"type"`
	Description string     `json:"description"`
	HomeServer  HomeServer `json:"homeServer"`
}

type AliasList added in v0.0.3

type AliasList []Alias

type AliasTarget added in v0.0.3

type AliasTarget struct {
	ID           string     `json:"id"`           // unique identifier
	Type         string     `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    string     `json:"isEnabled"`    // is the User/Group enabled?
	ItemSource   string     `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
}

type AliasTargetList added in v0.0.3

type AliasTargetList []AliasTarget

type AntibombingStats added in v0.1.2

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

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 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 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 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 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) TODO
	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
	// Day Day `json:"day"` // Backup schedule day of week TODO
	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 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 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 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 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 Parameters:

dest   - control destination (Admin - for server control, Client - for mail client control)
server - address without schema and port

func (*Config) NewConnection

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

type Connection

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

func (*Connection) AccessPolicyCreate added in v0.1.2

func (c *Connection) AccessPolicyCreate(rules AccessPolicyRuleList) (ErrorList, CreateResultList, error)

AccessPolicyCreate - Add new policies. Parameters

rules - new policies rules

Return

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

func (*Connection) AccessPolicyCreateGroupList added in v0.1.2

func (c *Connection) AccessPolicyCreateGroupList(groups AccessPolicyGroupList) (ErrorList, CreateResultList, error)

AccessPolicyCreateGroupList - Create the list of groups. Parameters

groups - list of groups to create

Return

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

func (*Connection) AccessPolicyGet added in v0.1.2

func (c *Connection) AccessPolicyGet(query SearchQuery) (AccessPolicyRuleList, error)

AccessPolicyGet - Obtain a list of policies. Parameters

query - query attributes and limits

Return

list - policies

func (*Connection) AccessPolicyGetGroupList added in v0.1.2

func (c *Connection) AccessPolicyGetGroupList() (AccessPolicyGroupList, error)

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

groups - list of Access policy groups

func (*Connection) AccessPolicyGetServiceList added in v0.1.2

func (c *Connection) AccessPolicyGetServiceList() (ServiceTypeInfoList, error)

AccessPolicyGetServiceList - Get the list of services. Return

services - list of service info

func (*Connection) AccessPolicyRemove added in v0.1.2

func (c *Connection) AccessPolicyRemove(ruleIds KIdList) (ErrorList, error)

AccessPolicyRemove - Remove policies. Parameters

ruleIds - list of IDs of policy to be removed

Return

errors - error message list

func (*Connection) AccessPolicyRemoveGroupList added in v0.1.2

func (c *Connection) AccessPolicyRemoveGroupList(groupIds KIdList) (ErrorList, error)

AccessPolicyRemoveGroupList - Remove the list of groups. Parameters

groupIds - list of IDs of group policy to be removed

Return

errors - error message list

func (*Connection) AccessPolicySet added in v0.1.2

func (c *Connection) AccessPolicySet(rules AccessPolicyRuleList) (ErrorList, error)

AccessPolicySet - Set policy details. Parameters

rules - rules to save

Return

errors - error message list

func (*Connection) AccessPolicySetGroupList added in v0.1.2

func (c *Connection) AccessPolicySetGroupList(groups AccessPolicyGroupList) (ErrorList, error)

AccessPolicySetGroupList - Set the list of groups. Parameters

groups - list of group to set

Return

errors - error message list

func (*Connection) AliasesCheck added in v0.0.3

func (c *Connection) AliasesCheck(checkString string) ([]string, error)

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

checkString	- string to be checked

Return

list of expansions

func (*Connection) AliasesCreate added in v0.0.3

func (c *Connection) AliasesCreate(aliases AliasList) (CreateResultList, ErrorList, error)

AliasesCreate - create new aliases. Parameters

aliases	- new alias entities

Return

list of IDs of created aliases
list of error messages for appropriate new aliases

func (*Connection) AliasesGet added in v0.0.3

func (c *Connection) AliasesGet(domainID string, query SearchQuery) (AliasList, error)

AliasesGet obtains a list of aliases. Parameters

query	    - query conditions and limits
domainKId	- domain identification

Return

aliases

func (*Connection) AliasesGetMailPublicFolderList added in v0.0.3

func (c *Connection) AliasesGetMailPublicFolderList(domainID string) (PublicFolderList, error)

AliasesGetMailPublicFolderList obtains a list of mail public folders in the given domain. Parameters

domainId	- global identification of the domain

Return

list of public folders

func (*Connection) AliasesGetTargetList added in v0.0.3

func (c *Connection) AliasesGetTargetList(domainID string, query SearchQuery) (AliasTargetList, error)

AliasesGetTargetList obtains a list of alias targets. Parameters

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

Return

alias targets

func (*Connection) AliasesRemove added in v0.0.3

func (c *Connection) AliasesRemove(aliasIDs []string) (ErrorList, error)

AliasesRemove - Delete aliases. Parameters

aliasList	- list of global identifiers of aliases to be deleted

Return

error message list

func (*Connection) AliasesSet added in v0.0.3

func (c *Connection) AliasesSet(aliasIDs []string, pattern Alias) (ErrorList, error)

AliasesSet - Set an existing alias. Parameters

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

Return

error message list

func (*Connection) ArchiveGet added in v0.1.2

func (c *Connection) ArchiveGet() (*ArchiveOptions, error)

ArchiveGet - Obtain archive options. Return

options - current archive options

func (*Connection) ArchiveGetImArchiveFile added in v0.1.2

func (c *Connection) ArchiveGetImArchiveFile(fromDate Date, toDate Date) (*Download, error)

ArchiveGetImArchiveFile - Returns link to IM archive file in given period

func (*Connection) ArchiveGetXmppArchiveFiles added in v0.1.2

func (c *Connection) ArchiveGetXmppArchiveFiles() (DownloadList, error)

ArchiveGetXmppArchiveFiles - Returns links to available Instant Messaging archive files

func (*Connection) ArchiveSet added in v0.1.2

func (c *Connection) ArchiveSet(options ArchiveOptions) error

ArchiveSet - Set archive options. Parameters

options - archive options

func (*Connection) CallRaw

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

func (*Connection) CancelSearch added in v0.1.2

func (c *Connection) CancelSearch(searchId string) error

CancelSearch - Cancel search on server (useful for large logs). Parameters

searchId - identifier from search()

func (*Connection) Clear added in v0.1.2

func (c *Connection) Clear(logName LogType) error

Clear - Delete all log lines. Parameters

logName - unique name of the log

func (*Connection) DomainsCheckPublicFoldersIntegrity

func (c *Connection) DomainsCheckPublicFoldersIntegrity() error

DomainsCheckPublicFoldersIntegrity checks integrity of all public folders. If corrupted folder is found, try to fix it.

func (*Connection) DomainsGet

func (c *Connection) DomainsGet(query SearchQuery) (DomainList, error)

DomainsGet obtains a list of domains.

func (*Connection) DomainsGetDomainFooterPlaceholders

func (c *Connection) DomainsGetDomainFooterPlaceholders() (PlaceHolderList, error)

DomainsGetDomainFooterPlaceholders returns all supported placeholders for domain footer.

func (*Connection) DomainsGetSettings

func (c *Connection) DomainsGetSettings() (*DomainSetting, error)

DomainsGetSettings obtains settings common in all domains.

func (*Connection) DomainsSaveFooterImage

func (c *Connection) DomainsSaveFooterImage(fileID string) (string, error)

DomainsSaveFooterImage - save a new footer's image.

func (*Connection) DownloadsRemove added in v0.1.2

func (c *Connection) DownloadsRemove(url string) error

DownloadsRemove - Remove file prepared to download. Parameters

url - url of file prepared to download

func (*Connection) ExportLog added in v0.1.2

func (c *Connection) ExportLog(logName LogType, fromLine int, countLines int, format ExportFormat) (*Download, error)

ExportLog - Exporting a given log. Parameters

logName - unique name of the log
fromLine - number of the line to start the search from;
countLines - number of lines to transfer; Unlimited - symbolic name for end of log
type - export file type

Return

fileDownload - file download structure

func (*Connection) ExportLogRelative added in v0.1.2

func (c *Connection) ExportLogRelative(logName LogType, fromLine int, countLines int, format ExportFormat) (*Download, error)

ExportLogRelative - Exporting a given log with relative download path. Parameters

logName - unique name of the log
fromLine - number of the line to start the search from;
countLines - number of lines to transfer; Unlimited - symbolic name for end of log
type - export file type

Return

fileDownload - file download structure

func (*Connection) Get added in v0.1.2

func (c *Connection) Get(logName LogType, fromLine int, countLines int) (LogRowList, error)

Get - Obtain log data without linebreaks. Parameters

logName - unique name of the log
fromLine - number of the line to start from; if (fromLine == Unlimited) then fromline is end of log minus countLines
countLines - number of lines to transfer

Return

viewport - list of log lines; count of lines = min(count, NUMBER_OF_CURRENT LINES - from)

func (*Connection) GetHighlightRules added in v0.1.2

func (c *Connection) GetHighlightRules() (*HighlightRules, error)

GetHighlightRules - Obtain a list of sorted highlighting rules. Return

rules - highlight rules

func (*Connection) GetLogSet added in v0.1.2

func (c *Connection) GetLogSet() (*LogSet, error)

GetLogSet - Retrieve set of valid logs. Return

logSet - list of valid logs

func (*Connection) GetMessages added in v0.1.2

func (c *Connection) GetMessages() (TreeLeafList, error)

GetMessages - Obtain log message settings; make sense only if LogItem.hasMessages == true. Return

messages - tree of log messages

func (*Connection) GetSearchProgress added in v0.1.2

func (c *Connection) GetSearchProgress(countLines int, searchId string) (LogRowList, int, *SearchStatus, int, error)

GetSearchProgress - Clears timeout for search() and obtains status of the search. Parameters

countLines - number of lines to transfer
searchId - identifier from search()

Return

viewport - list of log lines
firstLine - first matching line
status - current status of the search
percentage - already finished search <0;100>

func (*Connection) GetSettings added in v0.1.2

func (c *Connection) GetSettings(logName LogType) (*LogSettings, error)

GetSettings - Obtain log settings. Parameters

logName - unique name of the log

Return

currentSettings - current valid settings (or undefined data on failure)

func (*Connection) Login

func (c *Connection) Login(user, password string, app *ApiApplication) error

Login - log in a given user. Please note that with a session to one module you cannot use another one (eg. with admin session you cannot use webmail). Parameters:

user     - login name + domain name (can be omitted if primary) of the user to be logged in,
           e.g. "jdoe" or "jdoe@company.com"
password - password of the user to be logged in
app      - client application description

func (*Connection) Logout

func (c *Connection) Logout() error

Logout - Log out the callee

func (*Connection) QueueGet added in v0.0.3

func (c *Connection) QueueGet(query SearchQuery)

TODO QueueGet QueueGet obtains a list of queued messages. Parameters

list	- awaiting messages
totalItems	- number of listed messages
volume	- space occupied by messages in the queue
query	- search conditions

func (*Connection) QueueGetProcessed added in v0.0.3

func (c *Connection) QueueGetProcessed(query SearchQuery) ([]string, error)

QueueGetProcessed - list messages that are being processed by the server.

Parameters
    query	- search conditions

func (*Connection) QueueRemove added in v0.0.3

func (c *Connection) QueueRemove(messageIDs []string) (int, error)

QueueRemove - remove selected messages from the message queue.

Parameters
    messageIDs	- identifiers of messages to be deleted

Return number of items deleted from the message queue

func (*Connection) QueueRemoveAll added in v0.0.3

func (c *Connection) QueueRemoveAll() (int, error)

QueueRemoveAll - remove all message from the queue. Return number of items deleted from the message queue

func (*Connection) QueueRemoveMatching added in v0.0.3

func (c *Connection) QueueRemoveMatching(senderPattern, recipientPattern string) (int, error)

QueueRemoveMatching - remove all messages matching a pattern from the message queue.

Parameters
    senderPattern	    - sender pattern with wildcards
    recipientPattern    - recipient pattern with wildcards

Return number of items deleted from the message queue

func (*Connection) QueueRun added in v0.0.3

func (c *Connection) QueueRun() error

QueueRun - try to process message queue immediately.

func (*Connection) QueueTryToSend added in v0.0.3

func (c *Connection) QueueTryToSend(messageIDs []string) error

QueueTryToSend - try to send selected messages.

Parameters
    messageIDs	- identifiers of messages to be sent immediately.

func (*Connection) Search added in v0.1.2

func (c *Connection) Search(logName LogType, what string, fromLine int, toLine int, forward bool) (*string, error)

Search - Start searching for a string in a given log; The search exists 1 minute unless prolonged by getSearchProgress. Parameters

logName - unique name of the log
what - searched string
fromLine - line to start searching from; fromLine>toLine means search up; Unlimited - symbolic name for end of log
toLine - line to start searching from; fromLine<toLine means search down
forward - direction of the search; true = forward, false = backward

Return

searchId - identifier that can be used for cancelSearch and getSearchProgress

func (*Connection) ServerGetBrowserLanguages

func (c *Connection) ServerGetBrowserLanguages() ([]string, error)

ServerGetBrowserLanguages returns a list of user-preferred languages set in browser.

func (*Connection) ServerGetClientStatistics

func (c *Connection) ServerGetClientStatistics() (bool, error)

ServerGetClientStatistics obtains client statistics settings.

func (*Connection) ServerGetColumnList

func (c *Connection) ServerGetColumnList(objectName, methodName string) ([]string, error)

ServerGetColumnList obtains a list of columns dependent on callee role.

func (*Connection) ServerGetConnections

func (c *Connection) ServerGetConnections(query SearchQuery) (ConnectionList, error)

ServerGetConnections obtains a information about active connections.

func (*Connection) ServerGetDirs

func (c *Connection) ServerGetDirs(path string) ([]DirList, error)

ServerGetDirs obtains a list of directories in a particular path.

func (*Connection) ServerGetDownloadProgress

func (c *Connection) ServerGetDownloadProgress() (int, error)

ServerGetDownloadProgress obtains a progress of installation package downloading.

func (*Connection) ServerGetLicenseExtensionsList

func (c *Connection) ServerGetLicenseExtensionsList() (ExtensionsList, error)

ServerGetLicenseExtensionsList obtains a list of license extensionsList, caller must be authenticated.

func (*Connection) ServerGetNamedConstantList

func (c *Connection) ServerGetNamedConstantList() (NamedConstantList, error)

ServerGetNamedConstantList obtains server side list of constants.

func (*Connection) ServerGetOpenedFoldersInfo

func (c *Connection) ServerGetOpenedFoldersInfo(query SearchQuery) (FolderInfoList, error)

ServerGetOpenedFoldersInfo obtains a information about folders opened on server.

func (*Connection) ServerGetProductInfo

func (c *Connection) ServerGetProductInfo() (*ProductInfo, error)

ServerGetProductInfo gets basic information about product and its version.

func (*Connection) ServerGetRemoteAdministration

func (c *Connection) ServerGetRemoteAdministration() (*Administration, error)

ServerGetRemoteAdministration obtains a information about remote administration settings.

func (*Connection) ServerGetServerHash

func (c *Connection) ServerGetServerHash() (string, error)

ServerGetServerHash obtains a hash string created from product name, version, and installation time.

func (*Connection) ServerGetServerIpAddresses

func (c *Connection) ServerGetServerIpAddresses() ([]string, error)

ServerGetServerIpAddresses obtains a list all server IP addresses.

func (*Connection) ServerGetServerTime

func (c *Connection) ServerGetServerTime() (*ServerTimeInfo, error)

ServerGetServerTime obtains server time information.

func (*Connection) ServerGetVersion

func (c *Connection) ServerGetVersion() (*ServerVersion, error)

ServerGetVersion obtains a information about server version.

func (*Connection) ServerGetWebSessions

func (c *Connection) ServerGetWebSessions(query SearchQuery) ([]WebSessionList, error)

ServerGetWebSessions obtains a information about web component sessions.

func (*Connection) ServerKillWebSessions added in v0.0.2

func (c *Connection) ServerKillWebSessions(ids []string) error

ServerKillWebSessions Terminate actual web sessions.

func (*Connection) ServerPathExists

func (c *Connection) ServerPathExists(username, password, path string) (string, error)

ServerPathExists checks if the selected path exists and is accessible from the server. Parameters:

path	    - directory name
credentials	- (optional) user name and password required to access network disk
result	    - result of check

func (*Connection) ServerReboot

func (c *Connection) ServerReboot() error

ServerReboot - reboot the host system

func (*Connection) ServerRestart

func (c *Connection) ServerRestart() error

ServerRestart - restart server. The server must run as service.

func (*Connection) ServerSendBugReport added in v0.0.2

func (c *Connection) ServerSendBugReport(name, email, language, subject, description string) error

ServerSendBugReport send a bug report to Kerio. Parameters:

name	    - name of sender
email	    - email of sender
language	- language of report
subject     - summary of report
description	- description of problem

func (*Connection) ServerSetClientStatistics added in v0.0.2

func (c *Connection) ServerSetClientStatistics(isEnabled bool) error

ServerSetClientStatistics set client statistics settings.

func (*Connection) ServerSetRemoteAdministration added in v0.0.2

func (c *Connection) ServerSetRemoteAdministration(setting *Administration) error

ServerSetRemoteAdministration obtains a information about remote administration settings.

func (*Connection) ServerUpgrade

func (c *Connection) ServerUpgrade() error

ServerUpgrade - upgrade server to the latest version. The server must run as service.

func (*Connection) ServerValidateRemoteAdministration added in v0.0.2

func (c *Connection) ServerValidateRemoteAdministration(setting *Administration) error

ServerValidateRemoteAdministration obtains a information about remote administration settings.

func (*Connection) SessionGetDomain

func (c *Connection) SessionGetDomain() (*Domain, error)

SessionGetDomain gets domain information of the currently logged user. Only name, displayName, ID, description and password policy related fields are filled.

func (*Connection) SessionWhoAmI

func (c *Connection) SessionWhoAmI() (*UserDetails, error)

SessionWhoAmI determines the currently logged user (caller, e.g. administrator). Fields id and domainId can be empty if built-in administrator is logged-in.

func (*Connection) SetHighlightRules added in v0.1.2

func (c *Connection) SetHighlightRules(rules HighlightRules) error

SetHighlightRules - Set highlighting rules, rules have to be sorted purposely, the only way to change a rule is to change the whole ruleset. Parameters

rules - highlight rules (ordered by priority)

func (*Connection) SetMessages added in v0.1.2

func (c *Connection) SetMessages(messages TreeLeafList) error

SetMessages - Change log message settings; makes sense only if LogItem.hasMessages == true. Parameters

messages - tree of log messages

func (*Connection) SetSettings added in v0.1.2

func (c *Connection) SetSettings(logName LogType, newSettings LogSettings) error

SetSettings - Change log settings. Parameters

logName - unique name of the log
newSettings

type ConnectionList

type ConnectionList []Connections

type Connections

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

type Constant

type Constant struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

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 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 DayWeekMonthPeriod added in v0.1.2

type DayWeekMonthPeriod string

type DeployedType added in v0.1.2

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

type DirList

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

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 DirectoryList added in v0.1.2

type DirectoryList []Directory

List of restrictions

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 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                        string `json:"id"`
	Name                      string `json:"name"`
	Description               string `json:"description"`
	IsPrimary                 bool   `json:"isPrimary"`
	UserMaxCount              int    `json:"userMaxCount"`
	PasswordExpirationEnabled bool   `json:"passwordExpirationEnabled"`
	PasswordExpirationDays    int    `json:"passwordExpirationDays"`
	PasswordHistoryCount      int    `json:"passwordHistoryCount"`
	PasswordComplexityEnabled bool   `json:"passwordComplexityEnabled"`
	PasswordMinimumLength     int    `json:"passwordMinimumLength"`
	OutgoingMessageLimit      `json:"outgoingMessageLimit"`
	DeletedItems              ActionAfterDays `json:"deletedItems"`
	JunkEmail                 ActionAfterDays `json:"junkEmail"`
	SentItems                 ActionAfterDays `json:"sentItems"`
	AutoDelete                ActionAfterDays `json:"autoDelete"`
	KeepForRecovery           `json:"keepForRecovery"`
	AliasList                 []interface{} `json:"aliasList"`
	ForwardingOptions         `json:"forwardingOptions"`
	Service                   struct {
		IsEnabled      bool   `json:"isEnabled"`
		ServiceType    string `json:"serviceType"`
		CustomMapFile  string `json:"customMapFile"`
		Authentication struct {
			Username string `json:"username"`
			Password string `json:"password"`
			IsSecure bool   `json:"isSecure"`
		} `json:"authentication"`
		Hostname       string `json:"hostname"`
		BackupHostname string `json:"backupHostname"`
		DirectoryName  string `json:"directoryName"`
		LdapSuffix     string `json:"ldapSuffix"`
	} `json:"service"`
	DomainFooter struct {
		IsUsed         bool   `json:"isUsed"`
		Text           string `json:"text"`
		IsHTML         bool   `json:"isHtml"`
		IsUsedInDomain bool   `json:"isUsedInDomain"`
	} `json:"domainFooter"`
	KerberosRealm string `json:"kerberosRealm"`
	WinNtName     string `json:"winNtName"`
	PamRealm      string `json:"pamRealm"`
	IPAddressBind struct {
		Enabled bool   `json:"enabled"`
		Value   string `json:"value"`
	} `json:"ipAddressBind"`
		IsUsed bool   `json:"isUsed"`
		URL    string `json:"url"`
	} `json:"logo"`
		IsEnabled bool   `json:"isEnabled"`
		URL       string `json:"url"`
		ID        string `json:"id"`
	} `json:"customClientLogo"`
	CheckSpoofedSender bool `json:"checkSpoofedSender"`
	RenameInfo         `json:"renameInfo"`
	DomainQuota        struct {
		DiskSizeLimit struct {
			IsActive bool `json:"isActive"`
			Limit    struct {
				Value int    `json:"value"`
				Units string `json:"units"`
			} `json:"limit"`
		} `json:"diskSizeLimit"`
		ConsumedSize struct {
			Value int    `json:"value"`
			Units string `json:"units"`
		} `json:"consumedSize"`
		Notification struct {
			Type   string `json:"type"`
			Period struct {
				Value int    `json:"value"`
				Units string `json:"units"`
			} `json:"period"`
		} `json:"notification"`
		WarningLimit int    `json:"warningLimit"`
		Email        string `json:"email"`
		Blocks       bool   `json:"blocks"`
	} `json:"domainQuota"`
	IsDistributed             bool   `json:"isDistributed"`
	IsDkimEnabled             bool   `json:"isDkimEnabled"`
	IsLdapManagementAllowed   bool   `json:"isLdapManagementAllowed"`
	IsInstantMessagingEnabled bool   `json:"isInstantMessagingEnabled"`
	UseRemoteArchiveAddress   bool   `json:"useRemoteArchiveAddress"`
	RemoteArchiveAddress      string `json:"remoteArchiveAddress"`
	ArchiveLocalMessages      bool   `json:"archiveLocalMessages"`
	ArchiveIncomingMessages   bool   `json:"archiveIncomingMessages"`
	ArchiveOutgoingMessages   bool   `json:"archiveOutgoingMessages"`
	ArchiveBeforeFilter       bool   `json:"archiveBeforeFilter"`
}

type DomainInfo

type DomainInfo struct {
	ID                   string `json:"id"`
	Name                 string `json:"name"`
	Description          string `json:"description"`
	IsPrimary            bool   `json:"isPrimary"`
	UserMaxCount         int    `json:"userMaxCount"`
	OutgoingMessageLimit `json:"outgoingMessageLimit"`
	KeepForRecovery      `json:"keepForRecovery"`
	AliasList            []interface{} `json:"aliasList"`
	ForwardingOptions    `json:"forwardingOptions"`
	KerberosRealm        string `json:"kerberosRealm"`
	WinNtName            string `json:"winNtName"`
	PamRealm             string `json:"pamRealm"`
	IPAddressBind        struct {
		Enabled bool   `json:"enabled"`
		Value   string `json:"value"`
	} `json:"ipAddressBind"`
	RenameInfo    `json:"renameInfo"`
	IsDistributed bool `json:"isDistributed"`
}

type DomainList

type DomainList []DomainInfo

type DomainSetting

type DomainSetting struct {
	Hostname               string `json:"hostname"`
	PublicFoldersPerDomain bool   `json:"publicFoldersPerDomain"`
	ServerID               string `json:"serverId"`
}

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 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 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 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 ExtensionsList

type ExtensionsList []string

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 FolderInfo

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

type FolderInfoList

type FolderInfoList []FolderInfo

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 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 GreylistingStats added in v0.1.2

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

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 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 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 IpAddress added in v0.1.2

type IpAddress string

type IpAddressList added in v0.1.2

type IpAddressList []IpAddress

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 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 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 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 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 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 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 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"` TODO
	// 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 PlaceHolderList

type PlaceHolderList []Constant

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 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 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 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 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 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 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 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")

func NewSearchQuery

func NewSearchQuery(fields []string, conditions SubConditionList, combining LogicalOperator, start, limit int, orderBy SortOrderList) SearchQuery

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 ServerDirectoryType added in v0.1.2

type ServerDirectoryType string

ServerDirectoryType - Type of user directory

const (
	WinNT            ServerDirectoryType = "WinNT"            // Windows NT Domain directory (Win NT 4.0)
	ActiveDirectory  ServerDirectoryType = "ActiveDirectory"  // Active Directory (Windows 2000 and newer)
	NovellEDirectory ServerDirectoryType = "NovellEDirectory" // Novell eDirectory
)

type ServerOs added in v0.1.2

type ServerOs string

Operating System Family

const (
	Windows ServerOs = "Windows"
	MacOs   ServerOs = "MacOs"
	Linux   ServerOs = "Linux"
)

type ServerStatistics added in v0.1.2

type ServerStatistics struct {
	Start             DateTimeStamp     `json:"start"`
	Uptime            Distance          `json:"uptime"` // server uptime
	Storage           OccupiedStorage   `json:"storage"`
	Received          MessageThroughput `json:"received"`          // messages received by server
	StoredInQueue     MessageThroughput `json:"storedInQueue"`     // messages stored in queue
	Transmitted       MessageThroughput `json:"transmitted"`       // messages transmitted by server
	DeliveredToLocals MessageThroughput `json:"deliveredToLocals"` // messages delivered to local domains
	Mx                MessageThroughput `json:"mx"`                // messages sent to remote MX servers
	Relay             MessageThroughput `json:"relay"`             // messages sent to relay server
	Failures          FailureAndBounce  `json:"failures"`
	DeliveryStatus    Notifications     `json:"deliveryStatus"`
	Antivirus         AntivirusStats    `json:"antivirus"`
	Spam              SpamStats         `json:"spam"`
	Other             OtherStats        `json:"other"`
	SmtpServer        SmtpServerStats   `json:"smtpServer"`
	SmtpClient        SmtpClientStats   `json:"smtpClient"`
	Pop3Server        Pop3ServerStats   `json:"pop3Server"`
	Pop3Client        Pop3ClientStats   `json:"pop3Client"`
	ImapServer        ImapServerStats   `json:"imapServer"`
	LdapServer        LdapServerStats   `json:"ldapServer"`
	WebServer         WebServerStats    `json:"webServer"`
	XmppServer        XmppServerStats   `json:"xmppServer"`
	DnsResolver       DnsResolverStats  `json:"dnsResolver"`
	Antibombing       AntibombingStats  `json:"antibombing"`
	Greylisting       GreylistingStats  `json:"greylisting"`
}

type ServerTimeInfo

type ServerTimeInfo struct {
	TimezoneOffset int `json:"timezoneOffset"`
	StartTime      int `json:"startTime"`
	CurrentTime    int `json:"currentTime"`
}

type ServerVersion

type ServerVersion struct {
	Product  string `json:"product"`
	Version  string `json:"version"`
	Major    int    `json:"major"`
	Minor    int    `json:"minor"`
	Revision int    `json:"revision"`
	Build    int    `json:"build"`
}

type ServiceType added in v0.1.2

type ServiceType string
const (
	ServiceActiveSync ServiceType = "ServiceActiveSync" // ActiveSync
	ServiceEWS        ServiceType = "ServiceEWS"        // EWS
	ServiceIMAP       ServiceType = "ServiceIMAP"       // IMAP, Kerio Outlook Connector
	ServiceKoff       ServiceType = "ServiceKoff"       // Kerio Outlook Connector (Offline Edition)
	ServicePOP3       ServiceType = "ServicePOP3"       // POP3
	ServiceWebDAV     ServiceType = "ServiceWebDAV"     // WebDAV, CalDAV, CardDAV
	ServiceWebMail    ServiceType = "ServiceWebMail"    // WebMail
	ServiceXMPP       ServiceType = "ServiceXMPP"       // XMPP
)

type ServiceTypeInfo added in v0.1.2

type ServiceTypeInfo struct {
	Service     ServiceType `json:"service"`     // type of service
	Description string      `json:"description"` // description of service enum
}

type ServiceTypeInfoList added in v0.1.2

type ServiceTypeInfoList []ServiceTypeInfo

type SettingPath added in v0.1.2

type SettingPath []string

type SettingQuery added in v0.1.2

type SettingQuery []SettingPath

type SeverityUnit added in v0.1.2

type SeverityUnit string

SeverityUnit - Available types of severity

const (
	SeverityEmergency     SeverityUnit = "SeverityEmergency"
	SeverityAlert         SeverityUnit = "SeverityAlert"
	SeverityCritical      SeverityUnit = "SeverityCritical"
	SeverityError         SeverityUnit = "SeverityError"
	SeverityWarning       SeverityUnit = "SeverityWarning"
	SeverityNotice        SeverityUnit = "SeverityNotice"
	SeverityInformational SeverityUnit = "SeverityInformational"
	SeverityDebug         SeverityUnit = "SeverityDebug"
)

type SizeLimit added in v0.1.2

type SizeLimit struct {
	IsActive bool               `json:"isActive"`
	Limit    ByteValueWithUnits `json:"limit"`
}

SizeLimit - Settings of size limit Note: all fields must be assigned if used in set methods

type SmtpClientStats added in v0.1.2

type SmtpClientStats struct {
	ConnectionAttempts string `json:"connectionAttempts"`
	DnsFailures        string `json:"dnsFailures"`
	ConnectionFailures string `json:"connectionFailures"`
	ConnectionLosses   string `json:"connectionLosses"`
}

type SmtpServerStats added in v0.1.2

type SmtpServerStats struct {
	TotalIncomingConnections string `json:"totalIncomingConnections"`
	LostConnections          string `json:"lostConnections"`
	RejectedByBlacklist      string `json:"rejectedByBlacklist"`
	AuthenticationAttempts   string `json:"authenticationAttempts"`
	AuthenticationFailures   string `json:"authenticationFailures"`
	RejectedRelays           string `json:"rejectedRelays"`
	AcceptedMessages         string `json:"acceptedMessages"`
}

type SortDirection added in v0.1.2

type SortDirection string

SortDirection - Sorting Direction

const (
	Asc  SortDirection = "Asc"  // ascending order
	Desc SortDirection = "Desc" // descending order
)

type SortOrder added in v0.1.0

type SortOrder struct {
	ColumnName    string        `json:"columnName"`
	Direction     SortDirection `json:"direction"`
	CaseSensitive bool          `json:"caseSensitive"`
}

SortOrder - Sorting Order

type SortOrderList added in v0.1.2

type SortOrderList []SortOrder

SortOrderList - List of Sorting Orders

type SpamStats added in v0.1.2

type SpamStats struct {
	Checked         string `json:"checked"`         // how many checked messages
	Tagged          string `json:"tagged"`          // how many tagged messages
	Rejected        string `json:"rejected"`        // how many rejected messages
	MarkedAsSpam    string `json:"markedAsSpam"`    // how many messages were marked as spam by users
	MarkedAsNotSpam string `json:"markedAsNotSpam"` // how many messages were marked as NOT spam by users
}

type StoreDirectoryOptions added in v0.1.2

type StoreDirectoryOptions struct {
	StorePath         string             `json:"storePath"`         // Path to the store directory
	ArchivePath       string             `json:"archivePath"`       // Path to the archive
	BackupPath        string             `json:"backupPath"`        // Path to the backup
	WatchdogSoftLimit ByteValueWithUnits `json:"watchdogSoftLimit"` // If the available disk space falls below this value, a warning message is displayed
	WatchdogHardLimit ByteValueWithUnits `json:"watchdogHardLimit"` // If the available disk space falls below this value, Kerio MailServer is stopped and an error message is displayed. Administrator's action is required.
}

type StoreStatus added in v0.1.2

type StoreStatus string

StoreStatus - Status of entry in persistent manager

const (
	StoreStatusClean    StoreStatus = "StoreStatusClean"    // already present in configuration store
	StoreStatusModified StoreStatus = "StoreStatusModified" // update waiting for apply()
	StoreStatusNew      StoreStatus = "StoreStatusNew"      // added to manager but not synced to configuration store
)

type StringList added in v0.1.2

type StringList []string

StringList - Type for lists of strings.

type SubCondition added in v0.1.0

type SubCondition struct {
	FieldName  string          `json:"fieldName"`  // left side of condition
	Comparator CompareOperator `json:"comparator"` // middle of condition
	Value      string          `json:"value"`      // right side of condition
}

SubCondition - A Part of a Condition

type SubConditionList added in v0.1.2

type SubConditionList []SubCondition

SubConditionList - A Complete Condition

type SyslogSettings added in v0.1.2

type SyslogSettings struct {
	Enabled     bool         `json:"enabled"`     // Syslog is [dis|en]abled
	ServerUrl   string       `json:"serverUrl"`   // Path to syslog server
	Facility    FacilityUnit `json:"facility"`    // which facility is message sent from
	Severity    SeverityUnit `json:"severity"`    // read-only; severity level of message
	Application string       `json:"application"` // user defined application name; it is 1*48PRINTUSASCII where PRINTUSASCII = %d33-126.
}

SyslogSettings - syslog settings

type Time added in v0.1.2

type Time struct {
	Hour int `json:"hour"` // 0-23
	Min  int `json:"min"`  // 0-59
}

Time - When using start and limit to only get a part of all results (e.g. only 20 users, skipping the first 40 users), use this special limit value for unlimited count (of course the service still respects the value of start). Note that each service is allowed to use its safety limit (such as 50,000) to prevent useless overload. The limits are documented per-service or per-method. Implementation note: Some source code transformations may lead to signed long, i.e. 4294967295. But the correct value is -1. Date and Time - should be used instead of time_t, where time zones can affect time interpretation Time - Note: all fields must be assigned if used in set methods

type TimeHMS added in v0.1.0

type TimeHMS struct {
	Hours   int `json:"hours"`
	Minutes int `json:"minutes"`
	Seconds int `json:"seconds"`
}

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

type TimeLimit added in v0.1.2

type TimeLimit struct {
	Value int      `json:"value"` // how many
	Units TimeUnit `json:"units"` // in which units
}

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

type TimeUnit added in v0.1.2

type TimeUnit string
const (
	Minutes TimeUnit = "Minutes"
	Hours   TimeUnit = "Hours"
	Days    TimeUnit = "Days"
	Weeks   TimeUnit = "Weeks"
)

type TreeLeaf added in v0.1.2

type TreeLeaf struct {
	Id          int    `json:"id"`          // leaf identification
	ParentName  string `json:"parentName"`  // name of the group
	Description string `json:"description"` // text after checkbox
	Enabled     bool   `json:"enabled"`     // leaf is [not] enabled
}

TreeLeaf - Leaf item of the tree

type TreeLeafList added in v0.1.2

type TreeLeafList []TreeLeaf

TreeLeafList - sequence of leaves

type TypeExpStatistics added in v0.1.2

type TypeExpStatistics string

type UpdateCheckerOptions added in v0.1.2

type UpdateCheckerOptions struct {
	AutoCheck         bool           `json:"autoCheck"`         // Automatically check for new versions
	CheckBetaVersion  bool           `json:"checkBetaVersion"`  // Check also for beta versions
	TimeFromLastCheck DistanceOrNull `json:"timeFromLastCheck"` // [ReadOnly]
	DownloadedFile    string         `json:"downloadedFile"`    // [ReadOnly]
	UpdateInfo        UpdateInfo     `json:"updateInfo"`        // [ReadOnly]
	KocVersion        string         `json:"kocVersion"`        // [ReadOnly]
	KoffVersion       string         `json:"koffVersion"`       // [ReadOnly]
	KspVersion        string         `json:"kspVersion"`        // [ReadOnly]
	KscVersion        string         `json:"kscVersion"`        // [ReadOnly]
}

type UpdateCheckerStatus added in v0.1.2

type UpdateCheckerStatus string

type UpdateInfo added in v0.1.2

type UpdateInfo struct {
	Result      UpdateCheckerStatus `json:"result"`
	Description string              `json:"description"`
	DownloadUrl string              `json:"downloadUrl"`
	InfoUrl     string              `json:"infoUrl"`
}

type Url added in v0.1.2

type Url struct {
	Type      UrlType     `json:"type"`
	Url       string      `json:"url"`
	Extension ABExtension `json:"extension"`
}

Url - Structure desribing URL

type UrlList added in v0.1.2

type UrlList []Url

type UrlType added in v0.1.2

type UrlType string

UrlType - Type of URL

const (
	UrlHome   UrlType = "UrlHome"
	UrlWork   UrlType = "UrlWork"
	UrlOther  UrlType = "UrlOther"
	UrlCustom UrlType = "UrlCustom" // no type defined
)

type User added in v0.1.2

type User struct {
	Id                   KId                  `json:"id"`                   // [READ-ONLY] global identification
	DomainId             KId                  `json:"domainId"`             // [REQUIRED FOR CREATE] ID of domain where user belongs to
	CompanyContactId     KId                  `json:"companyContactId"`     // ID of company contact associated with this user
	LoginName            string               `json:"loginName"`            // [REQUIRED FOR CREATE] [USED BY QUICKSEARCH] loginName name
	FullName             string               `json:"fullName"`             // [USED BY QUICKSEARCH]
	Description          string               `json:"description"`          // [USED BY QUICKSEARCH]
	IsEnabled            bool                 `json:"isEnabled"`            // user account is enabled/disabled
	ItemSource           DataSource           `json:"itemSource"`           // is user stored internally or by LDAP? This field cannot be used with Or queries.
	AuthType             UserAuthType         `json:"authType"`             // supported values must be retrieved from engine by ServerInfo::getSupportedAuthTypes()
	Password             string               `json:"password"`             // [WRITE-ONLY]
	IsPasswordReversible bool                 `json:"isPasswordReversible"` // typically triple DES
	AllowPasswordChange  bool                 `json:"allowPasswordChange"`  // if it is set to false the password can be changed only by the administrator
	HasDefaultSpamRule   bool                 `json:"hasDefaultSpamRule"`   // now: available only on user creation
	Role                 UserRight            `json:"role"`                 // user role
	GroupRole            UserRight            `json:"groupRole"`            // the mightiest user role obtained via group membership
	EffectiveRole        UserRight            `json:"effectiveRole"`        // the mightiest user role from role and groupRole
	IsWritableByMe       bool                 `json:"isWritableByMe"`       // Does caller have right to change the user? E.g. if Account Admin gets User structure for Full Admin, isWritableByMe will be false. This field is read-only and cannot be used in kerio::web::SearchQuery conditions.
	EmailAddresses       UserEmailAddressList `json:"emailAddresses"`       // List of user email addresses. His default one (loginName@domain) is not listed here
	EmailForwarding      EmailForwarding      `json:"emailForwarding"`      // email forwarding setting
	UserGroups           UserGroupList        `json:"userGroups"`           // groups membership
	ItemLimit            ItemCountLimit       `json:"itemLimit"`            // max. number of items
	DiskSizeLimit        SizeLimit            `json:"diskSizeLimit"`        // max. disk usage
	ConsumedItems        int                  `json:"consumedItems"`        // current items used
	ConsumedSize         ByteValueWithUnits   `json:"consumedSize"`         // current disk usage
	HasDomainRestriction bool                 `json:"hasDomainRestriction"` // user can send/receive from/to his/her domain only
	OutMessageLimit      SizeLimit            `json:"outMessageLimit"`      // limit of outgoing message
	LastLoginInfo        LastLogin            `json:"lastLoginInfo"`        // information about last login datetime and protocol
	PublishInGal         bool                 `json:"publishInGal"`         // publish user in global address list? Default is true - the user will be published in Global Address Book.
	CleanOutItems        CleanOut             `json:"cleanOutItems"`        // Items clean-out settings
	AccessPolicy         IdEntity             `json:"accessPolicy"`         // ID and name of Access Policy applied for user. Only ID is writable.
	HomeServer           HomeServer           `json:"homeServer"`           // [WRITE-ONCE] Id of user's homeserver if server is in a distributed domain.
	Migration            OptionalEntity       `json:"migration"`            // [READ-ONLY] migration.enabled is true if user's store is just being migrated and migration.id contains migration task id
}

User - User details.

type UserAuthType added in v0.1.2

type UserAuthType string

Type of authorization

const (
	UInternalAuth  UserAuthType = "UInternalAuth"  // Internal authorization
	UWindowsNTAuth UserAuthType = "UWindowsNTAuth" // Windows NT domain authorization
	UPamAuth       UserAuthType = "UPamAuth"       // Authorization for linux
	UKerberosAuth  UserAuthType = "UKerberosAuth"  // Kerberos authorization
	UAppleAuth     UserAuthType = "UAppleAuth"     // Apple authorization
	ULDAPAuth      UserAuthType = "ULDAPAuth"      // LDAP authorization
)

type UserDeleteFolderMode added in v0.1.2

type UserDeleteFolderMode string

UserDeleteFolderMode - Type of deleting folder of the user

const (
	UDeleteUser   UserDeleteFolderMode = "UDeleteUser"   // Delete user without deleting his folder.
	UDeleteFolder UserDeleteFolderMode = "UDeleteFolder" // Delete user and delete his folder.
	UMoveFolder   UserDeleteFolderMode = "UMoveFolder"   // Delete user and his folder will move into another user's folder.
)

type UserDetails

type UserDetails struct {
	ID            string `json:"id"`
	DomainID      string `json:"domainId"`
	LoginName     string `json:"loginName"`
	FullName      string `json:"fullName"`
	EffectiveRole struct {
		UserRole           string `json:"userRole"`
		PublicFolderRight  bool   `json:"publicFolderRight"`
		ArchiveFolderRight bool   `json:"archiveFolderRight"`
	} `json:"effectiveRole"`
}

type UserEmailAddressList added in v0.1.2

type UserEmailAddressList []string

UserEmailAddressList - List of email addresses

type UserForwardMode added in v0.1.2

type UserForwardMode string

UserForwardMode - Forwarding setup for user.

const (
	UForwardNone    UserForwardMode = "UForwardNone"    // Forwarding is disabled
	UForwardYes     UserForwardMode = "UForwardYes"     // Forward all messages for this user to some addresses, don't deliver the message to the mailbox.
	UForwardDeliver UserForwardMode = "UForwardDeliver" // Forward all messages for this user to some addresses, and also deliver the message to user's mailbox.
)

type UserGroup added in v0.1.2

type UserGroup struct {
	Id          KId        `json:"id"` // global identification
	Name        string     `json:"name"`
	Description string     `json:"description"`
	ItemSource  DataSource `json:"itemSource"`
}

UserGroup - Properties of user's groups.

type UserGroupList added in v0.1.2

type UserGroupList []UserGroup

UserGroupList - List of user's groups.

type UserList added in v0.1.2

type UserList []User

UserList - List of users.

type UserQuota added in v0.1.2

type UserQuota struct {
	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
}

type UserRight added in v0.1.2

type UserRight struct {
	UserRole           UserRoleType `json:"userRole"`
	PublicFolderRight  bool         `json:"publicFolderRight"`
	ArchiveFolderRight bool         `json:"archiveFolderRight"`
}

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

type UserRoleType added in v0.1.2

type UserRoleType string

UserRoleType - Type of user role.

const (
	UserRole           UserRoleType = "UserRole"           // regular user without any administration rights
	Auditor            UserRoleType = "Auditor"            // read only access to administration
	AccountAdmin       UserRoleType = "AccountAdmin"       // can administer Users,Groups,Aliases,MLs
	FullAdmin          UserRoleType = "FullAdmin"          // unlimited administration
	BuiltInAdmin       UserRoleType = "BuiltInAdmin"       // BuiltIn admin role can be returned only in Session::WhoAmI method for built-in administrator. This role must NOT be assigned.
	BuiltInDomainAdmin UserRoleType = "BuiltInDomainAdmin" // BuiltIn domain admin role can be returned only in Session::WhoAmI method for built-in domain administrator. This role must NOT be assigned.
)

type UserStatList added in v0.1.2

type UserStatList []UserStats

UserStatList - List of users' statistics.

type UserStats added in v0.1.2

type UserStats struct {
	Name             string     `json:"name"` // user's loginName
	OccupiedSpace    QuotaUsage `json:"occupiedSpace"`
	Pop3             LoginStats `json:"pop3"`
	SecurePop3       LoginStats `json:"securePop3"`
	Imap             LoginStats `json:"imap"`
	SecureImap       LoginStats `json:"secureImap"`
	Http             LoginStats `json:"http"`
	SecureHttp       LoginStats `json:"secureHttp"`
	Ldap             LoginStats `json:"ldap"`
	SecureLdap       LoginStats `json:"secureLdap"`
	Nntp             LoginStats `json:"nntp"`
	SecureNntp       LoginStats `json:"secureNntp"`
	ActiveSync       LoginStats `json:"activeSync"`
	SecureActiveSync LoginStats `json:"secureActiveSync"`
	Xmpp             LoginStats `json:"xmpp"`
	SecureXmpp       LoginStats `json:"secureXmpp"`
}

UserStats - Statistics about user's usage of quota, logins to different services.

type ValidPeriod added in v0.1.2

type ValidPeriod struct {
	ValidFromDate Date      `json:"validFromDate"` // @see SharedStructures.idl shared in lib
	ValidFromTime Time      `json:"validFromTime"` // @see SharedStructures.idl shared in lib
	ValidToDate   Date      `json:"validToDate"`   // @see SharedStructures.idl shared in lib
	ValidToTime   Time      `json:"validToTime"`   // @see SharedStructures.idl shared in lib
	ValidType     ValidType `json:"validType"`
}

ValidPeriod - Certificate Time properties

type ValidType added in v0.1.2

type ValidType string

ValidType - Certificate Time properties info

const (
	Valid       ValidType = "Valid"
	NotValidYet ValidType = "NotValidYet"
	ExpireSoon  ValidType = "ExpireSoon"
	Expired     ValidType = "Expired"
)

type WebComponent added in v0.1.2

type WebComponent string

Enum type for determine which web component is in use in session

const (
	WebComponentWEBMAIL WebComponent = "WebComponentWEBMAIL" // WebMail
	WebComponentADMIN   WebComponent = "WebComponentADMIN"   // Web Administration
	WebComponentMINI    WebComponent = "WebComponentMINI"    // WebMail mini
)

type WebMailOptions added in v0.1.2

type WebMailOptions struct {
	MessageSizeLimit       int                    `json:"messageSizeLimit"`       // Maximum size of message that can be sent from the WebMail interface (HTTP POST size)
	SessionExpireTimeout   TimeLimit              `json:"sessionExpireTimeout"`   // Session expire timeout
	MaximumSessionDuration TimeLimit              `json:"maximumSessionDuration"` // Maximum session duration
	ForceLogout            bool                   `json:"forceLogout"`            // Force WebMail logout if user's IP address changes (prevents session hijacking and session fixation attacks)
	CustomLoginPage        WebmailCustomLoginPage `json:"customLoginPage"`        // Use custom logo in WebMail login page
}

type WebServerStats added in v0.1.2

type WebServerStats struct {
	TotalIncomingConnections string `json:"totalIncomingConnections"`
}

type WebSessionList

type WebSessionList struct {
	ID             string `json:"id"`
	UserName       string `json:"userName"`
	ClientAddress  string `json:"clientAddress"`
	ExpirationTime string `json:"expirationTime"`
	ComponentType  string `json:"componentType"`
	IsSecure       bool   `json:"isSecure"`
}

type WebmailCustomLoginPage added in v0.1.2

type WebmailCustomLoginPage struct {
	ButtonColor    ButtonColor    `json:"buttonColor"`
	AdditionalInfo AdditionalInfo `json:"additionalInfo"`
}

type XmppServerStats added in v0.1.2

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL