goews

package module
v2.2.0 Latest Latest
Warning

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

Go to latest
Published: Sep 28, 2024 License: MIT Imports: 16 Imported by: 1

README

EWS Exchange Web Service

Exchange Web Service client for golang

usage:

package main

import (
	"fmt"
	"log"
	"os"

	"github.com/gunsluo/goews/v2"
)

func main() {
	c, err := goews.NewClient(
		goews.Config{
			Address:  "https://outlook.office365.com/EWS/Exchange.asmx",
			Username: "email@exchangedomain",
			Password: "password",
			Dump:     true,
			NTLM:     false,
			Domain:   "",
			SkipTLS:  false,
		},
	)
	if err != nil {
		log.Fatal("->: ", err.Error())
	}

	filename := "a.txt"
	content, err := os.ReadFile(filename)
	if err != nil {
		log.Fatal("read file: ", err.Error())
	}

	htmlBody := `<!DOCTYPE html>
<html lang="en">
<head>
  <title>Simple HTML document</title>
</head>
<body>
  <h1>The email body, as html!</h1>
</body>
</html>`

	err = c.SendEmail(
		goews.SendEmailParams{
			From:     "email@exchangedomain",
			To:       []string{"ji.luo@target-energysolutions.com"},
			Cc:       []string{"junkun.ren@target-energysolutions.com"},
			Bcc:      []string{"Dongsheng.liu@target-energysolutions.com"},
			Subject:  "An email subject",
			Body:     htmlBody,
			BodyType: goews.BodyTypeHtml,
			FileAttachments: []goews.AttachmentParams{
				{
					Name:        filename,
					ContentType: "",
					Size:        int64(len(content)),
					Content:     content,
				},
			},
		})
	if err != nil {
		log.Fatal("err>: ", err.Error())
	}

	fmt.Println("--- success ---")
}

Note: if you are using an on-premises Exchange server (or even if you manage your servers at the cloud), you need to pass the username as AD_DOMAINNAME\username instead, for examle MYCOMANY\mhewedy.

Supported Feature matrix:

Category Operation Supported*
eDiscovery operations
Exchange mailbox data operations
CreateItem operation ✔️ (Email & Calendar)
GetUserPhoto ✔️
Availability operations
GetUserAvailability ✔️
GetRoomLists ✔️
Bulk transfer operations
Delegate management operations
Inbox rules operations
Mail app management operations
Mail tips operation
Message tracking operations
Notification operations
Persona operations
FindPeople ✔️
GetPersona ✔️
Retention policy operation
Service configuration operation
Sharing operations
Synchronization operations
Time zone operation
Unified Messaging operations
Unified Contact Store operations
User configuration operations
  • Not always 100% of fields are mapped.

Extras

Besides the operations supported above, few new operations under the namespace ewsutil has been introduced:

  • client.SendEmail
  • client.CreateEvent
  • client.ListUsersEvents
  • client.FindPeople
  • client.GetUserPhoto
  • client.GetUserPhotoBase64
  • client.GetUserPhotoURL
  • client.GetPersona

NTLM is supported as well as Basic authentication

Reference:

https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/ews-operations-in-exchange

Documentation

Index

Constants

View Source
const (
	// Represents the Calendar folder.
	DistinguishedFolderIdcalendar = `calendar`
	// Represents the Contacts folder.
	DistinguishedFolderIdcontacts = `contacts`
	// Represents the Deleted Items folder.
	DistinguishedFolderIddeleteditems = `deleteditems`
	// Represents the Drafts folder.
	DistinguishedFolderIddrafts = `drafts`
	// Represents the Inbox folder.
	DistinguishedFolderIdinbox = `inbox`
	// Represents the Journal folder.
	DistinguishedFolderIdjournal = `journal`
	// Represents the Notes folder.
	DistinguishedFolderIdnotes = `notes`
	// Represents the Outbox folder.
	DistinguishedFolderIdoutbox = `outbox`
	// Represents the Sent Items folder.
	DistinguishedFolderIdsentitems = `sentitems`
	// Represents the Tasks folder.
	DistinguishedFolderIdtasks = `tasks`
	// Represents the message folder root.
	DistinguishedFolderIdmsgfolderroot = `msgfolderroot`
	// Represents the root of the mailbox.
	DistinguishedFolderIdroot = `root`
	// Represents the Junk Email folder.
	DistinguishedFolderIdjunkemail = `junkemail`
	// Represents the Search Folders folder.
	DistinguishedFolderIdsearchfolders = `searchfolders`
	// Represents the Voice Mail folder.
	DistinguishedFolderIdvoicemail = `voicemail`
	// Represents the dumpster root folder.
	DistinguishedFolderIdrecoverableitemsroot = `recoverableitemsroot`
	// Represents the dumpster deletions folder.
	DistinguishedFolderIdrecoverableitemsdeletions = `recoverableitemsdeletions`
	// Represents the dumpster versions folder.
	DistinguishedFolderIdrecoverableitemsversions = `recoverableitemsversions`
	// Represents the dumpster purges folder.
	DistinguishedFolderIdrecoverableitemspurges = `recoverableitemspurges`
	// Represents the root archive folder.
	DistinguishedFolderIdarchiveroot = `archiveroot`
	// Represents the root archive message folder.
	DistinguishedFolderIdarchivemsgfolderroot = `archivemsgfolderroot`
	// Represents the archive deleted items folder.
	DistinguishedFolderIdarchivedeleteditems = `archivedeleteditems`
	// Represents the archive Inbox folder. Versions of Exchange starting with build number 15.00.0913.09 include this value.
	DistinguishedFolderIdarchiveinbox = `archiveinbox`
	// Represents the archive recoverable items root folder.
	DistinguishedFolderIdarchiverecoverableitemsroot = `archiverecoverableitemsroot`
	// Represents the archive recoverable items deletions folder.
	DistinguishedFolderIdarchiverecoverableitemsdeletions = `archiverecoverableitemsdeletions`
	// Represents the archive recoverable items versions folder.
	DistinguishedFolderIdarchiverecoverableitemsversions = `archiverecoverableitemsversions`
	// Represents the archive recoverable items purges folder.
	DistinguishedFolderIdarchiverecoverableitemspurges = `archiverecoverableitemspurges`
	// Represents the sync issues folder.
	DistinguishedFolderIdsyncissues = `syncissues`
	// Represents the conflicts folder.
	DistinguishedFolderIdconflicts = `conflicts`
	// Represents the local failures folder.
	DistinguishedFolderIdlocalfailures = `localfailures`
	// Represents the server failures folder.
	DistinguishedFolderIdserverfailures = `serverfailures`
	// Represents the recipient cache folder.
	DistinguishedFolderIdrecipientcache = `recipientcache`
	// Represents the quick contacts folder.
	DistinguishedFolderIdquickcontacts = `quickcontacts`
	// Represents the conversation history folder.
	DistinguishedFolderIdconversationhistory = `conversationhistory`
	// Represents the admin audit logs folder.
	DistinguishedFolderIdadminauditlogs = `adminauditlogs`
	// Represents the todo search folder.
	DistinguishedFolderIdtodosearch = `todosearch`
	// Represents the My Contacts folder.
	DistinguishedFolderIdmycontacts = `mycontacts`
	// Represents the directory folder.
	DistinguishedFolderIddirectory = `directory`
	// Represents the IM contact list folder.
	DistinguishedFolderIdimcontactlist = `imcontactlist`
	// Represents the people connect folder.
	DistinguishedFolderIdpeopleconnect = `peopleconnect`
	// Represents the Favorites folder.
	DistinguishedFolderIdfavorites = `favorites`
)
View Source
const (
	// Returns only the identities of items in the folder.
	FindItemShallow = `Shallow`
	// Returns only the identities of items that are in a folder's dumpster. Note that a soft-deleted traversal combined with a search restriction will result in zero items returned even if there are items that match the search criteria.
	FindItemSoftDeleted = `SoftDeleted`
	// Returns only the identities of associated items in the folder.
	FindItemAssociated = `Associated`
)
View Source
const (
	// The groups are ordered in ascending order.
	GroupByAscending = `Ascending`
	// The groups are ordered in descending order.
	GroupByDescending = `Descending`
)
View Source
const (
	// The response will return the richest available content of body text. This is useful if it is unknown whether the content is text or HTML. The returned body will be text if the stored body is plain text. Otherwise, the response will return HTML if the stored body is in either HTML or RTF format. This is the default value.
	BodyTypeBest string = `Best`
	// The response will return an item body as HTML.
	BodyTypeHTML string = `HTML`
	// The response will return an item body as plain text.
	BodyTypeText string = `Text`
)
View Source
const (
	// false
	FilterHtmlContentfalse bool = false
	// true
	FilterHtmlContenttrue bool = true
)
View Source
const (
	// false
	IncludeMimeContentfalse bool = false
	// true
	IncludeMimeContenttrue bool = true
)
View Source
const (
	// The comparison must be exact.
	ContainsExact = `Exact`
	// The comparison ignores casing.
	ContainsIgnoreCase = `IgnoreCase`
	// The comparison ignores non-spacing characters.
	ContainsIgnoreNonSpacingCharacters = `IgnoreNonSpacingCharacters`
	// To be removed.
	ContainsLoose = `Loose`
	// The comparison ignores casing and non-spacing characters.
	ContainsIgnoreCaseAndNonSpacingCharacters = `IgnoreCaseAndNonSpacingCharacters`
	// To be removed.
	ContainsLooseAndIgnoreCase = `LooseAndIgnoreCase`
	// To be removed.
	ContainsLooseAndIgnoreNonSpace = `LooseAndIgnoreNonSpace`
	// To be removed.
	ContainsLooseAndIgnoreCaseAndIgnoreNonSpace = `LooseAndIgnoreCaseAndIgnoreNonSpace`
	// The comparison is between the full string and the constant. The property value and the supplied constant are precisely the same.
	ContainsFullString = `FullString`
	// The comparison is between the string prefix and the constant.
	ContainsPrefixed = `Prefixed`
	// The comparison is between a substring of the string and the constant.
	ContainsSubstring = `Substring`
	// The comparison is between a prefix on individual words in the string and the constant.
	ContainsPrefixOnWords = `PrefixOnWords`
	// The comparison is between an exact phrase in the string and the constant.
	ContainsExactPhrase = `ExactPhrase`
)
View Source
const (
	// Describes a request that is fulfilled.
	FindItemResponseMessageSuccess = `Success`
	// Describes a request that was not processed. A warning may be returned if an error occurred while processing an item in the request was processing and subsequent items could not be processed. The following are examples of sources of warnings:  - The Exchange store goes offline during the batch.  - Active Directory Domain Services (AD DS) goes offline.  - Mailboxes are moved.  - The message database (MDB) goes offline.  - A password is expired.  - A quota was exceeded.
	FindItemResponseMessageWarning = `Warning`
	// Describes a request that cannot be fulfilled. The following are examples of sources of errors:  - Invalid attributes or elements  - Attributes or elements that are out of range  - An unknown tag  - An attribute or element that is not valid in the context  - An unauthorized access attempt by any client  - A server-side failure in response to a valid client-side call    Information about the error can be found in the ResponseCode and MessageText elements.
	FindItemResponseMessageError = `Error`
)
View Source
const (
	// Indicates that the user has permission to view all items in the calendar, including free/busy time and subject, location, and details of appointments.
	SharingEffectiveRightsCalendarPermissionReadAccessTypeFullDetails string = `FullDetails`
	// Indicates that the user does not have permission to view items in the calendar.
	SharingEffectiveRightsCalendarPermissionReadAccessTypeNone string = `None`
	// Indicates that the user has permission to view free/busy time in the calendar and the subject and location of appointments.
	SharingEffectiveRightsCalendarPermissionReadAccessTypeTimeAndSubjectAndLocation string = `TimeAndSubjectAndLocation`
	// Indicates that the user has permission to view only free/busy time in the calendar.
	SharingEffectiveRightsCalendarPermissionReadAccessTypeTimeOnly string = `TimeOnly`
)
View Source
const (
	// FullDetails
	SharingEffectiveRightsPermissionReadAccessTypeFullDetails string = `FullDetails`
	// None
	SharingEffectiveRightsPermissionReadAccessTypeNone string = `None`
)
View Source
const (
	RequestedViewNone           = "None"
	RequestedViewMergedOnly     = "MergedOnly"
	RequestedViewFreeBusy       = "FreeBusy"
	RequestedViewFreeBusyMerged = "FreeBusyMerged"
	RequestedViewDetailed       = "Detailed"
	RequestedViewDetailedMerged = "DetailedMerged"
)
View Source
const (
	BusyTypeFree      = "Free"
	BusyTypeTentative = "Tentative"
	BusyTypeBusy      = "Busy"
	BusyTypeOOF       = "OOF"
	BusyTypeNoData    = "NoData"
)

Variables

This section is empty.

Functions

func NewError

func NewError(resp *http.Response) error

Types

type AdditionalProperties

type AdditionalProperties struct {
	FieldURI []FieldURI `xml:"t:FieldURI,omitempty"`
	// add additional fields
	ExtendedFieldURI *ExtendedFieldURI `xml:"t:ExtendedFieldURI,omitempty"`
}

type AggregateOn added in v2.2.0

type AggregateOn struct {
	// The ExtendedFieldURI element identifies an extended MAPI property.
	ExtendedFieldURI *ExtendedFieldURI `xml:"t:ExtendedFieldURI,omitempty"`
	// The FieldURI element identifies frequently referenced properties by URI.
	FieldURI *FieldURI `xml:"t:FieldURI,omitempty"`
	// The IndexedFieldURI element identifies individual members of a dictionary.
	IndexedFieldURI *IndexedFieldURI `xml:"t:IndexedFieldURI,omitempty"`
	// Indicates the maximum or minimum value of the property identified by the FieldURI element that is used for ordering the groups of items.The following are the possible values:  - Minimum  - Maximum
	Aggregate string `xml:"Aggregate,attr"`
}

type And added in v2.2.0

type And struct {
	// The Contains element represents a search expression that determines whether a given property contains the supplied constant string value.
	Contains *Contains `xml:"t:Contains,omitempty"`
	// The Excludes element performs a bitwise mask of the specified property and a supplied value.
	Excludes *Excludes `xml:"t:Excludes,omitempty"`
	// The Exists element represents a search expression that returns true if the supplied property exists on an item.
	Exists *Exists `xml:"t:Exists,omitempty"`
	// The IsEqualTo element represents a search expression that compares a property with either a constant value or another property and evaluates to true if they are equal.
	IsEqualTo *IsEqualTo `xml:"t:IsEqualTo,omitempty"`
	// The IsGreaterThan element represents a search expression that compares a property with either a constant value or another property and returns true if the first property is greater.
	IsGreaterThan *IsGreaterThan `xml:"t:IsGreaterThan,omitempty"`
	// The IsGreaterThanOrEqualTo element represents a search expression that compares a property with either a constant value or another property and returns true if the first property is greater than or equal to the second.
	IsGreaterThanOrEqualTo *IsGreaterThanOrEqualTo `xml:"t:IsGreaterThanOrEqualTo,omitempty"`
	// The IsLessThan element represents a search expression that compares a property with either a constant value or another property and returns true if the first property is less than the second.
	IsLessThan *IsLessThan `xml:"t:IsLessThan,omitempty"`
	// The IsLessThanOrEqualTo element represents a search expression that compares a property with either a constant value or another property and returns true if the first property is less than or equal to the second.
	IsLessThanOrEqualTo *IsLessThanOrEqualTo `xml:"t:IsLessThanOrEqualTo,omitempty"`
	// The IsNotEqualTo element represents a search expression that compares a property with either a constant value or another property and returns true if the values are not the same.
	IsNotEqualTo *IsNotEqualTo `xml:"t:IsNotEqualTo,omitempty"`
	// The Not element represents a search expression that negates the Boolean value of the search expression that it contains.
	Not *Not `xml:"t:Not,omitempty"`
	// The Or element represents a search expression that performs a logical OR on the search expression that it contains. Or will return true if any of its children return true. Or must have two or more children.
	Or *Or `xml:"t:Or,omitempty"`
	// The SearchExpression element is an abstract element that represents the substituted element within a restriction. All search expressions derive from this base type. This element is not used in an XML instance document.
	SearchExpression *SearchExpression `xml:"t:SearchExpression,omitempty"`
}

type ArrayOfAttendeeConflictData

type ArrayOfAttendeeConflictData struct {
	UnknownAttendeeConflictData     string                    `xml:"UnknownAttendeeConflictData"`
	IndividualAttendeeConflictData  string                    `xml:"IndividualAttendeeConflictData"`
	TooBigGroupAttendeeConflictData string                    `xml:"TooBigGroupAttendeeConflictData"`
	GroupAttendeeConflictData       GroupAttendeeConflictData `xml:"GroupAttendeeConflictData"`
}

type AttachmentId added in v2.1.0

type AttachmentId struct {
	Id                string `xml:"Id,attr"`
	RootItemId        string `xml:"RootItemId,attr"`
	RootItemChangeKey string `xml:"RootItemChangeKey,attr"`
}

type AttachmentParams added in v2.1.0

type AttachmentParams struct {
	AttachmentId AttachmentId
	Name         string
	ContentType  string
	Size         int64
	Content      []byte
}

type Attendee

type Attendee struct {
	Mailbox Mailbox `xml:"t:Mailbox"`
}

type AttendeeType

type AttendeeType string
const (
	AttendeeTypeOrganizer AttendeeType = "Organizer"
	AttendeeTypeRequired  AttendeeType = "Required"
	AttendeeTypeOptional  AttendeeType = "Optional"
	AttendeeTypeRoom      AttendeeType = "Room"
	AttendeeTypeResource  AttendeeType = "Resource"
)

type Attendees

type Attendees struct {
	Attendee []Attendee `xml:"t:Attendee"`
}

type BaseFolderIds added in v2.2.0

type BaseFolderIds struct {
	// The DistinguishedFolderId element identifies folders that can be referenced by name. If you do not use this element, you must use the FolderId element to identify a folder.
	DistinguishedFolderId *DistinguishedFolderId `xml:"t:DistinguishedFolderId,omitempty"`
	// The FolderId element contains the identifier and change key of a folder.
	FolderId *FolderId `xml:"t:FolderId,omitempty"`
}

type BasePoint

type BasePoint string
const (
	BasePointBeginning BasePoint = "Beginning"
	BasePointEnd       BasePoint = "End"
)

type BaseShape

type BaseShape string
const (
	BaseShapeIdOnly        BaseShape = "IdOnly"
	BaseShapeDefault       BaseShape = "Default"
	BaseShapeAllProperties BaseShape = "AllProperties"
)

type Bitmask added in v2.2.0

type Bitmask string

type Body

type Body struct {
	// Specifies the type of the body.
	BodyType *string `xml:"BodyType,attr"`
	// Boolean value that indicates whether the body is truncated.
	IsTruncated *string `xml:"IsTruncated,attr"`
	TEXT        string  `xml:",chardata"`
}

type BusinessPhoneNumbers

type BusinessPhoneNumbers struct {
	PhoneNumberAttributedValue PhoneNumberAttributedValue `xml:"PhoneNumberAttributedValue"`
}

type BusyType

type BusyType string

type CalendarEvent

type CalendarEvent struct {
	StartTime            Time                 `xml:"StartTime"`
	EndTime              Time                 `xml:"EndTime"`
	BusyType             BusyType             `xml:"BusyType"`
	CalendarEventDetails CalendarEventDetails `xml:"CalendarEventDetails"`
}

type CalendarEventArray

type CalendarEventArray struct {
	CalendarEvent []CalendarEvent `xml:"CalendarEvent"`
}

type CalendarEventDetails

type CalendarEventDetails struct {
	ID            string `xml:"ID"`
	Subject       string `xml:"Subject"`
	Location      string `xml:"Location"`
	IsMeeting     bool   `xml:"IsMeeting"`
	IsRecurring   bool   `xml:"IsRecurring"`
	IsException   bool   `xml:"IsException"`
	IsReminderSet bool   `xml:"IsReminderSet"`
	IsPrivate     bool   `xml:"IsPrivate"`
}

type CalendarFolder added in v2.2.0

type CalendarFolder struct {
	// The ChildFolderCount element represents the number of immediate child folders that are contained within a folder. This property is read-only.
	ChildFolderCount ChildFolderCount `xml:"t:ChildFolderCount,omitempty"`
	// The DisplayName element defines the display name of a folder, contact, distribution list, delegate user, location, or rule.
	DisplayName DisplayNamestring `xml:"t:DisplayName,omitempty"`
	// The EffectiveRights element contains the client's rights based on the permission settings for the item or folder. This element is read-only.
	EffectiveRights *EffectiveRights `xml:"t:EffectiveRights,omitempty"`
	// The ExtendedProperty element identifies extended MAPI properties on folders and items.
	ExtendedProperty *ExtendedProperty `xml:"t:ExtendedProperty,omitempty"`
	// The FolderClass element represents the folder class for a folder.
	FolderClass FolderClass `xml:"t:FolderClass,omitempty"`
	// The FolderId element contains the identifier and change key of a folder.
	FolderId *FolderId `xml:"t:FolderId,omitempty"`
	// The ManagedFolderInformation element contains information about a managed custom folder.
	ManagedFolderInformation *ManagedFolderInformation `xml:"t:ManagedFolderInformation,omitempty"`
	// The ParentFolderId element represents the identifier of the parent folder that contains the item or folder.
	ParentFolderId *ParentFolderId `xml:"t:ParentFolderId,omitempty"`
	// The PermissionSet element contains all the permissions that are configured for a calendar folder.
	PermissionSet *PermissionSetCalendarPermissionSetType `xml:"t:PermissionSet,omitempty"`
	// The SharingEffectiveRights element indicates the permissions that the user has for the calendar data that is being shared.
	SharingEffectiveRights SharingEffectiveRightsCalendarPermissionReadAccessType `xml:"t:SharingEffectiveRights,omitempty"`
	// The TotalCount element represents the total count of items within a given folder.
	TotalCount TotalCount `xml:"t:TotalCount"`
}

type CalendarItem

type CalendarItem struct {
}

type CalendarPermission added in v2.2.0

type CalendarPermission struct {
}

type CalendarPermissions added in v2.2.0

type CalendarPermissions struct {
	// The CalendarPermission element defines the access that a user has to a Calendar folder. This element was introduced in Microsoft Exchange Server 2007 Service Pack 1 (SP1).
	CalendarPermission *CalendarPermission `xml:"t:CalendarPermission,omitempty"`
}

type CalendarView added in v2.2.0

type CalendarView struct {
	// Identifies the end of a time span queried for calendar items. All calendar items that have a start time that is on or after EndDate will not be returned. The value of EndDate can be specified in UTC format, as in 2006-02-02T12:00:00Z, or in a format where local time and time zone offset is specified, as in 2006-02-02T04:00:00-08:00.  EndDate must be greater than or equal to StartDate; otherwise an error is returned. This attribute is required.
	EndDate *string `xml:"EndDate,attr"`
	// Describes the maximum number of results to return in the FindItem response.
	MaxEntriesReturned *string `xml:"MaxEntriesReturned,attr"`
	// Identifies the start of a time span queried for calendar items. All calendar items that have an end time that is before StartDate will not be returned. The value of StartDate can be specified in coordinated universal time (UTC) format, as in 2006-01-02T12:00:00Z, or in a format where local time and time zone offset is specified, as in 2006-01-02T04:00:00-08:00.  This attribute is required.
	StartDate *string `xml:"StartDate,attr"`
}

type ChildFolderCount added in v2.2.0

type ChildFolderCount int64

type Client

type Client interface {
	SendEmail(SendEmailParams) error
	// CreateHTMLEvent(to, optional []string, subject, body, location string, from time.Time, duration time.Duration) error
	// CreateEvent(to, optional []string, subject, body, location string, from time.Time, duration time.Duration) error
	GetPersonaById(personaID string) (*Persona, error)
	GetPersona(r *GetPersonaRequest) (*GetPersonaResponse, error)
	GetUserPhoto(email string) (string, error)
	GetDecodingUserPhoto(email string) ([]byte, error)
	GetUserPhotoURL(email string) string
	FindPeopleByCondition(q string) ([]Persona, error)
	FindPeople(r *FindPeopleRequest) (*FindPeopleResponse, error)
	GetRoomLists() (*GetRoomListsResponse, error)
	ListUsersEvents(eventUsers []EventUser, from time.Time, duration time.Duration) (map[EventUser][]Event, error)
	SendAndReceive(body []byte) ([]byte, error)
	GetFolder(GetFolderParams) (*GetFolderResponse, error)
	FindItem(*FindItem) (*FindItemResponse, error)
	GetItem(*GetItem) (*GetItemResponse, error)
	QueryMessage(QueryMessageParams) ([]Message, error)
}

func NewClient

func NewClient(config Config) (Client, error)

type Config

type Config struct {
	Address  string
	Username string
	Password string
	NTLM     bool
	Domain   string
	Dump     bool

	SkipTLS bool
	CaPath  string
}

type Constant added in v2.2.0

type Constant struct {
	// Specifies the value to compare in the restriction.
	Value string `xml:"Value,attr"`
}

type ContactsFolder added in v2.2.0

type ContactsFolder struct {

	// The ChildFolderCount element represents the number of immediate child folders that are contained within a folder. This property is read-only.
	ChildFolderCount ChildFolderCount `xml:"t:ChildFolderCount,omitempty"`
	// The DisplayName element defines the display name of a folder, contact, distribution list, delegate user, location, or rule.
	DisplayName DisplayNamestring `xml:"t:DisplayName,omitempty"`
	// The EffectiveRights element contains the client's rights based on the permission settings for the item or folder. This element is read-only.
	EffectiveRights *EffectiveRights `xml:"t:EffectiveRights,omitempty"`
	// The ExtendedProperty element identifies extended MAPI properties on folders and items.
	ExtendedProperty *ExtendedProperty `xml:"t:ExtendedProperty,omitempty"`
	// The FolderClass element represents the folder class for a folder.
	FolderClass FolderClass `xml:"t:FolderClass,omitempty"`
	// The FolderId element contains the identifier and change key of a folder.
	FolderId *FolderId `xml:"t:FolderId,omitempty"`
	// The ManagedFolderInformation element contains information about a managed custom folder.
	ManagedFolderInformation *ManagedFolderInformation `xml:"t:ManagedFolderInformation,omitempty"`
	// The ParentFolderId element represents the identifier of the parent folder that contains the item or folder.
	ParentFolderId *ParentFolderId `xml:"t:ParentFolderId,omitempty"`
	// The PermissionSet element contains all the permissions that are configured for a folder.
	PermissionSet *PermissionSetPermissionSetType `xml:"t:PermissionSet,omitempty"`
	// The SharingEffectiveRights element indicates the permissions that the user has for the contact data that is being shared.
	SharingEffectiveRights SharingEffectiveRightsPermissionReadAccessType `xml:"t:SharingEffectiveRights,omitempty"`
	// The TotalCount element represents the total count of items within a given folder.
	TotalCount TotalCount `xml:"t:TotalCount"`
}

type ContactsView added in v2.2.0

type ContactsView struct {
	// Defines the last name in the contacts list to return in the response. If the FinalName attribute is omitted, the response will contain all subsequent contacts in the specified sort order. If the specified final name is not in the contacts list, the next alphabetical name as defined by the cultural context will be excluded.  For example, if FinalName="Name", but Name is not in the contacts list, contacts that have display names of Name1 or NAME will not be included.  This attribute is optional.
	FinalName *string `xml:"FinalName,attr"`
	// Defines the first name in the contacts list to return in the response. If the specified initial name is not in the contacts list, the next alphabetical name as defined by the cultural context will be returned, except if the next name comes after FinalName. If the InitialName attribute is omitted, the response will contain a list of contacts that starts with the first name in the contact list. This attribute is optional.
	InitialName *string `xml:"InitialName,attr"`
	// Describes the maximum number of results to return in the FindItem response.
	MaxEntriesReturned *string `xml:"MaxEntriesReturned,attr"`
}

type Contains added in v2.2.0

type Contains struct {
	// The Constant element identifies a constant value in a restriction.
	Constant *Constant `xml:"t:Constant,omitempty"`
	// The ExtendedFieldURI element identifies an extended MAPI property.
	ExtendedFieldURI *ExtendedFieldURI `xml:"t:ExtendedFieldURI,omitempty"`
	// The FieldURI element identifies frequently referenced properties by URI.
	FieldURI *FieldURI `xml:"t:FieldURI,omitempty"`
	// The IndexedFieldURI element identifies individual members of a dictionary.
	IndexedFieldURI *IndexedFieldURI `xml:"t:IndexedFieldURI,omitempty"`
	// Determines whether the search ignores cases and spaces.
	ContainmentComparison *string `xml:"ContainmentComparison,attr"`
	// Identifies the boundaries of a search.
	ContainmentMode *string `xml:"ContainmentMode,attr"`
}

type ConvertHtmlCodePageToUTF8 added in v2.2.0

type ConvertHtmlCodePageToUTF8 bool

type CreateItem

type CreateItem struct {
	XMLName xml.Name `xml:"m:CreateItem"`

	// The Items element contains a set of items to create.
	Items *ItemsNonEmptyArrayOfAllItemsType `xml:"m:Items"`
	// The SavedItemFolderId element identifies the target folder for operations that update, send, and create items in a mailbox.
	SavedItemFolderId *SavedItemFolderId `xml:"m:SavedItemFolderId"`
	// Describes how the item will be handled after it is created. The attribute is required for e-mail messages. This attribute is only applicable to e-mail messages.
	MessageDisposition string `xml:"MessageDisposition,attr,omitempty"`
	// Describes how meeting requests are handled after they are created. This attribute is required for calendar items.
	SendMeetingInvitations string `xml:"SendMeetingInvitations,attr,omitempty"`
}

type CreateItemResponse

type CreateItemResponse struct {
	ResponseMessages ResponseMessages `xml:"ResponseMessages"`
}

type Departments

type Departments struct {
	StringAttributedValue StringAttributedValue `xml:"StringAttributedValue"`
}

type DescriptiveLinkKey added in v2.2.0

type DescriptiveLinkKey struct {
	TEXT int64 `xml:",chardata"`
}

type DisplayNamestring added in v2.2.0

type DisplayNamestring string

type DistinguishedFolderId

type DistinguishedFolderId struct {
	// List of values:
	// https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/distinguishedfolderid
	Id string `xml:"Id,attr"`
}

type DistinguishedGroupBy added in v2.2.0

type DistinguishedGroupBy struct {
	// The StandardGroupBy element represents the standard grouping and aggregating mechanisms for a grouped FindItem operation.
	StandardGroupBy *StandardGroupBy `xml:"t:StandardGroupBy,omitempty"`
}

type EffectiveRights added in v2.2.0

type EffectiveRights struct {
}

type Email

type Email struct {
	Name        string `xml:"t:Name"`
	Address     string `xml:"t:Address"`
	RoutingType string `xml:"t:RoutingType"`
}

type EmailAddress

type EmailAddress struct {
	Name         string `xml:"Name"`
	EmailAddress string `xml:"EmailAddress"`
	RoutingType  string `xml:"RoutingType"`
	MailboxType  string `xml:"MailboxType"`
	ItemId       ItemId `xml:"ItemId"`
}

type Event

type Event struct {
	Start    time.Time
	End      time.Time
	BusyType BusyType
}

type EventUser

type EventUser struct {
	Email        string
	AttendeeType AttendeeType
}

type Excludes added in v2.2.0

type Excludes struct {
	// The Bitmask element represents a hexadecimal or decimal mask to be used during an Excludes restriction operation.
	Bitmask Bitmask `xml:"t:Bitmask,omitempty"`
	// The Excludes element performs a bitwise mask of the specified property and a supplied value.
	Excludes *Excludes `xml:"t:Excludes,omitempty"`
	// The ExtendedFieldURI element identifies an extended MAPI property.
	ExtendedFieldURI *ExtendedFieldURI `xml:"t:ExtendedFieldURI,omitempty"`
	// The FieldURI element identifies frequently referenced properties by URI.
	FieldURI *FieldURI `xml:"t:FieldURI,omitempty"`
	// The IndexedFieldURI element identifies individual members of a dictionary.
	IndexedFieldURI *IndexedFieldURI `xml:"t:IndexedFieldURI,omitempty"`
}

type Exists added in v2.2.0

type Exists struct {
	// The ExtendedFieldURI element identifies an extended MAPI property.
	ExtendedFieldURI *ExtendedFieldURI `xml:"t:ExtendedFieldURI,omitempty"`
	// The FieldURI element identifies frequently referenced properties by URI.
	FieldURI *FieldURI `xml:"t:FieldURI,omitempty"`
	// The IndexedFieldURI element identifies individual members of a dictionary.
	IndexedFieldURI *IndexedFieldURI `xml:"t:IndexedFieldURI,omitempty"`
}

type ExtendedFieldURI added in v2.2.0

type ExtendedFieldURI struct {
	// Defines the well-known property set IDs for extended MAPI properties.If this attribute is used, the PropertySetId and PropertyTag attributes cannot be used. This attribute must be used with either the PropertyId or PropertyName attribute, and the PropertyType attribute.The DistinguishedPropertySetId Attribute table later in this topic lists the possible values for this attribute.This attribute is optional.
	DistinguishedPropertySetId string `xml:"DistinguishedPropertySetId,attr,omitempty"`
	// Identifies an extended property by its dispatch ID. The dispatch ID can be identified in either decimal or hexadecimal formats. This property must be coupled with either DistinguishedPropertySetId or PropertySetId.If this attribute is used, the PropertyName and PropertyTag attributes cannot be used.This attribute is optional.
	PropertyId string `xml:"PropertyId,attr,omitempty"`
	// Identifies an extended property by its name. This property must be coupled with either DistinguishedPropertySetId or PropertySetId.If this attribute is used, the PropertyId and PropertyTag attributes cannot be used.This attribute is optional.
	PropertyName string `xml:"PropertyName,attr,omitempty"`
	// Identifies a MAPI extended property set or namespace by its identifying GUID.If this attribute is used, the DistinguishedPropertySetId and PropertyTag attribute cannot be used. This attribute must be used with either the PropertyId or PropertyName attribute, and the PropertyType attribute.This attribute is optional.
	PropertySetId string `xml:"PropertySetId,attr,omitempty"`
	// Identifies the property tag without the type part of the tag. The PropertyTag can be represented as either a hexadecimal or a short integer.The range between 0x8000 and 0xFFFE represents the custom range of properties. When a mailbox database encounters a custom property for the first time, it assigns that custom property a property tag within the custom property range of 0x8000-0xFFFE. A given custom property tag will most likely differ across databases. Therefore, a custom property request by property tag can return different properties on different databases. The use of the PropertyTag attribute is prohibited for custom properties. Instead, use the PropertySetId attribute and the PropertyName or PropertyId attribute.IMPORTANT: Access any custom property between 0x8000 and 0xFFFE by using the GUID + name/ID. If the PropertyTag attribute is used, the DistinguishedPropertySetId, PropertySetId, PropertyName, and PropertyId attributes cannot be used.This attribute is optional.NOTE: You cannot use a property tag attribute for properties within the custom range 0x8000-0xFFFE. You must use a named property in this case.
	PropertyTag string `xml:"PropertyTag,attr,omitempty"`
	// Represents the property type of a property tag. This corresponds to the least significant word in a property tag.The PropertyType Attribute table later in this topic contains the possible values for this attribute.This attribute is required.
	PropertyType string `xml:"PropertyType,attr,omitempty"`
}

type ExtendedProperty added in v2.2.0

type ExtendedProperty struct {
	// The ExtendedFieldURI element identifies an extended MAPI property.
	ExtendedFieldURI *ExtendedFieldURI `xml:"t:ExtendedFieldURI,omitempty"`
	// The Value element contains the value of an extended property.
	Value string `xml:"t:Value,omitempty"`
	// The Values element contains a collection of values for an extended property.
	Values *Values `xml:"t:Values,omitempty"`
}

type Fault

type Fault struct {
	Faultcode   string `xml:"faultcode"`
	Faultstring string `xml:"faultstring"`
	Detail      detail `xml:"detail"`
}

type FieldOrder added in v2.2.0

type FieldOrder struct {
	// The ExtendedFieldURI element identifies an extended MAPI property.
	ExtendedFieldURI *ExtendedFieldURI `xml:"t:ExtendedFieldURI,omitempty"`
	// The FieldURI element identifies frequently referenced properties by URI.
	FieldURI *FieldURI `xml:"t:FieldURI,omitempty"`
	// The IndexedFieldURI element identifies individual members of a dictionary.
	IndexedFieldURI *IndexedFieldURI `xml:"t:IndexedFieldURI,omitempty"`
	// Describes the sort order direction. The following are the possible values:  - Ascending  - Descending
	Order string `xml:"Order,attr"`
}

type FieldURI

type FieldURI struct {
	// List of possible values:
	// https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/fielduri
	FieldURI string `xml:"FieldURI,attr,omitempty"`
}

type FieldURIOrConstant added in v2.2.0

type FieldURIOrConstant struct {
	// The Constant element identifies a constant value in a restriction.
	Constant *Constant `xml:"t:Constant,omitempty"`
	// The ExtendedFieldURI element identifies an extended MAPI property.
	ExtendedFieldURI *ExtendedFieldURI `xml:"t:ExtendedFieldURI,omitempty"`
	// The FieldURI element identifies frequently referenced properties by URI.
	FieldURI *FieldURI `xml:"t:FieldURI,omitempty"`
	// The IndexedFieldURI element identifies individual members of a dictionary.
	IndexedFieldURI *IndexedFieldURI `xml:"t:IndexedFieldURI,omitempty"`
}

type FileAttachment added in v2.1.0

type FileAttachment struct {
	AttachmentId     AttachmentId `xml:"t:AttachmentId,omitempty"`
	Name             string       `xml:"t:Name"`
	ContentType      string       `xml:"t:ContentType,omitempty"`
	ContentId        string       `xml:"t:ContentId,omitempty"`
	ContentLocation  string       `xml:"t:ContentLocation,omitempty"`
	Size             int64        `xml:"t:Size,omitempty"`
	LastModifiedTime string       `xml:"t:LastModifiedTime,omitempty"`
	IsInline         bool         `xml:"t:IsInline"`
	IsContactPhoto   bool         `xml:"t:IsContactPhoto"`
	Content          string       `xml:"t:Content"`
}

type FilterHtmlContent added in v2.2.0

type FilterHtmlContent bool

type FindItem added in v2.2.0

type FindItem struct {
	XMLName xml.Name `xml:"m:FindItem"`

	// The CalendarView element defines a FindItem operation as returning calendar items in a set as they appear in a calendar.
	CalendarView *CalendarView `xml:"m:CalendarView,omitempty"`
	// The ContactsView element defines a search for contact items based on alphabetical display names.
	ContactsView *ContactsView `xml:"m:ContactsView,omitempty"`
	// The DistinguishedGroupBy element provides standard groupings for FindItem queries.
	DistinguishedGroupBy *DistinguishedGroupBy `xml:"m:DistinguishedGroupBy,omitempty"`
	// The FractionalPageItemView element describes where the paged view starts and the maximum number of items returned in a FindItem request.
	FractionalPageItemView *FractionalPageItemView `xml:"m:FractionalPageItemView,omitempty"`
	// The GroupBy element specifies an arbitrary grouping for FindItem queries.
	GroupBy *GroupBy `xml:"m:GroupBy,omitempty"`
	// The IndexedPageItemView element describes how paged conversation or item information is returned for a FindItem operation or FindConversation operation request.
	IndexedPageItemView *IndexedPageItemView `xml:"m:IndexedPageItemView,omitempty"`
	// The ItemShape element identifies a set of properties to return in a GetItem operation, FindItem operation, or SyncFolderItems operation response.
	ItemShape *ItemShape `xml:"m:ItemShape,omitempty"`
	// The ParentFolderIds element identifies folders for the FindItem and FindFolder operations to search.
	ParentFolderIds *ParentFolderIds `xml:"m:ParentFolderIds,omitempty"`
	// The QueryString element contains a mailbox query string based on Advanced Query Syntax (AQS).
	QueryString *QueryStringQueryStringType `xml:"m:QueryString,omitempty"`
	// The Restriction element represents the restriction or query that is used to filter items or folders in FindItem/FindFolder and search folder operations.
	Restriction *Restriction `xml:"m:Restriction,omitempty"`
	// The SortOrder element defines how items are sorted in a FindItem or FindConversation request.
	SortOrder *SortOrder `xml:"m:SortOrder,omitempty"`
	// Defines whether the search finds items in folders or the folders' dumpsters. This attribute is required.
	Traversal string `xml:"Traversal,attr"`
}

type FindItemResponse added in v2.2.0

type FindItemResponse struct {
	ResponseMessages *GetFindItemResponseMessages `xml:"ResponseMessages"`
}

type FindItemResponseMessage added in v2.2.0

type FindItemResponseMessage struct {
	// The DescriptiveLinkKey element is currently unused and is reserved for future use. It contains a value of 0.
	DescriptiveLinkKey *DescriptiveLinkKey `xml:"DescriptiveLinkKey,omitempty"`
	// The MessageText element provides a text description of the status of the response.
	MessageText MessageText `xml:"MessageText,omitempty"`
	// The MessageXml element provides additional error response information.
	MessageXml *MessageXml `xml:"MessageXml,omitempty"`
	// The ResponseCode element provides status information about the request.
	ResponseCode ResponseCode `xml:"ResponseCode"`
	// The RootFolder element contains the results of a search of a single root folder during a FindItem operation.
	RootFolder *RootFolderFindItemResponseMessage `xml:"RootFolder,omitempty"`
	// Describes the status of a FindItem operation response. The following values are valid for this attribute:  - Success  - Warning  - Error
	ResponseClass string `xml:"ResponseClass,attr"`
}

type FindPeopleRequest

type FindPeopleRequest struct {
	XMLName             struct{}            `xml:"m:FindPeople"`
	PersonaShape        *PersonaShape       `xml:"m:PersonaShape,omitempty"`
	IndexedPageItemView IndexedPageItemView `xml:"m:IndexedPageItemView"`
	ParentFolderId      ParentFolderId      `xml:"m:ParentFolderId"`
	QueryString         string              `xml:"m:QueryString,omitempty"`
}

type FindPeopleResponse

type FindPeopleResponse struct {
	Response
	People                    People `xml:"People"`
	TotalNumberOfPeopleInView int    `xml:"TotalNumberOfPeopleInView"`
	FirstMatchingRowIndex     int    `xml:"FirstMatchingRowIndex"`
	FirstLoadedRowIndex       int    `xml:"FirstLoadedRowIndex"`
}

type Folder added in v2.2.0

type Folder struct {
	// The ChildFolderCount element represents the number of immediate child folders that are contained within a folder. This property is read-only.
	ChildFolderCount ChildFolderCount `xml:"t:ChildFolderCount,omitempty"`
	// The DisplayName element defines the display name of a folder, contact, distribution list, delegate user, location, or rule.
	DisplayName DisplayNamestring `xml:"t:DisplayName,omitempty"`
	// The EffectiveRights element contains the client's rights based on the permission settings for the item or folder. This element is read-only.
	EffectiveRights *EffectiveRights `xml:"t:EffectiveRights,omitempty"`
	// The ExtendedProperty element identifies extended MAPI properties on folders and items.
	ExtendedProperty *ExtendedProperty `xml:"t:ExtendedProperty,omitempty"`
	// The FolderClass element represents the folder class for a folder.
	FolderClass FolderClass `xml:"t:FolderClass,omitempty"`
	// The FolderId element contains the identifier and change key of a folder.
	FolderId *FolderId `xml:"t:FolderId,omitempty"`
	// The ManagedFolderInformation element contains information about a managed custom folder.
	ManagedFolderInformation *ManagedFolderInformation `xml:"t:ManagedFolderInformation,omitempty"`
	// The ParentFolderId element represents the identifier of the parent folder that contains the item or folder.
	ParentFolderId *ParentFolderId `xml:"t:ParentFolderId,omitempty"`
	// The PermissionSet element contains all the permissions that are configured for a folder.
	PermissionSet *PermissionSetPermissionSetType `xml:"t:PermissionSet,omitempty"`
	// The TotalCount element represents the total count of items within a given folder.
	TotalCount TotalCount `xml:"t:TotalCount"`
	// The UnreadCount element contains the count of unread items within a folder.
	UnreadCount UnreadCount `xml:"t:UnreadCount"`
}

type FolderClass added in v2.2.0

type FolderClass string

type FolderId added in v2.2.0

type FolderId struct {
	ChangeKey *string `xml:"ChangeKey,attr"`
	Id        *string `xml:"Id,attr"`
}

type FolderIds added in v2.2.0

type FolderIds struct {
	DistinguishedFolderId *DistinguishedFolderId `xml:"t:DistinguishedFolderId,omitempty"`
	FolderId              *FolderId              `xml:"t:FolderId,omitempty"`
}

type FolderShape added in v2.2.0

type FolderShape struct {
	// The AdditionalProperties element identifies additional properties for use in GetItem, UpdateItem, CreateItem, FindItem, or FindFolder requests.
	AdditionalProperties *AdditionalProperties `xml:"t:AdditionalProperties,omitempty"`
	// The BaseShape element identifies the set of properties to return in an item or folder response.
	BaseShape BaseShape `xml:"t:BaseShape,omitempty"`
}

type Folders added in v2.2.0

type Folders struct {
	// The CalendarFolder element represents a folder that primarily contains calendar items.
	CalendarFolder *CalendarFolder `xml:"t:CalendarFolder,omitempty"`
	// The ContactsFolder element represents a contacts folder that is contained in a mailbox.
	ContactsFolder *ContactsFolder `xml:"t:ContactsFolder,omitempty"`
	// The Folder element defines a folder to create, get, find, synchronize, or update.
	Folder *Folder `xml:"t:Folder,omitempty"`
	// The SearchFolder element represents a search folder that is contained in a mailbox.
	SearchFolder *SearchFolder `xml:"t:SearchFolder,omitempty"`
	// The TasksFolder element represents a Tasks folder that is contained in a mailbox.
	TasksFolder *TasksFolder `xml:"t:TasksFolder,omitempty"`
}

type FractionalPageItemView added in v2.2.0

type FractionalPageItemView struct {
	// Represents the denominator of the fractional offset from the start of the total number of items in the result set. This attribute is required. This attribute must represent an integral value that is greater than one.   For more information, see Remarks later in this topic.
	Denominator *string `xml:"Denominator,attr"`
	// Identifies the maximum number of results to return in the FindItem response. This attribute is optional. If this attribute is not specified, the call will return all available items.
	MaxEntriesReturned *string `xml:"MaxEntriesReturned,attr"`
	// Represents the numerator of the fractional offset from the start of the result set. This attribute is required. The numerator must be equal to or less than the denominator. This attribute must represent an integral value that is equal to or greater than zero.   For more information, see Remarks later in this topic.
	Numerator *string `xml:"Numerator,attr"`
}

type FreeBusyResponse

type FreeBusyResponse struct {
	ResponseMessage ResponseMessage `xml:"ResponseMessage"`
	FreeBusyView    FreeBusyView    `xml:"FreeBusyView"`
}

type FreeBusyResponseArray

type FreeBusyResponseArray struct {
	FreeBusyResponse []FreeBusyResponse `xml:"FreeBusyResponse"`
}

type FreeBusyView

type FreeBusyView struct {
	FreeBusyViewType   string             `xml:"FreeBusyViewType"`
	MergedFreeBusy     string             `xml:"MergedFreeBusy"`
	CalendarEventArray CalendarEventArray `xml:"CalendarEventArray"`
	WorkingHours       WorkingHours       `xml:"WorkingHours"`
}

type FreeBusyViewOptions

type FreeBusyViewOptions struct {
	TimeWindow                      TimeWindow `xml:"t:TimeWindow"`
	MergedFreeBusyIntervalInMinutes int        `xml:"t:MergedFreeBusyIntervalInMinutes,omitempty"`
	RequestedView                   string     `xml:"t:RequestedView"`
}

type GetFindItemResponseMessages added in v2.2.0

type GetFindItemResponseMessages struct {
	FindItemResponseMessage *FindItemResponseMessage `xml:"FindItemResponseMessage"`
}

type GetFolder added in v2.2.0

type GetFolder struct {
	XMLName xml.Name `xml:"m:GetFolder"`

	FolderIds   *FolderIds   `xml:"m:FolderIds,omitempty"`
	FolderShape *FolderShape `xml:"m:FolderShape,omitempty"`
}

type GetFolderParams added in v2.2.0

type GetFolderParams struct {
	FolderId  string
	BaseShape BaseShape
}

type GetFolderResponse added in v2.2.0

type GetFolderResponse struct {
	ResponseMessages *GetFolderResponseMessages `xml:"m:ResponseMessages"`
}

type GetFolderResponseMessage added in v2.2.0

type GetFolderResponseMessage struct {
	// The DescriptiveLinkKey element is currently unused and is reserved for future use. It contains a value of 0.
	DescriptiveLinkKey *DescriptiveLinkKey `xml:"m:DescriptiveLinkKey,omitempty"`
	// The Folders element contains an array of folders that are used in folder operations.
	Folders *Folders `xml:"t:Folders,omitempty"`
	// The MessageText element provides a text description of the status of the response.
	MessageText MessageText `xml:"m:MessageText,omitempty"`
	// The MessageXml element provides additional error response information.
	MessageXml *MessageXml `xml:"m:MessageXml,omitempty"`
	// The ResponseCode element provides status information about the request.
	ResponseCode ResponseCode `xml:"m:ResponseCode"`
	// Describes the status of a GetFolder operation response. The following values are valid for this attribute:  - Success  - Warning  - Error
	ResponseClass string `xml:"ResponseClass,attr"`
}

type GetFolderResponseMessages added in v2.2.0

type GetFolderResponseMessages struct {
	GetFolderResponseMessage *GetFolderResponseMessage `xml:"m:GetFolderResponseMessage"`
}

type GetGetItemResponseMessages added in v2.2.0

type GetGetItemResponseMessages struct {
	GetItemResponseMessage *GetItemResponseMessage `xml:"GetItemResponseMessage"`
}

type GetItem added in v2.2.0

type GetItem struct {
	XMLName xml.Name `xml:"m:GetItem"`

	// The ItemIds element contains the unique identities of items, occurrence items, and recurring master items that are used to delete, send, get, move, or copy items in the Exchange store.
	ItemIds *ItemIds `xml:"m:ItemIds,omitempty"`
	// The ItemShape element identifies a set of properties to return in a GetItem operation, FindItem operation, or SyncFolderItems operation response.
	ItemShape *ItemShape `xml:"m:ItemShape,omitempty"`
}

type GetItemResponse added in v2.2.0

type GetItemResponse struct {
	// The GetItemResponseMessage element contains the status and result of a single GetItem operation request.
	ResponseMessages *GetGetItemResponseMessages `xml:"ResponseMessages"`
}

type GetItemResponseMessage added in v2.2.0

type GetItemResponseMessage struct {
	// The DescriptiveLinkKey element is currently unused and is reserved for future use. It contains a value of 0.
	DescriptiveLinkKey *DescriptiveLinkKey `xml:"DescriptiveLinkKey,omitempty"`
	// The Items element contains an array of items.
	Items *Items `xml:"Items,omitempty"`
	// The MessageText element provides a text description of the status of the response.
	MessageText MessageText `xml:"MessageText,omitempty"`
	// The MessageXml element provides additional error response information.
	MessageXml *MessageXml `xml:"MessageXml,omitempty"`
	// The ResponseCode element provides status information about the request.
	ResponseCode ResponseCode `xml:"ResponseCode"`
	// Describes the status of a GetItem operation response. The following values are valid for this attribute:- Success- Warning- Error
	ResponseClass string `xml:"ResponseClass,attr"`
}

type GetPersonaRequest

type GetPersonaRequest struct {
	XMLName   struct{}  `xml:"m:GetPersona"`
	PersonaId PersonaId `xml:"m:PersonaId"`
}

type GetPersonaResponse

type GetPersonaResponse struct {
	Response
	Persona Persona `xml:"Persona"`
}

type GetRoomListsRequest

type GetRoomListsRequest struct {
	XMLName struct{} `xml:"m:GetRoomLists"`
}

type GetRoomListsResponse

type GetRoomListsResponse struct {
	Response
	RoomLists RoomLists `xml:"RoomLists"`
}

type GetUserAvailabilityRequest

type GetUserAvailabilityRequest struct {
	XMLName             struct{}            `xml:"m:GetUserAvailabilityRequest"`
	TimeZone            TimeZone            `xml:"t:TimeZone"`
	MailboxDataArray    MailboxDataArray    `xml:"m:MailboxDataArray"`
	FreeBusyViewOptions FreeBusyViewOptions `xml:"t:FreeBusyViewOptions"`
}

type GetUserAvailabilityResponse

type GetUserAvailabilityResponse struct {
	FreeBusyResponseArray FreeBusyResponseArray `xml:"FreeBusyResponseArray"`
	SuggestionsResponse   SuggestionsResponse   `xml:"SuggestionsResponse"`
}

type GetUserPhotoRequest

type GetUserPhotoRequest struct {
	XMLName       struct{} `xml:"m:GetUserPhoto"`
	Email         string   `xml:"m:Email"`
	SizeRequested string   `xml:"m:SizeRequested"`
}

type GetUserPhotoResponse

type GetUserPhotoResponse struct {
	Response
	HasChanged  bool   `xml:"HasChanged"`
	PictureData string `xml:"PictureData"`
}

type GroupAttendeeConflictData

type GroupAttendeeConflictData struct {
	NumberOfMembers             int `xml:"NumberOfMembers"`
	NumberOfMembersAvailable    int `xml:"NumberOfMembersAvailable"`
	NumberOfMembersWithConflict int `xml:"NumberOfMembersWithConflict"`
	NumberOfMembersWithNoData   int `xml:"NumberOfMembersWithNoData"`
}

type GroupBy added in v2.2.0

type GroupBy struct {
	// The AggregateOn element represents the property that is used to determine the order of grouped items for a grouped FindItem result set.
	AggregateOn *AggregateOn `xml:"t:AggregateOn,omitempty"`
	// The ExtendedFieldURI element identifies an extended MAPI property.
	ExtendedFieldURI *ExtendedFieldURI `xml:"t:ExtendedFieldURI,omitempty"`
	// The FieldURI element identifies frequently referenced properties by URI.
	FieldURI *FieldURI `xml:"t:FieldURI,omitempty"`
	// The IndexedFieldURI element identifies individual members of a dictionary.
	IndexedFieldURI *IndexedFieldURI `xml:"t:IndexedFieldURI,omitempty"`
	// Determines the order of the groups in the grouped item array that is returned in the response. This attribute is of type SortDirectionType.
	Order string `xml:"Order,attr"`
}

type GroupIndex added in v2.2.0

type GroupIndex string

type GroupedItems added in v2.2.0

type GroupedItems struct {
	// The GroupIndex element represents the property value that is used to group items for the current group of items in a FindItem operation call.
	GroupIndex GroupIndex `xml:"t:GroupIndex,omitempty"`
	// The Items element contains an array of items.
	Items *Items `xml:"t:Items,omitempty"`
}

type Groups added in v2.2.0

type Groups struct {
	// The GroupedItems element represents a collection of items that are the result of a grouped FindItem operation call.
	GroupedItems *GroupedItems `xml:"t:GroupedItems,omitempty"`
}

type HTTPError

type HTTPError struct {
	Status     string
	StatusCode int
}

func (HTTPError) Error

func (s HTTPError) Error() string

type IncludeMimeContent added in v2.2.0

type IncludeMimeContent bool

type IndexedFieldURI added in v2.2.0

type IndexedFieldURI struct {
	// Identifies the member of the dictionary to return. This attribute is required.
	FieldIndex *string `xml:"FieldIndex,attr"`
	// Identifies the dictionary that contains the member to return. This attribute is required.
	FieldURI *string `xml:"FieldURI,attr"`
}

type IndexedPageItemView

type IndexedPageItemView struct {
	MaxEntriesReturned int       `xml:"MaxEntriesReturned,attr,omitempty"`
	Offset             int       `xml:"Offset,attr"`
	BasePoint          BasePoint `xml:"BasePoint,attr"`
}

type IsEqualTo added in v2.2.0

type IsEqualTo struct {
	// The ExtendedFieldURI element identifies an extended MAPI property.
	ExtendedFieldURI *ExtendedFieldURI `xml:"t:ExtendedFieldURI,omitempty"`
	// The FieldURI element identifies frequently referenced properties by URI.
	FieldURI *FieldURI `xml:"t:FieldURI,omitempty"`
	// The FieldURIOrConstant element represents either a property or a constant value to be used when comparing with another property.
	FieldURIOrConstant *FieldURIOrConstant `xml:"t:FieldURIOrConstant,omitempty"`
	// The IndexedFieldURI element identifies individual members of a dictionary.
	IndexedFieldURI *IndexedFieldURI `xml:"t:IndexedFieldURI,omitempty"`
}

type IsGreaterThan added in v2.2.0

type IsGreaterThan struct {
	// The ExtendedFieldURI element identifies an extended MAPI property.
	ExtendedFieldURI *ExtendedFieldURI `xml:"t:ExtendedFieldURI,omitempty"`
	// The FieldURI element identifies frequently referenced properties by URI.
	FieldURI *FieldURI `xml:"t:FieldURI,omitempty"`
	// The FieldURIOrConstant element represents either a property or a constant value to be used when comparing with another property.
	FieldURIOrConstant *FieldURIOrConstant `xml:"t:FieldURIOrConstant,omitempty"`
	// The IndexedFieldURI element identifies individual members of a dictionary.
	IndexedFieldURI *IndexedFieldURI `xml:"t:IndexedFieldURI,omitempty"`
}

type IsGreaterThanOrEqualTo added in v2.2.0

type IsGreaterThanOrEqualTo struct {
	// The ExtendedFieldURI element identifies an extended MAPI property.
	ExtendedFieldURI *ExtendedFieldURI `xml:"t:ExtendedFieldURI,omitempty"`
	// The FieldURI element identifies frequently referenced properties by URI.
	FieldURI *FieldURI `xml:"t:FieldURI,omitempty"`
	// The FieldURIOrConstant element represents either a property or a constant value to be used when comparing with another property.
	FieldURIOrConstant *FieldURIOrConstant `xml:"t:FieldURIOrConstant,omitempty"`
	// The IndexedFieldURI element identifies individual members of a dictionary.
	IndexedFieldURI *IndexedFieldURI `xml:"t:IndexedFieldURI,omitempty"`
}

type IsLessThan added in v2.2.0

type IsLessThan struct {
	// The ExtendedFieldURI element identifies an extended MAPI property.
	ExtendedFieldURI *ExtendedFieldURI `xml:"t:ExtendedFieldURI,omitempty"`
	// The FieldURI element identifies frequently referenced properties by URI.
	FieldURI *FieldURI `xml:"t:FieldURI,omitempty"`
	// The FieldURIOrConstant element represents either a property or a constant value to be used when comparing with another property.
	FieldURIOrConstant *FieldURIOrConstant `xml:"t:FieldURIOrConstant,omitempty"`
	// The IndexedFieldURI element identifies individual members of a dictionary.
	IndexedFieldURI *IndexedFieldURI `xml:"t:IndexedFieldURI,omitempty"`
}

type IsLessThanOrEqualTo added in v2.2.0

type IsLessThanOrEqualTo struct {
	// The ExtendedFieldURI element identifies an extended MAPI property.
	ExtendedFieldURI *ExtendedFieldURI `xml:"t:ExtendedFieldURI,omitempty"`
	// The FieldURI element identifies frequently referenced properties by URI.
	FieldURI *FieldURI `xml:"t:FieldURI,omitempty"`
	// The FieldURIOrConstant element represents either a property or a constant value to be used when comparing with another property.
	FieldURIOrConstant *FieldURIOrConstant `xml:"t:FieldURIOrConstant,omitempty"`
	// The IndexedFieldURI element identifies individual members of a dictionary.
	IndexedFieldURI *IndexedFieldURI `xml:"t:IndexedFieldURI,omitempty"`
}

type IsNotEqualTo added in v2.2.0

type IsNotEqualTo struct {
	// The ExtendedFieldURI element identifies an extended MAPI property.
	ExtendedFieldURI *ExtendedFieldURI `xml:"t:ExtendedFieldURI,omitempty"`
	// The FieldURI element identifies frequently referenced properties by URI.
	FieldURI *FieldURI `xml:"t:FieldURI,omitempty"`
	// The FieldURIOrConstant element represents either a property or a constant value to be used when comparing with another property.
	FieldURIOrConstant *FieldURIOrConstant `xml:"t:FieldURIOrConstant,omitempty"`
	// The IndexedFieldURI element identifies individual members of a dictionary.
	IndexedFieldURI *IndexedFieldURI `xml:"t:IndexedFieldURI,omitempty"`
}

type ItemAttachment added in v2.1.0

type ItemAttachment struct {
	AttachmentId     AttachmentId `xml:"t:AttachmentId,omitempty"`
	Name             string       `xml:"t:Name"`
	ContentType      string       `xml:"t:ContentType,omitempty"`
	ContentId        string       `xml:"t:ContentId,omitempty"`
	ContentLocation  string       `xml:"t:ContentLocation,omitempty"`
	Size             int64        `xml:"t:Size,omitempty"`
	LastModifiedTime string       `xml:"t:LastModifiedTime,omitempty"`
	IsInline         bool         `xml:"t:IsInline"`
}

type ItemId

type ItemId struct {
	// Identifies a specific version of an item. A ChangeKey is required for the following scenarios:  - The UpdateItem element requires a ChangeKey if the ConflictResolution attribute is set to AutoResolve. AutoResolve is a default value. If the ChangeKey attribute is not included, the response will return a ResponseCode value equal to ErrorChangeKeyRequired.  - The SendItem element requires a ChangeKey to test whether the attempted operation will act upon the most recent version of an item. If the ChangeKey attribute is not included in the ItemId or if the ChangeKey is empty, the response will return a ResponseCode value equal to ErrorStaleObject.
	ChangeKey string `xml:"ChangeKey,attr,omitempty"`
	// Identifies a specific item in the Exchange store. Id is case-sensitive; therefore, comparisons between Ids must be case-sensitive or binary.
	Id string `xml:"Id,attr,omitempty"`
}

type ItemIds added in v2.2.0

type ItemIds struct {
	// The ItemId element contains the unique identifier and change key of an item in the Exchange store.
	ItemId *ItemId `xml:"t:ItemId,omitempty"`
	// The OccurrenceItemId element identifies a single occurrence of a recurring item.
	OccurrenceItemId *OccurrenceItemId `xml:"t:OccurrenceItemId,omitempty"`
	// The RecurringMasterItemId element identifies a recurrence master item by identifying the identifiers of one of its related occurrence items.
	RecurringMasterItemId *RecurringMasterItemId `xml:"t:RecurringMasterItemId,omitempty"`
}

type ItemShape added in v2.2.0

type ItemShape struct {
	// The AdditionalProperties element identifies additional properties for use in GetItem, UpdateItem, CreateItem, FindItem, or FindFolder requests.
	AdditionalProperties *AdditionalProperties `xml:"t:AdditionalProperties,omitempty"`
	// The BaseShape element identifies the set of properties to return in an item or folder response.
	BaseShape BaseShape `xml:"t:BaseShape,omitempty"`
	// The BodyType element identifies how the body text is formatted in the response.
	BodyType string `xml:"t:BodyType,omitempty"`
	// The ConvertHtmlCodePageToUTF8 element indicates whether the item HTML body is converted to UTF8.
	ConvertHtmlCodePageToUTF8 ConvertHtmlCodePageToUTF8 `xml:"t:ConvertHtmlCodePageToUTF8,omitempty"`
	// The FilterHtmlContent element specifies whether potentially unsafe HTML content is filtered from an item or attachment.
	FilterHtmlContent FilterHtmlContent `xml:"t:FilterHtmlContent,omitempty"`
	// The IncludeMimeContent element specifies whether the Multipurpose Internet Mail Extensions (MIME) content of an item or attachment is returned in the response.
	IncludeMimeContent IncludeMimeContent `xml:"t:IncludeMimeContent,omitempty"`
}

type Items

type Items struct {
	XMLName xml.Name

	// The CalendarItem element represents an Exchange calendar item.
	CalendarItem []*CalendarItem `xml:"CalendarItem"`
	// // The Contact element represents a contact item in the Exchange store.
	// Contact []*Contact `xml:"Contact"`
	// // The DistributionList element represents a distribution list.
	// DistributionList []*DistributionList `xml:"DistributionList"`
	// // The Item element represents a generic item in the Exchange store.
	// Item []*Item `xml:"Item"`
	// // The MeetingCancellation element represents a meeting cancellation in the Exchange store.
	// MeetingCancellation []*MeetingCancellation `xml:"MeetingCancellation"`
	// // The MeetingMessage element represents a meeting in the Exchange store.
	// MeetingMessage []*MeetingMessage `xml:"MeetingMessage"`
	// // The MeetingRequest element represents a meeting request in the Exchange store.
	// MeetingRequest []*MeetingRequest `xml:"MeetingRequest"`
	// // The MeetingResponse element represents a meeting response in the Exchange store.
	// MeetingResponse []*MeetingResponse `xml:"MeetingResponse"`
	// The Message element represents a Microsoft Exchange e-mail message.
	Message []*Message `xml:"Message"`
}

type ItemsNonEmptyArrayOfAllItemsType added in v2.2.0

type ItemsNonEmptyArrayOfAllItemsType struct {
	// // The AcceptItem element represents an Accept reply to a meeting request.
	// AcceptItem *AcceptItem `xml:"AcceptItem"`
	// // The AcceptSharingInvitation element is used to accept an invitation that allows access to another user's calendar or contacts data.
	// AcceptSharingInvitation *AcceptSharingInvitation `xml:"AcceptSharingInvitation"`
	// The CalendarItem element represents an Exchange calendar item.
	CalendarItem *CalendarItem `xml:"t:CalendarItem"`
	// // The CancelCalendarItem element represents the response object that is used to cancel a meeting.
	// CancelCalendarItem *CancelCalendarItem `xml:"CancelCalendarItem"`
	// // The Contact element represents a contact item in the Exchange store.
	// Contact *Contact `xml:"Contact"`
	// // The DeclineItem element represents a Decline reply to a meeting request.
	// DeclineItem *DeclineItem `xml:"DeclineItem"`
	// // The DistributionList element represents a distribution list.
	// DistributionList *DistributionList `xml:"DistributionList"`
	// // The ForwardItem element contains an Exchange store item to forward to recipients.
	// ForwardItem *ForwardItem `xml:"ForwardItem"`
	// // The Item element represents a generic item in the Exchange store.
	// Item *Item `xml:"Item"`
	// // The MeetingCancellation element represents a meeting cancellation in the Exchange store.
	// MeetingCancellation *MeetingCancellation `xml:"MeetingCancellation"`
	// // The MeetingMessage element represents a meeting in the Exchange store.
	// MeetingMessage *MeetingMessage `xml:"MeetingMessage"`
	// // The MeetingRequest element represents a meeting request in the Exchange store.
	// MeetingRequest *MeetingRequest `xml:"MeetingRequest"`
	// // The MeetingResponse element represents a meeting response in the Exchange store.
	// MeetingResponse *MeetingResponse `xml:"MeetingResponse"`
	// The Message element represents a Microsoft Exchange e-mail message.
	Message *TMessage `xml:"t:Message"`
}

type Mailbox

type Mailbox struct {
	EmailAddress string `xml:"t:EmailAddress"`
}

type MailboxData

type MailboxData struct {
	Email            Email        `xml:"t:Email"`
	AttendeeType     AttendeeType `xml:"t:AttendeeType"`
	ExcludeConflicts bool         `xml:"t:ExcludeConflicts"`
}

type MailboxDataArray

type MailboxDataArray struct {
	MailboxData []MailboxData `xml:"t:MailboxData"`
}

type ManagedFolderInformation added in v2.2.0

type ManagedFolderInformation struct {
}

type Message

type Message struct {
	// // The Attachments element contains the items or files that are attached to an item in the Exchange store.
	// Attachments *Attachments `xml:"Attachments"`
	// // The BccRecipients element represents a collection of recipients to receive a blind carbon copy (Bcc) of an e-mail message.
	// BccRecipients *BccRecipients `xml:"BccRecipients"`
	// The Body element specifies the body of an item.
	Body *Body `xml:"Body"`
	// The Categories element contains a collection of strings that identify the categories to which an item in the mailbox belongs.
	// Categories *Categories `xml:"Categories"`
	// // The CcRecipients element represents a collection of recipients that will receive a copy of the message.
	// CcRecipients *CcRecipients `xml:"CcRecipients"`
	// // The ConversationId element contains the identifier of an item or conversation.
	// ConversationId *ConversationId `xml:"ConversationId"`
	// // The ConversationIndex element contains a binary ID that represents the thread to which this message belongs.
	// ConversationIndex *ConversationIndex `xml:"ConversationIndex"`
	// // The ConversationTopic element represents the conversation topic.
	// ConversationTopic *ConversationTopic `xml:"ConversationTopic"`
	// // The Culture element represents the culture for a given item in a mailbox.
	// Culture *Culture `xml:"Culture"`
	// // The DateTimeCreated element represents the date and time that an item in the mailbox was created.
	// DateTimeCreated *DateTimeCreated `xml:"DateTimeCreated"`
	// // The DateTimeReceived element represents the date and time that an item in a mailbox was received.
	// DateTimeReceived *DateTimeReceived `xml:"DateTimeReceived"`
	// // The DateTimeSent element represents the date and time at which an item in a mailbox was sent.
	// DateTimeSent *DateTimeSent `xml:"DateTimeSent"`
	// // The DisplayCc element represents the display string that is used for the contents of the Cc box. This is the concatenated string of all Cc recipient display names.
	// DisplayCc *DisplayCc `xml:"DisplayCc"`
	// // The DisplayTo element represents the display string that is used for the contents of the To box. This is the concatenated string of all To recipient display names.
	// DisplayTo *DisplayTo `xml:"DisplayTo"`
	// // The EffectiveRights element contains the client's rights based on the permission settings for the item or folder. This element is read-only.
	// EffectiveRights *EffectiveRights `xml:"EffectiveRights"`
	// // The ExtendedProperty element identifies extended MAPI properties on folders and items.
	// ExtendedProperty *ExtendedProperty `xml:"ExtendedProperty"`
	// // The From element represents the address from which the message was sent.
	// From *From `xml:"From"`
	// // The HasAttachments element represents a property that is set to true if an item has at least one visible attachment or if a conversation contains at least one item that has an attachment. This property is read-only.
	// HasAttachments *HasAttachments `xml:"HasAttachments"`
	// // The Importance element describes the importance of an item or the aggregated importance of all items in a conversation in the current folder.
	// Importance *Importance `xml:"Importance"`
	// // The InReplyTo element represents the identifier of the item to which this item is a reply.
	// InReplyTo *InReplyTo `xml:"InReplyTo"`
	// // The InternetMessageHeaders element contains a collection of some of the Internet message headers that are contained in an item in a mailbox. To get the entire collection of Internet message headers, use the PR_TRANSPORT_MESSAGE_HEADERS property. For more information about EWS and Internet message headers, seeGetting Internet message headersin EWS, MIME, and the missing Internet message headers.
	// InternetMessageHeaders *InternetMessageHeaders `xml:"InternetMessageHeaders"`
	// // The InternetMessageId element represents the Internet message identifier of an item.
	// InternetMessageId *InternetMessageId `xml:"InternetMessageId"`
	// // The IsAssociated element indicates whether the item is associated with a folder.
	// IsAssociated *IsAssociated `xml:"IsAssociated"`
	// // The IsDeliveryReceiptRequested element indicates whether the sender of an item requests a delivery receipt.
	// IsDeliveryReceiptRequested *IsDeliveryReceiptRequested `xml:"IsDeliveryReceiptRequested"`
	// // The IsDraft element indicates whether an item has not yet been sent.
	// IsDraft *IsDraft `xml:"IsDraft"`
	// // The IsFromMe element indicates whether a user sent an item to him or herself.
	// IsFromMe *IsFromMe `xml:"IsFromMe"`
	// // The IsRead element indicates whether a message has been read.
	// IsRead *IsRead `xml:"IsRead"`
	// // The IsReadReceiptRequested element indicates whether the sender of an item requests a read receipt.
	// IsReadReceiptRequested *IsReadReceiptRequested `xml:"IsReadReceiptRequested"`
	// // The IsResend element indicates whether the item had previously been sent.
	// IsResend *IsResend `xml:"IsResend"`
	// // The IsResponseRequested element indicates whether a response to an item is requested.
	// IsResponseRequested *IsResponseRequested `xml:"IsResponseRequested"`
	// // The IsSubmitted element indicates whether an item has been submitted to the Outbox default folder.
	// IsSubmitted *IsSubmitted `xml:"IsSubmitted"`
	// // The IsUnmodified element indicates whether the item has been modified.
	// IsUnmodified *IsUnmodified `xml:"IsUnmodified"`
	// // The ItemClass element represents the message class of an item.
	// ItemClass *ItemClass `xml:"ItemClass"`
	// The ItemId element contains the unique identifier and change key of an item in the Exchange store.
	ItemId *ItemId `xml:"ItemId"`
	// The LastModifiedName element contains the display name of the last user to modify an item. This element is read-only. This element was introduced in Microsoft Exchange Server 2007 Service Pack 1 (SP1).
	// LastModifiedName *LastModifiedName `xml:"LastModifiedName"`
	// // The LastModifiedTime element indicates when an item was last modified. This element is read-only.
	// LastModifiedTime *LastModifiedTime `xml:"LastModifiedTime"`
	// // The MimeContent element contains the ASCII MIME stream of an object that is represented in base64Binary format and supports [RFC2045].
	// MimeContent *MimeContent `xml:"MimeContent"`
	// // The ParentFolderId element represents the identifier of the parent folder that contains the item or folder.
	// ParentFolderId *ParentFolderId `xml:"ParentFolderId"`
	// // The ReceivedBy element identifies the delegate in a delegate access scenario.
	// ReceivedBy *ReceivedBy `xml:"ReceivedBy"`
	// // The ReceivedRepresenting element identifies the principal in a delegate access scenario.
	// ReceivedRepresenting *ReceivedRepresenting `xml:"ReceivedRepresenting"`
	// // The References element represents the Usenet header that is used to associate replies with the original messages.
	// References *References `xml:"References"`
	// // The ReminderDueBy element represents the date and time when the event occurs. This is used by the ReminderMinutesBeforeStart element to determine when the reminder is displayed.
	// ReminderDueBy *ReminderDueBy `xml:"ReminderDueBy"`
	// // The ReminderIsSet element indicates whether a reminder has been set for an item in the Exchange store.
	// ReminderIsSet *ReminderIsSet `xml:"ReminderIsSet"`
	// // The ReminderMessageData element specifies the data in a reminder message.
	// ReminderMessageData *ReminderMessageData `xml:"ReminderMessageData"`
	// // The ReminderMinutesBeforeStart element represents the number of minutes before an event occurs when a reminder is displayed.
	// ReminderMinutesBeforeStart *ReminderMinutesBeforeStart `xml:"ReminderMinutesBeforeStart"`
	// // The ReplyTo element identifies an array of addresses to which replies should be sent.
	// ReplyTo *ReplyTo `xml:"ReplyTo"`
	// // The ResponseObjects element contains a collection of all the response objects that are associated with an item in the Exchange store.
	// ResponseObjects *ResponseObjects `xml:"ResponseObjects"`
	// The Sender element identifies the sender of an item.
	Sender *Sender `xml:"Sender"`
	// // The Sensitivity element indicates the sensitivity level of an item.
	// Sensitivity *Sensitivity `xml:"Sensitivity"`
	// The Size element represents the size in bytes of an item or all the items in a conversation in the current folder. This property is read-only.
	Size *Size `xml:"Size"`
	// The Subject element represents the subject property of Exchange store items. The subject is limited to 255 characters.
	Subject *Subject `xml:"Subject"`
}

type MessageText added in v2.2.0

type MessageText string

type MessageXml

type MessageXml struct {
	ExceptionType       string `xml:"ExceptionType"`
	ExceptionCode       string `xml:"ExceptionCode"`
	ExceptionServerName string `xml:"ExceptionServerName"`
	ExceptionMessage    string `xml:"ExceptionMessage"`
}

type MobilePhones

type MobilePhones struct {
	PhoneNumberAttributedValue PhoneNumberAttributedValue `xml:"PhoneNumberAttributedValue"`
}

type Not added in v2.2.0

type Not struct {
	// The And element represents a search expression that allows you to perform a Boolean AND operation between two or more search expressions. The result of the AND operation is true if all the search expressions contained within the And element are true.
	And *And `xml:"t:And,omitempty"`
	// The Contains element represents a search expression that determines whether a given property contains the supplied constant string value.
	Contains *Contains `xml:"t:Contains,omitempty"`
	// The Excludes element performs a bitwise mask of the specified property and a supplied value.
	Excludes *Excludes `xml:"t:Excludes,omitempty"`
	// The Exists element represents a search expression that returns true if the supplied property exists on an item.
	Exists *Exists `xml:"t:Exists,omitempty"`
	// The IsEqualTo element represents a search expression that compares a property with either a constant value or another property and evaluates to true if they are equal.
	IsEqualTo *IsEqualTo `xml:"t:IsEqualTo,omitempty"`
	// The IsGreaterThan element represents a search expression that compares a property with either a constant value or another property and returns true if the first property is greater.
	IsGreaterThan *IsGreaterThan `xml:"t:IsGreaterThan,omitempty"`
	// The IsGreaterThanOrEqualTo element represents a search expression that compares a property with either a constant value or another property and returns true if the first property is greater than or equal to the second.
	IsGreaterThanOrEqualTo *IsGreaterThanOrEqualTo `xml:"t:IsGreaterThanOrEqualTo,omitempty"`
	// The IsLessThan element represents a search expression that compares a property with either a constant value or another property and returns true if the first property is less than the second.
	IsLessThan *IsLessThan `xml:"t:IsLessThan,omitempty"`
	// The IsLessThanOrEqualTo element represents a search expression that compares a property with either a constant value or another property and returns true if the first property is less than or equal to the second.
	IsLessThanOrEqualTo *IsLessThanOrEqualTo `xml:"t:IsLessThanOrEqualTo,omitempty"`
	// The IsNotEqualTo element represents a search expression that compares a property with either a constant value or another property and returns true if the values are not the same.
	IsNotEqualTo *IsNotEqualTo `xml:"t:IsNotEqualTo,omitempty"`
	// The Or element represents a search expression that performs a logical OR on the search expression that it contains. Or will return true if any of its children return true. Or must have two or more children.
	Or *Or `xml:"t:Or,omitempty"`
	// The SearchExpression element is an abstract element that represents the substituted element within a restriction. All search expressions derive from this base type. This element is not used in an XML instance document.
	SearchExpression *SearchExpression `xml:"t:SearchExpression,omitempty"`
}

type OccurrenceItemId added in v2.2.0

type OccurrenceItemId struct {
	// Identifies a specific version of the recurring master or an item occurrence. If either the recurring master or any of its occurrences change, the ChangeKey changes. The ChangeKey is the same for the recurring master and all occurrences.
	ChangeKey string `xml:"ChangeKey,attr,omitempty"`
	// Identifies the index of the item occurrence. This attribute is required. This value represents an integer.
	InstanceIndex string `xml:"InstanceIndex,attr,omitempty"`
	// Identifies the recurring master of a recurring item. This attribute is required.
	RecurringMasterId string `xml:"RecurringMasterId,attr,omitempty"`
}

type OfficeLocations

type OfficeLocations struct {
	StringAttributedValue StringAttributedValue `xml:"StringAttributedValue"`
}

type OneMailbox

type OneMailbox struct {
	Mailbox Mailbox `xml:"t:Mailbox"`
}

type Or added in v2.2.0

type Or struct {
	// The And element represents a search expression that allows you to perform a Boolean AND operation between two or more search expressions. The result of the AND operation is true if all the search expressions contained within the And element are true.
	And *And `xml:"t:And,omitempty"`
	// The Contains element represents a search expression that determines whether a given property contains the supplied constant string value.
	Contains *Contains `xml:"t:Contains,omitempty"`
	// The Excludes element performs a bitwise mask of the specified property and a supplied value.
	Excludes *Excludes `xml:"t:Excludes,omitempty"`
	// The Exists element represents a search expression that returns true if the supplied property exists on an item.
	Exists *Exists `xml:"t:Exists,omitempty"`
	// The IsEqualTo element represents a search expression that compares a property with either a constant value or another property and evaluates to true if they are equal.
	IsEqualTo *IsEqualTo `xml:"t:IsEqualTo,omitempty"`
	// The IsGreaterThan element represents a search expression that compares a property with either a constant value or another property and returns true if the first property is greater.
	IsGreaterThan *IsGreaterThan `xml:"t:IsGreaterThan,omitempty"`
	// The IsGreaterThanOrEqualTo element represents a search expression that compares a property with either a constant value or another property and returns true if the first property is greater than or equal to the second.
	IsGreaterThanOrEqualTo *IsGreaterThanOrEqualTo `xml:"t:IsGreaterThanOrEqualTo,omitempty"`
	// The IsLessThan element represents a search expression that compares a property with either a constant value or another property and returns true if the first property is less than the second.
	IsLessThan *IsLessThan `xml:"t:IsLessThan,omitempty"`
	// The IsLessThanOrEqualTo element represents a search expression that compares a property with either a constant value or another property and returns true if the first property is less than or equal to the second.
	IsLessThanOrEqualTo *IsLessThanOrEqualTo `xml:"t:IsLessThanOrEqualTo,omitempty"`
	// The IsNotEqualTo element represents a search expression that compares a property with either a constant value or another property and returns true if the values are not the same.
	IsNotEqualTo *IsNotEqualTo `xml:"t:IsNotEqualTo,omitempty"`
	// The Not element represents a search expression that negates the Boolean value of the search expression that it contains.
	Not *Not `xml:"t:Not,omitempty"`
	// The SearchExpression element is an abstract element that represents the substituted element within a restriction. All search expressions derive from this base type. This element is not used in an XML instance document.
	SearchExpression *SearchExpression `xml:"t:SearchExpression,omitempty"`
}

type ParentFolderId

type ParentFolderId struct {
	DistinguishedFolderId DistinguishedFolderId `xml:"t:DistinguishedFolderId"`
}

type ParentFolderIds added in v2.2.0

type ParentFolderIds struct {
	// The DistinguishedFolderId element identifies folders that can be referenced by name. If you do not use this element, you must use the FolderId element to identify a folder.
	DistinguishedFolderId *DistinguishedFolderId `xml:"t:DistinguishedFolderId,omitempty"`
	// The FolderId element contains the identifier and change key of a folder.
	FolderId *FolderId `xml:"t:FolderId,omitempty"`
}

type People

type People struct {
	Persona []Persona `xml:"Persona"`
}

type Permission added in v2.2.0

type Permission struct {
}

type PermissionSetCalendarPermissionSetType added in v2.2.0

type PermissionSetCalendarPermissionSetType struct {
	// The CalendarPermissions element contains an array of calendar permissions for a folder. This element was introduced in Microsoft Exchange Server 2007 Service Pack 1 (SP1).
	CalendarPermissions *CalendarPermissions `xml:"t:CalendarPermissions,omitempty"`
	// The UnknownEntries element contains an array of unknown permission entries that cannot be resolved against the Active Directory directory service. This element was introduced in Microsoft Exchange Server 2007 Service Pack 1 (SP1).
	UnknownEntries *UnknownEntries `xml:"t:UnknownEntries,omitempty"`
}

type PermissionSetPermissionSetType added in v2.2.0

type PermissionSetPermissionSetType struct {
	// The Permissions element contains the collection of permissions for a folder.
	Permissions *Permissions `xml:"t:Permissions,omitempty"`
	// The UnknownEntries element contains an array of unknown permission entries that cannot be resolved against the Active Directory directory service. This element was introduced in Microsoft Exchange Server 2007 Service Pack 1 (SP1).
	UnknownEntries *UnknownEntries `xml:"t:UnknownEntries,omitempty"`
}

type Permissions added in v2.2.0

type Permissions struct {
	// The Permission element defines the access that a user has to a folder.
	Permission *Permission `xml:"t:Permission,omitempty"`
}

type Persona

type Persona struct {
	PersonaId            PersonaId            `xml:"PersonaId"`
	DisplayName          string               `xml:"DisplayName"`
	Title                string               `xml:"Title"`
	Department           string               `xml:"Department"`
	Departments          Departments          `xml:"Departments"`
	EmailAddress         EmailAddress         `xml:"EmailAddress"`
	RelevanceScore       int                  `xml:"RelevanceScore"`
	BusinessPhoneNumbers BusinessPhoneNumbers `xml:"BusinessPhoneNumbers"`
	MobilePhones         MobilePhones         `xml:"MobilePhones"`
	OfficeLocations      OfficeLocations      `xml:"OfficeLocations"`
}

type PersonaId

type PersonaId struct {
	Id string `xml:"Id,attr"`
}

type PersonaShape

type PersonaShape struct {
	BaseShape            BaseShape            `xml:"t:BaseShape,omitempty"`
	AdditionalProperties AdditionalProperties `xml:"t:AdditionalProperties,omitempty"`
}

type PhoneNumberAttributedValue

type PhoneNumberAttributedValue struct {
	Value Value `json:"Value"`
}

type QueryMessageParams added in v2.2.0

type QueryMessageParams struct {
	FolderId  string
	StartTime time.Time
	EndTime   time.Time
	Limit     int
	Offset    int
	BodyType  string
}

type QueryStringQueryStringType added in v2.2.0

type QueryStringQueryStringType struct {
	// Indicates that the cache should be reset.
	ResetCache *string `xml:"ResetCache,attr"`
	// Indicates that deleted items should be returned.
	ReturnDeletedItems *string `xml:"ReturnDeletedItems,attr"`
	// Indicates that highlighted terms should be returned.
	ReturnHighlightTerms *string `xml:"ReturnHighlightTerms,attr"`
	TEXT                 string  `xml:",chardata"`
}

type RecurringMasterItemId added in v2.2.0

type RecurringMasterItemId struct {
	// Identifies a specific version of a single occurrence of a recurring master item. Additionally, the recurring master item is also identified because it and the single occurrence will contain the same change key. This attribute is optional.
	ChangeKey string `xml:"ChangeKey,attr,omitempty"`
	// Identifies a single occurrence of a recurring master item. This attribute is required.
	OccurrenceId string `xml:"OccurrenceId,attr,omitempty"`
}

type Response

type Response struct {
	ResponseClass ResponseClass `xml:"ResponseClass,attr"`
	MessageText   string        `xml:"MessageText"`
	ResponseCode  string        `xml:"ResponseCode"`
	MessageXml    MessageXml    `xml:"MessageXml"`
}

type ResponseClass

type ResponseClass string
const (
	ResponseClassSuccess ResponseClass = "Success"
	ResponseClassWarning ResponseClass = "Warning"
	ResponseClassError   ResponseClass = "Error"
)

type ResponseCode added in v2.2.0

type ResponseCode string

type ResponseMessage

type ResponseMessage struct {
	Response
	DescriptiveLinkKey int `xml:"DescriptiveLinkKey"`
}

type ResponseMessages

type ResponseMessages struct {
	CreateItemResponseMessage Response `xml:"CreateItemResponseMessage"`
}

type Restriction added in v2.2.0

type Restriction struct {
	// The And element represents a search expression that allows you to perform a Boolean AND operation between two or more search expressions. The result of the AND operation is true if all the search expressions contained within the And element are true.
	And *And `xml:"t:And,omitempty"`
	// The Contains element represents a search expression that determines whether a given property contains the supplied constant string value.
	Contains *Contains `xml:"t:Contains,omitempty"`
	// The Excludes element performs a bitwise mask of the specified property and a supplied value.
	Excludes *Excludes `xml:"t:Excludes,omitempty"`
	// The Exists element represents a search expression that returns true if the supplied property exists on an item.
	Exists *Exists `xml:"t:Exists,omitempty"`
	// The IsEqualTo element represents a search expression that compares a property with either a constant value or another property and evaluates to true if they are equal.
	IsEqualTo *IsEqualTo `xml:"t:IsEqualTo,omitempty"`
	// The IsGreaterThan element represents a search expression that compares a property with either a constant value or another property and returns true if the first property is greater.
	IsGreaterThan *IsGreaterThan `xml:"t:IsGreaterThan,omitempty"`
	// The IsGreaterThanOrEqualTo element represents a search expression that compares a property with either a constant value or another property and returns true if the first property is greater than or equal to the second.
	IsGreaterThanOrEqualTo *IsGreaterThanOrEqualTo `xml:"t:IsGreaterThanOrEqualTo,omitempty"`
	// The IsLessThan element represents a search expression that compares a property with either a constant value or another property and returns true if the first property is less than the second.
	IsLessThan *IsLessThan `xml:"t:IsLessThan,omitempty"`
	// The IsLessThanOrEqualTo element represents a search expression that compares a property with either a constant value or another property and returns true if the first property is less than or equal to the second.
	IsLessThanOrEqualTo *IsLessThanOrEqualTo `xml:"t:IsLessThanOrEqualTo,omitempty"`
	// The IsNotEqualTo element represents a search expression that compares a property with either a constant value or another property and returns true if the values are not the same.
	IsNotEqualTo *IsNotEqualTo `xml:"t:IsNotEqualTo,omitempty"`
	// The Not element represents a search expression that negates the Boolean value of the search expression that it contains.
	Not *Not `xml:"t:Not,omitempty"`
	// The Or element represents a search expression that performs a logical OR on the search expression that it contains. Or will return true if any of its children return true. Or must have two or more children.
	Or *Or `xml:"t:Or,omitempty"`
	// The SearchExpression element is an abstract element that represents the substituted element within a restriction. All search expressions derive from this base type. This element is not used in an XML instance document.
	SearchExpression *SearchExpression `xml:"t:SearchExpression,omitempty"`
}

type RoomLists

type RoomLists struct {
	Address []EmailAddress `xml:"Address"`
}

type RootFolderFindItemResponseMessage added in v2.2.0

type RootFolderFindItemResponseMessage struct {
	// The Groups element contains a collection of groups that are found with the search and aggregation criteria that is identified in the FindItem operation request.
	Groups *Groups `xml:"Groups,omitempty"`
	// The Items element contains an array of items.
	Items *Items `xml:"Items,omitempty"`
	// Represents the next denominator to use for the next request when doing fractional paging.
	AbsoluteDenominator *string `xml:"AbsoluteDenominator,attr"`
	// Indicates whether the current results contain the last item in the query, such that further paging is not needed.
	IncludesLastItemInRange *string `xml:"IncludesLastItemInRange,attr"`
	// Represents the next index that should be used for the next request when using an indexed paging view.
	IndexedPagingOffset *string `xml:"IndexedPagingOffset,attr"`
	// Represents the new numerator value to use for the next request when using fraction page views.
	NumeratorOffset *string `xml:"NumeratorOffset,attr"`
	// Represents the total number of items that pass the restriction. In a grouped FindItem operation, the TotalItemsInView attribute returns the total number of items in the view plus the total number of groups.
	TotalItemsInView *string `xml:"TotalItemsInView,attr"`
}

type SavedItemFolderId

type SavedItemFolderId struct {
	DistinguishedFolderId DistinguishedFolderId `xml:"t:DistinguishedFolderId"`
}

type SearchExpression added in v2.2.0

type SearchExpression struct {
	TEXT interface{} `xml:",chardata"`
}

type SearchFolder added in v2.2.0

type SearchFolder struct {
	// The ChildFolderCount element represents the number of immediate child folders that are contained within a folder. This property is read-only.
	ChildFolderCount ChildFolderCount `xml:"t:ChildFolderCount,omitempty"`
	// The DisplayName element defines the display name of a folder, contact, distribution list, delegate user, location, or rule.
	DisplayName DisplayNamestring `xml:"t:DisplayName,omitempty"`
	// The EffectiveRights element contains the client's rights based on the permission settings for the item or folder. This element is read-only.
	EffectiveRights *EffectiveRights `xml:"t:EffectiveRights,omitempty"`
	// The ExtendedProperty element identifies extended MAPI properties on folders and items.
	ExtendedProperty *ExtendedProperty `xml:"t:ExtendedProperty,omitempty"`
	// The FolderClass element represents the folder class for a folder.
	FolderClass FolderClass `xml:"t:FolderClass,omitempty"`
	// The FolderId element contains the identifier and change key of a folder.
	FolderId *FolderId `xml:"t:FolderId,omitempty"`
	// The ManagedFolderInformation element contains information about a managed custom folder.
	ManagedFolderInformation *ManagedFolderInformation `xml:"t:ManagedFolderInformation,omitempty"`
	// The ParentFolderId element represents the identifier of the parent folder that contains the item or folder.
	ParentFolderId *ParentFolderId `xml:"t:ParentFolderId,omitempty"`
	// The PermissionSet element contains all the permissions that are configured for a folder.
	PermissionSet *PermissionSetPermissionSetType `xml:"t:PermissionSet,omitempty"`
	// The SearchParameters element represents the parameters that define a search folder.
	SearchParameters *SearchParameters `xml:"t:SearchParameters,omitempty"`
	// The TotalCount element represents the total count of items within a given folder.
	TotalCount TotalCount `xml:"t:TotalCount"`
	// The UnreadCount element contains the count of unread items within a folder.
	UnreadCount UnreadCount `xml:"t:UnreadCount"`
}

type SearchParameters added in v2.2.0

type SearchParameters struct {
	// The BaseFolderIds element represents the collection of folders that will be mined to determine the contents of a search folder.
	BaseFolderIds *BaseFolderIds `xml:"t:BaseFolderIds,omitempty"`
	// The Restriction element represents the restriction or query that is used to filter items or folders in FindItem/FindFolder and search folder operations.
	Restriction *Restriction `xml:"m:Restriction,omitempty"`
	// Describes how a search folder traverses the folder hierarchy. The options are for either a Deep or a Shallow search.
	Traversal string `xml:"Traversal,attr"`
}

type SendEmailParams added in v2.1.0

type SendEmailParams struct {
	From     string
	To       []string
	Cc       []string
	Bcc      []string
	Subject  string
	Body     string
	BodyType string

	FileAttachments []AttachmentParams
}

type Sender added in v2.2.0

type Sender struct {
	// The Mailbox element identifies a mail-enabled Active Directory object.
	Mailbox *Mailbox `xml:"Mailbox"`
}

type SharingEffectiveRightsCalendarPermissionReadAccessType added in v2.2.0

type SharingEffectiveRightsCalendarPermissionReadAccessType string

type SharingEffectiveRightsPermissionReadAccessType added in v2.2.0

type SharingEffectiveRightsPermissionReadAccessType string

type Size added in v2.2.0

type Size struct {
	TEXT int64 `xml:",chardata"`
}

type SoapError

type SoapError struct {
	Fault *Fault
}

func (SoapError) Error

func (s SoapError) Error() string

type SortOrder added in v2.2.0

type SortOrder struct {
	// The FieldOrder element represents a single field by which to sort results and indicates the direction for the sort.
	FieldOrder *FieldOrder `xml:"t:FieldOrder,omitempty"`
}

type StandardGroupBy added in v2.2.0

type StandardGroupBy string

type StringAttributedValue

type StringAttributedValue struct {
	Value string `json:"Value"`
}

type Subject added in v2.2.0

type Subject struct {
	TEXT string `xml:",chardata"`
}

type Suggestion

type Suggestion struct {
	MeetingTime                 time.Time                   `xml:"MeetingTime"`
	IsWorkTime                  bool                        `xml:"IsWorkTime"`
	SuggestionQuality           string                      `xml:"SuggestionQuality"`
	ArrayOfAttendeeConflictData ArrayOfAttendeeConflictData `xml:"ArrayOfAttendeeConflictData"`
}

type SuggestionArray

type SuggestionArray struct {
	Suggestion []Suggestion `xml:"Suggestion"`
}

type SuggestionDayResult

type SuggestionDayResult struct {
	Date            time.Time       `xml:"Date"`
	DayQuality      string          `xml:"DayQuality"`
	SuggestionArray SuggestionArray `xml:"SuggestionArray"`
}

type SuggestionDayResultArray

type SuggestionDayResultArray struct {
	SuggestionDayResult []SuggestionDayResult `xml:"SuggestionDayResult"`
}

type SuggestionsResponse

type SuggestionsResponse struct {
	ResponseMessage          ResponseMessage          `xml:"ResponseMessage"`
	SuggestionDayResultArray SuggestionDayResultArray `xml:"SuggestionDayResultArray"`
}

type TAttachments added in v2.2.0

type TAttachments struct {
	Items []ItemAttachment `xml:"t:ItemAttachment,omitempty"`
	Files []FileAttachment `xml:"t:FileAttachment,omitempty"`
}

type TBody added in v2.2.0

type TBody struct {
	BodyType string `xml:"BodyType,attr"`
	Body     []byte `xml:",chardata"`
}

type TMessage added in v2.2.0

type TMessage struct {
	ItemClass     string        `xml:"t:ItemClass,omitempty"`
	ItemId        *ItemId       `xml:"t:ItemId,omitempty"`
	Subject       string        `xml:"t:Subject"`
	Body          TBody         `xml:"t:Body"`
	Sender        OneMailbox    `xml:"t:Sender"`
	ToRecipients  XMailbox      `xml:"t:ToRecipients"`
	CcRecipients  *XMailbox     `xml:"t:CcRecipients,omitempty"`
	BccRecipients *XMailbox     `xml:"t:BccRecipients,omitempty"`
	Attachments   *TAttachments `xml:"t:Attachments,omitempty"`
}

type TasksFolder added in v2.2.0

type TasksFolder struct {
	// The ChildFolderCount element represents the number of immediate child folders that are contained within a folder. This property is read-only.
	ChildFolderCount ChildFolderCount `xml:"t:ChildFolderCount,omitempty"`
	// The DisplayName element defines the display name of a folder, contact, distribution list, delegate user, location, or rule.
	DisplayName DisplayNamestring `xml:"t:DisplayName,omitempty"`
	// The EffectiveRights element contains the client's rights based on the permission settings for the item or folder. This element is read-only.
	EffectiveRights *EffectiveRights `xml:"t:EffectiveRights,omitempty"`
	// The ExtendedProperty element identifies extended MAPI properties on folders and items.
	ExtendedProperty *ExtendedProperty `xml:"t:ExtendedProperty,omitempty"`
	// The FolderClass element represents the folder class for a folder.
	FolderClass FolderClass `xml:"t:FolderClass,omitempty"`
	// The FolderId element contains the identifier and change key of a folder.
	FolderId *FolderId `xml:"t:FolderId,omitempty"`
	// The ManagedFolderInformation element contains information about a managed custom folder.
	ManagedFolderInformation *ManagedFolderInformation `xml:"t:ManagedFolderInformation,omitempty"`
	// The ParentFolderId element represents the identifier of the parent folder that contains the item or folder.
	ParentFolderId *ParentFolderId `xml:"t:ParentFolderId,omitempty"`
	// The PermissionSet element contains all the permissions that are configured for a folder.
	PermissionSet *PermissionSetPermissionSetType `xml:"t:PermissionSet,omitempty"`
	// The TotalCount element represents the total count of items within a given folder.
	TotalCount TotalCount `xml:"t:TotalCount"`
	// The UnreadCount element contains the count of unread items within a folder.
	UnreadCount UnreadCount `xml:"t:UnreadCount"`
}

type Time

type Time string

func (Time) ToTime

func (t Time) ToTime() (time.Time, error)

type TimeWindow

type TimeWindow struct {
	StartTime time.Time `xml:"t:StartTime"`
	EndTime   time.Time `xml:"t:EndTime"`
}

type TimeZone

type TimeZone struct {
	Bias         int          `xml:"t:Bias"`
	StandardTime TimeZoneTime `xml:"t:StandardTime"`
	DaylightTime TimeZoneTime `xml:"t:DaylightTime"`
}

type TimeZoneTime

type TimeZoneTime struct {
	Bias      int    `xml:"t:Bias"`
	Time      string `xml:"t:Time"`
	DayOrder  int16  `xml:"t:DayOrder"`
	Month     int16  `xml:"t:Month"`
	DayOfWeek string `xml:"t:DayOfWeek"`
	Year      string `xml:"Year,omitempty"`
}

type TotalCount added in v2.2.0

type TotalCount int64

type UnknownEntries added in v2.2.0

type UnknownEntries struct {
	// The UnknownEntry element represents a single unknown permission entry that cannot be resolved against the Active Directory directory service. This element was introduced in Microsoft Exchange Server 2007 Service Pack 1 (SP1).
	UnknownEntry UnknownEntry `xml:"t:UnknownEntry,omitempty"`
}

type UnknownEntry added in v2.2.0

type UnknownEntry string

type UnreadCount added in v2.2.0

type UnreadCount int64

type Value

type Value struct {
	Number string `json:"Number"`
	Type   string `json:"Type"`
}

type Values added in v2.2.0

type Values struct {
	// The Value element contains the value of an extended property.
	Value string `xml:"t:Value,omitempty"`
}

type WorkingHours

type WorkingHours struct {
	TimeZone           TimeZone           `xml:"TimeZone"`
	WorkingPeriodArray WorkingPeriodArray `xml:"WorkingPeriodArray"`
}

type WorkingPeriod

type WorkingPeriod struct {
	DayOfWeek          string `xml:"DayOfWeek"`
	StartTimeInMinutes int    `xml:"StartTimeInMinutes"`
	EndTimeInMinutes   int    `xml:"EndTimeInMinutes"`
}

type WorkingPeriodArray

type WorkingPeriodArray struct {
	WorkingPeriod []WorkingPeriod `xml:"WorkingPeriod"`
}

type XMailbox

type XMailbox struct {
	Mailbox []Mailbox `xml:"t:Mailbox"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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