From b409fbb72591b43df7431e83e30d6c00ea633f21 Mon Sep 17 00:00:00 2001
From: Simon Rettberg
Date: Thu, 5 Apr 2018 15:08:52 +0200
Subject: [locationinfo] Add exchange backend
Closes #3170
---
.../locationinfo/exchange-includes/README | 4 +
.../jamesiarmes/PhpEws/ArrayType.php | 16 +
.../PhpEws/ArrayType/ArrayOfAppManifestsType.php | 28 +
.../PhpEws/ArrayType/ArrayOfAppsType.php | 27 +
.../ArrayOfArraysOfTrackingPropertiesType.php | 26 +
.../PhpEws/ArrayType/ArrayOfAttachmentsType.php | 37 +
.../ArrayType/ArrayOfAttendeeConflictData.php | 59 +
.../PhpEws/ArrayType/ArrayOfBaseItemIdsType.php | 28 +
.../PhpEws/ArrayType/ArrayOfBinaryType.php | 27 +
.../ArrayOfBodyContentAttributedValuesType.php | 25 +
.../PhpEws/ArrayType/ArrayOfCalendarEvent.php | 26 +
.../ArrayType/ArrayOfCalendarPermissionsType.php | 25 +
.../PhpEws/ArrayType/ArrayOfContextProperty.php | 25 +
.../ArrayType/ArrayOfConversationNodesType.php | 25 +
.../PhpEws/ArrayType/ArrayOfConversationsType.php | 25 +
.../PhpEws/ArrayType/ArrayOfDLExpansionType.php | 76 +
.../ArrayOfDelegateUserResponseMessageType.php | 26 +
.../PhpEws/ArrayType/ArrayOfDelegateUserType.php | 25 +
.../ArrayOfDiscoverySearchConfigurationType.php | 25 +
.../ArrayOfEmailAddressAttributedValuesType.php | 27 +
.../PhpEws/ArrayType/ArrayOfEmailAddressesType.php | 25 +
.../ArrayOfEncryptedSharedFolderDataType.php | 27 +
.../ArrayType/ArrayOfExtendedAttributesType.php | 25 +
.../ArrayOfExtendedPropertyAttributedValueType.php | 25 +
.../ArrayType/ArrayOfFailedSearchMailboxesType.php | 25 +
.../ArrayOfFindMessageTrackingSearchResultType.php | 26 +
.../PhpEws/ArrayType/ArrayOfFolderIdType.php | 25 +
.../PhpEws/ArrayType/ArrayOfFoldersType.php | 61 +
.../PhpEws/ArrayType/ArrayOfFreeBusyResponse.php | 27 +
.../PhpEws/ArrayType/ArrayOfGroupedItemsType.php | 27 +
.../PhpEws/ArrayType/ArrayOfImGroupType.php | 25 +
.../ArrayType/ArrayOfInvalidRecipientsType.php | 26 +
.../PhpEws/ArrayType/ArrayOfItemClassType.php | 27 +
.../ArrayOfKeywordStatisticsSearchResultsType.php | 25 +
.../ArrayOfMailTipsResponseMessageType.php | 25 +
.../PhpEws/ArrayType/ArrayOfMailboxData.php | 26 +
.../ArrayType/ArrayOfMailboxHoldStatusType.php | 25 +
.../ArrayOfNonIndexableItemDetailsType.php | 25 +
.../ArrayOfNonIndexableItemStatisticsType.php | 25 +
.../ArrayType/ArrayOfOccurrenceRangesType.php | 26 +
.../PhpEws/ArrayType/ArrayOfPeopleQuerySource.php | 25 +
.../PhpEws/ArrayType/ArrayOfPeopleType.php | 25 +
.../PhpEws/ArrayType/ArrayOfPermissionsType.php | 25 +
.../ArrayType/ArrayOfPersonaAttributionsType.php | 26 +
.../ArrayOfPhoneNumberAttributedValuesType.php | 27 +
.../ArrayOfPostalAddressAttributedValuesType.php | 27 +
.../ArrayType/ArrayOfPrivateCatalogAddInsType.php | 29 +
.../ArrayType/ArrayOfProtectionRulesType.php | 29 +
.../PhpEws/ArrayType/ArrayOfRealItemsType.php | 115 +
.../ArrayOfRecipientTrackingEventType.php | 25 +
.../PhpEws/ArrayType/ArrayOfRecipientsType.php | 25 +
.../PhpEws/ArrayType/ArrayOfRemindersType.php | 25 +
.../PhpEws/ArrayType/ArrayOfResolutionType.php | 76 +
.../ArrayType/ArrayOfResponseMessagesType.php | 504 +
.../ArrayType/ArrayOfRetentionPolicyTagsType.php | 25 +
.../PhpEws/ArrayType/ArrayOfRoomsType.php | 26 +
.../ArrayType/ArrayOfRuleOperationErrorsType.php | 26 +
.../PhpEws/ArrayType/ArrayOfRuleOperationsType.php | 43 +
.../ArrayType/ArrayOfRuleValidationErrorsType.php | 27 +
.../PhpEws/ArrayType/ArrayOfRulesType.php | 25 +
.../ArrayType/ArrayOfSearchItemKindsType.php | 27 +
.../ArrayType/ArrayOfSearchPreviewItemsType.php | 25 +
.../ArrayType/ArrayOfSearchableMailboxesType.php | 25 +
...ayOfServiceConfigurationResponseMessageType.php | 27 +
.../ArrayType/ArrayOfServiceConfigurationType.php | 27 +
.../PhpEws/ArrayType/ArrayOfSmtpAddressType.php | 26 +
.../ArrayOfStringArrayAttributedValuesType.php | 26 +
.../ArrayOfStringAttributedValuesType.php | 27 +
.../PhpEws/ArrayType/ArrayOfStringsType.php | 37 +
.../PhpEws/ArrayType/ArrayOfSuggestion.php | 25 +
.../ArrayType/ArrayOfSuggestionDayResult.php | 25 +
.../ArrayType/ArrayOfTimeZoneDefinitionType.php | 25 +
.../ArrayType/ArrayOfTrackingPropertiesType.php | 26 +
.../ArrayType/ArrayOfTransitionsGroupsType.php | 25 +
.../PhpEws/ArrayType/ArrayOfTransitionsType.php | 53 +
.../PhpEws/ArrayType/ArrayOfUnknownEntriesType.php | 27 +
.../PhpEws/ArrayType/ArrayOfUserIdType.php | 26 +
.../PhpEws/ArrayType/ArrayOfUserMailboxesType.php | 25 +
.../ArrayType/ArrayOfValueAttributionsType.php | 25 +
.../PhpEws/ArrayType/ArrayOfWorkingPeriod.php | 25 +
.../ArrayType/NonEmptyArrayOfAllItemsType.php | 217 +
.../ArrayType/NonEmptyArrayOfAlternateIdsType.php | 43 +
.../NonEmptyArrayOfApplyConversationActionType.php | 25 +
.../ArrayType/NonEmptyArrayOfAttachmentsType.php | 17 +
.../ArrayType/NonEmptyArrayOfAttendeesType.php | 25 +
.../ArrayType/NonEmptyArrayOfBaseFolderIdsType.php | 36 +
.../ArrayType/NonEmptyArrayOfBaseItemIdsType.php | 56 +
...onEmptyArrayOfClientAccessTokenRequestsType.php | 25 +
.../NonEmptyArrayOfDeletedOccurrencesType.php | 25 +
.../ArrayType/NonEmptyArrayOfExtendedFieldURIs.php | 25 +
.../NonEmptyArrayOfExtendedPropertyType.php | 25 +
.../ArrayType/NonEmptyArrayOfFieldOrdersType.php | 30 +
...NonEmptyArrayOfFolderChangeDescriptionsType.php | 49 +
.../ArrayType/NonEmptyArrayOfFolderChangesType.php | 25 +
.../ArrayType/NonEmptyArrayOfFolderNamesType.php | 25 +
.../ArrayType/NonEmptyArrayOfFoldersType.php | 61 +
.../NonEmptyArrayOfGroupIdentifiersType.php | 27 +
.../NonEmptyArrayOfInternetHeadersType.php | 27 +
.../NonEmptyArrayOfItemChangeDescriptionsType.php | 47 +
.../ArrayType/NonEmptyArrayOfItemChangesType.php | 26 +
.../ArrayType/NonEmptyArrayOfItemIdsType.php | 26 +
.../NonEmptyArrayOfMailboxQueriesType.php | 25 +
.../NonEmptyArrayOfMailboxSearchScopesType.php | 26 +
.../NonEmptyArrayOfNotificationEventTypesType.php | 29 +
.../ArrayType/NonEmptyArrayOfNotificationsType.php | 27 +
.../NonEmptyArrayOfOccurrenceInfoType.php | 26 +
.../NonEmptyArrayOfPathsToElementType.php | 44 +
.../ArrayType/NonEmptyArrayOfPeriodsType.php | 27 +
.../NonEmptyArrayOfPropertyValuesType.php | 25 +
.../NonEmptyArrayOfReminderItemActionType.php | 25 +
.../NonEmptyArrayOfRequestAttachmentIdsType.php | 25 +
.../NonEmptyArrayOfResponseObjectsType.php | 128 +
...nEmptyArrayOfRestrictedGroupIdentifiersType.php | 26 +
.../NonEmptyArrayOfSubscriptionIdsType.php | 25 +
.../ArrayType/NonEmptyArrayOfTimeZoneIdType.php | 25 +
.../ArrayType/NonEmptyArrayOfUploadItemsType.php | 25 +
.../ArrayType/NonEmptyArrayofLegacyDNsType.php | 25 +
.../jamesiarmes/PhpEws/Autodiscover.php | 896 ++
.../jamesiarmes/PhpEws/ClassMap.php | 684 ++
.../jamesiarmes/PhpEws/Client.php | 1702 ++++
.../jamesiarmes/PhpEws/Enumeration.php | 36 +
.../PhpEws/Enumeration/AddInStateType.php | 84 +
.../Enumeration/AffectedTaskOccurrencesType.php | 36 +
.../PhpEws/Enumeration/AggregateType.php | 35 +
.../PhpEws/Enumeration/AppointmentState.php | 63 +
.../Enumeration/AvailabilityProxyRequestType.php | 34 +
.../PhpEws/Enumeration/BodyTypeResponseType.php | 50 +
.../PhpEws/Enumeration/BodyTypeType.php | 34 +
.../CalendarItemCreateOrDeleteOperationType.php | 46 +
.../PhpEws/Enumeration/CalendarItemTypeType.php | 52 +
.../CalendarItemUpdateOperationType.php | 67 +
.../Enumeration/CalendarPermissionLevelType.php | 33 +
.../CalendarPermissionReadAccessType.php | 35 +
.../Enumeration/ClientAccessTokenTypeType.php | 76 +
.../PhpEws/Enumeration/ConferenceType.php | 43 +
.../PhpEws/Enumeration/ConflictResolutionType.php | 44 +
.../Enumeration/ConnectionFailureCauseType.php | 61 +
.../PhpEws/Enumeration/ConnectionStatusType.php | 34 +
.../PhpEws/Enumeration/ContactSourceType.php | 35 +
.../Enumeration/ContainmentComparisonType.php | 92 +
.../PhpEws/Enumeration/ContainmentModeType.php | 64 +
.../Enumeration/ConversationActionTypeType.php | 96 +
.../Enumeration/ConversationNodeSortOrder.php | 52 +
.../Enumeration/ConversationQueryTraversalType.php | 35 +
.../PhpEws/Enumeration/CreateActionType.php | 53 +
.../PhpEws/Enumeration/DateTimePrecisionType.php | 34 +
.../PhpEws/Enumeration/DayOfWeekIndexType.php | 61 +
.../PhpEws/Enumeration/DayOfWeekType.php | 106 +
.../PhpEws/Enumeration/DaysOfWeekType.php | 21 +
.../PhpEws/Enumeration/DefaultShapeNamesType.php | 45 +
.../DelegateFolderPermissionLevelType.php | 61 +
.../Enumeration/DeliverMeetingRequestsType.php | 57 +
.../PhpEws/Enumeration/DictionaryURIType.php | 106 +
.../PhpEws/Enumeration/DisableReasonType.php | 52 +
.../PhpEws/Enumeration/DisposalType.php | 44 +
.../Enumeration/DistinguishedFolderIdNameType.php | 394 +
.../Enumeration/DistinguishedPropertySetType.php | 106 +
.../PhpEws/Enumeration/DistinguishedUserType.php | 36 +
.../PhpEws/Enumeration/ElcFolderType.php | 187 +
.../PhpEws/Enumeration/EmailAddressKeyType.php | 43 +
.../Enumeration/ExceptionPropertyURIType.php | 97 +
.../PhpEws/Enumeration/ExchangeVersionType.php | 98 +
.../PhpEws/Enumeration/ExternalAudience.php | 47 +
.../PhpEws/Enumeration/FileAsMappingType.php | 178 +
.../PhpEws/Enumeration/FlagStatusType.php | 43 +
.../PhpEws/Enumeration/FlaggedForActionType.php | 116 +
.../Enumeration/FolderQueryTraversalType.php | 46 +
.../PhpEws/Enumeration/FreeBusyViewType.php | 98 +
.../PhpEws/Enumeration/HoldActionType.php | 43 +
.../PhpEws/Enumeration/HoldStatusType.php | 61 +
.../PhpEws/Enumeration/IdFormatType.php | 76 +
.../PhpEws/Enumeration/ImAddressKeyType.php | 43 +
.../PhpEws/Enumeration/ImportanceChoicesType.php | 44 +
.../PhpEws/Enumeration/IndexBasePointType.php | 36 +
.../InvalidRecipientResponseCodeType.php | 65 +
.../PhpEws/Enumeration/ItemClassType.php | 291 +
.../PhpEws/Enumeration/ItemQueryTraversalType.php | 47 +
.../PhpEws/Enumeration/LegacyFreeBusyType.php | 71 +
.../PhpEws/Enumeration/LocationSourceType.php | 71 +
.../PhpEws/Enumeration/MailTipTypes.php | 107 +
.../Enumeration/MailboxSearchLocationType.php | 45 +
.../PhpEws/Enumeration/MailboxTypeType.php | 79 +
.../PhpEws/Enumeration/MapiPropertyTypeType.php | 273 +
.../PhpEws/Enumeration/MeetingAttendeeType.php | 61 +
.../PhpEws/Enumeration/MeetingRequestTypeType.php | 84 +
.../PhpEws/Enumeration/MemberStatusType.php | 44 +
.../PhpEws/Enumeration/MessageDispositionType.php | 66 +
.../MessageTrackingDeliveryStatusType.php | 63 +
.../MessageTrackingEventDescriptionType.php | 254 +
.../MessageTrackingReportTemplateType.php | 36 +
.../PhpEws/Enumeration/MonthNamesType.php | 124 +
.../Enumeration/NotificationEventTypeType.php | 79 +
.../jamesiarmes/PhpEws/Enumeration/Occurrence.php | 96 +
.../jamesiarmes/PhpEws/Enumeration/OofState.php | 44 +
.../PhpEws/Enumeration/PermissionActionType.php | 47 +
.../PhpEws/Enumeration/PermissionLevelType.php | 116 +
.../Enumeration/PermissionReadAccessType.php | 35 +
.../PhpEws/Enumeration/PhoneCallStateType.php | 88 +
.../PhpEws/Enumeration/PhoneNumberKeyType.php | 187 +
.../Enumeration/PhysicalAddressIndexType.php | 52 +
.../PhpEws/Enumeration/PhysicalAddressKeyType.php | 43 +
.../Enumeration/PreviewItemBaseShapeType.php | 34 +
.../PhpEws/Enumeration/ReminderActionType.php | 34 +
.../PhpEws/Enumeration/ReminderGroup.php | 34 +
.../Enumeration/ResolveNamesSearchScopeType.php | 55 +
.../PhpEws/Enumeration/ResponseClassType.php | 63 +
.../PhpEws/Enumeration/ResponseCodeType.php | 4866 ++++++++++
.../PhpEws/Enumeration/ResponseTypeType.php | 70 +
.../PhpEws/Enumeration/RetentionActionType.php | 79 +
.../jamesiarmes/PhpEws/Enumeration/RoutingType.php | 25 +
.../PhpEws/Enumeration/RuleFieldURIType.php | 826 ++
.../Enumeration/RuleValidationErrorCodeType.php | 233 +
.../jamesiarmes/PhpEws/Enumeration/Scope.php | 43 +
.../Enumeration/SearchFolderTraversalType.php | 35 +
.../PhpEws/Enumeration/SearchItemKindType.php | 124 +
.../PhpEws/Enumeration/SearchPageDirectionType.php | 34 +
.../PhpEws/Enumeration/SearchResultType.php | 34 +
.../PhpEws/Enumeration/SensitivityChoicesType.php | 52 +
.../Enumeration/ServiceConfigurationType.php | 43 +
.../PhpEws/Enumeration/SharingDataType.php | 34 +
.../PhpEws/Enumeration/SortDirectionType.php | 34 +
.../PhpEws/Enumeration/StandardGroupByType.php | 27 +
.../PhpEws/Enumeration/SubscriptionStatusType.php | 35 +
.../PhpEws/Enumeration/SuggestionQuality.php | 53 +
.../Enumeration/SyncFolderItemsScopeType.php | 37 +
.../PhpEws/Enumeration/TaskDelegateStateType.php | 76 +
.../PhpEws/Enumeration/TaskStatusType.php | 61 +
.../Enumeration/TransitionTargetKindType.php | 35 +
.../PhpEws/Enumeration/UnindexedFieldURIType.php | 2941 ++++++
.../UserConfigurationDictionaryObjectTypesType.php | 106 +
.../Enumeration/UserConfigurationPropertyType.php | 62 +
.../PhpEws/Enumeration/UserPhotoSizeType.php | 115 +
.../PhpEws/Enumeration/UserPhotoTypeType.php | 34 +
.../PhpEws/Enumeration/ViewFilterType.php | 106 +
.../jamesiarmes/PhpEws/Request.php | 16 +
.../jamesiarmes/PhpEws/Request/AddDelegateType.php | 35 +
.../Request/AddDistributionGroupToImListType.php | 35 +
.../PhpEws/Request/AddImContactToGroup.php | 33 +
.../jamesiarmes/PhpEws/Request/AddImGroupType.php | 23 +
.../PhpEws/Request/AddNewImContactToGroup.php | 44 +
.../Request/AddNewTelUriContactToGroupType.php | 53 +
.../PhpEws/Request/ApplyConversationActionType.php | 23 +
.../jamesiarmes/PhpEws/Request/ArchiveItemType.php | 33 +
.../PhpEws/Request/BaseDelegateType.php | 23 +
.../PhpEws/Request/BaseMoveCopyFolderType.php | 32 +
.../PhpEws/Request/BaseMoveCopyItemType.php | 43 +
.../jamesiarmes/PhpEws/Request/BaseRequestType.php | 18 +
.../jamesiarmes/PhpEws/Request/ConvertIdType.php | 40 +
.../jamesiarmes/PhpEws/Request/CopyFolderType.php | 16 +
.../jamesiarmes/PhpEws/Request/CopyItemType.php | 16 +
.../PhpEws/Request/CreateAttachmentType.php | 52 +
.../PhpEws/Request/CreateFolderPathType.php | 33 +
.../PhpEws/Request/CreateFolderType.php | 32 +
.../jamesiarmes/PhpEws/Request/CreateItemType.php | 65 +
.../Request/CreateManagedFolderRequestType.php | 32 +
.../PhpEws/Request/CreateUserConfigurationType.php | 23 +
.../PhpEws/Request/DeleteAttachmentType.php | 24 +
.../PhpEws/Request/DeleteFolderType.php | 35 +
.../jamesiarmes/PhpEws/Request/DeleteItemType.php | 84 +
.../PhpEws/Request/DeleteUserConfigurationType.php | 23 +
.../jamesiarmes/PhpEws/Request/DisableAppType.php | 34 +
.../PhpEws/Request/DisconnectPhoneCallType.php | 25 +
.../jamesiarmes/PhpEws/Request/EmptyFolderType.php | 49 +
.../jamesiarmes/PhpEws/Request/ExpandDLType.php | 25 +
.../jamesiarmes/PhpEws/Request/ExportItemsType.php | 24 +
.../PhpEws/Request/FindConversationType.php | 113 +
.../jamesiarmes/PhpEws/Request/FindFolderType.php | 81 +
.../jamesiarmes/PhpEws/Request/FindItemType.php | 149 +
.../FindMailboxStatisticsByKeywordsType.php | 118 +
.../FindMessageTrackingReportRequestType.php | 141 +
.../jamesiarmes/PhpEws/Request/FindPeopleType.php | 113 +
.../PhpEws/Request/GetAppManifestsType.php | 100 +
.../PhpEws/Request/GetAppMarketplaceUrl.php | 16 +
.../PhpEws/Request/GetAttachmentType.php | 35 +
.../PhpEws/Request/GetClientAccessTokenType.php | 23 +
.../PhpEws/Request/GetConversationItemsType.php | 79 +
.../jamesiarmes/PhpEws/Request/GetDelegateType.php | 33 +
.../GetDiscoverySearchConfigurationType.php | 42 +
.../jamesiarmes/PhpEws/Request/GetEventsType.php | 39 +
.../jamesiarmes/PhpEws/Request/GetFolderType.php | 34 +
.../PhpEws/Request/GetHoldOnMailboxesType.php | 23 +
.../PhpEws/Request/GetImItemListType.php | 23 +
.../jamesiarmes/PhpEws/Request/GetImItemsType.php | 43 +
.../PhpEws/Request/GetInboxRulesRequestType.php | 24 +
.../jamesiarmes/PhpEws/Request/GetItemType.php | 37 +
.../jamesiarmes/PhpEws/Request/GetMailTipsType.php | 43 +
.../GetMessageTrackingReportRequestType.php | 96 +
.../Request/GetNonIndexableItemDetailsType.php | 62 +
.../Request/GetNonIndexableItemStatisticsType.php | 32 +
.../Request/GetPasswordExpirationDateType.php | 24 +
.../jamesiarmes/PhpEws/Request/GetPersonaType.php | 67 +
.../PhpEws/Request/GetPhoneCallInformationType.php | 23 +
.../PhpEws/Request/GetRemindersType.php | 58 +
.../PhpEws/Request/GetRoomListsType.php | 17 +
.../jamesiarmes/PhpEws/Request/GetRoomsType.php | 23 +
.../PhpEws/Request/GetSearchableMailboxesType.php | 33 +
.../PhpEws/Request/GetServerTimeZonesType.php | 43 +
.../PhpEws/Request/GetServiceConfigurationType.php | 44 +
.../PhpEws/Request/GetSharingFolderType.php | 52 +
.../PhpEws/Request/GetSharingMetadataType.php | 52 +
.../PhpEws/Request/GetStreamingEventsType.php | 35 +
.../Request/GetUserAvailabilityRequestType.php | 53 +
.../PhpEws/Request/GetUserConfigurationType.php | 38 +
.../PhpEws/Request/GetUserOofSettingsRequest.php | 24 +
.../PhpEws/Request/GetUserPhotoType.php | 45 +
.../Request/GetUserRetentionPolicyTagsType.php | 16 +
.../jamesiarmes/PhpEws/Request/InstallAppType.php | 67 +
.../PhpEws/Request/MarkAllItemsAsRead.php | 42 +
.../jamesiarmes/PhpEws/Request/MarkAsJunkType.php | 45 +
.../jamesiarmes/PhpEws/Request/MoveFolderType.php | 16 +
.../jamesiarmes/PhpEws/Request/MoveItemType.php | 16 +
.../PhpEws/Request/PerformReminderActionType.php | 23 +
.../jamesiarmes/PhpEws/Request/PlayOnPhoneType.php | 37 +
.../PhpEws/Request/RefreshSharingFolderType.php | 23 +
.../PhpEws/Request/RemoveContactFromImListType.php | 24 +
.../PhpEws/Request/RemoveDelegateType.php | 23 +
.../RemoveDistributionGroupFromImListType.php | 24 +
.../Request/RemoveImContactFromGroupType.php | 33 +
.../PhpEws/Request/RemoveImGroupType.php | 23 +
.../PhpEws/Request/ResolveNamesType.php | 82 +
.../PhpEws/Request/SearchMailboxesType.php | 104 +
.../jamesiarmes/PhpEws/Request/SendItemType.php | 52 +
.../PhpEws/Request/SetHoldOnMailboxesType.php | 98 +
.../jamesiarmes/PhpEws/Request/SetImGroupType.php | 32 +
.../PhpEws/Request/SetUserOofSettingsRequest.php | 34 +
.../jamesiarmes/PhpEws/Request/SubscribeType.php | 41 +
.../PhpEws/Request/SyncFolderHierarchyType.php | 47 +
.../PhpEws/Request/SyncFolderItemsType.php | 88 +
.../PhpEws/Request/UninstallAppType.php | 23 +
.../jamesiarmes/PhpEws/Request/UnsubscribeType.php | 23 +
.../PhpEws/Request/UpdateDelegateType.php | 36 +
.../PhpEws/Request/UpdateFolderType.php | 24 +
.../PhpEws/Request/UpdateInboxRulesRequestType.php | 42 +
.../jamesiarmes/PhpEws/Request/UpdateItemType.php | 93 +
.../PhpEws/Request/UpdateUserConfigurationType.php | 23 +
.../jamesiarmes/PhpEws/Request/UploadItemsType.php | 23 +
.../jamesiarmes/PhpEws/Response.php | 16 +
.../Response/AddDelegateResponseMessageType.php | 16 +
...istributionGroupToImListResponseMessageType.php | 23 +
.../AddImContactToGroupResponseMessageType.php | 16 +
.../Response/AddImGroupResponseMessageType.php | 23 +
.../AddNewImContactToGroupResponseMessageType.php | 23 +
.../AddNewTelUriContactToGroupResponse.php | 24 +
.../ApplyConversationActionResponseMessageType.php | 19 +
.../ApplyConversationActionResponseType.php | 16 +
.../PhpEws/Response/ArchiveItemResponse.php | 16 +
.../Response/AttachmentInfoResponseMessageType.php | 25 +
.../Response/BaseDelegateResponseMessageType.php | 24 +
.../PhpEws/Response/BaseResponseMessageType.php | 25 +
.../Response/ConvertIdResponseMessageType.php | 23 +
.../PhpEws/Response/ConvertIdResponseType.php | 16 +
.../PhpEws/Response/CopyFolderResponseType.php | 16 +
.../PhpEws/Response/CopyItemResponseType.php | 16 +
.../Response/CreateAttachmentResponseType.php | 16 +
.../Response/CreateFolderPathResponseType.php | 16 +
.../PhpEws/Response/CreateFolderResponseType.php | 16 +
.../PhpEws/Response/CreateItemResponseType.php | 16 +
.../Response/CreateManagedFolderResponseType.php | 16 +
.../CreateUserConfigurationResponseType.php | 16 +
.../Response/DelegateUserResponseMessageType.php | 24 +
.../DeleteAttachmentResponseMessageType.php | 24 +
.../Response/DeleteAttachmentResponseType.php | 16 +
.../PhpEws/Response/DeleteFolderResponseType.php | 16 +
.../PhpEws/Response/DeleteItemResponseType.php | 16 +
.../DeleteUserConfigurationResponseType.php | 16 +
.../PhpEws/Response/DisableAppResponseType.php | 16 +
.../DisconnectPhoneCallResponseMessageType.php | 16 +
.../PhpEws/Response/EmptyFolderResponseType.php | 16 +
.../Response/ExpandDLResponseMessageType.php | 76 +
.../PhpEws/Response/ExpandDLResponseType.php | 16 +
.../Response/ExportItemsResponseMessageType.php | 35 +
.../PhpEws/Response/ExportItemsResponseType.php | 16 +
.../FindConversationResponseMessageType.php | 23 +
.../Response/FindFolderResponseMessageType.php | 24 +
.../PhpEws/Response/FindFolderResponseType.php | 16 +
.../Response/FindItemResponseMessageType.php | 24 +
.../PhpEws/Response/FindItemResponseType.php | 16 +
...lboxStatisticsByKeywordsResponseMessageType.php | 25 +
...FindMailboxStatisticsByKeywordsResponseType.php | 16 +
...indMessageTrackingReportResponseMessageType.php | 62 +
.../Response/FindPeopleResponseMessageType.php | 60 +
.../Response/FolderInfoResponseMessageType.php | 23 +
.../Response/GetAppManifestsResponseType.php | 34 +
.../GetAppMarketplaceUrlResponseMessageType.php | 34 +
.../PhpEws/Response/GetAttachmentResponseType.php | 16 +
.../GetClientAccessTokenResponseMessageType.php | 23 +
.../Response/GetClientAccessTokenResponseType.php | 16 +
.../GetConversationItemsResponseMessageType.php | 23 +
.../Response/GetConversationItemsResponseType.php | 16 +
.../Response/GetDelegateResponseMessageType.php | 26 +
...overySearchConfigurationResponseMessageType.php | 23 +
.../Response/GetEventsResponseMessageType.php | 24 +
.../PhpEws/Response/GetEventsResponseType.php | 16 +
.../PhpEws/Response/GetFolderResponseType.php | 16 +
.../GetHoldOnMailboxesResponseMessageType.php | 23 +
.../Response/GetImItemListResponseMessageType.php | 24 +
.../PhpEws/Response/GetImItemsResponse.php | 24 +
.../PhpEws/Response/GetInboxRulesResponseType.php | 33 +
.../PhpEws/Response/GetItemResponseType.php | 16 +
.../Response/GetMailTipsResponseMessageType.php | 23 +
...GetMessageTrackingReportResponseMessageType.php | 53 +
...tNonIndexableItemDetailsResponseMessageType.php | 23 +
...nIndexableItemStatisticsResponseMessageType.php | 23 +
...etPasswordExpirationDateResponseMessageType.php | 27 +
.../Response/GetPersonaResponseMessageType.php | 23 +
.../GetPhoneCallInformationResponseMessageType.php | 23 +
.../Response/GetRemindersResponseMessageType.php | 23 +
.../Response/GetRoomListsResponseMessageType.php | 24 +
.../Response/GetRoomsResponseMessageType.php | 24 +
.../GetSearchableMailboxesResponseMessageType.php | 32 +
.../GetServerTimeZonesResponseMessageType.php | 24 +
.../Response/GetServerTimeZonesResponseType.php | 16 +
.../GetServiceConfigurationResponseMessageType.php | 23 +
.../GetSharingFolderResponseMessageType.php | 24 +
.../GetSharingMetadataResponseMessageType.php | 33 +
.../GetStreamingEventsResponseMessageType.php | 45 +
.../Response/GetStreamingEventsResponseType.php | 16 +
.../Response/GetUserAvailabilityResponseType.php | 37 +
.../GetUserConfigurationResponseMessageType.php | 23 +
.../Response/GetUserConfigurationResponseType.php | 16 +
.../PhpEws/Response/GetUserOofSettingsResponse.php | 46 +
.../Response/GetUserPhotoResponseMessageType.php | 34 +
.../PhpEws/Response/GetUserPhotoResponseType.php | 16 +
...tUserRetentionPolicyTagsResponseMessageType.php | 23 +
.../PhpEws/Response/InstallAppResponseType.php | 34 +
.../Response/ItemInfoResponseMessageType.php | 23 +
.../Response/MailTipsResponseMessageType.php | 23 +
.../Response/MarkAllItemsAsReadResponseType.php | 16 +
.../Response/MarkAsJunkResponseMessageType.php | 23 +
.../PhpEws/Response/MarkAsJunkResponseType.php | 16 +
.../PhpEws/Response/MoveFolderResponseType.php | 16 +
.../PhpEws/Response/MoveItemResponseType.php | 16 +
.../PerformReminderActionResponseMessageType.php | 23 +
.../Response/PlayOnPhoneResponseMessageType.php | 23 +
.../RefreshSharingFolderResponseMessageType.php | 17 +
.../RemoveContactFromImListResponseMessageType.php | 16 +
.../Response/RemoveDelegateResponseMessageType.php | 16 +
...tributionGroupFromImListResponseMessageType.php | 16 +
...RemoveImContactFromGroupResponseMessageType.php | 16 +
.../Response/RemoveImGroupResponseMessageType.php | 16 +
.../Response/ResolveNamesResponseMessageType.php | 23 +
.../PhpEws/Response/ResolveNamesResponseType.php | 16 +
.../PhpEws/Response/ResponseMessageType.php | 70 +
.../SearchMailboxesResponseMessageType.php | 23 +
.../Response/SearchMailboxesResponseType.php | 16 +
.../PhpEws/Response/SendItemResponseType.php | 16 +
.../SendNotificationResponseMessageType.php | 25 +
.../Response/SendNotificationResponseType.php | 17 +
.../ServiceConfigurationResponseMessageType.php | 43 +
.../SetHoldOnMailboxesResponseMessageType.php | 23 +
.../Response/SetImGroupResponseMessageType.php | 16 +
.../PhpEws/Response/SetUserOofSettingsResponse.php | 25 +
.../Response/SubscribeResponseMessageType.php | 34 +
.../PhpEws/Response/SubscribeResponseType.php | 16 +
.../SyncFolderHierarchyResponseMessageType.php | 48 +
.../Response/SyncFolderHierarchyResponseType.php | 16 +
.../SyncFolderItemsResponseMessageType.php | 48 +
.../Response/SyncFolderItemsResponseType.php | 16 +
.../PhpEws/Response/UninstallAppResponseType.php | 16 +
.../PhpEws/Response/UnsubscribeResponseType.php | 16 +
.../Response/UpdateDelegateResponseMessageType.php | 16 +
.../PhpEws/Response/UpdateFolderResponseType.php | 16 +
.../Response/UpdateInboxRulesResponseType.php | 24 +
.../Response/UpdateItemResponseMessageType.php | 23 +
.../PhpEws/Response/UpdateItemResponseType.php | 16 +
.../UpdateUserConfigurationResponseType.php | 16 +
.../Response/UploadItemsResponseMessageType.php | 23 +
.../PhpEws/Response/UploadItemsResponseType.php | 16 +
.../exchange-includes/jamesiarmes/PhpEws/Type.php | 45 +
.../PhpEws/Type/AbsoluteDateTransitionType.php | 36 +
.../Type/AbsoluteMonthlyRecurrencePatternType.php | 27 +
.../Type/AbsoluteYearlyRecurrencePatternType.php | 38 +
.../jamesiarmes/PhpEws/Type/AcceptItemType.php | 16 +
.../PhpEws/Type/AcceptSharingInvitationType.php | 17 +
.../jamesiarmes/PhpEws/Type/AddressListIdType.php | 27 +
.../jamesiarmes/PhpEws/Type/AggregateOnType.php | 60 +
.../PhpEws/Type/AlternateIdBaseType.php | 27 +
.../jamesiarmes/PhpEws/Type/AlternateIdType.php | 47 +
.../PhpEws/Type/AlternatePublicFolderIdType.php | 23 +
.../Type/AlternatePublicFolderItemIdType.php | 24 +
.../jamesiarmes/PhpEws/Type/AndType.php | 20 +
.../jamesiarmes/PhpEws/Type/AppMetadata.php | 163 +
.../jamesiarmes/PhpEws/Type/AppType.php | 37 +
.../PhpEws/Type/AppendToFolderFieldType.php | 60 +
.../PhpEws/Type/AppendToItemFieldType.php | 105 +
.../jamesiarmes/PhpEws/Type/AttachmentIdType.php | 34 +
.../PhpEws/Type/AttachmentResponseShapeType.php | 65 +
.../jamesiarmes/PhpEws/Type/AttachmentType.php | 96 +
.../PhpEws/Type/AttendeeConflictData.php | 18 +
.../jamesiarmes/PhpEws/Type/AttendeeType.php | 49 +
.../PhpEws/Type/BaseEmailAddressType.php | 18 +
.../jamesiarmes/PhpEws/Type/BaseFolderIdType.php | 18 +
.../jamesiarmes/PhpEws/Type/BaseFolderType.php | 103 +
.../jamesiarmes/PhpEws/Type/BaseGroupByType.php | 28 +
.../jamesiarmes/PhpEws/Type/BaseItemIdType.php | 18 +
.../PhpEws/Type/BaseNotificationEventType.php | 27 +
.../PhpEws/Type/BaseObjectChangedEventType.php | 52 +
.../jamesiarmes/PhpEws/Type/BasePagingType.php | 26 +
.../PhpEws/Type/BasePathToElementType.php | 18 +
.../jamesiarmes/PhpEws/Type/BasePermissionType.php | 92 +
.../PhpEws/Type/BaseSubscriptionRequestType.php | 65 +
.../PhpEws/Type/BodyContentAttributedValueType.php | 38 +
.../jamesiarmes/PhpEws/Type/BodyContentType.php | 36 +
.../jamesiarmes/PhpEws/Type/BodyType.php | 34 +
.../jamesiarmes/PhpEws/Type/CalendarEvent.php | 66 +
.../PhpEws/Type/CalendarEventDetails.php | 90 +
.../jamesiarmes/PhpEws/Type/CalendarFolderType.php | 35 +
.../jamesiarmes/PhpEws/Type/CalendarItemType.php | 447 +
.../PhpEws/Type/CalendarPermissionSetType.php | 35 +
.../PhpEws/Type/CalendarPermissionType.php | 36 +
.../jamesiarmes/PhpEws/Type/CalendarViewType.php | 55 +
.../PhpEws/Type/CancelCalendarItemType.php | 16 +
.../PhpEws/Type/ChangeDescriptionType.php | 43 +
.../PhpEws/Type/ClientAccessTokenRequestType.php | 45 +
.../PhpEws/Type/ClientAccessTokenType.php | 54 +
.../jamesiarmes/PhpEws/Type/CompleteNameType.php | 108 +
.../PhpEws/Type/ConflictResultsType.php | 25 +
.../jamesiarmes/PhpEws/Type/ConnectingSIDType.php | 67 +
.../jamesiarmes/PhpEws/Type/ConstantValueType.php | 25 +
.../jamesiarmes/PhpEws/Type/ContactItemType.php | 413 +
.../jamesiarmes/PhpEws/Type/ContactsFolderType.php | 35 +
.../jamesiarmes/PhpEws/Type/ContactsViewType.php | 51 +
.../PhpEws/Type/ContainsExpressionType.php | 46 +
.../PhpEws/Type/ContextPropertyType.php | 34 +
.../PhpEws/Type/ConversationActionType.php | 131 +
.../PhpEws/Type/ConversationNodeType.php | 43 +
.../PhpEws/Type/ConversationResponseType.php | 54 +
.../jamesiarmes/PhpEws/Type/ConversationShape.php | 37 +
.../jamesiarmes/PhpEws/Type/ConversationType.php | 310 +
.../PhpEws/Type/CreateRuleOperationType.php | 23 +
.../PhpEws/Type/DailyRecurrencePatternType.php | 16 +
.../PhpEws/Type/DailyRegeneratingPatternType.php | 16 +
.../jamesiarmes/PhpEws/Type/DeclineItemType.php | 16 +
.../PhpEws/Type/DelegatePermissionsType.php | 82 +
.../jamesiarmes/PhpEws/Type/DelegateUserType.php | 55 +
.../PhpEws/Type/DeleteFolderFieldType.php | 17 +
.../PhpEws/Type/DeleteItemFieldType.php | 17 +
.../PhpEws/Type/DeleteRuleOperationType.php | 23 +
.../PhpEws/Type/DeletedOccurrenceInfoType.php | 28 +
.../jamesiarmes/PhpEws/Type/DirectoryEntryType.php | 26 +
.../Type/DiscoverySearchConfigurationType.php | 73 +
.../PhpEws/Type/DistinguishedFolderIdType.php | 51 +
.../PhpEws/Type/DistinguishedGroupByType.php | 26 +
.../PhpEws/Type/DistributionListType.php | 53 +
.../jamesiarmes/PhpEws/Type/Duration.php | 38 +
.../PhpEws/Type/EffectiveRightsType.php | 86 +
.../Type/EmailAddressAttributedValueType.php | 35 +
.../Type/EmailAddressDictionaryEntryType.php | 76 +
.../PhpEws/Type/EmailAddressDictionaryType.php | 25 +
.../jamesiarmes/PhpEws/Type/EmailAddressType.php | 64 +
.../PhpEws/Type/EncryptedSharedFolderDataType.php | 40 +
.../PhpEws/Type/EndDateRecurrenceRangeType.php | 25 +
.../PhpEws/Type/ExchangeImpersonationType.php | 26 +
.../jamesiarmes/PhpEws/Type/ExcludesType.php | 27 +
.../jamesiarmes/PhpEws/Type/ExcludesValueType.php | 40 +
.../jamesiarmes/PhpEws/Type/ExistsType.php | 17 +
.../PhpEws/Type/ExtendedAttributeType.php | 34 +
.../Type/ExtendedPropertyAttributedValueType.php | 34 +
.../PhpEws/Type/ExtendedPropertyType.php | 43 +
.../PhpEws/Type/FailedSearchMailboxType.php | 52 +
.../jamesiarmes/PhpEws/Type/FieldOrderType.php | 55 +
.../PhpEws/Type/FieldURIOrConstantType.php | 24 +
.../jamesiarmes/PhpEws/Type/FileAttachmentType.php | 36 +
.../PhpEws/Type/FindFolderParentType.php | 77 +
.../jamesiarmes/PhpEws/Type/FindItemParentType.php | 88 +
.../Type/FindMessageTrackingSearchResultType.php | 103 +
.../PhpEws/Type/FolderChangeDescriptionType.php | 16 +
.../jamesiarmes/PhpEws/Type/FolderChangeType.php | 45 +
.../jamesiarmes/PhpEws/Type/FolderIdType.php | 39 +
.../PhpEws/Type/FolderResponseShapeType.php | 39 +
.../jamesiarmes/PhpEws/Type/FolderType.php | 32 +
.../jamesiarmes/PhpEws/Type/ForwardItemType.php | 16 +
.../PhpEws/Type/FractionalPageViewType.php | 41 +
.../PhpEws/Type/FreeBusyResponseType.php | 34 +
.../jamesiarmes/PhpEws/Type/FreeBusyView.php | 57 +
.../PhpEws/Type/FreeBusyViewOptionsType.php | 46 +
.../PhpEws/Type/GroupAttendeeConflictData.php | 64 +
.../jamesiarmes/PhpEws/Type/GroupByType.php | 51 +
.../jamesiarmes/PhpEws/Type/GroupedItemsType.php | 36 +
.../PhpEws/Type/ImAddressDictionaryEntryType.php | 39 +
.../PhpEws/Type/ImAddressDictionaryType.php | 25 +
.../jamesiarmes/PhpEws/Type/ImGroupType.php | 74 +
.../jamesiarmes/PhpEws/Type/ImItemListType.php | 34 +
.../PhpEws/Type/IndexedPageViewType.php | 48 +
.../PhpEws/Type/IndividualAttendeeConflictData.php | 27 +
.../jamesiarmes/PhpEws/Type/InstalledAppType.php | 173 +
.../jamesiarmes/PhpEws/Type/InternetHeaderType.php | 37 +
.../Type/IntervalRecurrencePatternBaseType.php | 23 +
.../PhpEws/Type/InvalidRecipientType.php | 53 +
.../jamesiarmes/PhpEws/Type/IsEqualToType.php | 17 +
.../PhpEws/Type/IsGreaterThanOrEqualToType.php | 18 +
.../jamesiarmes/PhpEws/Type/IsGreaterThanType.php | 18 +
.../PhpEws/Type/IsLessThanOrEqualToType.php | 18 +
.../jamesiarmes/PhpEws/Type/IsLessThanType.php | 18 +
.../jamesiarmes/PhpEws/Type/IsNotEqualToType.php | 18 +
.../jamesiarmes/PhpEws/Type/ItemAttachmentType.php | 104 +
.../PhpEws/Type/ItemChangeDescriptionType.php | 16 +
.../jamesiarmes/PhpEws/Type/ItemChangeType.php | 66 +
.../jamesiarmes/PhpEws/Type/ItemIdType.php | 47 +
.../PhpEws/Type/ItemResponseShapeType.php | 77 +
.../jamesiarmes/PhpEws/Type/ItemType.php | 443 +
.../Type/KeywordStatisticsSearchResultType.php | 43 +
.../jamesiarmes/PhpEws/Type/MailTips.php | 120 +
.../PhpEws/Type/MailTipsServiceConfiguration.php | 85 +
.../jamesiarmes/PhpEws/Type/MailboxData.php | 49 +
.../PhpEws/Type/MailboxHoldResultType.php | 43 +
.../PhpEws/Type/MailboxHoldStatusType.php | 45 +
.../jamesiarmes/PhpEws/Type/MailboxQueryType.php | 35 +
.../PhpEws/Type/MailboxSearchScopeType.php | 45 +
.../Type/MailboxStatisticsSearchResultType.php | 34 +
.../PhpEws/Type/ManagedFolderInformationType.php | 108 +
.../PhpEws/Type/MeetingCancellationMessageType.php | 16 +
.../jamesiarmes/PhpEws/Type/MeetingMessageType.php | 94 +
.../PhpEws/Type/MeetingRequestMessageType.php | 423 +
.../PhpEws/Type/MeetingResponseMessageType.php | 16 +
.../jamesiarmes/PhpEws/Type/MemberType.php | 51 +
.../jamesiarmes/PhpEws/Type/MembersListType.php | 28 +
.../PhpEws/Type/MessageTrackingReportType.php | 82 +
.../jamesiarmes/PhpEws/Type/MessageType.php | 148 +
.../jamesiarmes/PhpEws/Type/MimeContentType.php | 36 +
.../jamesiarmes/PhpEws/Type/ModifiedEventType.php | 23 +
.../PhpEws/Type/MonthlyRegeneratingPatternType.php | 16 +
.../PhpEws/Type/MovedCopiedEventType.php | 43 +
.../Type/MultipleOperandBooleanExpressionType.php | 143 +
.../PhpEws/Type/NoEndRecurrenceRangeType.php | 17 +
.../Type/NonIndexableItemDetailResultType.php | 34 +
.../PhpEws/Type/NonIndexableItemDetailType.php | 102 +
.../PhpEws/Type/NonIndexableItemStatisticType.php | 43 +
.../jamesiarmes/PhpEws/Type/NotType.php | 17 +
.../jamesiarmes/PhpEws/Type/NotificationType.php | 120 +
.../PhpEws/Type/NumberedRecurrenceRangeType.php | 23 +
.../jamesiarmes/PhpEws/Type/OccurrenceInfoType.php | 62 +
.../PhpEws/Type/OccurrenceItemIdType.php | 50 +
.../PhpEws/Type/OccurrencesRangeType.php | 57 +
.../PhpEws/Type/OpenAsAdminOrSystemServiceType.php | 34 +
.../jamesiarmes/PhpEws/Type/OrType.php | 20 +
.../jamesiarmes/PhpEws/Type/OutOfOfficeMailTip.php | 37 +
.../PhpEws/Type/PathToExtendedFieldType.php | 134 +
.../PhpEws/Type/PathToIndexedFieldType.php | 36 +
.../PhpEws/Type/PathToUnindexedFieldType.php | 25 +
.../jamesiarmes/PhpEws/Type/PeriodType.php | 45 +
.../jamesiarmes/PhpEws/Type/PermissionSetType.php | 35 +
.../jamesiarmes/PhpEws/Type/PermissionType.php | 36 +
.../PhpEws/Type/PersonaAttributionType.php | 85 +
.../PhpEws/Type/PersonaPhoneNumberType.php | 35 +
.../PhpEws/Type/PersonaPostalAddressType.php | 158 +
.../PhpEws/Type/PersonaResponseShapeType.php | 36 +
.../jamesiarmes/PhpEws/Type/PersonaType.php | 972 ++
.../jamesiarmes/PhpEws/Type/PhoneCallIdType.php | 27 +
.../PhpEws/Type/PhoneCallInformationType.php | 64 +
.../PhpEws/Type/PhoneNumberAttributedValueType.php | 34 +
.../PhpEws/Type/PhoneNumberDictionaryEntryType.php | 39 +
.../PhpEws/Type/PhoneNumberDictionaryType.php | 25 +
.../Type/PhysicalAddressDictionaryEntryType.php | 75 +
.../PhpEws/Type/PhysicalAddressDictionaryType.php | 26 +
.../jamesiarmes/PhpEws/Type/PostItemType.php | 99 +
.../PhpEws/Type/PostReplyItemBaseType.php | 16 +
.../jamesiarmes/PhpEws/Type/PostReplyItemType.php | 23 +
.../Type/PostalAddressAttributedValueType.php | 35 +
.../PhpEws/Type/PreviewItemMailboxType.php | 37 +
.../PhpEws/Type/PreviewItemResponseShapeType.php | 37 +
.../PhpEws/Type/PrivateCatalogAddInsType.php | 53 +
.../jamesiarmes/PhpEws/Type/ProposeNewTimeType.php | 17 +
.../PhpEws/Type/ProtectionRuleActionType.php | 40 +
.../PhpEws/Type/ProtectionRuleAndType.php | 65 +
.../PhpEws/Type/ProtectionRuleArgumentType.php | 26 +
.../PhpEws/Type/ProtectionRuleConditionType.php | 69 +
.../PhpEws/Type/ProtectionRuleRecipientIsType.php | 26 +
.../Type/ProtectionRuleSenderDepartmentsType.php | 26 +
.../jamesiarmes/PhpEws/Type/ProtectionRuleType.php | 69 +
.../Type/ProtectionRulesServiceConfiguration.php | 50 +
.../PhpEws/Type/PullSubscriptionRequestType.php | 26 +
.../PhpEws/Type/PushSubscriptionRequestType.php | 35 +
.../jamesiarmes/PhpEws/Type/QueryStringType.php | 56 +
.../PhpEws/Type/RecipientTrackingEventType.php | 130 +
.../PhpEws/Type/RecurrencePatternBaseType.php | 18 +
.../PhpEws/Type/RecurrenceRangeBaseType.php | 27 +
.../jamesiarmes/PhpEws/Type/RecurrenceType.php | 113 +
.../PhpEws/Type/RecurringDateTransitionType.php | 23 +
.../PhpEws/Type/RecurringDayTransitionType.php | 37 +
.../PhpEws/Type/RecurringMasterItemIdRanges.php | 25 +
.../PhpEws/Type/RecurringMasterItemIdType.php | 41 +
.../PhpEws/Type/RecurringTimeTransitionType.php | 33 +
.../PhpEws/Type/ReferenceItemResponseType.php | 23 +
.../PhpEws/Type/RegeneratingPatternBaseType.php | 16 +
.../Type/RelativeMonthlyRecurrencePatternType.php | 38 +
.../Type/RelativeYearlyRecurrencePatternType.php | 48 +
.../PhpEws/Type/ReminderItemActionType.php | 49 +
.../jamesiarmes/PhpEws/Type/ReminderType.php | 105 +
.../jamesiarmes/PhpEws/Type/RemoveItemType.php | 19 +
.../jamesiarmes/PhpEws/Type/ReplyAllToItemType.php | 17 +
.../jamesiarmes/PhpEws/Type/ReplyBody.php | 37 +
.../jamesiarmes/PhpEws/Type/ReplyToItemType.php | 16 +
.../PhpEws/Type/RequestAttachmentIdType.php | 23 +
.../PhpEws/Type/RequestServerVersion.php | 27 +
.../jamesiarmes/PhpEws/Type/ResolutionType.php | 34 +
.../PhpEws/Type/ResponseObjectCoreType.php | 26 +
.../jamesiarmes/PhpEws/Type/ResponseObjectType.php | 23 +
.../jamesiarmes/PhpEws/Type/RestrictionType.php | 17 +
.../PhpEws/Type/RetentionPolicyTagType.php | 101 +
.../jamesiarmes/PhpEws/Type/RoomType.php | 18 +
.../jamesiarmes/PhpEws/Type/RootItemIdType.php | 34 +
.../jamesiarmes/PhpEws/Type/RuleActionsType.php | 140 +
.../PhpEws/Type/RuleOperationErrorType.php | 36 +
.../jamesiarmes/PhpEws/Type/RuleOperationType.php | 13 +
.../PhpEws/Type/RulePredicateDateRangeType.php | 41 +
.../PhpEws/Type/RulePredicateSizeRangeType.php | 37 +
.../jamesiarmes/PhpEws/Type/RulePredicatesType.php | 369 +
.../jamesiarmes/PhpEws/Type/RuleType.php | 100 +
.../PhpEws/Type/RuleValidationErrorType.php | 58 +
.../PhpEws/Type/SearchExpressionType.php | 45 +
.../jamesiarmes/PhpEws/Type/SearchFolderType.php | 23 +
.../PhpEws/Type/SearchMailboxesResultType.php | 117 +
.../PhpEws/Type/SearchParametersType.php | 47 +
.../PhpEws/Type/SearchPreviewItemType.php | 221 +
.../PhpEws/Type/SearchableMailboxType.php | 81 +
.../PhpEws/Type/SeekToConditionPageViewType.php | 53 +
.../PhpEws/Type/SendNotificationResultType.php | 27 +
.../PhpEws/Type/SerializableTimeZone.php | 54 +
.../PhpEws/Type/SerializableTimeZoneTime.php | 97 +
.../PhpEws/Type/SerializedSecurityContextType.php | 54 +
.../jamesiarmes/PhpEws/Type/ServerVersionInfo.php | 61 +
.../PhpEws/Type/ServiceConfiguration.php | 19 +
.../jamesiarmes/PhpEws/Type/SetFolderFieldType.php | 60 +
.../jamesiarmes/PhpEws/Type/SetItemFieldType.php | 114 +
.../PhpEws/Type/SetRuleOperationType.php | 23 +
.../PhpEws/Type/SidAndAttributesType.php | 36 +
.../PhpEws/Type/SingleRecipientType.php | 25 +
.../PhpEws/Type/SmartResponseBaseType.php | 122 +
.../jamesiarmes/PhpEws/Type/SmartResponseType.php | 23 +
.../jamesiarmes/PhpEws/Type/SmtpDomain.php | 39 +
.../jamesiarmes/PhpEws/Type/SmtpDomainList.php | 25 +
.../PhpEws/Type/StreamingSubscriptionRequest.php | 48 +
.../PhpEws/Type/StringArrayAttributedValueType.php | 34 +
.../PhpEws/Type/StringAttributedValueType.php | 34 +
.../jamesiarmes/PhpEws/Type/StringType.php | 23 +
.../jamesiarmes/PhpEws/Type/Suggestion.php | 58 +
.../PhpEws/Type/SuggestionDayResult.php | 48 +
.../PhpEws/Type/SuggestionsResponseType.php | 35 +
.../PhpEws/Type/SuggestionsViewOptionsType.php | 100 +
.../PhpEws/Type/SuppressReadReceiptType.php | 16 +
.../PhpEws/Type/SyncFolderHierarchyChangesType.php | 45 +
.../Type/SyncFolderHierarchyCreateOrUpdateType.php | 61 +
.../PhpEws/Type/SyncFolderHierarchyDeleteType.php | 25 +
.../PhpEws/Type/SyncFolderItemsChangesType.php | 57 +
.../Type/SyncFolderItemsCreateOrUpdateType.php | 115 +
.../PhpEws/Type/SyncFolderItemsDeleteType.php | 25 +
.../PhpEws/Type/SyncFolderItemsReadFlagType.php | 34 +
.../jamesiarmes/PhpEws/Type/TargetFolderIdType.php | 43 +
.../jamesiarmes/PhpEws/Type/TaskRecurrenceType.php | 57 +
.../jamesiarmes/PhpEws/Type/TaskType.php | 243 +
.../jamesiarmes/PhpEws/Type/TasksFolderType.php | 16 +
.../PhpEws/Type/TentativelyAcceptItemType.php | 16 +
.../jamesiarmes/PhpEws/Type/TimeChangeType.php | 71 +
.../PhpEws/Type/TimeZoneContextType.php | 27 +
.../PhpEws/Type/TimeZoneDefinitionType.php | 62 +
.../jamesiarmes/PhpEws/Type/TimeZoneType.php | 54 +
.../Type/TooBigGroupAttendeeConflictData.php | 17 +
.../PhpEws/Type/TrackingPropertyType.php | 37 +
.../PhpEws/Type/TransitionTargetType.php | 28 +
.../jamesiarmes/PhpEws/Type/TransitionType.php | 28 +
.../PhpEws/Type/TwoOperandExpressionType.php | 24 +
.../Type/UnifiedMessageServiceConfiguration.php | 48 +
.../PhpEws/Type/UnknownAttendeeConflictData.php | 17 +
.../jamesiarmes/PhpEws/Type/UploadItemType.php | 73 +
.../Type/UserConfigurationDictionaryEntryType.php | 34 +
.../Type/UserConfigurationDictionaryObjectType.php | 36 +
.../Type/UserConfigurationDictionaryType.php | 25 +
.../PhpEws/Type/UserConfigurationNameType.php | 26 +
.../PhpEws/Type/UserConfigurationType.php | 68 +
.../jamesiarmes/PhpEws/Type/UserIdType.php | 67 +
.../jamesiarmes/PhpEws/Type/UserMailboxType.php | 34 +
.../jamesiarmes/PhpEws/Type/UserOofSettings.php | 71 +
.../PhpEws/Type/WeeklyRecurrencePatternType.php | 36 +
.../PhpEws/Type/WeeklyRegeneratingPatternType.php | 16 +
.../PhpEws/Type/WellKnownResponseObjectType.php | 18 +
.../jamesiarmes/PhpEws/Type/WorkingHours.php | 42 +
.../jamesiarmes/PhpEws/Type/WorkingPeriod.php | 45 +
.../PhpEws/Type/YearlyRegeneratingPatternType.php | 16 +
.../jamesiarmes/PhpEws/assets/messages.xsd | 4523 +++++++++
.../jamesiarmes/PhpEws/assets/services.wsdl | 3624 ++++++++
.../jamesiarmes/PhpEws/assets/types.xsd | 9779 ++++++++++++++++++++
.../jamesiarmes/PhpNtlm/SoapClient.php | 226 +
.../coursebackend/coursebackend_exchange.inc.php | 242 +
.../locationinfo/inc/coursebackend/exchange.todo | 203 -
785 files changed, 67955 insertions(+), 203 deletions(-)
create mode 100644 modules-available/locationinfo/exchange-includes/README
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfAppManifestsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfAppsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfArraysOfTrackingPropertiesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfAttachmentsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfAttendeeConflictData.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfBaseItemIdsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfBinaryType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfBodyContentAttributedValuesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfCalendarEvent.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfCalendarPermissionsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfContextProperty.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfConversationNodesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfConversationsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfDLExpansionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfDelegateUserResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfDelegateUserType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfDiscoverySearchConfigurationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfEmailAddressAttributedValuesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfEmailAddressesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfEncryptedSharedFolderDataType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfExtendedAttributesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfExtendedPropertyAttributedValueType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFailedSearchMailboxesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFindMessageTrackingSearchResultType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFolderIdType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFoldersType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFreeBusyResponse.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfGroupedItemsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfImGroupType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfInvalidRecipientsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfItemClassType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfKeywordStatisticsSearchResultsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfMailTipsResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfMailboxData.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfMailboxHoldStatusType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfNonIndexableItemDetailsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfNonIndexableItemStatisticsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfOccurrenceRangesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPeopleQuerySource.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPeopleType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPermissionsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPersonaAttributionsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPhoneNumberAttributedValuesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPostalAddressAttributedValuesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPrivateCatalogAddInsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfProtectionRulesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRealItemsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRecipientTrackingEventType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRecipientsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRemindersType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfResolutionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfResponseMessagesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRetentionPolicyTagsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRoomsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRuleOperationErrorsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRuleOperationsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRuleValidationErrorsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRulesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSearchItemKindsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSearchPreviewItemsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSearchableMailboxesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfServiceConfigurationResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfServiceConfigurationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSmtpAddressType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfStringArrayAttributedValuesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfStringAttributedValuesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfStringsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSuggestion.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSuggestionDayResult.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfTimeZoneDefinitionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfTrackingPropertiesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfTransitionsGroupsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfTransitionsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfUnknownEntriesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfUserIdType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfUserMailboxesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfValueAttributionsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfWorkingPeriod.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfAllItemsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfAlternateIdsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfApplyConversationActionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfAttachmentsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfAttendeesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfBaseFolderIdsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfBaseItemIdsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfClientAccessTokenRequestsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfDeletedOccurrencesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfExtendedFieldURIs.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfExtendedPropertyType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFieldOrdersType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFolderChangeDescriptionsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFolderChangesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFolderNamesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFoldersType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfGroupIdentifiersType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfInternetHeadersType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfItemChangeDescriptionsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfItemChangesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfItemIdsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfMailboxQueriesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfMailboxSearchScopesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfNotificationEventTypesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfNotificationsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfOccurrenceInfoType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfPathsToElementType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfPeriodsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfPropertyValuesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfReminderItemActionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfRequestAttachmentIdsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfResponseObjectsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfRestrictedGroupIdentifiersType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfSubscriptionIdsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfTimeZoneIdType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfUploadItemsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayofLegacyDNsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Autodiscover.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ClassMap.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Client.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AddInStateType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AffectedTaskOccurrencesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AggregateType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AppointmentState.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AvailabilityProxyRequestType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/BodyTypeResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/BodyTypeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarItemCreateOrDeleteOperationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarItemTypeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarItemUpdateOperationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarPermissionLevelType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarPermissionReadAccessType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ClientAccessTokenTypeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConferenceType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConflictResolutionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConnectionFailureCauseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConnectionStatusType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ContactSourceType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ContainmentComparisonType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ContainmentModeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConversationActionTypeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConversationNodeSortOrder.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConversationQueryTraversalType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CreateActionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DateTimePrecisionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DayOfWeekIndexType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DayOfWeekType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DaysOfWeekType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DefaultShapeNamesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DelegateFolderPermissionLevelType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DeliverMeetingRequestsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DictionaryURIType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DisableReasonType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DisposalType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DistinguishedFolderIdNameType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DistinguishedPropertySetType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DistinguishedUserType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ElcFolderType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/EmailAddressKeyType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ExceptionPropertyURIType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ExchangeVersionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ExternalAudience.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FileAsMappingType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FlagStatusType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FlaggedForActionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FolderQueryTraversalType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FreeBusyViewType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/HoldActionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/HoldStatusType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/IdFormatType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ImAddressKeyType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ImportanceChoicesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/IndexBasePointType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/InvalidRecipientResponseCodeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ItemClassType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ItemQueryTraversalType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/LegacyFreeBusyType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/LocationSourceType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MailTipTypes.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MailboxSearchLocationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MailboxTypeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MapiPropertyTypeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MeetingAttendeeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MeetingRequestTypeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MemberStatusType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MessageDispositionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MessageTrackingDeliveryStatusType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MessageTrackingEventDescriptionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MessageTrackingReportTemplateType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MonthNamesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/NotificationEventTypeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/Occurrence.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/OofState.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PermissionActionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PermissionLevelType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PermissionReadAccessType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PhoneCallStateType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PhoneNumberKeyType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PhysicalAddressIndexType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PhysicalAddressKeyType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PreviewItemBaseShapeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ReminderActionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ReminderGroup.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ResolveNamesSearchScopeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ResponseClassType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ResponseCodeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ResponseTypeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/RetentionActionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/RoutingType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/RuleFieldURIType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/RuleValidationErrorCodeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/Scope.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SearchFolderTraversalType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SearchItemKindType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SearchPageDirectionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SearchResultType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SensitivityChoicesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ServiceConfigurationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SharingDataType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SortDirectionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/StandardGroupByType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SubscriptionStatusType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SuggestionQuality.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SyncFolderItemsScopeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/TaskDelegateStateType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/TaskStatusType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/TransitionTargetKindType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UnindexedFieldURIType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UserConfigurationDictionaryObjectTypesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UserConfigurationPropertyType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UserPhotoSizeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UserPhotoTypeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ViewFilterType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddDelegateType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddDistributionGroupToImListType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddImContactToGroup.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddImGroupType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddNewImContactToGroup.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddNewTelUriContactToGroupType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ApplyConversationActionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ArchiveItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/BaseDelegateType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/BaseMoveCopyFolderType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/BaseMoveCopyItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/BaseRequestType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ConvertIdType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CopyFolderType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CopyItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateAttachmentType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateFolderPathType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateFolderType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateManagedFolderRequestType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateUserConfigurationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DeleteAttachmentType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DeleteFolderType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DeleteItemType.php
create mode 100755 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DeleteUserConfigurationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DisableAppType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DisconnectPhoneCallType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/EmptyFolderType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ExpandDLType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ExportItemsType.php
create mode 100755 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindConversationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindFolderType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindMailboxStatisticsByKeywordsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindMessageTrackingReportRequestType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindPeopleType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetAppManifestsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetAppMarketplaceUrl.php
create mode 100755 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetAttachmentType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetClientAccessTokenType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetConversationItemsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetDelegateType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetDiscoverySearchConfigurationType.php
create mode 100755 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetEventsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetFolderType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetHoldOnMailboxesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetImItemListType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetImItemsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetInboxRulesRequestType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetMailTipsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetMessageTrackingReportRequestType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetNonIndexableItemDetailsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetNonIndexableItemStatisticsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetPasswordExpirationDateType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetPersonaType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetPhoneCallInformationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetRemindersType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetRoomListsType.php
create mode 100755 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetRoomsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetSearchableMailboxesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetServerTimeZonesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetServiceConfigurationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetSharingFolderType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetSharingMetadataType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetStreamingEventsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserAvailabilityRequestType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserConfigurationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserOofSettingsRequest.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserPhotoType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserRetentionPolicyTagsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/InstallAppType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/MarkAllItemsAsRead.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/MarkAsJunkType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/MoveFolderType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/MoveItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/PerformReminderActionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/PlayOnPhoneType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RefreshSharingFolderType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveContactFromImListType.php
create mode 100755 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveDelegateType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveDistributionGroupFromImListType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveImContactFromGroupType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveImGroupType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ResolveNamesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SearchMailboxesType.php
create mode 100755 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SendItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SetHoldOnMailboxesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SetImGroupType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SetUserOofSettingsRequest.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SubscribeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SyncFolderHierarchyType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SyncFolderItemsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UninstallAppType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UnsubscribeType.php
create mode 100755 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateDelegateType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateFolderType.php
create mode 100755 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateInboxRulesRequestType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateUserConfigurationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UploadItemsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddDelegateResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddDistributionGroupToImListResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddImContactToGroupResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddImGroupResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddNewImContactToGroupResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddNewTelUriContactToGroupResponse.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ApplyConversationActionResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ApplyConversationActionResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ArchiveItemResponse.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AttachmentInfoResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/BaseDelegateResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/BaseResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ConvertIdResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ConvertIdResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CopyFolderResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CopyItemResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateAttachmentResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateFolderPathResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateFolderResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateItemResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateManagedFolderResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateUserConfigurationResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DelegateUserResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteAttachmentResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteAttachmentResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteFolderResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteItemResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteUserConfigurationResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DisableAppResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DisconnectPhoneCallResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/EmptyFolderResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ExpandDLResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ExpandDLResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ExportItemsResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ExportItemsResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindConversationResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindFolderResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindFolderResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindItemResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindItemResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindMailboxStatisticsByKeywordsResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindMailboxStatisticsByKeywordsResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindMessageTrackingReportResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindPeopleResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FolderInfoResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetAppManifestsResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetAppMarketplaceUrlResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetAttachmentResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetClientAccessTokenResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetClientAccessTokenResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetConversationItemsResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetConversationItemsResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetDelegateResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetDiscoverySearchConfigurationResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetEventsResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetEventsResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetFolderResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetHoldOnMailboxesResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetImItemListResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetImItemsResponse.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetInboxRulesResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetItemResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetMailTipsResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetMessageTrackingReportResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetNonIndexableItemDetailsResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetNonIndexableItemStatisticsResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetPasswordExpirationDateResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetPersonaResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetPhoneCallInformationResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetRemindersResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetRoomListsResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetRoomsResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetSearchableMailboxesResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetServerTimeZonesResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetServerTimeZonesResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetServiceConfigurationResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetSharingFolderResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetSharingMetadataResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetStreamingEventsResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetStreamingEventsResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserAvailabilityResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserConfigurationResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserConfigurationResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserOofSettingsResponse.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserPhotoResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserPhotoResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserRetentionPolicyTagsResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/InstallAppResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ItemInfoResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MailTipsResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MarkAllItemsAsReadResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MarkAsJunkResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MarkAsJunkResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MoveFolderResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MoveItemResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/PerformReminderActionResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/PlayOnPhoneResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RefreshSharingFolderResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveContactFromImListResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveDelegateResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveDistributionGroupFromImListResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveImContactFromGroupResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveImGroupResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ResolveNamesResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ResolveNamesResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SearchMailboxesResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SearchMailboxesResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SendItemResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SendNotificationResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SendNotificationResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ServiceConfigurationResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SetHoldOnMailboxesResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SetImGroupResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SetUserOofSettingsResponse.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SubscribeResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SubscribeResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SyncFolderHierarchyResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SyncFolderHierarchyResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SyncFolderItemsResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SyncFolderItemsResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UninstallAppResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UnsubscribeResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateDelegateResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateFolderResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateInboxRulesResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateItemResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateItemResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateUserConfigurationResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UploadItemsResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UploadItemsResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AbsoluteDateTransitionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AbsoluteMonthlyRecurrencePatternType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AbsoluteYearlyRecurrencePatternType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AcceptItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AcceptSharingInvitationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AddressListIdType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AggregateOnType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AlternateIdBaseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AlternateIdType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AlternatePublicFolderIdType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AlternatePublicFolderItemIdType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AndType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AppMetadata.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AppType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AppendToFolderFieldType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AppendToItemFieldType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttachmentIdType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttachmentResponseShapeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttachmentType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttendeeConflictData.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttendeeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseEmailAddressType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseFolderIdType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseFolderType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseGroupByType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseItemIdType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseNotificationEventType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseObjectChangedEventType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BasePagingType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BasePathToElementType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BasePermissionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseSubscriptionRequestType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BodyContentAttributedValueType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BodyContentType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BodyType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarEvent.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarEventDetails.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarFolderType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarPermissionSetType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarPermissionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarViewType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CancelCalendarItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ChangeDescriptionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ClientAccessTokenRequestType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ClientAccessTokenType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CompleteNameType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConflictResultsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConnectingSIDType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConstantValueType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContactItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContactsFolderType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContactsViewType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContainsExpressionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContextPropertyType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationActionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationNodeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationShape.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CreateRuleOperationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DailyRecurrencePatternType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DailyRegeneratingPatternType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeclineItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DelegatePermissionsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DelegateUserType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeleteFolderFieldType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeleteItemFieldType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeleteRuleOperationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeletedOccurrenceInfoType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DirectoryEntryType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DiscoverySearchConfigurationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DistinguishedFolderIdType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DistinguishedGroupByType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DistributionListType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/Duration.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EffectiveRightsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EmailAddressAttributedValueType.php
create mode 100755 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EmailAddressDictionaryEntryType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EmailAddressDictionaryType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EmailAddressType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EncryptedSharedFolderDataType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EndDateRecurrenceRangeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExchangeImpersonationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExcludesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExcludesValueType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExistsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExtendedAttributeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExtendedPropertyAttributedValueType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExtendedPropertyType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FailedSearchMailboxType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FieldOrderType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FieldURIOrConstantType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FileAttachmentType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FindFolderParentType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FindItemParentType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FindMessageTrackingSearchResultType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderChangeDescriptionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderChangeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderIdType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderResponseShapeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ForwardItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FractionalPageViewType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FreeBusyResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FreeBusyView.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FreeBusyViewOptionsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/GroupAttendeeConflictData.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/GroupByType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/GroupedItemsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ImAddressDictionaryEntryType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ImAddressDictionaryType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ImGroupType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ImItemListType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IndexedPageViewType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IndividualAttendeeConflictData.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/InstalledAppType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/InternetHeaderType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IntervalRecurrencePatternBaseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/InvalidRecipientType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsEqualToType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsGreaterThanOrEqualToType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsGreaterThanType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsLessThanOrEqualToType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsLessThanType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsNotEqualToType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemAttachmentType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemChangeDescriptionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemChangeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemIdType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemResponseShapeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/KeywordStatisticsSearchResultType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailTips.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailTipsServiceConfiguration.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxData.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxHoldResultType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxHoldStatusType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxQueryType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxSearchScopeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxStatisticsSearchResultType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ManagedFolderInformationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MeetingCancellationMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MeetingMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MeetingRequestMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MeetingResponseMessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MemberType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MembersListType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MessageTrackingReportType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MessageType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MimeContentType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ModifiedEventType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MonthlyRegeneratingPatternType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MovedCopiedEventType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MultipleOperandBooleanExpressionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NoEndRecurrenceRangeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NonIndexableItemDetailResultType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NonIndexableItemDetailType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NonIndexableItemStatisticType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NotType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NotificationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NumberedRecurrenceRangeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OccurrenceInfoType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OccurrenceItemIdType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OccurrencesRangeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OpenAsAdminOrSystemServiceType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OrType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OutOfOfficeMailTip.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PathToExtendedFieldType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PathToIndexedFieldType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PathToUnindexedFieldType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PeriodType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PermissionSetType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PermissionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaAttributionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaPhoneNumberType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaPostalAddressType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaResponseShapeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneCallIdType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneCallInformationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneNumberAttributedValueType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneNumberDictionaryEntryType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneNumberDictionaryType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhysicalAddressDictionaryEntryType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhysicalAddressDictionaryType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PostItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PostReplyItemBaseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PostReplyItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PostalAddressAttributedValueType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PreviewItemMailboxType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PreviewItemResponseShapeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PrivateCatalogAddInsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProposeNewTimeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleActionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleAndType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleArgumentType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleConditionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleRecipientIsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleSenderDepartmentsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRulesServiceConfiguration.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PullSubscriptionRequestType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PushSubscriptionRequestType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/QueryStringType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecipientTrackingEventType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurrencePatternBaseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurrenceRangeBaseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurrenceType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringDateTransitionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringDayTransitionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringMasterItemIdRanges.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringMasterItemIdType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringTimeTransitionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReferenceItemResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RegeneratingPatternBaseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RelativeMonthlyRecurrencePatternType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RelativeYearlyRecurrencePatternType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReminderItemActionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReminderType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RemoveItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReplyAllToItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReplyBody.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReplyToItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RequestAttachmentIdType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RequestServerVersion.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ResolutionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ResponseObjectCoreType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ResponseObjectType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RestrictionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RetentionPolicyTagType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RoomType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RootItemIdType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleActionsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleOperationErrorType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleOperationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RulePredicateDateRangeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RulePredicateSizeRangeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RulePredicatesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleValidationErrorType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchExpressionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchFolderType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchMailboxesResultType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchParametersType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchPreviewItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchableMailboxType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SeekToConditionPageViewType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SendNotificationResultType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SerializableTimeZone.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SerializableTimeZoneTime.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SerializedSecurityContextType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ServerVersionInfo.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ServiceConfiguration.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SetFolderFieldType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SetItemFieldType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SetRuleOperationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SidAndAttributesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SingleRecipientType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SmartResponseBaseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SmartResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SmtpDomain.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SmtpDomainList.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/StreamingSubscriptionRequest.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/StringArrayAttributedValueType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/StringAttributedValueType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/StringType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/Suggestion.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SuggestionDayResult.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SuggestionsResponseType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SuggestionsViewOptionsType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SuppressReadReceiptType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderHierarchyChangesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderHierarchyCreateOrUpdateType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderHierarchyDeleteType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderItemsChangesType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderItemsCreateOrUpdateType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderItemsDeleteType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderItemsReadFlagType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TargetFolderIdType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TaskRecurrenceType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TaskType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TasksFolderType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TentativelyAcceptItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TimeChangeType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TimeZoneContextType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TimeZoneDefinitionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TimeZoneType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TooBigGroupAttendeeConflictData.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TrackingPropertyType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TransitionTargetType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TransitionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TwoOperandExpressionType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UnifiedMessageServiceConfiguration.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UnknownAttendeeConflictData.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UploadItemType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationDictionaryEntryType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationDictionaryObjectType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationDictionaryType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationNameType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserIdType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserMailboxType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserOofSettings.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WeeklyRecurrencePatternType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WeeklyRegeneratingPatternType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WellKnownResponseObjectType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WorkingHours.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WorkingPeriod.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/YearlyRegeneratingPatternType.php
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/assets/messages.xsd
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/assets/services.wsdl
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/assets/types.xsd
create mode 100644 modules-available/locationinfo/exchange-includes/jamesiarmes/PhpNtlm/SoapClient.php
create mode 100755 modules-available/locationinfo/inc/coursebackend/coursebackend_exchange.inc.php
delete mode 100755 modules-available/locationinfo/inc/coursebackend/exchange.todo
(limited to 'modules-available/locationinfo')
diff --git a/modules-available/locationinfo/exchange-includes/README b/modules-available/locationinfo/exchange-includes/README
new file mode 100644
index 00000000..012de7df
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/README
@@ -0,0 +1,4 @@
+Copy of
+https://github.com/jamesiarmes/php-ews
+and its dependency php-ntlm, minus the
+composer stuff.
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType.php
new file mode 100644
index 00000000..ca202839
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType.php
@@ -0,0 +1,16 @@
+String;
+ }
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSuggestion.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSuggestion.php
new file mode 100644
index 00000000..44c7646f
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSuggestion.php
@@ -0,0 +1,25 @@
+setCAInfo('/path/to/your/cacert.pem');
+ * $ews = $auto->newEWS();
+ *
+ * @link http://technet.microsoft.com/en-us/library/bb332063(EXCHG.80).aspx
+ * @link https://www.testexchangeconnectivity.com/
+ *
+ * @package php-ews\AutoDiscovery
+ */
+class Autodiscover
+{
+ /**
+ * The path appended to the various schemes and hostnames used during
+ * autodiscovery.
+ *
+ * @var string
+ */
+ const AUTODISCOVER_PATH = '/autodiscover/autodiscover.xml';
+
+ /**
+ * Server was discovered using the TLD method.
+ *
+ * @var integer
+ */
+ const AUTODISCOVERED_VIA_TLD = 10;
+
+ /**
+ * Server was discovered using the subdomain method.
+ *
+ * @var integer
+ */
+ const AUTODISCOVERED_VIA_SUBDOMAIN = 11;
+
+ /**
+ * Server was discovered using the unauthenticated GET method.
+ *
+ * @var integer
+ */
+ const AUTODISCOVERED_VIA_UNAUTHENTICATED_GET = 12;
+
+ /**
+ * Server was discovered using the DNS SRV redirect method.
+ *
+ * @var integer
+ */
+ const AUTODISCOVERED_VIA_SRV_RECORD = 13;
+
+ /**
+ * Server was discovered using the HTTP redirect method.
+ *
+ * @var integer
+ *
+ * @todo We do not currently support this.
+ */
+ const AUTODISCOVERED_VIA_RESPONSE_REDIRECT = 14;
+
+ /**
+ * The email address to attempt autodiscovery against.
+ *
+ * @var string
+ */
+ protected $email;
+
+ /**
+ * The password to present during autodiscovery.
+ *
+ * @var string
+ */
+ protected $password;
+
+ /**
+ * The Exchange username to use during authentication. If unspecified,
+ * the provided email address will be used as the username.
+ *
+ * @var string
+ */
+ protected $username;
+
+ /**
+ * The top-level domain name, extracted from the provided email address.
+ *
+ * @var string
+ */
+ protected $tld;
+
+ /**
+ * The Autodiscover XML request. Since it's used repeatedly, it's cached
+ * in this property to avoid redundant re-generation.
+ *
+ * @var string
+ */
+ protected $requestxml;
+
+ /**
+ * The Certificate Authority path. Should point to a directory containing
+ * one or more certificates to use in SSL verification.
+ *
+ * @var string
+ */
+ protected $capath;
+
+ /**
+ * The path to a specific Certificate Authority file. Get one and use it
+ * for full Autodiscovery compliance.
+ *
+ * @var string
+ *
+ * @link http://curl.haxx.se/ca/cacert.pem
+ * @link http://curl.haxx.se/ca/
+ */
+ protected $cainfo;
+
+ /**
+ * Skip SSL verification. Bad idea, and violates the strict Autodiscover
+ * protocol. But, here in case you have no other option.
+ * Defaults to FALSE.
+ *
+ * @var boolean
+ */
+ protected $skip_ssl_verification = false;
+
+ /**
+ * The body of the last response.
+ *
+ * @var string
+ */
+ public $last_response;
+
+ /**
+ * An associative array of response headers that resulted from the
+ * last request. Keys are lowercased for easy checking.
+ *
+ * @var array
+ */
+ public $last_response_headers;
+
+ /**
+ * The output of curl_info() relating to the most recent cURL request.
+ *
+ * @var array
+ */
+ public $last_info;
+
+ /**
+ * The cURL error code associated with the most recent cURL request.
+ *
+ * @var integer
+ */
+ public $last_curl_errno;
+
+ /**
+ * Human-readable description of the most recent cURL error.
+ *
+ * @var string
+ */
+ public $last_curl_error;
+
+ /**
+ * The value in seconds to use for Autodiscover host connection timeouts.
+ * Default connection timeout is 2 seconds, so that unresponsive methods
+ * can be bypassed quickly.
+ *
+ * @var integer
+ */
+ public $connection_timeout = 2;
+
+ /**
+ * Information about an Autodiscover Response containing an error will
+ * be stored here.
+ *
+ * @var mixed
+ */
+ public $error = false;
+
+ /**
+ * Information about an Autodiscover Response with a redirect will be
+ * retained here.
+ *
+ * @var mixed
+ */
+ public $redirect = false;
+
+ /**
+ * A successful, non-error and non-redirect parsed Autodiscover response
+ * will be stored here.
+ *
+ * @var mixed
+ */
+ public $discovered = null;
+
+ /**
+ * Constructor for the EWSAutodiscover class.
+ *
+ * @param string $email
+ * @param string $password
+ * @param string $username
+ * If left blank, the email provided will be used.
+ */
+ public function __construct($email, $password, $username = null)
+ {
+ $this->email = $email;
+ $this->password = $password;
+ if ($username === null) {
+ $this->username = $email;
+ } else {
+ $this->username = $username;
+ }
+
+ $this->setTLD();
+ }
+
+ /**
+ * Execute the full discovery chain of events in the correct sequence
+ * until a valid response is received, or all methods have failed.
+ *
+ * @return integer
+ * One of the AUTODISCOVERED_VIA_* constants.
+ *
+ * @throws \RuntimeException
+ * When all autodiscovery methods fail.
+ */
+ public function discover()
+ {
+ $result = $this->tryTLD();
+
+ if ($result === false) {
+ $result = $this->trySubdomain();
+ }
+
+ if ($result === false) {
+ $result = $this->trySubdomainUnauthenticatedGet();
+ }
+
+ if ($result === false) {
+ $result = $this->trySRVRecord();
+ }
+
+ if ($result === false) {
+ throw new \RuntimeException('Autodiscovery failed.');
+ }
+
+ return $result;
+ }
+
+ /**
+ * Return the settings discovered from the Autodiscover process.
+ *
+ * NULL indicates discovery has not completed (or been attempted)
+ * FALSE indicates discovery was not successful. Check for errors
+ * or redirects.
+ * An array will be returned with discovered settings on success.
+ *
+ * @return mixed
+ */
+ public function discoveredSettings()
+ {
+ return $this->discovered;
+ }
+
+ /**
+ * Toggle skipping of SSL verification in cURL requests.
+ *
+ * @param boolean $skip
+ * Whether or not to skip SSL certificate verification.
+ * @return self
+ */
+ public function skipSSLVerification($skip = true)
+ {
+ $this->skip_ssl_verification = (bool) $skip;
+
+ return $this;
+ }
+
+ /**
+ * Parse the hex ServerVersion value and return a valid
+ * Client::VERSION_* constant.
+ *
+ * @return string|boolean A known version constant, or FALSE if it could not
+ * be determined.
+ *
+ * @link http://msdn.microsoft.com/en-us/library/bb204122(v=exchg.140).aspx
+ * @link http://blogs.msdn.com/b/pcreehan/archive/2009/09/21/parsing-serverversion-when-an-int-is-really-5-ints.aspx
+ * @link http://office.microsoft.com/en-us/outlook-help/determine-the-version-of-microsoft-exchange-server-my-account-connects-to-HA001191800.aspx
+ *
+ * @param string $version_hex
+ * Hexadecimal version string.
+ */
+ public function parseServerVersion($version_hex)
+ {
+ $svbinary = base_convert($version_hex, 16, 2);
+ if (strlen($svbinary) == 31) {
+ $svbinary = '0' . $svbinary;
+ }
+
+ $majorversion = base_convert(substr($svbinary, 4, 6), 2, 10);
+ $minorversion = base_convert(substr($svbinary, 10, 6), 2, 10);
+ $majorbuild = base_convert(substr($svbinary, 17, 15), 2, 10);
+
+ switch ($majorversion) {
+ case 8:
+ return $this->parseVersion2007($minorversion);
+ case 14:
+ return $this->parseVersion2010($minorversion);
+ case 15:
+ if ($minorversion == 0) {
+ return $this->parseVersion2013($majorbuild);
+ }
+
+ return $this->parseVersion2016();
+ }
+
+ // Guess we didn't find a known version.
+ return false;
+ }
+
+ /**
+ * Method to return a new Client object, auto-configured
+ * with the proper hostname.
+ *
+ * @return mixed Client object on success, FALSE on failure.
+ */
+ public function newEWS()
+ {
+ // Discovery not yet attempted.
+ if ($this->discovered === null) {
+ $this->discover();
+ }
+
+ // Discovery not successful.
+ if ($this->discovered === false) {
+ return false;
+ }
+
+ $server = false;
+ $version = null;
+
+ // Pick out the host from the EXPR (Exchange RPC over HTTP).
+ foreach ($this->discovered['Account']['Protocol'] as $protocol) {
+ if (
+ ($protocol['Type'] == 'EXCH' || $protocol['Type'] == 'EXPR')
+ && isset($protocol['ServerVersion'])
+ ) {
+ if ($version === null) {
+ $sv = $this->parseServerVersion($protocol['ServerVersion']);
+ if ($sv !== false) {
+ $version = $sv;
+ }
+ }
+ }
+
+ if ($protocol['Type'] == 'EXPR' && isset($protocol['Server'])) {
+ $server = $protocol['Server'];
+ }
+ }
+
+ if ($server) {
+ if ($version === null) {
+ // EWS class default.
+ $version = Client::VERSION_2007;
+ }
+ return new Client(
+ $server,
+ (!empty($this->username) ? $this->username : $this->email),
+ $this->password,
+ $version
+ );
+ }
+
+ return false;
+ }
+
+ /**
+ * Static method may fail if there are issues surrounding SSL certificates.
+ * In such cases, set up the object as needed, and then call newEWS().
+ *
+ * @param string $email
+ * @param string $password
+ * @param string $username
+ * If left blank, the email provided will be used.
+ * @return mixed
+ */
+ public static function getEWS($email, $password, $username = null)
+ {
+ $auto = new Autodiscover($email, $password, $username);
+ return $auto->newEWS();
+ }
+
+ /**
+ * Perform an NTLM authenticated HTTPS POST to the top-level
+ * domain of the email address.
+ *
+ * @return integer|boolean
+ * One of the AUTODISCOVERED_VIA_* constants or false on failure.
+ */
+ public function tryTLD()
+ {
+ $url = 'https://' . $this->tld . self::AUTODISCOVER_PATH;
+ return ($this->tryViaUrl($url) ? self::AUTODISCOVERED_VIA_TLD : false);
+ }
+
+ /**
+ * Perform an NTLM authenticated HTTPS POST to the 'autodiscover'
+ * subdomain of the email address' TLD.
+ *
+ * @return integer|boolean
+ * One of the AUTODISCOVERED_VIA_* constants or false on failure.
+ */
+ public function trySubdomain()
+ {
+ $url = 'https://autodiscover.' . $this->tld . self::AUTODISCOVER_PATH;
+ return ($this->tryViaUrl($url)
+ ? self::AUTODISCOVERED_VIA_SUBDOMAIN
+ : false);
+ }
+
+ /**
+ * Perform an unauthenticated HTTP GET in an attempt to get redirected
+ * via 302 to the correct location to perform the HTTPS POST.
+ *
+ * @return integer|boolean
+ * One of the AUTODISCOVERED_VIA_* constants or false on failure.
+ */
+ public function trySubdomainUnauthenticatedGet()
+ {
+ $this->reset();
+ $url = 'http://autodiscover.' . $this->tld . self::AUTODISCOVER_PATH;
+ $ch = curl_init();
+ $opts = array(
+ CURLOPT_URL => $url,
+ CURLOPT_HTTPGET => true,
+ CURLOPT_RETURNTRANSFER => true,
+ CURLOPT_TIMEOUT => 4,
+ CURLOPT_CONNECTTIMEOUT => $this->connection_timeout,
+ CURLOPT_FOLLOWLOCATION => false,
+ CURLOPT_HEADER => false,
+ CURLOPT_HEADERFUNCTION => array($this, 'readHeaders'),
+ CURLOPT_HTTP200ALIASES => array(301, 302),
+ CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4
+ );
+ curl_setopt_array($ch, $opts);
+ $this->last_response = curl_exec($ch);
+ $this->last_info = curl_getinfo($ch);
+ $this->last_curl_errno = curl_errno($ch);
+ $this->last_curl_error = curl_error($ch);
+
+ if (
+ $this->last_info['http_code'] == 302
+ || $this->last_info['http_code'] == 301
+ ) {
+ if ($this->tryViaUrl($this->last_response_headers['location'])) {
+ return self::AUTODISCOVERED_VIA_UNAUTHENTICATED_GET;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Attempt to retrieve the autodiscover host from an SRV DNS record.
+ *
+ * @link http://support.microsoft.com/kb/940881
+ *
+ * @return integer|boolean
+ * The value of self::AUTODISCOVERED_VIA_SRV_RECORD or false.
+ */
+ public function trySRVRecord()
+ {
+ $srvhost = '_autodiscover._tcp.' . $this->tld;
+ $lookup = dns_get_record($srvhost, DNS_SRV);
+ if (sizeof($lookup) > 0) {
+ $host = $lookup[0]['target'];
+ $url = 'https://' . $host . self::AUTODISCOVER_PATH;
+ if ($this->tryViaUrl($url)) {
+ return self::AUTODISCOVERED_VIA_SRV_RECORD;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Set the path to the file to be used by CURLOPT_CAINFO.
+ *
+ * @param string $path
+ * Path to a certificate file such as cacert.pem
+ * @return self
+ */
+ public function setCAInfo($path)
+ {
+ if (file_exists($path) && is_file($path)) {
+ $this->cainfo = $path;
+ }
+
+ return $this;
+ }
+
+ /**
+ * Set the path to the file to be used by CURLOPT_CAPATH.
+ *
+ * @param string $path
+ * Path to a directory containing one or more CA certificates.
+ * @return self
+ */
+ public function setCAPath($path)
+ {
+ if (is_dir($path)) {
+ $this->capath = $path;
+ }
+
+ return $this;
+ }
+
+ /**
+ * Set a connection timeout for the POST methods.
+ *
+ * @param integer $seconds
+ * Seconds to wait for a connection.
+ * @return self
+ */
+ public function setConnectionTimeout($seconds)
+ {
+ $this->connection_timeout = intval($seconds);
+
+ return $this;
+ }
+
+ /**
+ * Perform the NTLM authenticated post against one of the chosen
+ * endpoints.
+ *
+ * @param string $url
+ * URL to try posting to.
+ * @param integer $timeout
+ * Number of seconds before the request should timeout.
+ * @return boolean
+ */
+ public function doNTLMPost($url, $timeout = 6)
+ {
+ $this->reset();
+
+ $ch = curl_init();
+ $opts = array(
+ CURLOPT_URL => $url,
+ CURLOPT_HTTPAUTH => CURLAUTH_BASIC | CURLAUTH_NTLM,
+ CURLOPT_CUSTOMREQUEST => 'POST',
+ CURLOPT_POSTFIELDS => $this->getAutoDiscoverRequest(),
+ CURLOPT_RETURNTRANSFER => true,
+ CURLOPT_USERPWD => $this->username . ':' . $this->password,
+ CURLOPT_TIMEOUT => $timeout,
+ CURLOPT_CONNECTTIMEOUT => $this->connection_timeout,
+ CURLOPT_FOLLOWLOCATION => true,
+ CURLOPT_HEADER => false,
+ CURLOPT_HEADERFUNCTION => array($this, 'readHeaders'),
+ CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4,
+ CURLOPT_SSL_VERIFYPEER => true,
+ CURLOPT_SSL_VERIFYHOST => 2,
+ );
+
+ // Set the appropriate content-type.
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml; charset=utf-8'));
+
+ if (!empty($this->cainfo)) {
+ $opts[CURLOPT_CAINFO] = $this->cainfo;
+ }
+
+ if (!empty($this->capath)) {
+ $opts[CURLOPT_CAPATH] = $this->capath;
+ }
+
+ if ($this->skip_ssl_verification) {
+ $opts[CURLOPT_SSL_VERIFYPEER] = false;
+ }
+
+ curl_setopt_array($ch, $opts);
+ $this->last_response = curl_exec($ch);
+ $this->last_info = curl_getinfo($ch);
+ $this->last_curl_errno = curl_errno($ch);
+ $this->last_curl_error = curl_error($ch);
+
+ if ($this->last_curl_errno != CURLE_OK) {
+ return false;
+ }
+
+ $discovered = $this->parseAutodiscoverResponse();
+
+ return $discovered;
+ }
+
+ /**
+ * Parse the Autoresponse Payload, particularly to determine if an
+ * additional request is necessary.
+ *
+ * @return boolean|array FALSE if response isn't XML or parsed response
+ * array.
+ */
+ protected function parseAutodiscoverResponse()
+ {
+ // Content-type isn't trustworthy, unfortunately. Shame on Microsoft.
+ if (substr($this->last_response, 0, 5) !== 'responseToArray($this->last_response);
+
+ if (isset($response['Error'])) {
+ $this->error = $response['Error'];
+ return false;
+ }
+
+ // Check the account action for redirect.
+ switch ($response['Account']['Action']) {
+ case 'redirectUrl':
+ $this->redirect = array(
+ 'redirectUrl' => $response['Account']['RedirectUrl']
+ );
+ return false;
+ case 'redirectAddr':
+ $this->redirect = array(
+ 'redirectAddr' => $response['Account']['RedirectAddr']
+ );
+ return false;
+ case 'settings':
+ default:
+ $this->discovered = $response;
+ return true;
+ }
+ }
+
+ /**
+ * Set the top-level domain to be used with autodiscover attempts based
+ * on the provided email address.
+ *
+ * @return boolean
+ */
+ protected function setTLD()
+ {
+ $pos = strpos($this->email, '@');
+ if ($pos !== false) {
+ $this->tld = trim(substr($this->email, $pos + 1));
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Reset the response-related structures. Called before making a new
+ * request.
+ *
+ * @return self
+ */
+ public function reset()
+ {
+ $this->last_response_headers = array();
+ $this->last_info = array();
+ $this->last_curl_errno = 0;
+ $this->last_curl_error = '';
+
+ return $this;
+ }
+
+ /**
+ * Return the generated Autodiscover XML request body.
+ *
+ * @return string
+ */
+ public function getAutodiscoverRequest()
+ {
+ if (!empty($this->requestxml)) {
+ return $this->requestxml;
+ }
+
+ $xml = new \XMLWriter();
+ $xml->openMemory();
+ $xml->setIndent(true);
+ $xml->startDocument('1.0', 'UTF-8');
+ $xml->startElementNS(
+ null,
+ 'Autodiscover',
+ 'http://schemas.microsoft.com/exchange/autodiscover/outlook/requestschema/2006'
+ );
+
+ $xml->startElement('Request');
+ $xml->writeElement('EMailAddress', $this->email);
+ $xml->writeElement(
+ 'AcceptableResponseSchema',
+ 'http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a'
+ );
+ $xml->endElement();
+ $xml->endElement();
+
+ $this->requestxml = $xml->outputMemory();
+ return $this->requestxml;
+ }
+
+ /**
+ * Utility function to pick headers off of the incoming cURL response.
+ * Used with CURLOPT_HEADERFUNCTION.
+ *
+ * @param resource $_ch
+ * cURL handle.
+ * @param string $str
+ * Header string to read.
+ * @return integer
+ * Bytes read.
+ */
+ public function readHeaders($_ch, $str)
+ {
+ $pos = strpos($str, ':');
+ if ($pos !== false) {
+ $key = strtolower(substr($str, 0, $pos));
+ $val = trim(substr($str, $pos + 1));
+ $this->last_response_headers[$key] = $val;
+ }
+
+ return strlen($str);
+ }
+
+ /**
+ * Utility function to parse XML payloads from the response into easier
+ * to manage associative arrays.
+ *
+ * @param string $xml
+ * XML to parse.
+ * @return array
+ */
+ public function responseToArray($xml)
+ {
+ $doc = new \DOMDocument();
+ $doc->loadXML($xml);
+ $out = $this->nodeToArray($doc->documentElement);
+
+ return $out['Response'];
+ }
+
+ /**
+ * Recursive method for parsing DOM nodes.
+ *
+ * @param \DOMElement $node
+ * DOMNode object.
+ * @return mixed
+ *
+ * @link https://github.com/gaarf/XML-string-to-PHP-array
+ */
+ protected function nodeToArray($node)
+ {
+ $output = array();
+ switch ($node->nodeType) {
+ case XML_CDATA_SECTION_NODE:
+ case XML_TEXT_NODE:
+ $output = trim($node->textContent);
+ break;
+ case XML_ELEMENT_NODE:
+ for ($i = 0, $m = $node->childNodes->length; $i < $m; $i++) {
+ $child = $node->childNodes->item($i);
+ $v = $this->nodeToArray($child);
+ if (isset($child->tagName)) {
+ $t = $child->tagName;
+ if (!isset($output[$t])) {
+ $output[$t] = array();
+ }
+ $output[$t][] = $v;
+ } elseif ($v || $v === '0') {
+ $output = (string) $v;
+ }
+ }
+
+ // Edge case of a node containing a text node, which also has
+ // attributes. this way we'll retain text and attributes for
+ // this node.
+ if (is_string($output) && $node->attributes->length) {
+ $output = array('@text' => $output);
+ }
+
+ if (is_array($output)) {
+ if ($node->attributes->length) {
+ $a = array();
+ foreach ($node->attributes as $attrName => $attrNode) {
+ $a[$attrName] = (string) $attrNode->value;
+ }
+ $output['@attributes'] = $a;
+ }
+ foreach ($output as $t => $v) {
+ if (is_array($v) && count($v) == 1 && $t != '@attributes') {
+ $output[$t] = $v[0];
+ }
+ }
+ }
+ break;
+ }
+
+ return $output;
+ }
+
+ /**
+ * Parses the version of an Exchange 2007 server.
+ *
+ * @param integer $minorversion
+ * Minor server version.
+ * @return string Server version.
+ */
+ protected function parseVersion2007($minorversion) {
+ switch ($minorversion) {
+ case 0:
+ return Client::VERSION_2007;
+ case 1:
+ case 2:
+ case 3:
+ return Client::VERSION_2007_SP1;
+ default:
+ return Client::VERSION_2007;
+ }
+ }
+
+ /**
+ * Parses the version of an Exchange 2010 server.
+ *
+ * @param integer $minorversion
+ * Minor server version.
+ * @return string Server version.
+ */
+ protected function parseVersion2010($minorversion) {
+ switch ($minorversion) {
+ case 0:
+ return Client::VERSION_2010;
+ case 1:
+ return Client::VERSION_2010_SP1;
+ case 2:
+ return Client::VERSION_2010_SP2;
+ default:
+ return Client::VERSION_2010;
+ }
+ }
+
+ /**
+ * Parses the version of an Exchange 2013 server.
+ *
+ * @param integer $majorbuild
+ * Major build version.
+ * @return string Server version.
+ */
+ protected function parseVersion2013($majorbuild) {
+ return ($majorbuild == 847
+ ? Client::VERSION_2013_SP1
+ : Client::VERSION_2013);
+ }
+
+ /**
+ * Parses the version of an Exchange 2016 server.
+ *
+ * @return string Server version.
+ */
+ protected function parseVersion2016() {
+ return Client::VERSION_2016;
+ }
+
+ /**
+ * Attempts an autodiscover via a URL.
+ *
+ * @param string $url
+ * Url to attempt an autodiscover.
+ * @param integer $timeout
+ * Number of seconds before the request should timeout.
+ * @return boolean
+ */
+ protected function tryViaUrl($url, $timeout = 6)
+ {
+ $result = $this->doNTLMPost($url, $timeout);
+ return ($result ? true : false);
+ }
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ClassMap.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ClassMap.php
new file mode 100644
index 00000000..cde1cbb8
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ClassMap.php
@@ -0,0 +1,684 @@
+ '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfRecipientTrackingEventType',
+ 'ArrayOfDLExpansionType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfDLExpansionType',
+ 'NonEmptyArrayOfMailboxQueriesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfMailboxQueriesType',
+ 'NonEmptyArrayOfBaseItemIdsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfBaseItemIdsType',
+ 'ArrayOfAppsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfAppsType',
+ 'NonEmptyArrayOfNotificationEventTypesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfNotificationEventTypesType',
+ 'ArrayOfTimeZoneDefinitionType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfTimeZoneDefinitionType',
+ 'ArrayOfPhoneNumberAttributedValuesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfPhoneNumberAttributedValuesType',
+ 'NonEmptyArrayOfPropertyValuesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfPropertyValuesType',
+ 'ArrayOfPrivateCatalogAddInsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfPrivateCatalogAddInsType',
+ 'NonEmptyArrayOfItemChangeDescriptionsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfItemChangeDescriptionsType',
+ 'NonEmptyArrayOfDeletedOccurrencesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfDeletedOccurrencesType',
+ 'NonEmptyArrayOfFolderChangesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfFolderChangesType',
+ 'NonEmptyArrayOfExtendedFieldURIs' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfExtendedFieldURIs',
+ 'ArrayOfTrackingPropertiesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfTrackingPropertiesType',
+ 'ArrayOfSearchPreviewItemsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfSearchPreviewItemsType',
+ 'ArrayOfRuleOperationErrorsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfRuleOperationErrorsType',
+ 'ArrayOfPersonaAttributionsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfPersonaAttributionsType',
+ 'NonEmptyArrayOfReminderItemActionType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfReminderItemActionType',
+ 'ArrayOfResponseMessagesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfResponseMessagesType',
+ 'ArrayOfPermissionsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfPermissionsType',
+ 'ArrayOfSmtpAddressType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfSmtpAddressType',
+ 'ArrayOfFailedSearchMailboxesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfFailedSearchMailboxesType',
+ 'NonEmptyArrayOfMailboxSearchScopesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfMailboxSearchScopesType',
+ 'ArrayOfUnknownEntriesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfUnknownEntriesType',
+ 'ArrayOfRoomsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfRoomsType',
+ 'ArrayOfStringAttributedValuesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfStringAttributedValuesType',
+ 'NonEmptyArrayOfNotificationsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfNotificationsType',
+ 'ArrayOfServiceConfigurationResponseMessageType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfServiceConfigurationResponseMessageType',
+ 'ArrayOfUserMailboxesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfUserMailboxesType',
+ 'NonEmptyArrayOfGroupIdentifiersType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfGroupIdentifiersType',
+ 'ArrayOfExtendedPropertyAttributedValueType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfExtendedPropertyAttributedValueType',
+ 'ArrayOfMailboxData' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfMailboxData',
+ 'ArrayOfValueAttributionsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfValueAttributionsType',
+ 'ArrayOfDiscoverySearchConfigurationType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfDiscoverySearchConfigurationType',
+ 'ArrayOfCalendarPermissionsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfCalendarPermissionsType',
+ 'ArrayOfAttendeeConflictData' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfAttendeeConflictData',
+ 'ArrayOfItemClassType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfItemClassType',
+ 'ArrayOfWorkingPeriod' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfWorkingPeriod',
+ 'NonEmptyArrayOfPeriodsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfPeriodsType',
+ 'NonEmptyArrayOfAllItemsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfAllItemsType',
+ 'ArrayOfSuggestion' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfSuggestion',
+ 'ArrayOfBinaryType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfBinaryType',
+ 'ArrayOfPeopleQuerySource' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfPeopleQuerySource',
+ 'ArrayOfPostalAddressAttributedValuesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfPostalAddressAttributedValuesType',
+ 'ArrayOfUserIdType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfUserIdType',
+ 'ArrayOfBaseItemIdsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfBaseItemIdsType',
+ 'ArrayOfProtectionRulesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfProtectionRulesType',
+ 'ArrayOfRecipientsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfRecipientsType',
+ 'ArrayOfFindMessageTrackingSearchResultType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfFindMessageTrackingSearchResultType',
+ 'ArrayOfRetentionPolicyTagsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfRetentionPolicyTagsType',
+ 'NonEmptyArrayOfFieldOrdersType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfFieldOrdersType',
+ 'ArrayOfContextProperty' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfContextProperty',
+ 'ArrayOfEncryptedSharedFolderDataType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfEncryptedSharedFolderDataType',
+ 'NonEmptyArrayOfAlternateIdsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfAlternateIdsType',
+ 'ArrayOfFolderIdType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfFolderIdType',
+ 'ArrayOfServiceConfigurationType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfServiceConfigurationType',
+ 'NonEmptyArrayOfFoldersType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfFoldersType',
+ 'ArrayOfStringsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfStringsType',
+ 'NonEmptyArrayOfInternetHeadersType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfInternetHeadersType',
+ 'ArrayOfImGroupType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfImGroupType',
+ 'NonEmptyArrayOfExtendedPropertyType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfExtendedPropertyType',
+ 'ArrayOfOccurrenceRangesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfOccurrenceRangesType',
+ 'ArrayOfArraysOfTrackingPropertiesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfArraysOfTrackingPropertiesType',
+ 'ArrayOfRuleValidationErrorsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfRuleValidationErrorsType',
+ 'ArrayOfEmailAddressAttributedValuesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfEmailAddressAttributedValuesType',
+ 'NonEmptyArrayOfTimeZoneIdType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfTimeZoneIdType',
+ 'ArrayOfRemindersType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfRemindersType',
+ 'ArrayOfSearchableMailboxesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfSearchableMailboxesType',
+ 'NonEmptyArrayOfAttendeesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfAttendeesType',
+ 'ArrayOfGroupedItemsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfGroupedItemsType',
+ 'ArrayOfResolutionType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfResolutionType',
+ 'ArrayOfInvalidRecipientsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfInvalidRecipientsType',
+ 'ArrayOfSuggestionDayResult' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfSuggestionDayResult',
+ 'NonEmptyArrayofLegacyDNsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayofLegacyDNsType',
+ 'ArrayOfMailboxHoldStatusType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfMailboxHoldStatusType',
+ 'NonEmptyArrayOfOccurrenceInfoType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfOccurrenceInfoType',
+ 'ArrayOfNonIndexableItemDetailsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfNonIndexableItemDetailsType',
+ 'NonEmptyArrayOfApplyConversationActionType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfApplyConversationActionType',
+ 'ArrayOfRuleOperationsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfRuleOperationsType',
+ 'ArrayOfPeopleType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfPeopleType',
+ 'ArrayOfDelegateUserType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfDelegateUserType',
+ 'ArrayOfBodyContentAttributedValuesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfBodyContentAttributedValuesType',
+ 'ArrayOfAppManifestsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfAppManifestsType',
+ 'NonEmptyArrayOfUploadItemsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfUploadItemsType',
+ 'ArrayOfConversationNodesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfConversationNodesType',
+ 'ArrayOfMailTipsResponseMessageType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfMailTipsResponseMessageType',
+ 'NonEmptyArrayOfRestrictedGroupIdentifiersType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfRestrictedGroupIdentifiersType',
+ 'ArrayOfEmailAddressesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfEmailAddressesType',
+ 'ArrayOfDelegateUserResponseMessageType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfDelegateUserResponseMessageType',
+ 'ArrayOfRealItemsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfRealItemsType',
+ 'NonEmptyArrayOfFolderNamesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfFolderNamesType',
+ 'ArrayOfFreeBusyResponse' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfFreeBusyResponse',
+ 'NonEmptyArrayOfItemChangesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfItemChangesType',
+ 'ArrayOfSearchItemKindsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfSearchItemKindsType',
+ 'NonEmptyArrayOfResponseObjectsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfResponseObjectsType',
+ 'ArrayOfAttachmentsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfAttachmentsType',
+ 'ArrayOfRulesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfRulesType',
+ 'ArrayOfCalendarEvent' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfCalendarEvent',
+ 'NonEmptyArrayOfRequestAttachmentIdsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfRequestAttachmentIdsType',
+ 'NonEmptyArrayOfAttachmentsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfAttachmentsType',
+ 'NonEmptyArrayOfBaseFolderIdsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfBaseFolderIdsType',
+ 'NonEmptyArrayOfPathsToElementType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfPathsToElementType',
+ 'ArrayOfTransitionsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfTransitionsType',
+ 'ArrayOfExtendedAttributesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfExtendedAttributesType',
+ 'NonEmptyArrayOfFolderChangeDescriptionsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfFolderChangeDescriptionsType',
+ 'ArrayOfConversationsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfConversationsType',
+ 'NonEmptyArrayOfClientAccessTokenRequestsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfClientAccessTokenRequestsType',
+ 'ArrayOfTransitionsGroupsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfTransitionsGroupsType',
+ 'ArrayOfNonIndexableItemStatisticsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfNonIndexableItemStatisticsType',
+ 'ArrayOfFoldersType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfFoldersType',
+ 'ArrayOfStringArrayAttributedValuesType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfStringArrayAttributedValuesType',
+ 'NonEmptyArrayOfSubscriptionIdsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfSubscriptionIdsType',
+ 'NonEmptyArrayOfItemIdsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\NonEmptyArrayOfItemIdsType',
+ 'ArrayOfKeywordStatisticsSearchResultsType' => '\\jamesiarmes\\PhpEws\\ArrayType\\ArrayOfKeywordStatisticsSearchResultsType',
+ // Map for Request classes.
+ 'EmptyFolderType' => '\\jamesiarmes\\PhpEws\\Request\\EmptyFolderType',
+ 'GetDelegateType' => '\\jamesiarmes\\PhpEws\\Request\\GetDelegateType',
+ 'CreateAttachmentType' => '\\jamesiarmes\\PhpEws\\Request\\CreateAttachmentType',
+ 'GetMessageTrackingReportRequestType' => '\\jamesiarmes\\PhpEws\\Request\\GetMessageTrackingReportRequestType',
+ 'DeleteItemType' => '\\jamesiarmes\\PhpEws\\Request\\DeleteItemType',
+ 'RemoveDelegateType' => '\\jamesiarmes\\PhpEws\\Request\\RemoveDelegateType',
+ 'AddImGroupType' => '\\jamesiarmes\\PhpEws\\Request\\AddImGroupType',
+ 'ResolveNamesType' => '\\jamesiarmes\\PhpEws\\Request\\ResolveNamesType',
+ 'GetInboxRulesRequestType' => '\\jamesiarmes\\PhpEws\\Request\\GetInboxRulesRequestType',
+ 'GetImItemListType' => '\\jamesiarmes\\PhpEws\\Request\\GetImItemListType',
+ 'SetUserOofSettingsRequest' => '\\jamesiarmes\\PhpEws\\Request\\SetUserOofSettingsRequest',
+ 'GetAppManifestsType' => '\\jamesiarmes\\PhpEws\\Request\\GetAppManifestsType',
+ 'FindPeopleType' => '\\jamesiarmes\\PhpEws\\Request\\FindPeopleType',
+ 'FindConversationType' => '\\jamesiarmes\\PhpEws\\Request\\FindConversationType',
+ 'FindMessageTrackingReportRequestType' => '\\jamesiarmes\\PhpEws\\Request\\FindMessageTrackingReportRequestType',
+ 'GetEventsType' => '\\jamesiarmes\\PhpEws\\Request\\GetEventsType',
+ 'PlayOnPhoneType' => '\\jamesiarmes\\PhpEws\\Request\\PlayOnPhoneType',
+ 'RemoveContactFromImListType' => '\\jamesiarmes\\PhpEws\\Request\\RemoveContactFromImListType',
+ 'GetPhoneCallInformationType' => '\\jamesiarmes\\PhpEws\\Request\\GetPhoneCallInformationType',
+ 'UpdateFolderType' => '\\jamesiarmes\\PhpEws\\Request\\UpdateFolderType',
+ 'GetClientAccessTokenType' => '\\jamesiarmes\\PhpEws\\Request\\GetClientAccessTokenType',
+ 'GetAppMarketplaceUrl' => '\\jamesiarmes\\PhpEws\\Request\\GetAppMarketplaceUrl',
+ 'ConvertIdType' => '\\jamesiarmes\\PhpEws\\Request\\ConvertIdType',
+ 'DisconnectPhoneCallType' => '\\jamesiarmes\\PhpEws\\Request\\DisconnectPhoneCallType',
+ 'GetAttachmentType' => '\\jamesiarmes\\PhpEws\\Request\\GetAttachmentType',
+ 'CreateUserConfigurationType' => '\\jamesiarmes\\PhpEws\\Request\\CreateUserConfigurationType',
+ 'DeleteUserConfigurationType' => '\\jamesiarmes\\PhpEws\\Request\\DeleteUserConfigurationType',
+ 'CreateItemType' => '\\jamesiarmes\\PhpEws\\Request\\CreateItemType',
+ 'FindItemType' => '\\jamesiarmes\\PhpEws\\Request\\FindItemType',
+ 'GetUserConfigurationType' => '\\jamesiarmes\\PhpEws\\Request\\GetUserConfigurationType',
+ 'GetUserAvailabilityRequestType' => '\\jamesiarmes\\PhpEws\\Request\\GetUserAvailabilityRequestType',
+ 'PerformReminderActionType' => '\\jamesiarmes\\PhpEws\\Request\\PerformReminderActionType',
+ 'GetRemindersType' => '\\jamesiarmes\\PhpEws\\Request\\GetRemindersType',
+ 'GetImItemsType' => '\\jamesiarmes\\PhpEws\\Request\\GetImItemsType',
+ 'SyncFolderItemsType' => '\\jamesiarmes\\PhpEws\\Request\\SyncFolderItemsType',
+ 'MoveItemType' => '\\jamesiarmes\\PhpEws\\Request\\MoveItemType',
+ 'DeleteAttachmentType' => '\\jamesiarmes\\PhpEws\\Request\\DeleteAttachmentType',
+ 'CopyFolderType' => '\\jamesiarmes\\PhpEws\\Request\\CopyFolderType',
+ 'RefreshSharingFolderType' => '\\jamesiarmes\\PhpEws\\Request\\RefreshSharingFolderType',
+ 'UninstallAppType' => '\\jamesiarmes\\PhpEws\\Request\\UninstallAppType',
+ 'GetSharingFolderType' => '\\jamesiarmes\\PhpEws\\Request\\GetSharingFolderType',
+ 'GetUserPhotoType' => '\\jamesiarmes\\PhpEws\\Request\\GetUserPhotoType',
+ 'ExpandDLType' => '\\jamesiarmes\\PhpEws\\Request\\ExpandDLType',
+ 'GetPasswordExpirationDateType' => '\\jamesiarmes\\PhpEws\\Request\\GetPasswordExpirationDateType',
+ 'RemoveImGroupType' => '\\jamesiarmes\\PhpEws\\Request\\RemoveImGroupType',
+ 'AddDistributionGroupToImListType' => '\\jamesiarmes\\PhpEws\\Request\\AddDistributionGroupToImListType',
+ 'RemoveImContactFromGroupType' => '\\jamesiarmes\\PhpEws\\Request\\RemoveImContactFromGroupType',
+ 'GetServerTimeZonesType' => '\\jamesiarmes\\PhpEws\\Request\\GetServerTimeZonesType',
+ 'FindMailboxStatisticsByKeywordsType' => '\\jamesiarmes\\PhpEws\\Request\\FindMailboxStatisticsByKeywordsType',
+ 'SubscribeType' => '\\jamesiarmes\\PhpEws\\Request\\SubscribeType',
+ 'SetImGroupType' => '\\jamesiarmes\\PhpEws\\Request\\SetImGroupType',
+ 'DisableAppType' => '\\jamesiarmes\\PhpEws\\Request\\DisableAppType',
+ 'BaseMoveCopyItemType' => '\\jamesiarmes\\PhpEws\\Request\\BaseMoveCopyItemType',
+ 'GetSharingMetadataType' => '\\jamesiarmes\\PhpEws\\Request\\GetSharingMetadataType',
+ 'GetHoldOnMailboxesType' => '\\jamesiarmes\\PhpEws\\Request\\GetHoldOnMailboxesType',
+ 'AddNewTelUriContactToGroupType' => '\\jamesiarmes\\PhpEws\\Request\\AddNewTelUriContactToGroupType',
+ 'GetUserRetentionPolicyTagsType' => '\\jamesiarmes\\PhpEws\\Request\\GetUserRetentionPolicyTagsType',
+ 'InstallAppType' => '\\jamesiarmes\\PhpEws\\Request\\InstallAppType',
+ 'SetHoldOnMailboxesType' => '\\jamesiarmes\\PhpEws\\Request\\SetHoldOnMailboxesType',
+ 'CreateManagedFolderRequestType' => '\\jamesiarmes\\PhpEws\\Request\\CreateManagedFolderRequestType',
+ 'DeleteFolderType' => '\\jamesiarmes\\PhpEws\\Request\\DeleteFolderType',
+ 'GetRoomsType' => '\\jamesiarmes\\PhpEws\\Request\\GetRoomsType',
+ 'UpdateUserConfigurationType' => '\\jamesiarmes\\PhpEws\\Request\\UpdateUserConfigurationType',
+ 'GetRoomListsType' => '\\jamesiarmes\\PhpEws\\Request\\GetRoomListsType',
+ 'BaseMoveCopyFolderType' => '\\jamesiarmes\\PhpEws\\Request\\BaseMoveCopyFolderType',
+ 'GetStreamingEventsType' => '\\jamesiarmes\\PhpEws\\Request\\GetStreamingEventsType',
+ 'AddDelegateType' => '\\jamesiarmes\\PhpEws\\Request\\AddDelegateType',
+ 'MoveFolderType' => '\\jamesiarmes\\PhpEws\\Request\\MoveFolderType',
+ 'GetSearchableMailboxesType' => '\\jamesiarmes\\PhpEws\\Request\\GetSearchableMailboxesType',
+ 'GetDiscoverySearchConfigurationType' => '\\jamesiarmes\\PhpEws\\Request\\GetDiscoverySearchConfigurationType',
+ 'FindFolderType' => '\\jamesiarmes\\PhpEws\\Request\\FindFolderType',
+ 'ArchiveItemType' => '\\jamesiarmes\\PhpEws\\Request\\ArchiveItemType',
+ 'GetNonIndexableItemDetailsType' => '\\jamesiarmes\\PhpEws\\Request\\GetNonIndexableItemDetailsType',
+ 'UnsubscribeType' => '\\jamesiarmes\\PhpEws\\Request\\UnsubscribeType',
+ 'BaseRequestType' => '\\jamesiarmes\\PhpEws\\Request\\BaseRequestType',
+ 'GetUserOofSettingsRequest' => '\\jamesiarmes\\PhpEws\\Request\\GetUserOofSettingsRequest',
+ 'SearchMailboxesType' => '\\jamesiarmes\\PhpEws\\Request\\SearchMailboxesType',
+ 'GetConversationItemsType' => '\\jamesiarmes\\PhpEws\\Request\\GetConversationItemsType',
+ 'GetPersonaType' => '\\jamesiarmes\\PhpEws\\Request\\GetPersonaType',
+ 'CreateFolderType' => '\\jamesiarmes\\PhpEws\\Request\\CreateFolderType',
+ 'GetMailTipsType' => '\\jamesiarmes\\PhpEws\\Request\\GetMailTipsType',
+ 'GetItemType' => '\\jamesiarmes\\PhpEws\\Request\\GetItemType',
+ 'ApplyConversationActionType' => '\\jamesiarmes\\PhpEws\\Request\\ApplyConversationActionType',
+ 'RemoveDistributionGroupFromImListType' => '\\jamesiarmes\\PhpEws\\Request\\RemoveDistributionGroupFromImListType',
+ 'SyncFolderHierarchyType' => '\\jamesiarmes\\PhpEws\\Request\\SyncFolderHierarchyType',
+ 'AddNewImContactToGroup' => '\\jamesiarmes\\PhpEws\\Request\\AddNewImContactToGroup',
+ 'ExportItemsType' => '\\jamesiarmes\\PhpEws\\Request\\ExportItemsType',
+ 'CreateFolderPathType' => '\\jamesiarmes\\PhpEws\\Request\\CreateFolderPathType',
+ 'GetFolderType' => '\\jamesiarmes\\PhpEws\\Request\\GetFolderType',
+ 'UploadItemsType' => '\\jamesiarmes\\PhpEws\\Request\\UploadItemsType',
+ 'UpdateInboxRulesRequestType' => '\\jamesiarmes\\PhpEws\\Request\\UpdateInboxRulesRequestType',
+ 'GetNonIndexableItemStatisticsType' => '\\jamesiarmes\\PhpEws\\Request\\GetNonIndexableItemStatisticsType',
+ 'UpdateDelegateType' => '\\jamesiarmes\\PhpEws\\Request\\UpdateDelegateType',
+ 'GetServiceConfigurationType' => '\\jamesiarmes\\PhpEws\\Request\\GetServiceConfigurationType',
+ 'AddImContactToGroup' => '\\jamesiarmes\\PhpEws\\Request\\AddImContactToGroup',
+ 'MarkAsJunkType' => '\\jamesiarmes\\PhpEws\\Request\\MarkAsJunkType',
+ 'UpdateItemType' => '\\jamesiarmes\\PhpEws\\Request\\UpdateItemType',
+ 'BaseDelegateType' => '\\jamesiarmes\\PhpEws\\Request\\BaseDelegateType',
+ 'MarkAllItemsAsRead' => '\\jamesiarmes\\PhpEws\\Request\\MarkAllItemsAsRead',
+ 'CopyItemType' => '\\jamesiarmes\\PhpEws\\Request\\CopyItemType',
+ 'SendItemType' => '\\jamesiarmes\\PhpEws\\Request\\SendItemType',
+ // Map for Response classes.
+ 'GetRoomsResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetRoomsResponseMessageType',
+ 'SetUserOofSettingsResponse' => '\\jamesiarmes\\PhpEws\\Response\\SetUserOofSettingsResponse',
+ 'GetUserConfigurationResponseType' => '\\jamesiarmes\\PhpEws\\Response\\GetUserConfigurationResponseType',
+ 'UnsubscribeResponseType' => '\\jamesiarmes\\PhpEws\\Response\\UnsubscribeResponseType',
+ 'GetPhoneCallInformationResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetPhoneCallInformationResponseMessageType',
+ 'FindMessageTrackingReportResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\FindMessageTrackingReportResponseMessageType',
+ 'ServiceConfigurationResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\ServiceConfigurationResponseMessageType',
+ 'GetSharingMetadataResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetSharingMetadataResponseMessageType',
+ 'GetFolderResponseType' => '\\jamesiarmes\\PhpEws\\Response\\GetFolderResponseType',
+ 'MarkAllItemsAsReadResponseType' => '\\jamesiarmes\\PhpEws\\Response\\MarkAllItemsAsReadResponseType',
+ 'UpdateItemResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\UpdateItemResponseMessageType',
+ 'SubscribeResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\SubscribeResponseMessageType',
+ 'GetImItemsResponse' => '\\jamesiarmes\\PhpEws\\Response\\GetImItemsResponse',
+ 'ItemInfoResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\ItemInfoResponseMessageType',
+ 'UploadItemsResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\UploadItemsResponseMessageType',
+ 'GetRemindersResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetRemindersResponseMessageType',
+ 'AddNewTelUriContactToGroupResponse' => '\\jamesiarmes\\PhpEws\\Response\\AddNewTelUriContactToGroupResponse',
+ 'UpdateFolderResponseType' => '\\jamesiarmes\\PhpEws\\Response\\UpdateFolderResponseType',
+ 'GetRoomListsResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetRoomListsResponseMessageType',
+ 'ApplyConversationActionResponseType' => '\\jamesiarmes\\PhpEws\\Response\\ApplyConversationActionResponseType',
+ 'CreateFolderResponseType' => '\\jamesiarmes\\PhpEws\\Response\\CreateFolderResponseType',
+ 'GetClientAccessTokenResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetClientAccessTokenResponseMessageType',
+ 'GetHoldOnMailboxesResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetHoldOnMailboxesResponseMessageType',
+ 'SetImGroupResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\SetImGroupResponseMessageType',
+ 'MailTipsResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\MailTipsResponseMessageType',
+ 'UninstallAppResponseType' => '\\jamesiarmes\\PhpEws\\Response\\UninstallAppResponseType',
+ 'SendNotificationResponseType' => '\\jamesiarmes\\PhpEws\\Response\\SendNotificationResponseType',
+ 'DisconnectPhoneCallResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\DisconnectPhoneCallResponseMessageType',
+ 'DeleteAttachmentResponseType' => '\\jamesiarmes\\PhpEws\\Response\\DeleteAttachmentResponseType',
+ 'UploadItemsResponseType' => '\\jamesiarmes\\PhpEws\\Response\\UploadItemsResponseType',
+ 'PlayOnPhoneResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\PlayOnPhoneResponseMessageType',
+ 'GetPersonaResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetPersonaResponseMessageType',
+ 'GetConversationItemsResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetConversationItemsResponseMessageType',
+ 'FindMailboxStatisticsByKeywordsResponseType' => '\\jamesiarmes\\PhpEws\\Response\\FindMailboxStatisticsByKeywordsResponseType',
+ 'SyncFolderHierarchyResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\SyncFolderHierarchyResponseMessageType',
+ 'AddImContactToGroupResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\AddImContactToGroupResponseMessageType',
+ 'ResolveNamesResponseType' => '\\jamesiarmes\\PhpEws\\Response\\ResolveNamesResponseType',
+ 'MarkAsJunkResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\MarkAsJunkResponseMessageType',
+ 'GetConversationItemsResponseType' => '\\jamesiarmes\\PhpEws\\Response\\GetConversationItemsResponseType',
+ 'MoveFolderResponseType' => '\\jamesiarmes\\PhpEws\\Response\\MoveFolderResponseType',
+ 'AddImGroupResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\AddImGroupResponseMessageType',
+ 'ArchiveItemResponse' => '\\jamesiarmes\\PhpEws\\Response\\ArchiveItemResponse',
+ 'GetPasswordExpirationDateResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetPasswordExpirationDateResponseMessageType',
+ 'RemoveImContactFromGroupResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\RemoveImContactFromGroupResponseMessageType',
+ 'FindFolderResponseType' => '\\jamesiarmes\\PhpEws\\Response\\FindFolderResponseType',
+ 'GetServerTimeZonesResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetServerTimeZonesResponseMessageType',
+ 'RemoveContactFromImListResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\RemoveContactFromImListResponseMessageType',
+ 'ResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\ResponseMessageType',
+ 'UpdateInboxRulesResponseType' => '\\jamesiarmes\\PhpEws\\Response\\UpdateInboxRulesResponseType',
+ 'UpdateUserConfigurationResponseType' => '\\jamesiarmes\\PhpEws\\Response\\UpdateUserConfigurationResponseType',
+ 'GetServiceConfigurationResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetServiceConfigurationResponseMessageType',
+ 'CreateUserConfigurationResponseType' => '\\jamesiarmes\\PhpEws\\Response\\CreateUserConfigurationResponseType',
+ 'SearchMailboxesResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\SearchMailboxesResponseMessageType',
+ 'FindMailboxStatisticsByKeywordsResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\FindMailboxStatisticsByKeywordsResponseMessageType',
+ 'GetUserOofSettingsResponse' => '\\jamesiarmes\\PhpEws\\Response\\GetUserOofSettingsResponse',
+ 'GetItemResponseType' => '\\jamesiarmes\\PhpEws\\Response\\GetItemResponseType',
+ 'SyncFolderItemsResponseType' => '\\jamesiarmes\\PhpEws\\Response\\SyncFolderItemsResponseType',
+ 'RemoveDelegateResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\RemoveDelegateResponseMessageType',
+ 'GetInboxRulesResponseType' => '\\jamesiarmes\\PhpEws\\Response\\GetInboxRulesResponseType',
+ 'DeleteFolderResponseType' => '\\jamesiarmes\\PhpEws\\Response\\DeleteFolderResponseType',
+ 'AddDistributionGroupToImListResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\AddDistributionGroupToImListResponseMessageType',
+ 'BaseResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\BaseResponseMessageType',
+ 'CopyItemResponseType' => '\\jamesiarmes\\PhpEws\\Response\\CopyItemResponseType',
+ 'SetHoldOnMailboxesResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\SetHoldOnMailboxesResponseMessageType',
+ 'GetNonIndexableItemStatisticsResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetNonIndexableItemStatisticsResponseMessageType',
+ 'DisableAppResponseType' => '\\jamesiarmes\\PhpEws\\Response\\DisableAppResponseType',
+ 'RefreshSharingFolderResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\RefreshSharingFolderResponseMessageType',
+ 'FindConversationResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\FindConversationResponseMessageType',
+ 'SendItemResponseType' => '\\jamesiarmes\\PhpEws\\Response\\SendItemResponseType',
+ 'RemoveDistributionGroupFromImListResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\RemoveDistributionGroupFromImListResponseMessageType',
+ 'GetDiscoverySearchConfigurationResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetDiscoverySearchConfigurationResponseMessageType',
+ 'GetEventsResponseType' => '\\jamesiarmes\\PhpEws\\Response\\GetEventsResponseType',
+ 'ConvertIdResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\ConvertIdResponseMessageType',
+ 'FindPeopleResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\FindPeopleResponseMessageType',
+ 'FindItemResponseType' => '\\jamesiarmes\\PhpEws\\Response\\FindItemResponseType',
+ 'GetAppManifestsResponseType' => '\\jamesiarmes\\PhpEws\\Response\\GetAppManifestsResponseType',
+ 'CreateAttachmentResponseType' => '\\jamesiarmes\\PhpEws\\Response\\CreateAttachmentResponseType',
+ 'PerformReminderActionResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\PerformReminderActionResponseMessageType',
+ 'SendNotificationResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\SendNotificationResponseMessageType',
+ 'FindItemResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\FindItemResponseMessageType',
+ 'GetAttachmentResponseType' => '\\jamesiarmes\\PhpEws\\Response\\GetAttachmentResponseType',
+ 'ExportItemsResponseType' => '\\jamesiarmes\\PhpEws\\Response\\ExportItemsResponseType',
+ 'BaseDelegateResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\BaseDelegateResponseMessageType',
+ 'GetStreamingEventsResponseType' => '\\jamesiarmes\\PhpEws\\Response\\GetStreamingEventsResponseType',
+ 'GetStreamingEventsResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetStreamingEventsResponseMessageType',
+ 'MoveItemResponseType' => '\\jamesiarmes\\PhpEws\\Response\\MoveItemResponseType',
+ 'GetUserRetentionPolicyTagsResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetUserRetentionPolicyTagsResponseMessageType',
+ 'SyncFolderItemsResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\SyncFolderItemsResponseMessageType',
+ 'DeleteItemResponseType' => '\\jamesiarmes\\PhpEws\\Response\\DeleteItemResponseType',
+ 'ConvertIdResponseType' => '\\jamesiarmes\\PhpEws\\Response\\ConvertIdResponseType',
+ 'ExpandDLResponseType' => '\\jamesiarmes\\PhpEws\\Response\\ExpandDLResponseType',
+ 'ExpandDLResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\ExpandDLResponseMessageType',
+ 'GetDelegateResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetDelegateResponseMessageType',
+ 'GetClientAccessTokenResponseType' => '\\jamesiarmes\\PhpEws\\Response\\GetClientAccessTokenResponseType',
+ 'MarkAsJunkResponseType' => '\\jamesiarmes\\PhpEws\\Response\\MarkAsJunkResponseType',
+ 'CreateManagedFolderResponseType' => '\\jamesiarmes\\PhpEws\\Response\\CreateManagedFolderResponseType',
+ 'InstallAppResponseType' => '\\jamesiarmes\\PhpEws\\Response\\InstallAppResponseType',
+ 'FolderInfoResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\FolderInfoResponseMessageType',
+ 'GetMessageTrackingReportResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetMessageTrackingReportResponseMessageType',
+ 'AttachmentInfoResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\AttachmentInfoResponseMessageType',
+ 'SubscribeResponseType' => '\\jamesiarmes\\PhpEws\\Response\\SubscribeResponseType',
+ 'GetSharingFolderResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetSharingFolderResponseMessageType',
+ 'DelegateUserResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\DelegateUserResponseMessageType',
+ 'UpdateItemResponseType' => '\\jamesiarmes\\PhpEws\\Response\\UpdateItemResponseType',
+ 'CreateFolderPathResponseType' => '\\jamesiarmes\\PhpEws\\Response\\CreateFolderPathResponseType',
+ 'AddNewImContactToGroupResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\AddNewImContactToGroupResponseMessageType',
+ 'GetServerTimeZonesResponseType' => '\\jamesiarmes\\PhpEws\\Response\\GetServerTimeZonesResponseType',
+ 'ExportItemsResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\ExportItemsResponseMessageType',
+ 'GetMailTipsResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetMailTipsResponseMessageType',
+ 'GetUserConfigurationResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetUserConfigurationResponseMessageType',
+ 'GetUserPhotoResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetUserPhotoResponseMessageType',
+ 'RemoveImGroupResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\RemoveImGroupResponseMessageType',
+ 'SearchMailboxesResponseType' => '\\jamesiarmes\\PhpEws\\Response\\SearchMailboxesResponseType',
+ 'ResolveNamesResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\ResolveNamesResponseMessageType',
+ 'DeleteUserConfigurationResponseType' => '\\jamesiarmes\\PhpEws\\Response\\DeleteUserConfigurationResponseType',
+ 'GetUserPhotoResponseType' => '\\jamesiarmes\\PhpEws\\Response\\GetUserPhotoResponseType',
+ 'SyncFolderHierarchyResponseType' => '\\jamesiarmes\\PhpEws\\Response\\SyncFolderHierarchyResponseType',
+ 'GetUserAvailabilityResponseType' => '\\jamesiarmes\\PhpEws\\Response\\GetUserAvailabilityResponseType',
+ 'EmptyFolderResponseType' => '\\jamesiarmes\\PhpEws\\Response\\EmptyFolderResponseType',
+ 'FindFolderResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\FindFolderResponseMessageType',
+ 'DeleteAttachmentResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\DeleteAttachmentResponseMessageType',
+ 'GetAppMarketplaceUrlResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetAppMarketplaceUrlResponseMessageType',
+ 'CopyFolderResponseType' => '\\jamesiarmes\\PhpEws\\Response\\CopyFolderResponseType',
+ 'UpdateDelegateResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\UpdateDelegateResponseMessageType',
+ 'CreateItemResponseType' => '\\jamesiarmes\\PhpEws\\Response\\CreateItemResponseType',
+ 'ApplyConversationActionResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\ApplyConversationActionResponseMessageType',
+ 'GetEventsResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetEventsResponseMessageType',
+ 'AddDelegateResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\AddDelegateResponseMessageType',
+ 'GetImItemListResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetImItemListResponseMessageType',
+ 'GetSearchableMailboxesResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetSearchableMailboxesResponseMessageType',
+ 'GetNonIndexableItemDetailsResponseMessageType' => '\\jamesiarmes\\PhpEws\\Response\\GetNonIndexableItemDetailsResponseMessageType',
+ // Map for Type classes.
+ 'ExcludesType' => '\\jamesiarmes\\PhpEws\\Type\\ExcludesType',
+ 'IsNotEqualToType' => '\\jamesiarmes\\PhpEws\\Type\\IsNotEqualToType',
+ 'MessageTrackingReportType' => '\\jamesiarmes\\PhpEws\\Type\\MessageTrackingReportType',
+ 'PhysicalAddressDictionaryType' => '\\jamesiarmes\\PhpEws\\Type\\PhysicalAddressDictionaryType',
+ 'IntervalRecurrencePatternBaseType' => '\\jamesiarmes\\PhpEws\\Type\\IntervalRecurrencePatternBaseType',
+ 'BaseEmailAddressType' => '\\jamesiarmes\\PhpEws\\Type\\BaseEmailAddressType',
+ 'FindMessageTrackingSearchResultType' => '\\jamesiarmes\\PhpEws\\Type\\FindMessageTrackingSearchResultType',
+ 'ProtectionRuleSenderDepartmentsType' => '\\jamesiarmes\\PhpEws\\Type\\ProtectionRuleSenderDepartmentsType',
+ 'SeekToConditionPageViewType' => '\\jamesiarmes\\PhpEws\\Type\\SeekToConditionPageViewType',
+ 'SmtpDomain' => '\\jamesiarmes\\PhpEws\\Type\\SmtpDomain',
+ 'EmailAddressDictionaryType' => '\\jamesiarmes\\PhpEws\\Type\\EmailAddressDictionaryType',
+ 'ItemAttachmentType' => '\\jamesiarmes\\PhpEws\\Type\\ItemAttachmentType',
+ 'MovedCopiedEventType' => '\\jamesiarmes\\PhpEws\\Type\\MovedCopiedEventType',
+ 'FindFolderParentType' => '\\jamesiarmes\\PhpEws\\Type\\FindFolderParentType',
+ 'FileAttachmentType' => '\\jamesiarmes\\PhpEws\\Type\\FileAttachmentType',
+ 'ItemChangeType' => '\\jamesiarmes\\PhpEws\\Type\\ItemChangeType',
+ 'CreateRuleOperationType' => '\\jamesiarmes\\PhpEws\\Type\\CreateRuleOperationType',
+ 'StringAttributedValueType' => '\\jamesiarmes\\PhpEws\\Type\\StringAttributedValueType',
+ 'ContactsFolderType' => '\\jamesiarmes\\PhpEws\\Type\\ContactsFolderType',
+ 'BaseGroupByType' => '\\jamesiarmes\\PhpEws\\Type\\BaseGroupByType',
+ 'ConversationShape' => '\\jamesiarmes\\PhpEws\\Type\\ConversationShape',
+ 'ReminderType' => '\\jamesiarmes\\PhpEws\\Type\\ReminderType',
+ 'ContactItemType' => '\\jamesiarmes\\PhpEws\\Type\\ContactItemType',
+ 'OccurrenceInfoType' => '\\jamesiarmes\\PhpEws\\Type\\OccurrenceInfoType',
+ 'TargetFolderIdType' => '\\jamesiarmes\\PhpEws\\Type\\TargetFolderIdType',
+ 'BaseFolderType' => '\\jamesiarmes\\PhpEws\\Type\\BaseFolderType',
+ 'DailyRegeneratingPatternType' => '\\jamesiarmes\\PhpEws\\Type\\DailyRegeneratingPatternType',
+ 'RulePredicateSizeRangeType' => '\\jamesiarmes\\PhpEws\\Type\\RulePredicateSizeRangeType',
+ 'AttachmentType' => '\\jamesiarmes\\PhpEws\\Type\\AttachmentType',
+ 'SearchParametersType' => '\\jamesiarmes\\PhpEws\\Type\\SearchParametersType',
+ 'MailboxData' => '\\jamesiarmes\\PhpEws\\Type\\MailboxData',
+ 'ImAddressDictionaryType' => '\\jamesiarmes\\PhpEws\\Type\\ImAddressDictionaryType',
+ 'PreviewItemMailboxType' => '\\jamesiarmes\\PhpEws\\Type\\PreviewItemMailboxType',
+ 'PathToIndexedFieldType' => '\\jamesiarmes\\PhpEws\\Type\\PathToIndexedFieldType',
+ 'AlternatePublicFolderItemIdType' => '\\jamesiarmes\\PhpEws\\Type\\AlternatePublicFolderItemIdType',
+ 'AttendeeConflictData' => '\\jamesiarmes\\PhpEws\\Type\\AttendeeConflictData',
+ 'CalendarFolderType' => '\\jamesiarmes\\PhpEws\\Type\\CalendarFolderType',
+ 'RecurrenceType' => '\\jamesiarmes\\PhpEws\\Type\\RecurrenceType',
+ 'UserConfigurationDictionaryEntryType' => '\\jamesiarmes\\PhpEws\\Type\\UserConfigurationDictionaryEntryType',
+ 'ItemType' => '\\jamesiarmes\\PhpEws\\Type\\ItemType',
+ 'TimeZoneDefinitionType' => '\\jamesiarmes\\PhpEws\\Type\\TimeZoneDefinitionType',
+ 'SingleRecipientType' => '\\jamesiarmes\\PhpEws\\Type\\SingleRecipientType',
+ 'NonIndexableItemStatisticType' => '\\jamesiarmes\\PhpEws\\Type\\NonIndexableItemStatisticType',
+ 'IsGreaterThanOrEqualToType' => '\\jamesiarmes\\PhpEws\\Type\\IsGreaterThanOrEqualToType',
+ 'BaseItemIdType' => '\\jamesiarmes\\PhpEws\\Type\\BaseItemIdType',
+ 'IndexedPageViewType' => '\\jamesiarmes\\PhpEws\\Type\\IndexedPageViewType',
+ 'WeeklyRecurrencePatternType' => '\\jamesiarmes\\PhpEws\\Type\\WeeklyRecurrencePatternType',
+ 'ServiceConfiguration' => '\\jamesiarmes\\PhpEws\\Type\\ServiceConfiguration',
+ 'CompleteNameType' => '\\jamesiarmes\\PhpEws\\Type\\CompleteNameType',
+ 'MailboxHoldResultType' => '\\jamesiarmes\\PhpEws\\Type\\MailboxHoldResultType',
+ 'IsLessThanType' => '\\jamesiarmes\\PhpEws\\Type\\IsLessThanType',
+ 'Suggestion' => '\\jamesiarmes\\PhpEws\\Type\\Suggestion',
+ 'SidAndAttributesType' => '\\jamesiarmes\\PhpEws\\Type\\SidAndAttributesType',
+ 'ImAddressDictionaryEntryType' => '\\jamesiarmes\\PhpEws\\Type\\ImAddressDictionaryEntryType',
+ 'RecurringDateTransitionType' => '\\jamesiarmes\\PhpEws\\Type\\RecurringDateTransitionType',
+ 'MailTipsServiceConfiguration' => '\\jamesiarmes\\PhpEws\\Type\\MailTipsServiceConfiguration',
+ 'UserConfigurationDictionaryType' => '\\jamesiarmes\\PhpEws\\Type\\UserConfigurationDictionaryType',
+ 'AttendeeType' => '\\jamesiarmes\\PhpEws\\Type\\AttendeeType',
+ 'ReplyToItemType' => '\\jamesiarmes\\PhpEws\\Type\\ReplyToItemType',
+ 'KeywordStatisticsSearchResultType' => '\\jamesiarmes\\PhpEws\\Type\\KeywordStatisticsSearchResultType',
+ 'AlternatePublicFolderIdType' => '\\jamesiarmes\\PhpEws\\Type\\AlternatePublicFolderIdType',
+ 'TimeZoneContextType' => '\\jamesiarmes\\PhpEws\\Type\\TimeZoneContextType',
+ 'BaseFolderIdType' => '\\jamesiarmes\\PhpEws\\Type\\BaseFolderIdType',
+ 'TaskType' => '\\jamesiarmes\\PhpEws\\Type\\TaskType',
+ 'ContextPropertyType' => '\\jamesiarmes\\PhpEws\\Type\\ContextPropertyType',
+ 'PersonaAttributionType' => '\\jamesiarmes\\PhpEws\\Type\\PersonaAttributionType',
+ 'TentativelyAcceptItemType' => '\\jamesiarmes\\PhpEws\\Type\\TentativelyAcceptItemType',
+ 'AcceptSharingInvitationType' => '\\jamesiarmes\\PhpEws\\Type\\AcceptSharingInvitationType',
+ 'ConversationResponseType' => '\\jamesiarmes\\PhpEws\\Type\\ConversationResponseType',
+ 'ResolutionType' => '\\jamesiarmes\\PhpEws\\Type\\ResolutionType',
+ 'PeriodType' => '\\jamesiarmes\\PhpEws\\Type\\PeriodType',
+ 'WorkingHours' => '\\jamesiarmes\\PhpEws\\Type\\WorkingHours',
+ 'SetItemFieldType' => '\\jamesiarmes\\PhpEws\\Type\\SetItemFieldType',
+ 'ConflictResultsType' => '\\jamesiarmes\\PhpEws\\Type\\ConflictResultsType',
+ 'PreviewItemResponseShapeType' => '\\jamesiarmes\\PhpEws\\Type\\PreviewItemResponseShapeType',
+ 'AppendToItemFieldType' => '\\jamesiarmes\\PhpEws\\Type\\AppendToItemFieldType',
+ 'RuleActionsType' => '\\jamesiarmes\\PhpEws\\Type\\RuleActionsType',
+ 'FieldURIOrConstantType' => '\\jamesiarmes\\PhpEws\\Type\\FieldURIOrConstantType',
+ 'IndividualAttendeeConflictData' => '\\jamesiarmes\\PhpEws\\Type\\IndividualAttendeeConflictData',
+ 'ConversationActionType' => '\\jamesiarmes\\PhpEws\\Type\\ConversationActionType',
+ 'UserConfigurationType' => '\\jamesiarmes\\PhpEws\\Type\\UserConfigurationType',
+ 'RecurringDayTransitionType' => '\\jamesiarmes\\PhpEws\\Type\\RecurringDayTransitionType',
+ 'FolderChangeType' => '\\jamesiarmes\\PhpEws\\Type\\FolderChangeType',
+ 'RuleOperationType' => '\\jamesiarmes\\PhpEws\\Type\\RuleOperationType',
+ 'DeleteRuleOperationType' => '\\jamesiarmes\\PhpEws\\Type\\DeleteRuleOperationType',
+ 'ConversationNodeType' => '\\jamesiarmes\\PhpEws\\Type\\ConversationNodeType',
+ 'PathToUnindexedFieldType' => '\\jamesiarmes\\PhpEws\\Type\\PathToUnindexedFieldType',
+ 'SearchPreviewItemType' => '\\jamesiarmes\\PhpEws\\Type\\SearchPreviewItemType',
+ 'EncryptedSharedFolderDataType' => '\\jamesiarmes\\PhpEws\\Type\\EncryptedSharedFolderDataType',
+ 'SerializableTimeZoneTime' => '\\jamesiarmes\\PhpEws\\Type\\SerializableTimeZoneTime',
+ 'BodyContentAttributedValueType' => '\\jamesiarmes\\PhpEws\\Type\\BodyContentAttributedValueType',
+ 'UserConfigurationDictionaryObjectType' => '\\jamesiarmes\\PhpEws\\Type\\UserConfigurationDictionaryObjectType',
+ 'AttachmentResponseShapeType' => '\\jamesiarmes\\PhpEws\\Type\\AttachmentResponseShapeType',
+ 'ItemResponseShapeType' => '\\jamesiarmes\\PhpEws\\Type\\ItemResponseShapeType',
+ 'SearchMailboxesResultType' => '\\jamesiarmes\\PhpEws\\Type\\SearchMailboxesResultType',
+ 'PersonaResponseShapeType' => '\\jamesiarmes\\PhpEws\\Type\\PersonaResponseShapeType',
+ 'TwoOperandExpressionType' => '\\jamesiarmes\\PhpEws\\Type\\TwoOperandExpressionType',
+ 'TaskRecurrenceType' => '\\jamesiarmes\\PhpEws\\Type\\TaskRecurrenceType',
+ 'MessageType' => '\\jamesiarmes\\PhpEws\\Type\\MessageType',
+ 'PostItemType' => '\\jamesiarmes\\PhpEws\\Type\\PostItemType',
+ 'DeclineItemType' => '\\jamesiarmes\\PhpEws\\Type\\DeclineItemType',
+ 'NonIndexableItemDetailResultType' => '\\jamesiarmes\\PhpEws\\Type\\NonIndexableItemDetailResultType',
+ 'ReminderItemActionType' => '\\jamesiarmes\\PhpEws\\Type\\ReminderItemActionType',
+ 'SyncFolderItemsChangesType' => '\\jamesiarmes\\PhpEws\\Type\\SyncFolderItemsChangesType',
+ 'OutOfOfficeMailTip' => '\\jamesiarmes\\PhpEws\\Type\\OutOfOfficeMailTip',
+ 'ConnectingSIDType' => '\\jamesiarmes\\PhpEws\\Type\\ConnectingSIDType',
+ 'MailboxHoldStatusType' => '\\jamesiarmes\\PhpEws\\Type\\MailboxHoldStatusType',
+ 'RootItemIdType' => '\\jamesiarmes\\PhpEws\\Type\\RootItemIdType',
+ 'SerializableTimeZone' => '\\jamesiarmes\\PhpEws\\Type\\SerializableTimeZone',
+ 'PersonaType' => '\\jamesiarmes\\PhpEws\\Type\\PersonaType',
+ 'ReplyAllToItemType' => '\\jamesiarmes\\PhpEws\\Type\\ReplyAllToItemType',
+ 'InternetHeaderType' => '\\jamesiarmes\\PhpEws\\Type\\InternetHeaderType',
+ 'ModifiedEventType' => '\\jamesiarmes\\PhpEws\\Type\\ModifiedEventType',
+ 'GroupAttendeeConflictData' => '\\jamesiarmes\\PhpEws\\Type\\GroupAttendeeConflictData',
+ 'EffectiveRightsType' => '\\jamesiarmes\\PhpEws\\Type\\EffectiveRightsType',
+ 'WellKnownResponseObjectType' => '\\jamesiarmes\\PhpEws\\Type\\WellKnownResponseObjectType',
+ 'SyncFolderItemsReadFlagType' => '\\jamesiarmes\\PhpEws\\Type\\SyncFolderItemsReadFlagType',
+ 'DeleteItemFieldType' => '\\jamesiarmes\\PhpEws\\Type\\DeleteItemFieldType',
+ 'BodyContentType' => '\\jamesiarmes\\PhpEws\\Type\\BodyContentType',
+ 'InstalledAppType' => '\\jamesiarmes\\PhpEws\\Type\\InstalledAppType',
+ 'ProposeNewTimeType' => '\\jamesiarmes\\PhpEws\\Type\\ProposeNewTimeType',
+ 'PhoneNumberDictionaryType' => '\\jamesiarmes\\PhpEws\\Type\\PhoneNumberDictionaryType',
+ 'TooBigGroupAttendeeConflictData' => '\\jamesiarmes\\PhpEws\\Type\\TooBigGroupAttendeeConflictData',
+ 'SuggestionsViewOptionsType' => '\\jamesiarmes\\PhpEws\\Type\\SuggestionsViewOptionsType',
+ 'PermissionSetType' => '\\jamesiarmes\\PhpEws\\Type\\PermissionSetType',
+ 'CalendarEvent' => '\\jamesiarmes\\PhpEws\\Type\\CalendarEvent',
+ 'ExistsType' => '\\jamesiarmes\\PhpEws\\Type\\ExistsType',
+ 'ProtectionRuleArgumentType' => '\\jamesiarmes\\PhpEws\\Type\\ProtectionRuleArgumentType',
+ 'ChangeDescriptionType' => '\\jamesiarmes\\PhpEws\\Type\\ChangeDescriptionType',
+ 'FolderIdType' => '\\jamesiarmes\\PhpEws\\Type\\FolderIdType',
+ 'DeletedOccurrenceInfoType' => '\\jamesiarmes\\PhpEws\\Type\\DeletedOccurrenceInfoType',
+ 'SuggestionDayResult' => '\\jamesiarmes\\PhpEws\\Type\\SuggestionDayResult',
+ 'GroupByType' => '\\jamesiarmes\\PhpEws\\Type\\GroupByType',
+ 'UnifiedMessageServiceConfiguration' => '\\jamesiarmes\\PhpEws\\Type\\UnifiedMessageServiceConfiguration',
+ 'ContactsViewType' => '\\jamesiarmes\\PhpEws\\Type\\ContactsViewType',
+ 'RulePredicatesType' => '\\jamesiarmes\\PhpEws\\Type\\RulePredicatesType',
+ 'TrackingPropertyType' => '\\jamesiarmes\\PhpEws\\Type\\TrackingPropertyType',
+ 'ClientAccessTokenType' => '\\jamesiarmes\\PhpEws\\Type\\ClientAccessTokenType',
+ 'MeetingResponseMessageType' => '\\jamesiarmes\\PhpEws\\Type\\MeetingResponseMessageType',
+ 'BaseNotificationEventType' => '\\jamesiarmes\\PhpEws\\Type\\BaseNotificationEventType',
+ 'UserOofSettings' => '\\jamesiarmes\\PhpEws\\Type\\UserOofSettings',
+ 'PhoneCallInformationType' => '\\jamesiarmes\\PhpEws\\Type\\PhoneCallInformationType',
+ 'RemoveItemType' => '\\jamesiarmes\\PhpEws\\Type\\RemoveItemType',
+ 'RuleType' => '\\jamesiarmes\\PhpEws\\Type\\RuleType',
+ 'SyncFolderHierarchyDeleteType' => '\\jamesiarmes\\PhpEws\\Type\\SyncFolderHierarchyDeleteType',
+ 'ResponseObjectType' => '\\jamesiarmes\\PhpEws\\Type\\ResponseObjectType',
+ 'DistinguishedGroupByType' => '\\jamesiarmes\\PhpEws\\Type\\DistinguishedGroupByType',
+ 'SyncFolderHierarchyCreateOrUpdateType' => '\\jamesiarmes\\PhpEws\\Type\\SyncFolderHierarchyCreateOrUpdateType',
+ 'CalendarPermissionSetType' => '\\jamesiarmes\\PhpEws\\Type\\CalendarPermissionSetType',
+ 'RuleValidationErrorType' => '\\jamesiarmes\\PhpEws\\Type\\RuleValidationErrorType',
+ 'MailboxQueryType' => '\\jamesiarmes\\PhpEws\\Type\\MailboxQueryType',
+ 'UploadItemType' => '\\jamesiarmes\\PhpEws\\Type\\UploadItemType',
+ 'BodyType' => '\\jamesiarmes\\PhpEws\\Type\\BodyType',
+ 'SyncFolderItemsDeleteType' => '\\jamesiarmes\\PhpEws\\Type\\SyncFolderItemsDeleteType',
+ 'BasePermissionType' => '\\jamesiarmes\\PhpEws\\Type\\BasePermissionType',
+ 'WeeklyRegeneratingPatternType' => '\\jamesiarmes\\PhpEws\\Type\\WeeklyRegeneratingPatternType',
+ 'MeetingMessageType' => '\\jamesiarmes\\PhpEws\\Type\\MeetingMessageType',
+ 'PathToExtendedFieldType' => '\\jamesiarmes\\PhpEws\\Type\\PathToExtendedFieldType',
+ 'SearchableMailboxType' => '\\jamesiarmes\\PhpEws\\Type\\SearchableMailboxType',
+ 'AttachmentIdType' => '\\jamesiarmes\\PhpEws\\Type\\AttachmentIdType',
+ 'ExtendedAttributeType' => '\\jamesiarmes\\PhpEws\\Type\\ExtendedAttributeType',
+ 'ForwardItemType' => '\\jamesiarmes\\PhpEws\\Type\\ForwardItemType',
+ 'RecipientTrackingEventType' => '\\jamesiarmes\\PhpEws\\Type\\RecipientTrackingEventType',
+ 'ResponseObjectCoreType' => '\\jamesiarmes\\PhpEws\\Type\\ResponseObjectCoreType',
+ 'ImGroupType' => '\\jamesiarmes\\PhpEws\\Type\\ImGroupType',
+ 'ExcludesValueType' => '\\jamesiarmes\\PhpEws\\Type\\ExcludesValueType',
+ 'SmtpDomainList' => '\\jamesiarmes\\PhpEws\\Type\\SmtpDomainList',
+ 'UserIdType' => '\\jamesiarmes\\PhpEws\\Type\\UserIdType',
+ 'ProtectionRuleConditionType' => '\\jamesiarmes\\PhpEws\\Type\\ProtectionRuleConditionType',
+ 'ReferenceItemResponseType' => '\\jamesiarmes\\PhpEws\\Type\\ReferenceItemResponseType',
+ 'RecurrencePatternBaseType' => '\\jamesiarmes\\PhpEws\\Type\\RecurrencePatternBaseType',
+ 'FolderResponseShapeType' => '\\jamesiarmes\\PhpEws\\Type\\FolderResponseShapeType',
+ 'NonIndexableItemDetailType' => '\\jamesiarmes\\PhpEws\\Type\\NonIndexableItemDetailType',
+ 'ManagedFolderInformationType' => '\\jamesiarmes\\PhpEws\\Type\\ManagedFolderInformationType',
+ 'OpenAsAdminOrSystemServiceType' => '\\jamesiarmes\\PhpEws\\Type\\OpenAsAdminOrSystemServiceType',
+ 'Duration' => '\\jamesiarmes\\PhpEws\\Type\\Duration',
+ 'RelativeYearlyRecurrencePatternType' => '\\jamesiarmes\\PhpEws\\Type\\RelativeYearlyRecurrencePatternType',
+ 'BasePagingType' => '\\jamesiarmes\\PhpEws\\Type\\BasePagingType',
+ 'TimeChangeType' => '\\jamesiarmes\\PhpEws\\Type\\TimeChangeType',
+ 'RestrictionType' => '\\jamesiarmes\\PhpEws\\Type\\RestrictionType',
+ 'SearchFolderType' => '\\jamesiarmes\\PhpEws\\Type\\SearchFolderType',
+ 'EmailAddressType' => '\\jamesiarmes\\PhpEws\\Type\\EmailAddressType',
+ 'FolderChangeDescriptionType' => '\\jamesiarmes\\PhpEws\\Type\\FolderChangeDescriptionType',
+ 'ProtectionRuleType' => '\\jamesiarmes\\PhpEws\\Type\\ProtectionRuleType',
+ 'RoomType' => '\\jamesiarmes\\PhpEws\\Type\\RoomType',
+ 'ServerVersionInfo' => '\\jamesiarmes\\PhpEws\\Type\\ServerVersionInfo',
+ 'OccurrencesRangeType' => '\\jamesiarmes\\PhpEws\\Type\\OccurrencesRangeType',
+ 'StreamingSubscriptionRequest' => '\\jamesiarmes\\PhpEws\\Type\\StreamingSubscriptionRequest',
+ 'FreeBusyViewOptionsType' => '\\jamesiarmes\\PhpEws\\Type\\FreeBusyViewOptionsType',
+ 'CalendarItemType' => '\\jamesiarmes\\PhpEws\\Type\\CalendarItemType',
+ 'PhoneNumberDictionaryEntryType' => '\\jamesiarmes\\PhpEws\\Type\\PhoneNumberDictionaryEntryType',
+ 'ProtectionRulesServiceConfiguration' => '\\jamesiarmes\\PhpEws\\Type\\ProtectionRulesServiceConfiguration',
+ 'UserMailboxType' => '\\jamesiarmes\\PhpEws\\Type\\UserMailboxType',
+ 'FieldOrderType' => '\\jamesiarmes\\PhpEws\\Type\\FieldOrderType',
+ 'CalendarPermissionType' => '\\jamesiarmes\\PhpEws\\Type\\CalendarPermissionType',
+ 'MeetingRequestMessageType' => '\\jamesiarmes\\PhpEws\\Type\\MeetingRequestMessageType',
+ 'RecurringMasterItemIdRanges' => '\\jamesiarmes\\PhpEws\\Type\\RecurringMasterItemIdRanges',
+ 'RecurringTimeTransitionType' => '\\jamesiarmes\\PhpEws\\Type\\RecurringTimeTransitionType',
+ 'AbsoluteDateTransitionType' => '\\jamesiarmes\\PhpEws\\Type\\AbsoluteDateTransitionType',
+ 'TransitionType' => '\\jamesiarmes\\PhpEws\\Type\\TransitionType',
+ 'NoEndRecurrenceRangeType' => '\\jamesiarmes\\PhpEws\\Type\\NoEndRecurrenceRangeType',
+ 'ClientAccessTokenRequestType' => '\\jamesiarmes\\PhpEws\\Type\\ClientAccessTokenRequestType',
+ 'PersonaPostalAddressType' => '\\jamesiarmes\\PhpEws\\Type\\PersonaPostalAddressType',
+ 'AbsoluteMonthlyRecurrencePatternType' => '\\jamesiarmes\\PhpEws\\Type\\AbsoluteMonthlyRecurrencePatternType',
+ 'ImItemListType' => '\\jamesiarmes\\PhpEws\\Type\\ImItemListType',
+ 'TransitionTargetType' => '\\jamesiarmes\\PhpEws\\Type\\TransitionTargetType',
+ 'BaseObjectChangedEventType' => '\\jamesiarmes\\PhpEws\\Type\\BaseObjectChangedEventType',
+ 'FreeBusyView' => '\\jamesiarmes\\PhpEws\\Type\\FreeBusyView',
+ 'MemberType' => '\\jamesiarmes\\PhpEws\\Type\\MemberType',
+ 'DistinguishedFolderIdType' => '\\jamesiarmes\\PhpEws\\Type\\DistinguishedFolderIdType',
+ 'ConstantValueType' => '\\jamesiarmes\\PhpEws\\Type\\ConstantValueType',
+ 'String' => '\\jamesiarmes\\PhpEws\\Type\\StringType',
+ 'PrivateCatalogAddInsType' => '\\jamesiarmes\\PhpEws\\Type\\PrivateCatalogAddInsType',
+ 'PostalAddressAttributedValueType' => '\\jamesiarmes\\PhpEws\\Type\\PostalAddressAttributedValueType',
+ 'MembersListType' => '\\jamesiarmes\\PhpEws\\Type\\MembersListType',
+ 'RelativeMonthlyRecurrencePatternType' => '\\jamesiarmes\\PhpEws\\Type\\RelativeMonthlyRecurrencePatternType',
+ 'AlternateIdType' => '\\jamesiarmes\\PhpEws\\Type\\AlternateIdType',
+ 'QueryStringType' => '\\jamesiarmes\\PhpEws\\Type\\QueryStringType',
+ 'MultipleOperandBooleanExpressionType' => '\\jamesiarmes\\PhpEws\\Type\\MultipleOperandBooleanExpressionType',
+ 'PersonaPhoneNumberType' => '\\jamesiarmes\\PhpEws\\Type\\PersonaPhoneNumberType',
+ 'PhoneNumberAttributedValueType' => '\\jamesiarmes\\PhpEws\\Type\\PhoneNumberAttributedValueType',
+ 'MimeContentType' => '\\jamesiarmes\\PhpEws\\Type\\MimeContentType',
+ 'PullSubscriptionRequestType' => '\\jamesiarmes\\PhpEws\\Type\\PullSubscriptionRequestType',
+ 'SendNotificationResultType' => '\\jamesiarmes\\PhpEws\\Type\\SendNotificationResultType',
+ 'UserConfigurationNameType' => '\\jamesiarmes\\PhpEws\\Type\\UserConfigurationNameType',
+ 'UnknownAttendeeConflictData' => '\\jamesiarmes\\PhpEws\\Type\\UnknownAttendeeConflictData',
+ 'ContainsExpressionType' => '\\jamesiarmes\\PhpEws\\Type\\ContainsExpressionType',
+ 'StringArrayAttributedValueType' => '\\jamesiarmes\\PhpEws\\Type\\StringArrayAttributedValueType',
+ 'SetFolderFieldType' => '\\jamesiarmes\\PhpEws\\Type\\SetFolderFieldType',
+ 'RecurrenceRangeBaseType' => '\\jamesiarmes\\PhpEws\\Type\\RecurrenceRangeBaseType',
+ 'ReplyBody' => '\\jamesiarmes\\PhpEws\\Type\\ReplyBody',
+ 'MeetingCancellationMessageType' => '\\jamesiarmes\\PhpEws\\Type\\MeetingCancellationMessageType',
+ 'EmailAddressDictionaryEntryType' => '\\jamesiarmes\\PhpEws\\Type\\EmailAddressDictionaryEntryType',
+ 'PostReplyItemBaseType' => '\\jamesiarmes\\PhpEws\\Type\\PostReplyItemBaseType',
+ 'ExtendedPropertyType' => '\\jamesiarmes\\PhpEws\\Type\\ExtendedPropertyType',
+ 'AbsoluteYearlyRecurrencePatternType' => '\\jamesiarmes\\PhpEws\\Type\\AbsoluteYearlyRecurrencePatternType',
+ 'DistributionListType' => '\\jamesiarmes\\PhpEws\\Type\\DistributionListType',
+ 'FolderType' => '\\jamesiarmes\\PhpEws\\Type\\FolderType',
+ 'SmartResponseBaseType' => '\\jamesiarmes\\PhpEws\\Type\\SmartResponseBaseType',
+ 'EmailAddressAttributedValueType' => '\\jamesiarmes\\PhpEws\\Type\\EmailAddressAttributedValueType',
+ 'InvalidRecipientType' => '\\jamesiarmes\\PhpEws\\Type\\InvalidRecipientType',
+ 'ProtectionRuleAndType' => '\\jamesiarmes\\PhpEws\\Type\\ProtectionRuleAndType',
+ 'RetentionPolicyTagType' => '\\jamesiarmes\\PhpEws\\Type\\RetentionPolicyTagType',
+ 'PermissionType' => '\\jamesiarmes\\PhpEws\\Type\\PermissionType',
+ 'AcceptItemType' => '\\jamesiarmes\\PhpEws\\Type\\AcceptItemType',
+ 'SearchExpressionType' => '\\jamesiarmes\\PhpEws\\Type\\SearchExpressionType',
+ 'TasksFolderType' => '\\jamesiarmes\\PhpEws\\Type\\TasksFolderType',
+ 'AppendToFolderFieldType' => '\\jamesiarmes\\PhpEws\\Type\\AppendToFolderFieldType',
+ 'TimeZoneType' => '\\jamesiarmes\\PhpEws\\Type\\TimeZoneType',
+ 'NotificationType' => '\\jamesiarmes\\PhpEws\\Type\\NotificationType',
+ 'ExtendedPropertyAttributedValueType' => '\\jamesiarmes\\PhpEws\\Type\\ExtendedPropertyAttributedValueType',
+ 'PhoneCallIdType' => '\\jamesiarmes\\PhpEws\\Type\\PhoneCallIdType',
+ 'RegeneratingPatternBaseType' => '\\jamesiarmes\\PhpEws\\Type\\RegeneratingPatternBaseType',
+ 'OrType' => '\\jamesiarmes\\PhpEws\\Type\\OrType',
+ 'MailboxSearchScopeType' => '\\jamesiarmes\\PhpEws\\Type\\MailboxSearchScopeType',
+ 'ProtectionRuleRecipientIsType' => '\\jamesiarmes\\PhpEws\\Type\\ProtectionRuleRecipientIsType',
+ 'ExchangeImpersonationType' => '\\jamesiarmes\\PhpEws\\Type\\ExchangeImpersonationType',
+ 'GroupedItemsType' => '\\jamesiarmes\\PhpEws\\Type\\GroupedItemsType',
+ 'DailyRecurrencePatternType' => '\\jamesiarmes\\PhpEws\\Type\\DailyRecurrencePatternType',
+ 'FractionalPageViewType' => '\\jamesiarmes\\PhpEws\\Type\\FractionalPageViewType',
+ 'RuleOperationErrorType' => '\\jamesiarmes\\PhpEws\\Type\\RuleOperationErrorType',
+ 'PostReplyItemType' => '\\jamesiarmes\\PhpEws\\Type\\PostReplyItemType',
+ 'DelegatePermissionsType' => '\\jamesiarmes\\PhpEws\\Type\\DelegatePermissionsType',
+ 'CalendarViewType' => '\\jamesiarmes\\PhpEws\\Type\\CalendarViewType',
+ 'IsLessThanOrEqualToType' => '\\jamesiarmes\\PhpEws\\Type\\IsLessThanOrEqualToType',
+ 'SmartResponseType' => '\\jamesiarmes\\PhpEws\\Type\\SmartResponseType',
+ 'NumberedRecurrenceRangeType' => '\\jamesiarmes\\PhpEws\\Type\\NumberedRecurrenceRangeType',
+ 'ItemChangeDescriptionType' => '\\jamesiarmes\\PhpEws\\Type\\ItemChangeDescriptionType',
+ 'BasePathToElementType' => '\\jamesiarmes\\PhpEws\\Type\\BasePathToElementType',
+ 'BaseSubscriptionRequestType' => '\\jamesiarmes\\PhpEws\\Type\\BaseSubscriptionRequestType',
+ 'CalendarEventDetails' => '\\jamesiarmes\\PhpEws\\Type\\CalendarEventDetails',
+ 'AppMetadata' => '\\jamesiarmes\\PhpEws\\Type\\AppMetadata',
+ 'PushSubscriptionRequestType' => '\\jamesiarmes\\PhpEws\\Type\\PushSubscriptionRequestType',
+ 'SyncFolderHierarchyChangesType' => '\\jamesiarmes\\PhpEws\\Type\\SyncFolderHierarchyChangesType',
+ 'ItemIdType' => '\\jamesiarmes\\PhpEws\\Type\\ItemIdType',
+ 'WorkingPeriod' => '\\jamesiarmes\\PhpEws\\Type\\WorkingPeriod',
+ 'ConversationType' => '\\jamesiarmes\\PhpEws\\Type\\ConversationType',
+ 'AppType' => '\\jamesiarmes\\PhpEws\\Type\\AppType',
+ 'RulePredicateDateRangeType' => '\\jamesiarmes\\PhpEws\\Type\\RulePredicateDateRangeType',
+ 'FailedSearchMailboxType' => '\\jamesiarmes\\PhpEws\\Type\\FailedSearchMailboxType',
+ 'SyncFolderItemsCreateOrUpdateType' => '\\jamesiarmes\\PhpEws\\Type\\SyncFolderItemsCreateOrUpdateType',
+ 'PhysicalAddressDictionaryEntryType' => '\\jamesiarmes\\PhpEws\\Type\\PhysicalAddressDictionaryEntryType',
+ 'SuppressReadReceiptType' => '\\jamesiarmes\\PhpEws\\Type\\SuppressReadReceiptType',
+ 'FindItemParentType' => '\\jamesiarmes\\PhpEws\\Type\\FindItemParentType',
+ 'ProtectionRuleActionType' => '\\jamesiarmes\\PhpEws\\Type\\ProtectionRuleActionType',
+ 'IsEqualToType' => '\\jamesiarmes\\PhpEws\\Type\\IsEqualToType',
+ 'SuggestionsResponseType' => '\\jamesiarmes\\PhpEws\\Type\\SuggestionsResponseType',
+ 'DelegateUserType' => '\\jamesiarmes\\PhpEws\\Type\\DelegateUserType',
+ 'DiscoverySearchConfigurationType' => '\\jamesiarmes\\PhpEws\\Type\\DiscoverySearchConfigurationType',
+ 'RecurringMasterItemIdType' => '\\jamesiarmes\\PhpEws\\Type\\RecurringMasterItemIdType',
+ 'SerializedSecurityContextType' => '\\jamesiarmes\\PhpEws\\Type\\SerializedSecurityContextType',
+ 'OccurrenceItemIdType' => '\\jamesiarmes\\PhpEws\\Type\\OccurrenceItemIdType',
+ 'RequestAttachmentIdType' => '\\jamesiarmes\\PhpEws\\Type\\RequestAttachmentIdType',
+ 'DirectoryEntryType' => '\\jamesiarmes\\PhpEws\\Type\\DirectoryEntryType',
+ 'AddressListIdType' => '\\jamesiarmes\\PhpEws\\Type\\AddressListIdType',
+ 'DeleteFolderFieldType' => '\\jamesiarmes\\PhpEws\\Type\\DeleteFolderFieldType',
+ 'AndType' => '\\jamesiarmes\\PhpEws\\Type\\AndType',
+ 'SetRuleOperationType' => '\\jamesiarmes\\PhpEws\\Type\\SetRuleOperationType',
+ 'FreeBusyResponseType' => '\\jamesiarmes\\PhpEws\\Type\\FreeBusyResponseType',
+ 'MailTips' => '\\jamesiarmes\\PhpEws\\Type\\MailTips',
+ 'EndDateRecurrenceRangeType' => '\\jamesiarmes\\PhpEws\\Type\\EndDateRecurrenceRangeType',
+ 'NotType' => '\\jamesiarmes\\PhpEws\\Type\\NotType',
+ 'AlternateIdBaseType' => '\\jamesiarmes\\PhpEws\\Type\\AlternateIdBaseType',
+ 'MonthlyRegeneratingPatternType' => '\\jamesiarmes\\PhpEws\\Type\\MonthlyRegeneratingPatternType',
+ 'AggregateOnType' => '\\jamesiarmes\\PhpEws\\Type\\AggregateOnType',
+ 'MailboxStatisticsSearchResultType' => '\\jamesiarmes\\PhpEws\\Type\\MailboxStatisticsSearchResultType',
+ 'IsGreaterThanType' => '\\jamesiarmes\\PhpEws\\Type\\IsGreaterThanType',
+ 'YearlyRegeneratingPatternType' => '\\jamesiarmes\\PhpEws\\Type\\YearlyRegeneratingPatternType',
+ 'CancelCalendarItemType' => '\\jamesiarmes\\PhpEws\\Type\\CancelCalendarItemType',
+ 'RequestServerVersion' => '\\jamesiarmes\\PhpEws\\Type\\RequestServerVersion',
+ );
+ }
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Client.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Client.php
new file mode 100644
index 00000000..c25d7ecc
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Client.php
@@ -0,0 +1,1702 @@
+setServer($server);
+ $this->setUsername($username);
+ $this->setPassword($password);
+ $this->setVersion($version);
+ }
+
+ /**
+ * Returns the SOAP Client that may be used to make calls against the server
+ *
+ * @return \jamesiarmes\PhpNtlm\SoapClient
+ */
+ public function getClient()
+ {
+ // If the SOAP client has yet to be initialized then do so now.
+ if (empty($this->soap)) {
+ $this->initializeSoapClient();
+ }
+
+ return $this->soap;
+ }
+
+ /**
+ * Sets the cURL options that will be set on the SOAP client.
+ *
+ * @param array $options
+ */
+ public function setCurlOptions(array $options)
+ {
+ $this->curl_options = $options;
+
+ // We need to reinitialize the SOAP client.
+ $this->soap = null;
+ }
+
+ /**
+ * Sets the impersonation property
+ *
+ * @param \jamesiarmes\PhpEws\Type\ExchangeImpersonationType $impersonation
+ */
+ public function setImpersonation($impersonation)
+ {
+ $this->impersonation = $impersonation;
+
+ // We need to re-build the SOAP headers.
+ $this->headers = array();
+ }
+
+ /**
+ * Sets the password property
+ *
+ * @param string $password
+ */
+ public function setPassword($password)
+ {
+ $this->password = $password;
+
+ // We need to reinitialize the SOAP client.
+ $this->soap = null;
+ }
+
+ /**
+ * Sets the server property
+ *
+ * @param string $server
+ */
+ public function setServer($server)
+ {
+ $this->server = $server;
+
+ // We need to reinitialize the SOAP client.
+ $this->soap = null;
+ }
+
+ /**
+ * Sets the timezone to be used for all requests.
+ *
+ * @param string $timezone
+ */
+ public function setTimezone($timezone)
+ {
+ $this->timezone = $timezone;
+
+ // We need to re-build the SOAP headers.
+ $this->headers = array();
+ }
+
+ /**
+ * Sets the user name property
+ *
+ * @param string $username
+ */
+ public function setUsername($username)
+ {
+ $this->username = $username;
+
+ // We need to reinitialize the SOAP client.
+ $this->soap = null;
+ }
+
+ /**
+ * Sets the version property
+ *
+ * @param string $version
+ */
+ public function setVersion($version)
+ {
+ $this->version = $version;
+
+ // We need to re-build the SOAP headers.
+ $this->headers = array();
+ }
+
+ /**
+ * Adds one or more delegates to a principal's mailbox and sets specific
+ * access permissions.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @param \jamesiarmes\PhpEws\Request\AddDelegateType $request
+ * @return \jamesiarmes\PhpEws\Response\AddDelegateResponseMessageType
+ */
+ public function AddDelegate($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Adds a distribution group to the instant messaging (IM) list in the
+ * Unified Contact Store.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\AddDistributionGroupToImListType $request
+ * @return \jamesiarmes\PhpEws\Response\AddDistributionGroupToImListResponseMessageType
+ */
+ public function AddDistributionGroupToImList($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Adds an existing instant messaging (IM) contact to a group.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\AddImContactToGroup $request
+ * @return \jamesiarmes\PhpEws\Response\AddImContactToGroupResponseMessageType
+ */
+ public function AddImContactToGroup($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Adds a new instant messaging (IM) group to a mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\AddImGroupType $request
+ * @return \jamesiarmes\PhpEws\Response\AddImGroupResponseMessageType
+ */
+ public function AddImGroup($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Adds a new contact to an instant messaging (IM) group.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\AddNewImContactToGroup $request
+ * @return \jamesiarmes\PhpEws\Response\AddNewImContactToGroupResponseMessageType
+ */
+ public function AddNewImContactToGroup($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Adds a new contact to a group based on a contact's phone number.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\AddNewTelUriContactToGroupType $request
+ * @return \jamesiarmes\PhpEws\Response\AddNewTelUriContactToGroupResponse
+ */
+ public function AddNewTelUriContactToGroup($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Sets a one-time or follow up action on all the items in a conversation.
+ *
+ * This operation allows you to categorize, move, copy, delete, and set the
+ * read state on all items in a conversation. Actions can also be set for
+ * new messages in a conversation.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @param \jamesiarmes\PhpEws\Request\ApplyConversationActionType $request
+ * @return \jamesiarmes\PhpEws\Response\ApplyConversationActionResponseType
+ */
+ public function ApplyConversationAction($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Moves an item into the mailbox user's archive mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\ArchiveItemType $request
+ * @return \jamesiarmes\PhpEws\Response\ArchiveItemResponse
+ */
+ public function ArchiveItem($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Converts item and folder identifiers between formats that are accepted by
+ * Exchange Online, Exchange Online as part of Office 365, and on-premises
+ * versions of Exchange.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @param \jamesiarmes\PhpEws\Request\ConvertIdType $request
+ * @return \jamesiarmes\PhpEws\Response\ConvertIdResponseType
+ */
+ public function ConvertId($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Copies folders in a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\CopyFolderType $request
+ * @return \jamesiarmes\PhpEws\Response\CopyFolderResponseType
+ */
+ public function CopyFolder($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Copies items and puts the items in a different folder.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\CopyItemType $request
+ * @return \jamesiarmes\PhpEws\Response\CopyItemResponseType
+ */
+ public function CopyItem($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Creates either an item or file attachment and attaches it to the
+ * specified item.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\CreateAttachmentType $request
+ * @return \jamesiarmes\PhpEws\Response\CreateAttachmentResponseType
+ */
+ public function CreateAttachment($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Creates folders, calendar folders, contacts folders, tasks folders, and
+ * search folders.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\CreateFolderType $request
+ * @return \jamesiarmes\PhpEws\Response\CreateFolderResponseType
+ */
+ public function CreateFolder($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Creates a folder hierarchy.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\CreateFolderPathType $request
+ * @return \jamesiarmes\PhpEws\Response\CreateFolderPathResponseType
+ */
+ public function CreateFolderPath($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Creates items in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\CreateItemType $request
+ * @return \jamesiarmes\PhpEws\Response\CreateItemResponseType
+ */
+ public function CreateItem($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Creates a managed folder in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\CreateManagedFolderRequestType $request
+ * @return \jamesiarmes\PhpEws\Response\CreateManagedFolderResponseType
+ */
+ public function CreateManagedFolder($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Creates a user configuration object on a folder.
+ *
+ * @since Exchange 2010
+ *
+ * @param \jamesiarmes\PhpEws\Request\CreateUserConfigurationType $request
+ * @return \jamesiarmes\PhpEws\Response\CreateUserConfigurationResponseType
+ */
+ public function CreateUserConfiguration($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Deletes file and item attachments from an existing item in the Exchange
+ * store.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\DeleteAttachmentType $request
+ * @return \jamesiarmes\PhpEws\Response\DeleteAttachmentResponseType
+ */
+ public function DeleteAttachment($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Deletes folders from a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\DeleteFolderType $request
+ * @return \jamesiarmes\PhpEws\Response\DeleteFolderResponseType
+ */
+ public function DeleteFolder($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Deletes items in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\DeleteItemType $request
+ * @return \jamesiarmes\PhpEws\Response\DeleteItemResponseType
+ */
+ public function DeleteItem($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Deletes a user configuration object on a folder.
+ *
+ * @since Exchange 2010
+ *
+ * @param \jamesiarmes\PhpEws\Request\DeleteUserConfigurationType $request
+ * @return \jamesiarmes\PhpEws\Response\DeleteUserConfigurationResponseType
+ */
+ public function DeleteUserConfiguration($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Disables a mail app for Outlook.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\DisableAppType $request
+ * @return \jamesiarmes\PhpEws\Response\DisableAppResponseType
+ */
+ public function DisableApp($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Terminates a telephone call.
+ *
+ * @since Exchange 2010
+ *
+ * @param \jamesiarmes\PhpEws\Request\DisconnectPhoneCallType $request
+ * @return \jamesiarmes\PhpEws\Response\DisconnectPhoneCallResponseMessageType
+ */
+ public function DisconnectPhoneCall($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Empties folders in a mailbox.
+ *
+ * Optionally, this operation enables you to delete the subfolders of the
+ * specified folder. When a subfolder is deleted, the subfolder and the
+ * messages within the subfolder are deleted.
+ *
+ * @since Exchange 2010
+ *
+ * @param \jamesiarmes\PhpEws\Request\EmptyFolderType $request
+ * @return \jamesiarmes\PhpEws\Response\EmptyFolderResponseType
+ */
+ public function EmptyFolder($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Exposes the full membership of distribution lists.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\ExpandDLType $request
+ * @return \jamesiarmes\PhpEws\Response\ExpandDLResponseType
+ */
+ public function ExpandDL($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Exports items out of a mailbox.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @param \jamesiarmes\PhpEws\Request\ExportItemsType $request
+ * @return \jamesiarmes\PhpEws\Response\ExportItemsResponseType
+ */
+ public function ExportItems($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Enumerates a list of conversations in a folder.
+ *
+ * @param \jamesiarmes\PhpEws\Request\FindConversationType $request
+ * @return \jamesiarmes\PhpEws\Response\FindConversationResponseMessageType
+ */
+ public function FindConversation($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Finds subfolders of an identified folder and returns a set of properties
+ * that describe the set of subfolders.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\FindFolderType $request
+ * @return \jamesiarmes\PhpEws\Response\FindFolderResponseType
+ */
+ public function FindFolder($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Searches for items that are located in a user’s mailbox.
+ *
+ * This operation provides many ways to filter and format how search results
+ * are returned to the caller.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\FindItemType $request
+ * @return \jamesiarmes\PhpEws\Response\FindItemResponseType
+ */
+ public function FindItem($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Finds messages that meet the specified criteria.
+ *
+ * @since Exchange 2010
+ *
+ * @param \jamesiarmes\PhpEws\Request\FindMessageTrackingReportRequestType $request
+ * @return \jamesiarmes\PhpEws\Response\FindMessageTrackingReportResponseMessageType
+ */
+ public function FindMessageTrackingReport($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Returns all persona objects from a specified Contacts folder or retrieves
+ * contacts that match a specified query string.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\FindPeopleType $request
+ * @return \jamesiarmes\PhpEws\Response\FindPeopleResponseMessageType
+ */
+ public function FindPeople($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves app manifests.
+ *
+ * @since Exchange 2013 SP1
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetAppManifestsType $request
+ * @return \jamesiarmes\PhpEws\Response\GetAppManifestsResponseType
+ */
+ public function GetAppManifests($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves the URL for the app marketplace that a client can visit to
+ * acquire apps to install in a mailbox.
+ *
+ * @since Exchange 2013 SP1
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetAppMarketplaceUrl $request
+ * @return \jamesiarmes\PhpEws\Response\GetAppMarketplaceUrlResponseMessageType
+ */
+ public function GetAppMarketplaceUrl($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves existing attachments on items in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetAttachmentType $request
+ * @return \jamesiarmes\PhpEws\Response\GetAttachmentResponseType
+ */
+ public function GetAttachment($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Gets a client access token for a mail app for Outlook.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetClientAccessTokenType $request
+ * @return \jamesiarmes\PhpEws\Response\GetClientAccessTokenResponseType
+ */
+ public function GetClientAccessToken($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves one or more sets of items that are organized in to nodes in a
+ * conversation.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetConversationItemsType $request
+ * @return \jamesiarmes\PhpEws\Response\GetConversationItemsResponseType
+ */
+ public function GetConversationItems($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves the delegate settings for a specified mailbox.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetDelegateType $request
+ * @return \jamesiarmes\PhpEws\Response\GetDelegateResponseMessageType
+ */
+ public function GetDelegate($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Returns configuration information for in-place holds, saved discovery
+ * searches, and the mailboxes that are enabled for discovery search.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetDiscoverySearchConfigurationType $request
+ * @return \jamesiarmes\PhpEws\Response\GetDiscoverySearchConfigurationResponseMessageType
+ */
+ public function GetDiscoverySearchConfiguration($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Used by pull subscription clients to request notifications from the
+ * Client Access server.
+ *
+ * The response returns an array of items and events that have occurred in a
+ * mailbox since the last the notification.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetEventsType $request
+ * @return \jamesiarmes\PhpEws\Response\GetEventsResponseType
+ */
+ public function GetEvents($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Gets folders from the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetFolderType $request
+ * @return \jamesiarmes\PhpEws\Response\GetFolderResponseType
+ */
+ public function GetFolder($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves the mailboxes that are under a specific hold and the associated
+ * hold query.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetHoldOnMailboxesType $request
+ * @return \jamesiarmes\PhpEws\Response\GetHoldOnMailboxesResponseMessageType
+ */
+ public function GetHoldOnMailboxes($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves the list of instant messaging (IM) groups and IM contact
+ * personas in a mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetImItemListType $request
+ * @return \jamesiarmes\PhpEws\Response\GetImItemListResponseMessageType
+ */
+ public function GetImItemList($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves information about instant messaging (IM) groups and IM contact
+ * personas.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetImItemsType $request
+ * @return \jamesiarmes\PhpEws\Response\GetImItemsResponse
+ */
+ public function GetImItems($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves Inbox rules in the identified user's mailbox.
+ *
+ * @since Exchange 2010
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetInboxRulesRequestType $request
+ * @return \jamesiarmes\PhpEws\Response\GetInboxRulesResponseType
+ */
+ public function GetInboxRules($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Gets folders from the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetItemType $request
+ * @return \jamesiarmes\PhpEws\Response\GetItemResponseType
+ */
+ public function GetItem($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves the mail tips information for the specified mailbox.
+ *
+ * @since Exchange 2010
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetMailTipsType $request
+ * @return \jamesiarmes\PhpEws\Response\GetMailTipsResponseMessageType
+ */
+ public function GetMailTips($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves tracking information about the specified messages.
+ *
+ * @since Exchange 2010
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetMessageTrackingReportRequestType $request
+ * @return \jamesiarmes\PhpEws\Response\GetMessageTrackingReportResponseMessageType
+ */
+ public function GetMessageTrackingReport($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves details about items that cannot be indexed.
+ *
+ * This includes, but is not limited to, the item identifier, an error code,
+ * an error description, when an attempt was made to index the item, and
+ * additional information about the file.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetNonIndexableItemDetailsType $request
+ * @return \jamesiarmes\PhpEws\Response\GetNonIndexableItemDetailsResponseMessageType
+ */
+ public function GetNonIndexableItemDetails($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves the count of items that cannot be indexed in a mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetNonIndexableItemStatisticsType $request
+ * @return \jamesiarmes\PhpEws\Response\GetNonIndexableItemStatisticsResponseMessageType
+ */
+ public function GetNonIndexableItemStatistics($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Provides the email account password expiration date for the current user.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetPasswordExpirationDateType $request
+ * @return \jamesiarmes\PhpEws\Response\GetPasswordExpirationDateResponseMessageType
+ */
+ public function GetPasswordExpirationDate($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves a set of properties that are associated with a persona.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetPersonaType $request
+ * @return \jamesiarmes\PhpEws\Response\GetPersonaResponseMessageType
+ */
+ public function GetPersona($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves information about the specified telephone call.
+ *
+ * @since Exchange 2010
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetPhoneCallInformationType $request
+ * @return \jamesiarmes\PhpEws\Response\GetPhoneCallInformationResponseMessageType
+ */
+ public function GetPhoneCallInformation($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves reminders for calendar and task items.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetRemindersType $request
+ * @return \jamesiarmes\PhpEws\Response\GetRemindersResponseMessageType
+ */
+ public function GetReminders($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves the room lists that are available within the Exchange
+ * organization.
+ *
+ * @since Exchange 2010
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetRoomListsType $request
+ * @return \jamesiarmes\PhpEws\Response\GetRoomListsResponseMessageType
+ */
+ public function GetRoomLists($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves the rooms within the specified room list.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetRoomsType $request
+ * @return \jamesiarmes\PhpEws\Response\GetRoomsResponseMessageType
+ */
+ public function GetRooms($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves a scoped set of searchable mailboxes for discovery searches.
+ *
+ * The scope of searchable mailboxes returned in the response is determined
+ * by the search filter and whether distribution group membership is
+ * expanded.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetSearchableMailboxesType $request
+ * @return \jamesiarmes\PhpEws\Response\GetSearchableMailboxesResponseMessageType
+ */
+ public function GetSearchableMailboxes($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieve the timezones supported by the server.
+ *
+ * @since Exchange 2010
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetServerTimeZonesType $request
+ * @return \jamesiarmes\PhpEws\Response\GetServerTimeZonesResponseType
+ */
+ public function GetServerTimeZones($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves configuration information for the specified type of service.
+ *
+ * This operation can return configuration settings for the Unified
+ * Messaging, Protection Rules, and Mail Tips services.
+ *
+ * @since Exchange 2010
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetServiceConfigurationType $request
+ * @return \jamesiarmes\PhpEws\Response\GetServiceConfigurationResponseMessageType
+ */
+ public function GetServiceConfiguration($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves the local folder identifier of a specified shared folder.
+ *
+ * @since Exchange 2010
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetSharingFolderType $request
+ * @return \jamesiarmes\PhpEws\Response\GetSharingFolderResponseMessageType
+ */
+ public function GetSharingFolder($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Gets an opaque authentication token that identifies a sharing invitation.
+ *
+ * @since Exchange 2010
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetSharingMetadataType $request
+ * @return \jamesiarmes\PhpEws\Response\GetSharingMetadataResponseMessageType
+ */
+ public function GetSharingMetadata($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Requests notifications from the Client Access server.
+ *
+ * The GetStreamingEvents response returns an array of items and events that
+ * have occurred in a mailbox since the last the notification.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetStreamingEventsType $request
+ * @return \jamesiarmes\PhpEws\Response\GetStreamingEventsResponseType
+ */
+ public function GetStreamingEvents($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Provides detailed information about the availability of a set of users,
+ * rooms, and resources within a specified time period.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetUserAvailabilityRequestType $request
+ * @return \jamesiarmes\PhpEws\Response\GetUserAvailabilityResponseType
+ */
+ public function GetUserAvailability($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves a user configuration object from a folder.
+ *
+ * @since Exchange 2010
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetUserConfigurationType $request
+ * @return \jamesiarmes\PhpEws\Response\GetUserConfigurationResponseType
+ */
+ public function GetUserConfiguration($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Gets a mailbox user's Out of Office (OOF) settings and messages.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetUserOofSettingsRequest $request
+ * @return \jamesiarmes\PhpEws\Response\GetUserOofSettingsResponse
+ */
+ public function GetUserOofSettings($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves a user photo from Active Directory Domain Services (AD DS).
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetUserPhotoType $request
+ * @return \jamesiarmes\PhpEws\Response\GetUserPhotoResponseMessageType
+ */
+ public function GetUserPhoto($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Retrieves a list of all default, system folder, and personal tags that
+ * are associated with a user by means of a system policy or that were
+ * applied by the user.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\GetUserRetentionPolicyTagsType $request
+ * @return \jamesiarmes\PhpEws\Response\GetUserRetentionPolicyTagsResponseMessageType
+ */
+ public function GetUserRetentionPolicyTags($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Installs a mail app for Outlook in a mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\InstallAppType $request
+ * @return \jamesiarmes\PhpEws\Response\InstallAppResponseType
+ */
+ public function InstallApp($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Sets the IsRead property on all items, in one or more folders, to
+ * indicate that all items are either read or unread.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\MarkAllItemsAsRead $request
+ * @return \jamesiarmes\PhpEws\Response\MarkAllItemsAsReadResponseType
+ */
+ public function MarkAllItemsAsRead($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Adds and removes users from the blocked email list and moves email
+ * messages to the Junk Email folder.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\MarkAsJunkType $request
+ * @return \jamesiarmes\PhpEws\Response\MarkAsJunkResponseType
+ */
+ public function MarkAsJunk($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Moves folders from a specified folder and puts them in another folder.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\MoveFolderType $request
+ * @return \jamesiarmes\PhpEws\Response\MoveFolderResponseType
+ */
+ public function MoveFolder($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Moves one or more items to a single destination folder.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\MoveItemType $request
+ * @return \jamesiarmes\PhpEws\Response\MoveItemResponseType
+ */
+ public function MoveItem($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Initiates a dismiss or snooze action on a reminder.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\PerformReminderActionType $request
+ * @return \jamesiarmes\PhpEws\Response\PerformReminderActionResponseMessageType
+ */
+ public function PerformReminderAction($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Initiates an outbound call and plays a message over the telephone.
+ *
+ * @since Exchange 2010
+ *
+ * @param \jamesiarmes\PhpEws\Request\PlayOnPhoneType $request
+ * @return \jamesiarmes\PhpEws\Response\PlayOnPhoneResponseMessageType
+ */
+ public function PlayOnPhone($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Refreshes the specified local folder with the latest data from the folder
+ * that is being shared.
+ *
+ * @since Exchange 2010
+ *
+ * @param \jamesiarmes\PhpEws\Request\RefreshSharingFolderType $request
+ * @return \jamesiarmes\PhpEws\Response\RefreshSharingFolderResponseMessageType
+ */
+ public function RefreshSharingFolder($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Removes contacts from the Lync instant messaging (IM) list when Lync uses
+ * Exchange for the contact store.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\RemoveContactFromImListType $request
+ * @return \jamesiarmes\PhpEws\Response\RemoveContactFromImListResponseMessageType
+ */
+ public function RemoveContactFromImList($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Removes one or more delegates from a user's mailbox.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @param \jamesiarmes\PhpEws\Request\RemoveDelegateType $request
+ * @return \jamesiarmes\PhpEws\Response\RemoveDelegateResponseMessageType
+ */
+ public function RemoveDelegate($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Removes a distribution group from the Lync instant messaging (IM) list
+ * when Lync uses Exchange for the contact store.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\RemoveDistributionGroupFromImListType $request
+ * @return \jamesiarmes\PhpEws\Response\RemoveDistributionGroupFromImListResponseMessageType
+ */
+ public function RemoveDistributionGroupFromImList($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Removes a single IM contact from an IM group.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\RemoveImContactFromGroupType $request
+ * @return \jamesiarmes\PhpEws\Response\RemoveImContactFromGroupResponseMessageType
+ */
+ public function RemoveImContactFromGroup($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Removes a single instant messaging (IM) group from a mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\RemoveImGroupType $request
+ * @return \jamesiarmes\PhpEws\Response\RemoveImGroupResponseMessageType
+ */
+ public function RemoveImGroup($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Resolves ambiguous email addresses and display names.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\ResolveNamesType $request
+ * @return \jamesiarmes\PhpEws\Response\ResolveNamesResponseType
+ */
+ public function ResolveNames($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Searches mailboxes for occurrences of terms in mailbox items.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\SearchMailboxesType $request
+ * @return \jamesiarmes\PhpEws\Response\SearchMailboxesResponseType
+ */
+ public function SearchMailboxes($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Sends e-mail messages that are located in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\SendItemType $request
+ * @return \jamesiarmes\PhpEws\Response\SendItemResponseType
+ */
+ public function SendItem($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Sets a mailbox hold policy on mailboxes.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\SetHoldOnMailboxesType $request
+ * @return \jamesiarmes\PhpEws\Response\SetHoldOnMailboxesResponseMessageType
+ */
+ public function SetHoldOnMailboxes($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Changes the display name of an instant messaging (IM) group.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\SetImGroupType $request
+ * @return \jamesiarmes\PhpEws\Response\SetImGroupResponseMessageType
+ */
+ public function SetImGroup($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Sets a mailbox user's Out of Office (OOF) settings and message.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\SetUserOofSettingsRequest $request
+ * @return \jamesiarmes\PhpEws\Response\SetUserOofSettingsResponse
+ */
+ public function SetUserOofSettings($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Subscribes client applications to either push or pull notifications.
+ *
+ * It is important to be aware that the structure of the request messages
+ * and responses is different depending on the type of event notification.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\SubscribeType $request
+ * @return \jamesiarmes\PhpEws\Response\SubscribeResponseType
+ */
+ public function Subscribe($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Synchronizes folders between the computer that is running Microsoft
+ * Exchange Server and the client.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\SyncFolderHierarchyType $request
+ * @return \jamesiarmes\PhpEws\Response\SyncFolderHierarchyResponseType
+ */
+ public function SyncFolderHierarchy($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Synchronizes items between the Exchange server and the client.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\SyncFolderItemsType $request
+ * @return \jamesiarmes\PhpEws\Response\SyncFolderItemsResponseType
+ */
+ public function SyncFolderItems($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Uninstalls a mail app for Outlook.
+ *
+ * @since Exchange 2013
+ *
+ * @param \jamesiarmes\PhpEws\Request\UninstallAppType $request
+ * @return \jamesiarmes\PhpEws\Response\UninstallAppResponseType
+ */
+ public function UninstallApp($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Ends a pull notification subscription.
+ *
+ * Use this operation rather than letting a subscription timeout. This
+ * operation is only valid for pull notifications.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\UnsubscribeType $request
+ * @return \jamesiarmes\PhpEws\Response\UnsubscribeResponseType
+ */
+ public function Unsubscribe($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Updates delegate permissions on a principal's mailbox.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @param \jamesiarmes\PhpEws\Request\UpdateDelegateType $request
+ * @return \jamesiarmes\PhpEws\Response\UpdateDelegateResponseMessageType
+ */
+ public function UpdateDelegate($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Modifies properties of an existing item in the Exchange store.
+ *
+ * Each UpdateFolder operation consists of the following:
+ * - A FolderId element that specifies a folder to update.
+ * - An internal path of an element in the folder, as specified by the
+ * folder shape, which specifies the data to update.
+ * - A folder that contains the new value of the updated field, if the
+ * update is not a deletion.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\UpdateFolderType $request
+ * @return \jamesiarmes\PhpEws\Response\UpdateFolderResponseType
+ */
+ public function UpdateFolder($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Updates the authenticated user's Inbox rules by applying the specified
+ * operations.
+ *
+ * This operation is used to create an Inbox rule, to set an Inbox rule, or
+ * to delete an Inbox rule.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @param \jamesiarmes\PhpEws\Request\UpdateInboxRulesRequestType $request
+ * @return \jamesiarmes\PhpEws\Response\UpdateInboxRulesResponseType
+ */
+ public function UpdateInboxRules($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Used to modify the properties of an existing item in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @param \jamesiarmes\PhpEws\Request\UpdateItemType $request
+ * @return \jamesiarmes\PhpEws\Response\UpdateItemResponseType
+ */
+ public function UpdateItem($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Updates a user configuration object on a folder.
+ *
+ * @since Exchange 2010
+ *
+ * @param \jamesiarmes\PhpEws\Request\UpdateUserConfigurationType $request
+ * @return \jamesiarmes\PhpEws\Response\UpdateUserConfigurationResponseType
+ */
+ public function UpdateUserConfiguration($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Uploads a stream of items into an Exchange mailbox.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @param \jamesiarmes\PhpEws\Request\UploadItemsType $request
+ * @return \jamesiarmes\PhpEws\Response\UploadItemsResponseType
+ */
+ public function UploadItems($request)
+ {
+ return $this->makeRequest(__FUNCTION__, $request);
+ }
+
+ /**
+ * Initializes the SoapClient object to make a request
+ *
+ * @return \jamesiarmes\PhpNtlm\SoapClient
+ */
+ protected function initializeSoapClient()
+ {
+ $this->soap = new SoapClient(
+ dirname(__FILE__) . '/assets/services.wsdl',
+ array(
+ 'user' => $this->username,
+ 'password' => $this->password,
+ 'location' => 'https://' . $this->server . '/EWS/Exchange.asmx',
+ 'classmap' => ClassMap::getMap(),
+ 'curlopts' => $this->curl_options,
+ 'features' => SOAP_SINGLE_ELEMENT_ARRAYS,
+ )
+ );
+
+ return $this->soap;
+ }
+
+ /**
+ * Makes the SOAP call for a request.
+ *
+ * @param string $operation
+ * The operation to be called.
+ * @param \jamesiarmes\PhpEws\Request $request
+ * The request object for the operation.
+ * @return \jamesiarmes\PhpEws\Response
+ * The response object for the operation.
+ */
+ protected function makeRequest($operation, $request)
+ {
+ $this->getClient()->__setSoapHeaders($this->soapHeaders());
+ $response = $this->soap->{$operation}($request);
+
+ return $this->processResponse($response);
+ }
+
+ /**
+ * Process a response to verify that it succeeded and take the appropriate
+ * action
+ *
+ * @throws \Exception
+ *
+ * @param \stdClass $response
+ * @return \stdClass
+ */
+ protected function processResponse($response)
+ {
+ // If the soap call failed then we need to throw an exception.
+ $code = $this->soap->getResponseCode();
+ if ($code != 200) {
+ throw new \Exception(
+ "SOAP client returned status of $code.",
+ $code
+ );
+ }
+
+ return $response;
+ }
+
+ /**
+ * Builds the soap headers to be included with the request.
+ *
+ * @return \SoapHeader[]
+ */
+ protected function soapHeaders()
+ {
+ // If the headers have already been built, no need to do so again.
+ if (!empty($this->headers)) {
+ return $this->headers;
+ }
+
+ $this->headers = array();
+
+ // Set the schema version.
+ $this->headers[] = new \SoapHeader(
+ 'http://schemas.microsoft.com/exchange/services/2006/types',
+ 'RequestServerVersion Version="' . $this->version . '"'
+ );
+
+ // If impersonation was set then add it to the headers.
+ if (!empty($this->impersonation)) {
+ $this->headers[] = new \SoapHeader(
+ 'http://schemas.microsoft.com/exchange/services/2006/types',
+ 'ExchangeImpersonation',
+ $this->impersonation
+ );
+ }
+
+ if (!empty($this->timezone)) {
+ $this->headers[] = new \SoapHeader(
+ 'http://schemas.microsoft.com/exchange/services/2006/types',
+ 'TimeZoneContext',
+ array(
+ 'TimeZoneDefinition' => array(
+ 'Id' => $this->timezone,
+ )
+ )
+ );
+ }
+
+ return $this->headers;
+ }
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration.php
new file mode 100644
index 00000000..8b9ad583
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration.php
@@ -0,0 +1,36 @@
+_;
+ }
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AddInStateType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AddInStateType.php
new file mode 100644
index 00000000..d95cdadd
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AddInStateType.php
@@ -0,0 +1,84 @@
+ 0 and < 2083.
+ * - Protocol is http or https.
+ * - The URL can be parsed by the URI Microsoft .NET Framework class.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_PUSH_SUBSCRIPTION_URL = 'ErrorInvalidPushSubscriptionUrl';
+
+ /**
+ * This error indicates that the search folder has a recipient table filter
+ * that Exchange Web Services cannot represent.
+ *
+ * To get around this error, retrieve the folder without requesting the
+ * search parameters.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_RECIPIENT_SUBFILTER = 'ErrorInvalidRecipientSubfilter';
+
+ /**
+ * This error indicates that the search folder has a recipient table filter
+ * that Exchange Web Services cannot represent.
+ *
+ * To get around this error, retrieve the folder without requesting the
+ * search parameters.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_RECIPIENT_SUBFILTER_COMPARISON = 'ErrorInvalidRecipientSubfilterComparison';
+
+ /**
+ * This error indicates that the search folder has a recipient table filter
+ * that Exchange Web Services cannot represent.
+ *
+ * To get around this error, retrieve the folder without requesting the
+ * search parameters.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_RECIPIENT_SUBFILTER_ORDER = 'ErrorInvalidRecipientSubfilterOrder';
+
+ /**
+ * This error indicates that the search folder has a recipient table filter
+ * that Exchange Web Services cannot represent.
+ *
+ * To get around this error, retrieve the folder without requesting the
+ * search parameters.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_RECIPIENT_SUBFILTER_TEXT_FILTER = 'ErrorInvalidRecipientSubfilterTextFilter';
+
+ /**
+ * This error indicates that the recipient collection on your message or the
+ * attendee collection on your calendar item is invalid.
+ *
+ * For example, this error will be returned when an attempt is made to send
+ * an item that has no recipients.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_RECIPIENTS = 'ErrorInvalidRecipients';
+
+ /**
+ * This error occurs when the specified recurrence cannot be created.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_RECURRENCE = 'ErrorCalendarInvalidRecurrence';
+
+ /**
+ * This error is returned from the CreateItem Operation for Forward and
+ * Reply response objects when the referenced item is invalid.
+ *
+ * For example, this error may be returned in any of the following
+ * circumstances:
+ * - The referenced item identifier is not a Message, a CalendarItem, or a
+ * descendant of a Message or CalendarItem.
+ * - The reference item identifier is for a CalendarItem and the organizer
+ * is trying to Reply or ReplyAll to himself.
+ * - The message is a draft and Reply or ReplyAll is selected.
+ * - The reference item, for SuppressReadReceipt, is not a Message or a
+ * descendant of a Message.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_REFERENCE_ITEM = 'ErrorInvalidReferenceItem';
+
+ /**
+ * This error occurs when the SOAP request has a SOAP action header, but
+ * nothing in the SOAP body.
+ *
+ * Note that the SOAP Action header is not required as Exchange Web Services
+ * can determine the method to call from the local name of the root element
+ * in the SOAP body.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_REQUEST = 'ErrorInvalidRequest';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_RESTRICTION = 'ErrorInvalidRestriction';
+
+ /**
+ * Indicates that the retention tag GUID was invalid.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const INVALID_RETENTION_TAG_ID_GUID = 'ErrorInvalidRetentionTagIdGuid';
+
+ /**
+ * This error is returned when an attempt is made to set an implicit tag on
+ * the PolicyTag property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const INVALID_RETENTION_TAG_INHERITANCE = 'ErrorInvalidRetentionTagInheritance';
+
+ /**
+ * This error is returned when an attempt is made to set a nonexistent or
+ * invisible tag on a PolicyTag property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const INVALID_RETENTION_TAG_INVISIBLE = 'ErrorInvalidRetentionTagInvisible';
+
+ /**
+ * This error indicates that no retention tags were found for this user.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const INVALID_RETENTION_TAG_NONE = 'ErrorInvalidRetentionTagNone';
+
+ /**
+ * This error is returned when the specified retention tag has an incorrect
+ * action associated with it.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const INVALID_RETENTION_TAG_TYPE_MISMATCH = 'ErrorInvalidRetentionTagTypeMismatch';
+
+ /**
+ * This error occurs if the routing type that is passed for an
+ * EmailAddressType is invalid.
+ *
+ * Typically, the routing type is set to Simple Mail Transfer Protocol
+ * (SMTP).
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_ROUTING_TYPE = 'ErrorInvalidRoutingType';
+
+ /**
+ * This error occurs if the specified duration end time is not greater than
+ * the start time, or if the end time does not occur in the future.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_SCHEDULED_OOF_DURATION = 'ErrorInvalidScheduledOofDuration';
+
+ /**
+ * This error indicates that a proxy request that was sent to another server
+ * is not able to service the request due to a versioning mismatch.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_SCHEMA_VERSION_FOR_MAILBOX_VERSION = 'ErrorInvalidSchemaVersionForMailboxVersion';
+
+ /**
+ * This error indicates that the Exchange security descriptor on the
+ * Calendar folder in the store is corrupted.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_SECURITY_DESCRIPTOR = 'ErrorInvalidSecurityDescriptor';
+
+ /**
+ * This error occurs during an attempt to send an item where the
+ * SavedItemFolderId is specified in the request but the SaveItemToFolder
+ * property is set to false.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_SEND_ITEM_SAVE_SETTINGS = 'ErrorInvalidSendItemSaveSettings';
+
+ /**
+ * This error indicates that the token that was passed in the header is
+ * malformed, does not refer to a valid account in the directory, or is
+ * missing the primary group ConnectingSID.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_SERIALIZED_ACCESS_TOKEN = 'ErrorInvalidSerializedAccessToken';
+
+ /**
+ * This error indicates that an invalid request server version was specified
+ * in the request.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_SERVER_VERSION = 'ErrorInvalidServerVersion';
+
+ /**
+ * This error indicates that the sharing metadata is not valid.
+ *
+ * This can be caused by invalid XML.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_SHARING_DATA = 'ErrorInvalidSharingData';
+
+ /**
+ * This error indicates that the sharing message is not valid.
+ *
+ * This can be caused by a missing property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_SHARING_MESSAGE = 'ErrorInvalidSharingMessage';
+
+ /**
+ * This error occurs when an invalid SID is passed in a request.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_SID = 'ErrorInvalidSid';
+
+ /**
+ * This error indicates that the SIP name, dial plan, or the phone number
+ * are invalid SIP URI.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_SIP_URI = 'ErrorInvalidSIPUri';
+
+ /**
+ * This error occurs when the SMTP address cannot be parsed.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_SMTP_ADDRESS = 'ErrorInvalidSmtpAddress';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_SUBFILTER_TYPE = 'ErrorInvalidSubfilterType';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_SUBFILTER_TYPE_NOT_ATTENDEE_TYPE = 'ErrorInvalidSubfilterTypeNotAttendeeType';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_SUBFILTER_TYPE_NOT_RECIPIENT_TYPE = 'ErrorInvalidSubfilterTypeNotRecipientType';
+
+ /**
+ * This error indicates that the subscription is no longer valid.
+ *
+ * This could be because the Client Access server is restarting or because
+ * the subscription is expired.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_SUBSCRIPTION = 'ErrorInvalidSubscription';
+
+ /**
+ * This error indicates that the subscribe request included multiple public
+ * folder IDs.
+ *
+ * A subscription can include multiple folders from the same mailbox or one
+ * public folder ID.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_SUBSCRIPTION_REQUEST = 'ErrorInvalidSubscriptionRequest';
+
+ /**
+ * This error is returned by SyncFolderItems or SyncFolderHierarchy if the
+ * SyncState data that is passed is invalid.
+ *
+ * To fix this error, you must resynchronize without the sync state. Make
+ * sure that if you are persisting sync state BLOBs, you are not
+ * accidentally truncating the BLOB.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_SYNC_STATE_DATA = 'ErrorInvalidSyncStateData';
+
+ /**
+ * This error indicates that the specified time interval is invalid.
+ *
+ * The start time must be greater than or equal to the end time.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_TIME_INTERVAL = 'ErrorInvalidTimeInterval';
+
+ /**
+ * This error occurs when an invalid time zone is encountered.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_TIMEZONE = 'ErrorCalendarInvalidTimeZone';
+
+ /**
+ * This error indicates that an internally inconsistent UserId was specified
+ * for a permissions operation.
+ *
+ * For example, if a distinguished user ID is specified (Default or
+ * Anonymous), this error is returned if you also try to specify a SID, or
+ * primary SMTP address or display name for this user.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_USER_INFO = 'ErrorInvalidUserInfo';
+
+ /**
+ * This error indicates that the user Out of Office (OOF) settings are
+ * invalid because of a missing internal or external reply.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_USER_OOF_SETTINGS = 'ErrorInvalidUserOofSettings';
+
+ /**
+ * This error occurs during Exchange Impersonation.
+ *
+ * The caller passed in an invalid UPN in the SOAP header that was not
+ * accessible in the directory.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_USER_PRINCIPAL_NAME = 'ErrorInvalidUserPrincipalName';
+
+ /**
+ * This error occurs when an invalid SID is passed in a request.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_USER_SID = 'ErrorInvalidUserSid';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_USER_SID_MISSING_UPN = 'ErrorInvalidUserSidMissingUPN';
+
+ /**
+ * This error indicates that the comparison value in the restriction is
+ * invalid for the property you are comparing against.
+ *
+ * For example, the comparison value of DateTimeCreated > true would return
+ * this response code. This response code is also returned if you specify an
+ * enumeration property in the comparison, but the value that you are
+ * comparing against is not a valid value for that enumeration.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_VALUE_FOR_PROPERTY = 'ErrorInvalidValueForProperty';
+
+ /**
+ * This error is caused by an invalid watermark.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_WATERMARK = 'ErrorInvalidWatermark';
+
+ /**
+ * This error indicates that a valid VoIP gateway is not available.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const IP_GATEWAY_NOT_FOUND = 'ErrorIPGatewayNotFound';
+
+ /**
+ * This error indicates that conflict resolution was unable to resolve
+ * changes for the properties.
+ *
+ * The items in the store may have been changed and have to be updated.
+ * Retrieve the updated change key and try again.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const IRRESOLVABLE_CONFLICT = 'ErrorIrresolvableConflict';
+
+ /**
+ * This error indicates that the AcceptItem element is invalid for a
+ * calendar item that has been cancelled.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ITEM_CANCELLED_FOR_ACCEPT = 'ErrorCalendarIsCancelledForAccept';
+
+ /**
+ * This error indicates that the DeclineItem element is invalid for a
+ * calendar item that has been cancelled.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ITEM_CANCELLED_FOR_DECLINE = 'ErrorCalendarIsCancelledForDecline';
+
+ /**
+ * This error indicates that the RemoveItem element is invalid for a
+ * calendar item that has been cancelled.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ITEM_CANCELLED_FOR_REMOVE = 'ErrorCalendarIsCancelledForRemove';
+
+ /**
+ * This error indicates that the TentativelyAcceptItem element is invalid
+ * for a calendar item that has been cancelled.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ITEM_CANCELLED_FOR_TENTATIVE = 'ErrorCalendarIsCancelledForTentative';
+
+ /**
+ * This error indicates that the state of the object is corrupted and cannot
+ * be retrieved.
+ *
+ * When you are retrieving an item, only certain properties will be in this
+ * state, such as Body and MimeContent. Omit these properties and retry the
+ * operation.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_CORRUPT = 'ErrorItemCorrupt';
+
+ /**
+ * This error indicates that the AcceptItem element is invalid for a
+ * calendar item or meeting request in a delegated scenario.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const ITEM_DELEGATED_FOR_ACCEPT = 'ErrorCalendarIsDelegatedForAccept';
+
+ /**
+ * This error indicates that the DeclineItem element is invalid for a
+ * calendar item or meeting request in a delegated scenario.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const ITEM_DELEGATED_FOR_DECLINE = 'ErrorCalendarIsDelegatedForDecline';
+
+ /**
+ * This error indicates that the RemoveItem element is invalid for a meeting
+ * cancellation in a delegated scenario.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const ITEM_DELEGATED_FOR_REMOVE = 'ErrorCalendarIsDelegatedForRemove';
+
+ /**
+ * This error indicates that the TentativelyAcceptItem element is invalid
+ * for a calendar item or meeting request in a delegated scenario.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const ITEM_DELEGATED_FOR_TENTATIVE = 'ErrorCalendarIsDelegatedForTentative';
+
+ /**
+ * This error occurs when the item was not found or you do not have
+ * permission to access the item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_NOT_FOUND = 'ErrorItemNotFound';
+
+ /**
+ * This error occurs if a property request on an item fails. The property
+ * may exist, but it could not be retrieved.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_PROPERTY_REQUEST_FAILED = 'ErrorItemPropertyRequestFailed';
+
+ /**
+ * This error occurs when attempts to save the item or folder fail.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_SAVE = 'ErrorItemSave';
+
+ /**
+ * This error occurs when attempts to save the item or folder fail because
+ * of invalid property values.
+ *
+ * The response code includes the path of the invalid properties.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_SAVE_PROPERTY_ERROR = 'ErrorItemSavePropertyError';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const LEGACY_MAILBOX_FREE_BUSY_VIEW_TYPE_NOT_MERGED = 'ErrorLegacyMailboxFreeBusyViewTypeNotMerged';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const LOCAL_SERVER_OBJECT_NOT_FOUND = 'ErrorLocalServerObjectNotFound';
+
+ /**
+ * This error is intended for internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const LOCATION_SERVICES_DISABLED = 'ErrorLocationServicesDisabled';
+
+ /**
+ * This error is intended for internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const LOCATION_SERVICES_INVALID_REQUEST = 'ErrorLocationServicesInvalidRequest';
+
+ /**
+ * This error is intended for internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const LOCATION_SERVICES_REQUEST_FAILED = 'ErrorLocationServicesRequestFailed';
+
+ /**
+ * This error is intended for internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const LOCATION_SERVICES_REQUEST_TIMED_OUT = 'ErrorLocationServicesRequestTimedOut';
+
+ /**
+ * This error indicates that the Availability service was unable to log on
+ * as the network service to proxy requests to the appropriate sites or
+ * forests.
+ *
+ * This response typically indicates a configuration error.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const LOGON_AS_NETWORK_SERVICE_FAILED = 'ErrorLogonAsNetworkServiceFailed';
+
+ /**
+ * This error occurs if the MailboxData information cannot be mapped to a
+ * valid mailbox account.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MAIL_RECIPIENT_NOT_FOUND = 'ErrorMailRecipientNotFound';
+
+ /**
+ * This error indicates that mail tips are disabled.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const MAIL_TIPS_DISABLED = 'ErrorMailTipsDisabled';
+
+ /**
+ * This error indicates that the mailbox information in AD DS is configured
+ * incorrectly.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MAILBOX_CONFIGURATION_ERROR = 'ErrorMailboxConfiguration';
+
+ /**
+ * This error indicates that the MailboxDataArray property in the request is
+ * empty.
+ *
+ * You must supply at least one mailbox identifier.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MAILBOX_DATA_ARRAY_EMPTY = 'ErrorMailboxDataArrayEmpty';
+
+ /**
+ * This error occurs when more than 100 entries are supplied in a
+ * MailboxDataArray.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MAILBOX_DATA_ARRAY_TOO_BIG = 'ErrorMailboxDataArrayTooBig';
+
+ /**
+ * This error indicates that an attempt to access a mailbox failed because
+ * the mailbox is in a failover process.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const MAILBOX_FAILOVER = 'ErrorMailboxFailover';
+
+ /**
+ * Indicates that the mailbox hold was not found.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const MAILBOX_HOLD_NOT_FOUND = 'ErrorMailboxHoldNotFound';
+
+ /**
+ * This error occurs when the connection to the mailbox to get the calendar
+ * view information failed.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MAILBOX_LOGON_FAILED = 'ErrorMailboxLogonFailed';
+
+ /**
+ * This error indicates that the mailbox is being moved to a different
+ * mailbox store or server.
+ *
+ * This error can also indicate that the mailbox is on another server or
+ * mailbox database.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MAILBOX_MOVE_IN_PROGRESS = 'ErrorMailboxMoveInProgress';
+
+ /**
+ * This error is returned when a scoped search attempt is performed without
+ * using a QueryString (QueryStringType) element for a content indexing
+ * search.
+ *
+ * This is applicable to the SearchMailboxes and FindConversation
+ * operations.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const MAILBOX_SCOPE_NOT_ALLOWED_WITHOUT_QUERY_STRING = 'ErrorMailboxScopeNotAllowedWithoutQueryString';
+
+ /**
+ * This error indicates that the mailbox store is unavailable for one of
+ * several reasons.
+ *
+ * These reasons include:
+ * - The mailbox store is corrupt.
+ * - The mailbox store is being stopped.
+ * - The mailbox store is offline.
+ * - A network error occurred when an attempt was made to access the mailbox
+ * store.
+ * - The mailbox store is overloaded and cannot accept any more connections.
+ * - The mailbox store has been paused.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MAILBOX_STORE_UNAVAILABLE = 'ErrorMailboxStoreUnavailable';
+
+ /**
+ * This error occurs when the caller specifies an Id attribute that is
+ * malformed.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MALFORMED_ID = 'ErrorInvalidIdMalformed';
+
+ /**
+ * This error occurs if the managed folder that you are trying to create
+ * already exists in a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MANAGED_FOLDER_ALREADY_EXISTS = 'ErrorManagedFolderAlreadyExists';
+
+ /**
+ * This error occurs when the folder name that was specified in the request
+ * does not map to a managed folder definition in AD DS.
+ *
+ * You can only create instances of managed folders for folders that are
+ * defined in AD DS. Check the name and try again.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MANAGED_FOLDER_NOT_FOUND = 'ErrorManagedFolderNotFound';
+
+ /**
+ * This error indicates that the managed folders root was deleted from the
+ * mailbox or that a folder exists in the same parent folder that has the
+ * name of the managed folder root.
+ *
+ * This will also occur if the attempt to create the root managed folder
+ * fails.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MANAGED_FOLDERS_ROOT_FAILURE = 'ErrorManagedFoldersRootFailure';
+
+ /**
+ * This error indicates that a meeting request is out-of-date and cannot be
+ * updated.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MEETING_REQUEST_OUT_OF_DATE = 'ErrorCalendarMeetingRequestIsOutOfDate';
+
+ /**
+ * This error indicates that the suggestions engine encountered a problem
+ * when it was trying to generate the suggestions.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MEETING_SUGGESTION_GENERATION_FAILED = 'ErrorMeetingSuggestionGenerationFailed';
+
+ /**
+ * This error occurs if the MessageDisposition attribute is not set.
+ *
+ * This attribute is required for the following:
+ * - The CreateItem Operation and the UpdateItem Operation when the item
+ * being created or updated is a Message.
+ * - CancelCalendarItem, AcceptItem, DeclineItem, or TentativelyAcceptItem
+ * response objects.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MESSAGE_DISPOSITION_REQUIRED = 'ErrorMessageDispositionRequired';
+
+ /**
+ * This error indicates that the message that you are trying to send exceeds
+ * the allowed limits.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MESSAGE_SIZE_EXCEEDED = 'ErrorMessageSizeExceeded';
+
+ /**
+ * This error indicates that the given domain cannot be found.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const MESSAGE_TRACKING_NO_SUCH_DOMAIN = 'ErrorMessageTrackingNoSuchDomain';
+
+ /**
+ * This error indicates that the message tracking service cannot track the
+ * message.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const MESSAGE_TRACKING_PERMANENT_ERROR = 'ErrorMessageTrackingPermanentError';
+
+ /**
+ * This error indicates that the message tracking service is either down or
+ * busy.
+ *
+ * This error code indicates a transient error. Clients can retry to connect
+ * to the server when this error is received.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const MESSAGE_TRACKING_TRANSIENT_ERROR = 'ErrorMessageTrackingTransientError';
+
+ /**
+ * This error occurs when the MIME content is not a valid iCal for a
+ * CreateItem Operation.
+ *
+ * For a GetItem Operation, this response indicates that the MIME content
+ * could not be generated.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MIME_CONTENT_CONVERSATION_FAILED = 'ErrorMimeContentConversionFailed';
+
+ /**
+ * This error occurs when the MIME content is invalid.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MIME_CONTENT_INVALID = 'ErrorMimeContentInvalid';
+
+ /**
+ * This error occurs when the MIME content in the request is not a valid
+ * base 64 string.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MIME_CONTENT_INVALID_BASE_64_STRING = 'ErrorMimeContentInvalidBase64String';
+
+ /**
+ * This error MUST be returned when event notifications are missed.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const MISSED_NOTIFICATION_EVENTS = 'ErrorMissedNotificationEvents';
+
+ /**
+ * This error indicates that a required argument was missing from the
+ * request.
+ *
+ * The response message text indicates which argument to check.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MISSING_ARGUMENT = 'ErrorMissingArgument';
+
+ /**
+ * This error indicates that you specified a distinguished folder ID in the
+ * request, but the account that made the request does not have a mailbox on
+ * the system.
+ *
+ * In that case, you must supply a Mailbox sub-element under
+ * DistinguishedFolderId.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MISSING_EMAIL_ADDRESS = 'ErrorMissingEmailAddress';
+
+ /**
+ * This error indicates that you specified a distinguished folder ID in the
+ * request, but the account that made the request does not have a mailbox on
+ * the system.
+ *
+ * In that case, you must supply a Mailbox sub-element under
+ * DistinguishedFolderId. This response is returned from the
+ * CreateManagedFolder Operation.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MISSING_EMAIL_ADDRESS_FOR_MANAGED_FOLDER = 'ErrorMissingEmailAddressForManagedFolder';
+
+ /**
+ * This error occurs if the EmailAddress element is missing.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MISSING_INFORMATION_EMAIL_ADDRESS = 'ErrorMissingInformationEmailAddress';
+
+ /**
+ * This error occurs if the ReferenceItemId is missing.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MISSING_INFORMATION_REFERENCE_ITEM_ID = 'ErrorMissingInformationReferenceItemId';
+
+ /**
+ * This error code is never returned.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const MISSING_INFORMATION_SHARING_FOLDER_ID = 'ErrorMissingInformationSharingFolderId';
+
+ /**
+ * This error is returned when an attempt is made to not include the item
+ * element in the ItemAttachment element of a CreateAttachment Operation
+ * request.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MISSING_ITEM_FOR_CREATE_ITEM_ATTACHMENT = 'ErrorMissingItemForCreateItemAttachment';
+
+ /**
+ * This error occurs when the policy IDs property, property tag 0x6732, for
+ * the folder is missing.
+ *
+ * You should consider this a corrupted folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MISSING_MANAGED_FOLDER_ID = 'ErrorMissingManagedFolderId';
+
+ /**
+ * This error indicates that you tried to send an item without including
+ * recipients.
+ *
+ * Note that if you call the CreateItem Operation with a message disposition
+ * that causes the message to be sent, you will get the following response
+ * code: ErrorInvalidRecipients.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MISSING_RECIPIENTS = 'ErrorMissingRecipients';
+
+ /**
+ * This error indicates that a UserId has not been fully specified in a
+ * permissions set.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MISSING_USER_ID_INFORMATION = 'ErrorMissingUserIdInformation';
+
+ /**
+ * This error indicates that you have specified more than one
+ * ExchangeImpersonation property value within a request.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MORE_THAN_ONE_ACCESS_MODE_SPECIFIED = 'ErrorMoreThanOneAccessModeSpecified';
+
+ /**
+ * This error indicates that the move or copy operation failed.
+ *
+ * Moving occurs in the CreateItem Operation when you accept a meeting
+ * request that is in the Deleted Items folder. In addition, if you decline
+ * a meeting request, cancel a calendar item, or remove a meeting from your
+ * calendar, it is moved to the Deleted Items folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MOVE_COPY_FAILED = 'ErrorMoveCopyFailed';
+
+ /**
+ * This error occurs if you try to move a distinguished folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MOVE_DISTINGUISHED_FOLDER = 'ErrorMoveDistinguishedFolder';
+
+ /**
+ * This error occurs when a request attempts to access multiple mailbox
+ * servers.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const MULTI_LEGACY_MAILBOX_ACCESS = 'ErrorMultiLegacyMailboxAccess';
+
+ /**
+ * This error occurs if the ResolveNames Operation returns more than one
+ * result or the ambiguous name that you specified matches more than one
+ * object in the directory.
+ *
+ * The response code includes the matched names in the response data.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NAME_RESOLUTION_MULTIPLE_RESULTS = 'ErrorNameResolutionMultipleResults';
+
+ /**
+ * This error indicates that the caller does not have a mailbox on the
+ * system.
+ *
+ * The ResolveNames Operation or ExpandDL Operation is invalid for
+ * connecting a user without a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NAME_RESOLUTION_NO_MAILBOX = 'ErrorNameResolutionNoMailbox';
+
+ /**
+ * This error indicates that the ResolveNames Operation returns no results.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NAME_RESOLUTION_NO_RESULTS = 'ErrorNameResolutionNoResults';
+
+ /**
+ * This error MUST be returned to the first subscription connection if a
+ * second subscription connection is opened.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const NEW_EVENT_STREAM_CONNECTION_OPENED = 'ErrorNewEventStreamConnectionOpened';
+
+ /**
+ * This error code MUST be returned when the Web service cannot find a
+ * server to handle the request.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const NO_APPLICABLE_PROXY_CAS_SERVERS_AVAILABLE = 'ErrorNoApplicableProxyCASServersAvailable';
+
+ /**
+ * This error occurs if there is no Calendar folder for the mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NO_CALENDAR = 'ErrorNoCalendar';
+
+ /**
+ * This error indicates that the request referred to a mailbox in another
+ * Active Directory site, but no Client Access servers in the destination
+ * site were configured for Windows Authentication, and therefore the
+ * request could not be proxied.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NO_DESTINATION_CAS_DUE_TO_KERBEROS_REQUIREMENTS = 'ErrorNoDestinationCASDueToKerberosRequirements';
+
+ /**
+ * This error indicates that the request referred to a mailbox in another
+ * Active Directory site, but no Client Access servers in the destination
+ * site were configured for SSL connections, and therefore the request could
+ * not be proxied.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NO_DESTINATION_CAS_DUE_TO_SSL_REQUIREMENTS = 'ErrorNoDestinationCASDueToSSLRequirements';
+
+ /**
+ * This error indicates that the request referred to a mailbox in another
+ * Active Directory site, but no Client Access servers in the destination
+ * site were of an acceptable product version to receive the request, and
+ * therefore the request could not be proxied.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NO_DESTINATION_CAS_DUE_TO_VERSION_MISMATCH = 'ErrorNoDestinationCASDueToVersionMismatch';
+
+ /**
+ * No error occurred for the request.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NO_ERROR = 'NoError';
+
+ /**
+ * This error indicates that the caller tried to grant permissions in its
+ * calendar or contacts folder to a user in another organization, and the
+ * attempt failed.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const NO_EXTERNAL_SHARING_ALLOWED_BY_POLICY = 'ErrorNotAllowedExternalSharingByPolicy';
+
+ /**
+ * This error occurs if you set the FolderClass property when you are
+ * creating an item other than a generic folder.
+ *
+ * For typed folders such as CalendarFolderType and TasksFolderType, the
+ * folder class is implied. Setting the folder class to a different folder
+ * type by using the UpdateFolder Operation results in the
+ * ErrorObjectTypeChanged response. Instead, use a generic folder type but
+ * set the folder class to the value that you require. Exchange Web Services
+ * will create the correct strongly typed folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NO_FOLDER_CLASS_OVERRIDE = 'ErrorNoFolderClassOverride';
+
+ /**
+ * This error indicates that the caller does not have free/busy viewing
+ * rights on the Calendar folder in question.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NO_FREE_BUSY_ACCESS = 'ErrorNoFreeBusyAccess';
+
+ /**
+ * This error indicates that MAPI properties in the custom range, 0x8000 and
+ * greater, cannot be referenced by property tags.
+ *
+ * You must use the PropertySetId property or the DistinguishedPropertySetId
+ * property together with the PropertyName or PropertyId properties.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NO_PROPERTY_TAG_FOR_CUSTOM_PROPERTIES = 'ErrorNoPropertyTagForCustomProperties';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NO_PUBLIC_FOLDER_REPLICA_AVAILABLE = 'ErrorNoPublicFolderReplicaAvailable';
+
+ /**
+ * This error code MUST be returned if no public folder server is available
+ * or if the caller does not have a home public server.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const NO_PUBLIC_FOLDER_SERVER_AVAILABLE = 'ErrorNoPublicFolderServerAvailable';
+
+ /**
+ * This error indicates that the request referred to a mailbox in another
+ * Active Directory site, but none of the Client Access servers in that site
+ * responded, and therefore the request could not be proxied.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NO_RESPONDING_CAS_IN_DESTINATION_SITE = 'ErrorNoRespondingCASInDestinationSite';
+
+ /**
+ * This error is intended for internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const NO_SPEECH_DETECTED = 'ErrorNoSpeechDetected';
+
+ /**
+ * This error occurs when a mailbox could not be found for an email address.
+ *
+ * This error occurs in the following scenarios:
+ * - The e-mail address is empty in CreateManagedFolder.
+ * - The e-mail address does not refer to a valid account in a request that
+ * takes an e-mail address in the body or in the SOAP header, such as in an
+ * Exchange Impersonation call.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NON_EXISTENT_MAILBOX = 'ErrorNonExistentMailbox';
+
+ /**
+ * This error occurs when a caller passes in a non-primary SMTP address. The
+ * response includes the correct SMTP address to use.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NON_PRIMARY_SMTP_ADDRESS = 'ErrorNonPrimarySmtpAddress';
+
+ /**
+ * This error is returned whenever an ID that is not an item attachment ID
+ * is passed to a Web service method that expects an attachment ID.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NOT_AN_ITEM_ATTACHMENT_ID = 'ErrorInvalidIdNotAnItemAttachmentId';
+
+ /**
+ * This error indicates that the user is not a delegate for the mailbox.
+ *
+ * It is returned by the GetDelegate Operation, the RemoveDelegate
+ * Operation, and the UpdateDelegate Operation when the specified delegate
+ * user is not found in the list of delegates.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const NOT_DELEGATE = 'ErrorNotDelegate';
+
+ /**
+ * This error indicates that the operation could not be completed because of
+ * insufficient memory.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NOT_ENOUGH_MEMORY = 'ErrorNotEnoughMemory';
+
+ /**
+ * This error indicates that the operation (currently CancelItem) on the
+ * calendar item is not valid for an attendee; only the meeting organizer
+ * can cancel the meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NOT_ORGANIZER = 'ErrorCalendarIsNotOrganizer';
+
+ /**
+ * This error occurs if the object type changed.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OBJECT_TYPE_CHANGED = 'ErrorObjectTypeChanged';
+
+ /**
+ * This error occurs when the Start or End time of an occurrence is updated
+ * so that the occurrence is scheduled to happen earlier or later than the
+ * corresponding previous or next occurrence.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OCCURRENCE_CROSSING_BOUNDARY = 'ErrorOccurrenceCrossingBoundary';
+
+ /**
+ * This error indicates that the occurrence index does not point to an
+ * occurrence within the current recurrence.
+ *
+ * For example, if your recurrence pattern defines a set of three meeting
+ * occurrences and you try to access the fifth occurrence, this response
+ * code will result.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OCCURRENCE_INDEX_OUT_OF_RANGE = 'ErrorCalendarOccurrenceIndexIsOutOfRecurrenceRange';
+
+ /**
+ * This error indicates that any operation on a deleted occurrence
+ * (addressed via recurring master ID and occurrence index) is invalid.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OCCURRENCE_IS_DELETED = 'ErrorCalendarOccurrenceIsDeletedFromRecurrence';
+
+ /**
+ * This error indicates that the time allotment for a given occurrence
+ * overlaps with another occurrence of the same recurring item.
+ *
+ * This response also occurs when the length in minutes of a given
+ * occurrence is larger than Int32.MaxValue.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OCCURRENCE_TIME_SPAN_TOO_BIG = 'ErrorOccurrenceTimeSpanTooBig';
+
+ /**
+ * This error indicates that the current operation is not valid for the
+ * public folder root.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OPERATION_NOT_ALLOWED_WITH_PUBLIC_FOLDER_ROOT = 'ErrorOperationNotAllowedWithPublicFolderRoot';
+
+ /**
+ * This error indicates that the requester's organization is not federated
+ * so the requester cannot create sharing messages to send to an external
+ * user or cannot accept sharing messages received from an external user.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ORGANIZATION_NOT_FEDERATED = 'ErrorOrganizationNotFederated';
+
+ /**
+ * This error indicates that AcceptItem is invalid for the organizer’s
+ * calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ORGANIZER_FOR_ACCEPT = 'ErrorCalendarIsOrganizerForAccept';
+
+ /**
+ * This error indicates that DeclineItem is invalid for the organizer’s
+ * calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ORGANIZER_FOR_DECLINE = 'ErrorCalendarIsOrganizerForDecline';
+
+ /**
+ * This error indicates that RemoveItem is invalid for the organizer’s
+ * calendar item. To remove a meeting from the calendar, the organizer must
+ * use CancelItem.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ORGANIZER_FOR_REMOVE = 'ErrorCalendarIsOrganizerForRemove';
+
+ /**
+ * This error indicates that TentativelyAcceptItem is invalid for the
+ * organizer’s calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ORGANIZER_FOR_TENTATIVE = 'ErrorCalendarIsOrganizerForTentative';
+
+ /**
+ * This error MUST be returned when an attempt to manage Inbox rules occurs
+ * after another client has accessed the Inbox rules.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const OUTLOOK_RULE_BLOB_EXISTS = 'ErrorOutlookRuleBlobExists';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PARENT_FOLDER_ID_REQUIRED = 'ErrorParentFolderIdRequired';
+
+ /**
+ * This error occurs in the CreateFolder Operation when the parent folder is
+ * not found.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PARENT_FOLDER_NOT_FOUND = 'ErrorParentFolderNotFound';
+
+ /**
+ * This error indicates that you must change your password before you can
+ * access this mailbox.
+ *
+ * This occurs when a new account has been created and the administrator
+ * indicated that the user must change the password at first logon. You
+ * cannot update the password by using Exchange Web Services. You must use a
+ * tool such as Microsoft Office Outlook Web App to change your password.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PASSWORD_CHANGE_REQUIRED = 'ErrorPasswordChangeRequired';
+
+ /**
+ * This error indicates that the password has expired.
+ *
+ * You cannot change the password by using Exchange Web Services. You must
+ * use a tool such as Outlook Web App to change your password.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PASSWORD_EXPIRED = 'ErrorPasswordExpired';
+
+ /**
+ * This error indicates that the requester tried to grant permissions in its
+ * calendar or contacts folder to an external user but the sharing policy
+ * assigned to the requester indicates that the requested permission level
+ * is higher than what the sharing policy allows.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const PERMISSION_NOT_ALLOWED_BY_POLICY = 'ErrorPermissionNotAllowedByPolicy';
+
+ /**
+ * This error Indicates that the telephone number was not in the correct
+ * form.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const PHONE_NUMBER_NOT_DIALABLE = 'ErrorPhoneNumberNotDialable';
+
+ /**
+ * This error is intended for internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PROMPT_PUBLISHING_OPERATION_FAILED = 'ErrorPromptPublishingOperationFailed';
+
+ /**
+ * This error indicates that the update failed because of invalid property
+ * values.
+ *
+ * The response message includes the invalid property paths.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PROPERTY_UPDATE_ERROR = 'ErrorPropertyUpdate';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PROPERTY_VALIDATION_FAILURE = 'ErrorPropertyValidationFailure';
+
+ /**
+ * This error indicates that the request referred to a subscription that
+ * exists on another Client Access server, but an attempt to proxy the
+ * request to that Client Access server failed.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PROXIED_SUBSCRIPTION_CALL_FAILURE = 'ErrorProxiedSubscriptionCallFailure';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PROXY_CALL_FAILED = 'ErrorProxyCallFailed';
+
+ /**
+ * This error indicates that the request referred to a mailbox in another
+ * Active Directory site, and the original caller is a member of more than
+ * 3,000 groups.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PROXY_GROUP_SID_LIMIT_EXCEEDED = 'ErrorProxyGroupSidLimitExceeded';
+
+ /**
+ * This error indicates that the request that Exchange Web Services sent to
+ * another Client Access server when trying to fulfill a GetUserAvailability
+ * request was invalid.
+ *
+ * This response code typically indicates that a configuration or rights
+ * error has occurred, or that someone tried unsuccessfully to mimic an
+ * availability proxy request.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PROXY_REQUEST_NOT_ALLOWED = 'ErrorProxyRequestNotAllowed';
+
+ /**
+ * This error indicates that Exchange Web Services tried to proxy an
+ * availability request to another Client Access server for fulfillment, but
+ * the request failed.
+ *
+ * This response can be caused by network connectivity issues or request
+ * timeout issues.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PROXY_REQUEST_PROCESSING_FAILED = 'ErrorProxyRequestProcessingFailed';
+
+ /**
+ * This error code must be returned if the Web service cannot determine
+ * whether the request is to run on the target server or will be proxied to
+ * another server.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const PROXY_SERVICE_DISCOVERY_FAILED = 'ErrorProxyServiceDiscoveryFailed';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PROXY_TOKEN_EXPIRED = 'ErrorProxyTokenExpired';
+
+ /**
+ * This error occurs when the public folder mailbox URL cannot be found.
+ *
+ * This error is intended for internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PUBLIC_FOLDER_MAILBOX_DISCOVERY_FAILED = 'ErrorPublicFolderMailboxDiscoveryFailed';
+
+ /**
+ * This error occurs when an attempt is made to access a public folder and
+ * the attempt is unsuccessful.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PUBLIC_FOLDER_OPERATION_FAILED = 'ErrorPublicFolderOperationFailed';
+
+ /**
+ * This error occurs when the recipient that was passed to the
+ * GetUserAvailability Operation is located on a computer that is running a
+ * version of Exchange Server that is earlier than Exchange 2007, and the
+ * request to retrieve free/busy information for the recipient from the
+ * public folder server failed.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PUBLIC_FOLDER_REQUEST_PROCESSING_FAILED = 'ErrorPublicFolderRequestProcessingFailed';
+
+ /**
+ * This error occurs when the recipient that was passed to the
+ * GetUserAvailability Operation is located on a computer that is running a
+ * version of Exchange Server that is earlier than Exchange 2007, and the
+ * request to retrieve free/busy information for the recipient from the
+ * public folder server failed because the organizational unit did not have
+ * an associated public folder server.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PUBLIC_FOLDER_SERVER_NOT_FOUND = 'ErrorPublicFolderServerNotFound';
+
+ /**
+ * This error occurs when a synchronization operation succeeds against the
+ * primary public folder mailbox but does not succeed against the secondary
+ * public folder mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PUBLIC_FOLDER_SYNC_EXCEPTION = 'ErrorPublicFolderSyncException';
+
+ /**
+ * This error indicates that the search folder restriction may be valid, but
+ * it is not supported by EWS.
+ *
+ * Exchange Web Services limits restrictions to contain a maximum of 255
+ * filter expressions. If you try to bind to an existing search folder that
+ * exceeds 255, this response code is returned.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const QUERY_FILTER_TOO_LONG = 'ErrorQueryFilterTooLong';
+
+ /**
+ * This error occurs when the mailbox quota is exceeded.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const QUOTA_EXCEEDED = 'ErrorQuotaExceeded';
+
+ /**
+ * This error is returned by the GetEvents Operation or push notifications
+ * when a failure occurs while retrieving event information.
+ *
+ * When this error is returned, the subscription is deleted. Re-create the
+ * event synchronization based on a last known watermark.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const READ_EVENTS_FAILED = 'ErrorReadEventsFailed';
+
+ /**
+ * This error is returned by the CreateItem Operation if an attempt was made
+ * to suppress a read receipt when the message sender did not request a read
+ * receipt on the message or if the message is in the Junk E-mail folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const READ_RECEIPT_NOT_PENDING = 'ErrorReadReceiptNotPending';
+
+ /**
+ * This error is intended for internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const RECIPIENT_NOT_FOUND = 'ErrorRecipientNotFound';
+
+ /**
+ * This error is intended for internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const RECOGNIZER_NOT_INSTALLED = 'ErrorRecognizerNotInstalled';
+
+ /**
+ * This error occurs when the end date for the recurrence is after 9/1/4500.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const RECURRENCE_END_DATE_TOO_BIG = 'ErrorRecurrenceEndDateTooBig';
+
+ /**
+ * This error occurs when the specified recurrence does not have any
+ * occurrence instances in the specified range.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const RECURRENCE_HAS_NO_OCCURRENCE = 'ErrorRecurrenceHasNoOccurrence';
+
+ /**
+ * This error indicates that the delegate list failed to be saved after
+ * delegates were removed.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const REMOVE_DELEGATES_FAILED = 'ErrorRemoveDelegatesFailed';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const REQUEST_ABORTED = 'ErrorRequestAborted';
+
+ /**
+ * This error occurs when the request stream is larger than 400 KB.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const REQUEST_STREAM_TOO_BIG = 'ErrorRequestStreamTooBig';
+
+ /**
+ * This error is returned when a required property is missing in a
+ * CreateAttachment Operation request.
+ *
+ * The missing property URI is included in the response.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const REQUIRED_PROPERTY_MISSING = 'ErrorRequiredPropertyMissing';
+
+ /**
+ * This error indicates that the caller has specified a folder that is not a
+ * contacts folder to the ResolveNames Operation.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const RESOLVE_NAMES_INVALID_FOLDER_TYPE = 'ErrorResolveNamesInvalidFolderType';
+
+ /**
+ * This error indicates that the caller has specified more than one contacts
+ * folder to the ResolveNames Operation.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const RESOLVE_NAMES_ONLY_ONE_CONTACTS_FOLDER_ALLOWED = 'ErrorResolveNamesOnlyOneContactsFolderAllowed';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const RESPONSE_SCHEMA_VALIDATION = 'ErrorResponseSchemaValidation';
+
+ /**
+ * This error occurs when the restriction cannot be evaluated by Exchange
+ * Web Services.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const RESTRICTION_TOO_COMPLEX = 'ErrorRestrictionTooComplex';
+
+ /**
+ * This error occurs if the restriction contains more than 255 nodes.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const RESTRICTION_TOO_LONG = 'ErrorRestrictionTooLong';
+
+ /**
+ * This error indicates that the number of calendar entries for a given
+ * recipient exceeds the allowed limit of 1000.
+ *
+ * Reduce the window and try again.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const RESULT_SET_TOO_BIG = 'ErrorResultSetTooBig';
+
+ /**
+ * This error MUST be returned when a user's rule quota has been exceeded.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const RULES_OVER_QUOTA = 'ErrorRulesOverQuota';
+
+ /**
+ * This error occurs when the SavedItemFolderId is not found.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SAVED_ITEM_FOLDER_NOT_FOUND = 'ErrorSavedItemFolderNotFound';
+
+ /**
+ * This error occurs when the request cannot be validated against the
+ * schema.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SCHEMA_VALIDATION = 'ErrorSchemaValidation';
+
+ /**
+ * This error indicates that the search folder was created, but the search
+ * criteria were never set on the folder.
+ *
+ * This only occurs when you access corrupted search folders that were
+ * created by using another API or client. To fix this error, use the
+ * UpdateFolder Operation to set the SearchParameters to include the
+ * restriction that should be on the folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SEARCH_FOLDER_NOT_INITIALIZED = 'ErrorSearchFolderNotInitialized';
+
+ /**
+ * This error is returned when an unexpected photo size is requested in a
+ * GetUserPhoto operation request.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const SEARCH_QUERY_HAS_TOO_MANY_KEYWORDS = 'ErrorSearchQueryHasTooManyKeywords';
+
+ /**
+ * This error is returned when a SearchMailboxes operation request contains
+ * too many mailboxes to search.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const SEARCH_TOO_MANY_MAILBOXES = 'ErrorSearchTooManyMailboxes';
+
+ /**
+ * This error occurs when a an attempt to send a message as another user is
+ * denied.
+ *
+ * The request will be denied when both of the following conditions occur:
+ * - A user has been granted CanActAsOwner permissions but is not granted
+ * delegate rights on the principal’s mailbox.
+ * - The same user tries to create and send an e-mail message in the
+ * principal’s mailbox by using the SendAndSaveCopy option.
+ *
+ * The result is an ErrorSendAsDenied error and the creation of the e-mail
+ * message in the principal’s Drafts folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SEND_AS_DENIED = 'ErrorSendAsDenied';
+
+ /**
+ * This error is returned by the DeleteItem Operation if the
+ * SendMeetingCancellations attribute is missing from the request and the
+ * item to delete is a calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SEND_MEETING_CANCELLATIONS_REQUIRED = 'ErrorSendMeetingCancellationsRequired';
+
+ /**
+ * This error is returned by the UpdateItem Operation if the
+ * SendMeetingInvitationsOrCancellations attribute is missing from the
+ * request and the item to update is a calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SEND_MEETING_INVITATIONS_OR_CANCELLATIONS_REQUIRED = 'ErrorSendMeetingInvitationsOrCancellationsRequired';
+
+ /**
+ * This error is returned by the CreateItem Operation if the
+ * SendMeetingInvitations attribute is missing from the request and the item
+ * to create is a calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SEND_MEETING_INVITATIONS_REQUIRED = 'ErrorSendMeetingInvitationsRequired';
+
+ /**
+ * This error indicates that after the organizer sends a meeting request,
+ * the request cannot be updated.
+ *
+ * To modify the meeting, modify the calendar item, not the meeting request.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SENT_MEETING_REQUEST_UPDATE = 'ErrorSentMeetingRequestUpdate';
+
+ /**
+ * This error indicates that after the task initiator sends a task request,
+ * that request cannot be updated.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SENT_TASK_REQUEST_UPDATE = 'ErrorSentTaskRequestUpdate';
+
+ /**
+ * This error occurs when the server is busy.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SERVER_BUSY = 'ErrorServerBusy';
+
+ /**
+ * This error indicates that Exchange Web Services tried to proxy a user
+ * availability request to the appropriate forest for the recipient, but it
+ * could not determine where to send the request because of a service
+ * discovery failure.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SERVICE_DISCOVERY_FAILED = 'ErrorServiceDiscoveryFailed';
+
+ /**
+ * This error indicates that the sharing message is not supported.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const SHARING_MESSAGE_NOT_SUPPORTED = 'ErrorNotSupportedSharingMessage';
+
+ /**
+ * This error indicates that the external URL property has not been set in
+ * the Active Directory database.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const SHARING_NO_EXTERNAL_EWS_AVAILABLE = 'ErrorSharingNoExternalEwsAvailable';
+
+ /**
+ * This error indicates that an attempt at synchronizing a sharing folder
+ * failed.
+ *
+ * This error code is returned when one of the following occurs:
+ * - The subscription for a sharing folder is not found.
+ * - The sharing folder is not found
+ * - The corresponding directory user is not found
+ * - The user no longer exists.
+ * - The appointment is invalid
+ * - The contact item is invalid.
+ * - There is a communication failure with the remote server.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const SHARING_SYNCHRONIZATION_FAILED = 'ErrorSharingSynchronizationFailed';
+
+ /**
+ * This error is intended for internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const SPEECH_GRAMMAR_ERROR = 'ErrorSpeechGrammarError';
+
+ /**
+ * This error occurs in an UpdateItem Operation or a SendItem Operation when
+ * the change key is not up-to-date or was not supplied.
+ *
+ * Call the GetItem Operation to retrieve an updated change key and then try
+ * the operation again.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const STALE_OBJECT = 'ErrorStaleObject';
+
+ /**
+ * This error occurs when the caller specifies an Id attribute that is too
+ * long.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const STORE_OBJECT_ID_TOO_LONG = 'ErrorInvalidIdStoreObjectIdTooLong';
+
+ /**
+ * This error Indicates that a user cannot immediately send more requests
+ * because the submission quota has been reached.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const SUBMISSION_QUOTE_EXCEEDED = 'ErrorSubmissionQuotaExceeded';
+
+ /**
+ * This error occurs when you try to access a subscription by using an
+ * account that did not create that subscription.
+ *
+ * Each subscription can only be accessed by the creator of the
+ * subscription.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SUBSCRIPTION_ACCESS_DENIED = 'ErrorSubscriptionAccessDenied';
+
+ /**
+ * This error indicates that you cannot create a subscription if you are not
+ * the owner or do not have owner access to the mailbox.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const SUBSCRIPTION_DELEGATE_ACCESS_NOT_SUPPORTED = 'ErrorSubscriptionDelegateAccessNotSupported';
+
+ /**
+ * This error occurs if the subscription that corresponds to the specified
+ * SubscriptionId is not found.
+ *
+ * The subscription may have expired, the Exchange Web Services process may
+ * have been restarted, or an invalid subscription was passed in. If the
+ * subscription was valid, re-create the subscription with the latest
+ * watermark. This is returned by the Unsubscribe Operation or the GetEvents
+ * Operation responses.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SUBSCRIPTION_NOT_FOUND = 'ErrorSubscriptionNotFound';
+
+ /**
+ * This error code must be returned when a request is made for a
+ * subscription that has been unsubscribed.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const SUBSCRIPTION_UNSUBSCRIBED = 'ErrorSubscriptionUnsubsribed';
+
+ /**
+ * This error is returned by the SyncFolderItems Operation if the parent
+ * folder that is specified cannot be found.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SYNC_FOLDER_NOT_FOUND = 'ErrorSyncFolderNotFound';
+
+ /**
+ * This error code is not used.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const TEAM_MAILBOX_ACTIVE_TO_PENDING_DELETE = 'ErrorTeamMailboxActiveToPendingDelete';
+
+ /**
+ * This error indicates a general error that can occur when trying to access
+ * a team mailbox.
+ *
+ * Try submitting the request at a later time.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const TEAM_MAILBOX_ERROR_UNKNOWN = 'ErrorTeamMailboxErrorUnknown';
+
+ /**
+ * This error indicates that an attempt to send a notification to the team
+ * mailbox owners was unsuccessful.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const TEAM_MAILBOX_FAILED_SENDING_NOTIFICATIONS = 'ErrorTeamMailboxFailedSendingNotifications';
+
+ /**
+ * This error code is not used.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const TEAM_MAILBOX_NOT_AUTHORIZED_OWNER = 'ErrorTeamMailboxNotAuthorizedOwner';
+
+ /**
+ * This error indicates that a team mailbox was not found.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const TEAM_MAILBOX_NOT_FOUND = 'ErrorTeamMailboxNotFound';
+
+ /**
+ * This error indicates that a team mailbox was found but that it is not
+ * linked to a SharePoint Server.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const TEAM_MAILBOX_NOT_LINKED_TO_SHARE_POINT = 'ErrorTeamMailboxNotLinkedToSharePoint';
+
+ /**
+ * This error indicates that a team mailbox was found but that the link to
+ * the SharePoint Server is not valid.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const TEAM_MAILBOX_URL_VALIDATION_FAILED = 'ErrorTeamMailboxUrlValidationFailed';
+
+ /**
+ * This error indicates that the time window that was specified is larger
+ * than the allowed limit.
+ *
+ * By default, the allowed limit is 42.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TIME_INTERVAL_TOO_BIG = 'ErrorTimeIntervalTooBig';
+
+ /**
+ * This error indicates that there is a time zone error.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TIME_ZONE_ERROR = 'ErrorTimeZone';
+
+ /**
+ * This error occurs when there is not enough time to complete the
+ * processing of the request.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TIMEOUT_EXPIRED = 'ErrorTimeoutExpired';
+
+ /**
+ * This error indicates that the destination folder does not exist.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TO_FOLDER_NOT_FOUND = 'ErrorToFolderNotFound';
+
+ /**
+ * This error occurs if the caller tries to do a Token serialization request
+ * but does not have the ms-Exch-EPI-TokenSerialization right on the Client
+ * Access server.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TOKEN_SERIALIZATION_DENIED = 'ErrorTokenSerializationDenied';
+
+ /**
+ * This error is returned when the attachment hierarchy on an item exceeds
+ * the maximum of 255 levels deep.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TOO_MANY_ATTACHMENT_LEVELS = 'ErrorInvalidIdTooManyAttachmentLevels';
+
+ /**
+ * This error is intended for internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const UM_SERVER_UNAVAILABLE = 'ErrorUMServerUnavailable';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const UNABLE_TO_GET_USER_OOF_SETTINGS = 'ErrorUnableToGetUserOofSettings';
+
+ /**
+ * This error occurs when an unsuccessful attempt is made to remove an IM
+ * contact from a group.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const UNABLE_TO_REMOVE_IM_CONTACT_FROM_GROUP = 'ErrorUnableToRemoveImContactFromGroup';
+
+ /**
+ * This error indicates that a user's dial plan is not available.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const UNIFIED_MESSAGING_DIAL_PLAN_NOT_FOUND = 'ErrorUnifiedMessagingDialPlanNotFound';
+
+ /**
+ * This error is intended for internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const UNIFIED_MESSAGING_PROMPT_NOT_FOUND = 'ErrorUnifiedMessagingPromptNotFound';
+
+ /**
+ * This error is intended for internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const UNIFIED_MESSAGING_REPORT_DATA_NOT_FOUND = 'ErrorUnifiedMessagingReportDataNotFound';
+
+ /**
+ * This error indicates that the user could not be found.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const UNIFIED_MESSAGING_REQUEST_FAILED = 'ErrorUnifiedMessagingRequestFailed';
+
+ /**
+ * This error indicates that a valid server for the dial plan could not be
+ * found to handle the request.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const UNIFIED_MESSAGING_SERVER_NOT_FOUND = 'ErrorUnifiedMessagingServerNotFound';
+
+ /**
+ * This error occurs when you try to set the Culture property to a value
+ * that is not parsable by the System.Globalization.CultureInfo class.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const UNSUPPORTED_CULTURE = 'ErrorUnsupportedCulture';
+
+ /**
+ * This error occurs when a caller tries to use extended properties of types
+ * object, object array, error, or null.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const UNSUPPORTED_MAPI_PROPERTY_TYPE = 'ErrorUnsupportedMapiPropertyType';
+
+ /**
+ * This error occurs when you are trying to retrieve or set MIME content for
+ * an item other than a PostItemType, MessageType, or CalendarItemType
+ * object.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const UNSUPPORTED_MIME_CONVERSION = 'ErrorUnsupportedMimeConversion';
+
+ /**
+ * This error occurs when the caller passes a property that is invalid for a
+ * query.
+ *
+ * This can occur when calculated properties are used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const UNSUPPORTED_PATH_FOR_QUERY = 'ErrorUnsupportedPathForQuery';
+
+ /**
+ * This error occurs when the caller passes a property that is invalid for a
+ * sort or group by property.
+ *
+ * This can occur when calculated properties are used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const UNSUPPORTED_PATH_FOR_SORT_GROUP = 'ErrorUnsupportedPathForSortGroup';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const UNSUPPORTED_PROPERTY_DEFINITION = 'ErrorUnsupportedPropertyDefinition';
+
+ /**
+ * This error indicates that the search folder restriction may be valid, but
+ * it is not supported by EWS.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const UNSUPPORTED_QUERY_FILTER = 'ErrorUnsupportedQueryFilter';
+
+ /**
+ * This error indicates that the specified recurrence is not supported for
+ * tasks.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const UNSUPPORTED_RECURRENCE = 'ErrorUnsupportedRecurrence';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const UNSUPPORTED_SUBFILTER = 'ErrorUnsupportedSubFilter';
+
+ /**
+ * This error indicates that Exchange Web Services found a property type in
+ * the store but it cannot generate XML for the property type.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const UNSUPPORTED_TYPE_FOR_CONVERSION = 'ErrorUnsupportedTypeForConversion';
+
+ /**
+ * This error indicates that the delegate list failed to be saved after
+ * delegates were updated.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const UPDATE_DELEGATES_FAILED = 'ErrorUpdateDelegatesFailed';
+
+ /**
+ * This error occurs when the single property path that is listed in a
+ * change description does not match the single property that is being set
+ * within the actual ItemType or FolderType object.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const UPDATE_PROPERTY_MISMATCH = 'ErrorUpdatePropertyMismatch';
+
+ /**
+ * This error indicates that the requester tried to grant permissions in its
+ * calendar or contacts folder to an external user but the sharing policy
+ * assigned to the requester indicates that the domain of the external user
+ * is not listed in the policy.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const USER_NOT_ALLOWED_BY_POLICY = 'ErrorUserNotAllowedByPolicy';
+
+ /**
+ * This error indicates that the requester is not enabled.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const USER_NOT_UNIFIED_MESSAGING_ENABLED = 'ErrorUserNotUnifiedMessagingEnabled';
+
+ /**
+ * Indicates that the requester's organization has a set of federated
+ * domains but the requester's organization does not have any SMTP proxy
+ * addresses with one of the federated domains.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const USER_WITHOUT_FEDERATED_PROXY_ADDRESS = 'ErrorUserWithoutFederatedProxyAddress';
+
+ /**
+ * This error indicates that a calendar view start date or end date was set
+ * to 1/1/0001 12:00:00 AM or 12/31/9999 11:59:59 PM.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const VALUE_OUT_OF_RANGE = 'ErrorValueOutOfRange';
+
+ /**
+ * This error occurs when Start to End range for the CalendarView element is
+ * more than the maximum allowed, currently 2 years.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const VIEW_RANGE_TOO_BIG = 'ErrorCalendarViewRangeTooBig';
+
+ /**
+ * This error indicates that the Exchange store detected a virus in the
+ * message.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const VIRUS_DETECTED = 'ErrorVirusDetected';
+
+ /**
+ * This error indicates that the Exchange store detected a virus in the
+ * message and deleted it.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const VIRUS_MESSAGE_DELETED = 'ErrorVirusMessageDeleted';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const VOICE_MAIL_NOT_IMPLEMENTED = 'ErrorVoiceMailNotImplemented';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const WEB_REQUEST_IN_INVALID_STATE = 'ErrorWebRequestInInvalidState';
+
+ /**
+ * This error indicates that there was an internal failure during
+ * communication with unmanaged code.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const WIN32_INTEROP_ERROR = 'ErrorWin32InteropError';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const WORKING_HOURS_SAVE_FAILED = 'ErrorWorkingHoursSaveFailed';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const WORKING_HOURS_XML_MALFORMED = 'ErrorWorkingHoursXmlMalformed';
+
+ /**
+ * This error indicates that a request can only be made to a server that is
+ * the same version as the mailbox server.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const WRONG_SERVER_VERSION = 'ErrorWrongServerVersion';
+
+ /**
+ * This error indicates that a request was made by a delegate that has a
+ * different server version than the principal's mailbox server.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const WRONG_SERVER_VERSION_DELEGATE = 'ErrorWrongServerVersionDelegate';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ResponseTypeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ResponseTypeType.php
new file mode 100644
index 00000000..3329465f
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ResponseTypeType.php
@@ -0,0 +1,70 @@
+ $value) {
+ // If the value of the property is an object then clone it.
+ if (is_object($value)) {
+ $this->$property = clone $value;
+ } elseif (is_array($value)) {
+ // The value is an array that may use objects as values. Iterate
+ // over the array and clone any values that are objects into a
+ // new array.
+ // For some reason, if we try to set $this->$property to an
+ // empty array then update it as we go it ends up being empty.
+ // If we use a new array that we then set as the value of
+ // $this->$property all is well.
+ $new_value = array();
+ foreach ($value as $index => $array_value) {
+ $new_value[$index] = (is_object($array_value) ? clone $array_value : $array_value);
+ }
+
+ // Set the property to the new array.
+ $this->$property = $new_value;
+ }
+ }
+ }
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AbsoluteDateTransitionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AbsoluteDateTransitionType.php
new file mode 100644
index 00000000..fb06c47b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AbsoluteDateTransitionType.php
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+ Represents the message keys that can be returned by response error messages
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Converts the passed source ids into the destination format. Change keys are not
+ returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Response type for the ConvertId web method
+
+
+
+
+
+
+
+
+
+
+ Response Message for a single id conversion in the ConvertId web method. Note
+ that the AlternateId element will be missing in the case of an error.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Request type for the FindMailboxStatisticsByKeywords web method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Response type for the FindMailboxStatisticsByKeywords web method.
+
+
+
+
+
+
+
+
+
+
+
+ Response message type for the FindMailboxStatisticsByKeywords web method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Request type for the GetSearchableMailboxes web method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Response message type for the GetSearchableMailboxes web method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Request type for the SearchMailboxes web method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Response type for the SearchMailboxes web method.
+
+
+
+
+
+
+
+
+
+
+
+ Response message type for the SearchMailboxes web method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Request type for the GetDiscoverySearchConfiguration web method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Response message type for the GetDiscoverySearchConfiguration web method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Request type for the GetHoldOnMailboxes web method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Response message type for the GetHoldOnMailboxes web method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Request type for the SetHoldOnMailboxes web method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Response message type for the SetHoldOnMailboxes web method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Request type for the GetNonIndexableItemStatistics web method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Response message type for the GetNonIndexableItemStatistics web method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Request type for the GetNonIndexableItemDetails web method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Response message type for the GetNonIndexableItemDetails web method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Request type for the GetUserRetentionPolicyTags web method.
+
+
+
+
+
+
+
+
+
+
+
+
+ Response message type for the GetUserRetentionPolicyTags web method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/assets/services.wsdl b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/assets/services.wsdl
new file mode 100644
index 00000000..7461185f
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/assets/services.wsdl
@@ -0,0 +1,3624 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/assets/types.xsd b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/assets/types.xsd
new file mode 100644
index 00000000..52f4f189
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/assets/types.xsd
@@ -0,0 +1,9779 @@
+
+
+
+
+
+
+
+
+
+
+
+ Allow attributes in the soap namespace to be used here
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Allow attributes in the soap namespace to be used here
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Allow attributes in the soap namespace to be used here
+
+
+
+
+
+
+
+ Surfaces the various logon types that are supported for conversion
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Allow attributes in the soap namespace to be used here
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Allow attributes in the soap namespace to be used here
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Allow attributes in the soap namespace to be used here
+
+
+
+
+
+
+
+
+
+ Precision for returned DateTime values
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Identifier for a fully resolved email address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extends EmailAddress by adding the external object id
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The regular expression captures the standard representation of a GUID
+
+
+
+
+
+
+
+
+
+
+ Defines the well known property set ids for extended properties.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Includes all of the extended property types that we support. Note that Error, Null,
+ Object and Object array can not be used in restrictions, or for setting/getting values.
+ They are only there for error reporting purposes.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This type represents the property tag (MINUS the type part). There are two options
+ for representation:
+ 1. Hex ==> 0x3fa4
+ 2. Decimal ==> 0-65535
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents an extended property. Note that there are only a couple of valid attribute
+ combinations. Note that all occurrences require the PropertyType attribute.
+
+ 1. (DistinguishedPropertySetId || PropertySetId) + (PropertyName || Property Id)
+ 2. PropertyTag
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents an extended property instance (both its path identifier along with its
+ associated value).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Types of sub-tree traversal for deletion and enumeration
+
+
+
+
+
+
+
+
+
+
+ Types of sub-tree traversal for deletion and enumeration
+
+
+
+
+
+
+
+
+
+ Types of sub-tree traversal for deletion and enumeration
+
+
+
+
+
+
+
+
+
+
+ Types of sub-tree traversal for conversations
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Type of conflict resolution to attempt during update
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Utility type which should never appear in user documents
+
+
+
+
+
+
+
+
+
+
+ URIs for the distinguished folders accessible from a mailbox
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Identifier for a distinguished folder
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Identifier for a fully resolved folder
+
+
+
+
+
+
+
+
+
+
+
+ Identifier for a address list
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Types of view filters for finding items/conversations
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Compound property for Managed Folder related information for Managed Folders.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Abstract base type for item identifiers. Should never be used in web service calls
+
+
+
+
+
+
+
+
+
+
+ Identifier for a fully resolved item
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Internal abstract base type for reply objects.
+ Should not appear in client code
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Abstract base type for reply objects
+
+
+
+
+
+
+ The name of this reply object class as an English string. The client
+ application is required to translate it if it's running in a different locale
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Allow attributes in the soap namespace to be used here
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This max/min evaluation is applied to the field specified within the group by
+ instance for EACH item within that group. This determines which item from each group
+ is to be selected as the representative for that group.
+
+
+
+
+
+
+
+
+
+
+
+ Represents the field of each item to aggregate on and the qualifier to apply to that
+ field in determining which item will represent the group.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Allows consumers to specify arbitrary groupings for FindItem queries.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents standard groupings for GroupBy queries.
+
+
+
+
+
+
+
+
+
+
+ Allows consumers to access standard groupings for FindItem queries. This is in
+ contrast to the arbitrary (custom) groupings available via the t:GroupByType
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Surfaces the various id types that are supported for conversion
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Surfaces alternate representations of an item or folder id. No change key is included.
+
+
+
+
+
+
+
+
+ Represents an alternate mailbox folder or item Id.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents an alternate public folder Id.
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents an alternate public folder item Id.
+
+
+
+
+
+
+
+
+
+
+
+
+ A non-empty array of alternate Ids.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A permission on a folder
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A permission on a folder
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The set of permissions on a folder
+
+
+
+
+
+
+
+
+
+ The set of permissions on a folder
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents the message keys that can be returned for invalid recipients
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Surfaces the various report message action types
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Size range type used for the WithinSizeRange rule predicate.
+
+
+
+
+
+
+
+
+
+ Date range type used for the WithinDateRange rule predicate.
+
+
+
+
+
+
+
+
+
+ Flagged for action enumeration, currently used in FlaggedForAction rule predicate
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Rule predicates, used as rule conditions or exceptions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Rule actions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Rule type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Array of rule objects
+
+
+
+
+
+
+
+ Rule field URI enumerates all possible rule fields that could trigger validation error
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Rule validation error code describing what failed validation for each rule predicate or action.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents a single validation error on a particular rule property value, predicate property value or action property value
+
+
+
+
+
+
+
+
+
+
+
+ Represents an array of rule validation errors
+
+
+
+
+
+
+
+
+ Represents a rule operation to be performed
+
+
+
+
+
+ Represents an array of rule operations to be performed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Array of search item kind enum.
+
+
+
+
+
+
+
+
+
+
+ User Mailbox.
+
+
+
+
+
+
+
+
+
+ Array of user mailbox.
+
+
+
+
+
+
+
+
+
+
+ Searchable mailbox.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Array of searchable mailbox.
+
+
+
+
+
+
+
+
+
+
+ Keyword statistics search result.
+
+
+
+
+
+
+
+
+
+
+
+
+ Array of keyword statistics result.
+
+
+
+
+
+
+
+
+
+
+ Mailbox statistics search result.
+
+
+
+
+
+
+
+
+
+
+
+
+ Extended attributes of a target mailbox.
+
+
+
+
+
+
+
+
+
+
+
+ Array of extended attributes of a target mailbox
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Set of mailbox, search scope and its extended attributes.
+
+
+
+
+
+
+
+
+
+
+
+
+ Array of mailbox and its search scope.
+
+
+
+
+
+
+
+
+
+
+ Pair of query and a set of mailbox search scopes.
+
+
+
+
+
+
+
+
+
+
+
+ Mailbox information for each preview item.
+
+
+
+
+
+
+
+
+
+
+
+ Array of query and mailboxes.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Mailbox search preview item.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Array of search preview item.
+
+
+
+
+
+
+
+
+
+
+ Mailbox failed on search and its error message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Array of failed mailbox and error message.
+
+
+
+
+
+
+
+
+
+
+ Mailboxes search result.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Search refiner item.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Array of search refiner item.
+
+
+
+
+
+
+
+
+
+
+
+
+ OneDrive search result item.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ File search result item.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Delve search result item.
+
+
+
+
+
+
+
+
+
+
+
+
+ Mailbox statistics item.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Array of mailbox statistics item.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Mailbox hold status.
+
+
+
+
+
+
+
+
+
+
+
+
+ Array of mailbox hold status.
+
+
+
+
+
+
+
+
+
+
+ Mailbox hold result.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Non indexable item statistic.
+
+
+
+
+
+
+
+
+
+
+
+
+ Array of non indexable item statistics.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Non indexable item detail.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Array of non indexable item details.
+
+
+
+
+
+
+
+
+
+
+ Non indexable item details result.
+
+
+
+
+
+
+
+
+
+
+
+ Discovery search configuration.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Array of discovery search configuration.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Retention policy tag.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Array of retention policy tags.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A Group on the ImContactList, with one or more members
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IM Contact List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ List of possible reasons for disabling the client extension
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Identifier for an item in search results
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Identifier for a conversation item in search results
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reasons no suggestions are returned by FindMeetingTimeCandidates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpNtlm/SoapClient.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpNtlm/SoapClient.php
new file mode 100644
index 00000000..21c77cbf
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpNtlm/SoapClient.php
@@ -0,0 +1,226 @@
+ null,
+ 'password' => null,
+ 'curlopts' => array(),
+ 'strip_bad_chars' => true,
+ 'warn_on_bad_chars' => false,
+ );
+ $this->options = $options;
+
+ // Verify that a user name and password were entered.
+ if (empty($options['user']) || empty($options['password'])) {
+ throw new \BadMethodCallException(
+ 'A username and password is required.'
+ );
+ }
+
+ parent::__construct($wsdl, $options);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function __doRequest($request, $location, $action, $version, $one_way = 0)
+ {
+ $headers = $this->buildHeaders($action);
+ $this->__last_request = $request;
+ $this->__last_request_headers = $headers;
+
+ // Only reinitialize curl handle if the location is different.
+ if (!$this->ch
+ || curl_getinfo($this->ch, CURLINFO_EFFECTIVE_URL) != $location) {
+ $this->ch = curl_init($location);
+ }
+
+ curl_setopt_array($this->ch, $this->curlOptions($action, $request));
+ $response = curl_exec($this->ch);
+
+ // TODO: Add some real error handling.
+ // If the response if false than there was an error and we should throw
+ // an exception.
+ if ($response === false) {
+ $this->__last_response = $this->__last_response_headers = false;
+ throw new \RuntimeException(
+ 'Curl error: ' . curl_error($this->ch),
+ curl_errno($this->ch)
+ );
+ }
+
+ $this->parseResponse($response);
+ $this->cleanResponse();
+
+ return $this->__last_response;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function __getLastRequestHeaders()
+ {
+ return implode("\n", $this->__last_request_headers) . "\n";
+ }
+
+ /**
+ * Returns the response code from the last request
+ *
+ * @return integer
+ *
+ * @throws \BadMethodCallException
+ * If no cURL resource has been initialized.
+ */
+ public function getResponseCode()
+ {
+ if (empty($this->ch)) {
+ throw new \BadMethodCallException('No cURL resource has been '
+ . 'initialized. This is probably because no request has not '
+ . 'been made.');
+ }
+
+ return curl_getinfo($this->ch, CURLINFO_HTTP_CODE);
+ }
+
+ /**
+ * Builds the headers for the request.
+ *
+ * @param string $action
+ * The SOAP action to be performed.
+ */
+ protected function buildHeaders($action)
+ {
+ return array(
+ 'Method: POST',
+ 'Connection: Keep-Alive',
+ 'User-Agent: PHP-SOAP-CURL',
+ 'Content-Type: text/xml; charset=utf-8',
+ "SOAPAction: \"$action\"",
+ 'Expect: 100-continue',
+ );
+ }
+
+ /**
+ * Cleans the response body by stripping bad characters if instructed to.
+ */
+ protected function cleanResponse()
+ {
+ // If the option to strip bad characters is not set, then we shouldn't
+ // do anything here.
+ if (!$this->options['strip_bad_chars']) {
+ return;
+ }
+
+ // Strip invalid characters from the XML response body.
+ $count = 0;
+ $this->__last_response = preg_replace(
+ '/(?!?(9|A|D))([0-1]?[0-9A-F];)/',
+ ' ',
+ $this->__last_response,
+ -1,
+ $count
+ );
+
+ // If the option to warn on bad characters is set, and some characters
+ // were stripped, then trigger a warning.
+ if ($this->options['warn_on_bad_chars'] && $count > 0) {
+ trigger_error(
+ 'Invalid characters were stripped from the XML SOAP response.',
+ E_USER_WARNING
+ );
+ }
+ }
+
+ /**
+ * Builds an array of curl options for the request
+ *
+ * @param string $action
+ * The SOAP action to be performed.
+ * @param string $request
+ * The XML SOAP request.
+ * @return array
+ * Array of curl options.
+ */
+ protected function curlOptions($action, $request)
+ {
+ $options = $this->options['curlopts'] + array(
+ CURLOPT_SSL_VERIFYPEER => true,
+ CURLOPT_RETURNTRANSFER => true,
+ CURLOPT_HTTPHEADER => $this->buildHeaders($action),
+ CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
+ CURLOPT_HTTPAUTH => CURLAUTH_BASIC | CURLAUTH_NTLM,
+ CURLOPT_USERPWD => $this->options['user'] . ':'
+ . $this->options['password'],
+ );
+
+ // We shouldn't allow these options to be overridden.
+ $options[CURLOPT_HEADER] = true;
+ $options[CURLOPT_POST] = true;
+ $options[CURLOPT_POSTFIELDS] = $request;
+
+ return $options;
+ }
+
+ /**
+ * Pareses the response from a successful request.
+ *
+ * @param string $response
+ * The response from the cURL request, including headers and body.
+ */
+ public function parseResponse($response)
+ {
+ // Parse the response and set the last response and headers.
+ $info = curl_getinfo($this->ch);
+ $this->__last_response_headers = substr(
+ $response,
+ 0,
+ $info['header_size']
+ );
+ $this->__last_response = substr($response, $info['header_size']);
+ }
+}
diff --git a/modules-available/locationinfo/inc/coursebackend/coursebackend_exchange.inc.php b/modules-available/locationinfo/inc/coursebackend/coursebackend_exchange.inc.php
new file mode 100755
index 00000000..a62ea6d5
--- /dev/null
+++ b/modules-available/locationinfo/inc/coursebackend/coursebackend_exchange.inc.php
@@ -0,0 +1,242 @@
+getClient();
+ $request = new ResolveNamesType();
+ $request->UnresolvedEntry = $this->username;
+ $request->ReturnFullContactData = false;
+
+ try {
+ $response = $client->ResolveNames($request);
+ } catch (Exception $e) {
+ $this->error = $e->getMessage();
+ return false;
+ }
+
+ try {
+ if ($response->ResponseMessages->ResolveNamesResponseMessage[0]->ResponseCode === "NoError") {
+ $mailadress = $response->ResponseMessages->ResolveNamesResponseMessage[0]->ResolutionSet->Resolution[0]->Mailbox->EmailAddress;
+ return !empty($mailadress);
+ }
+ } catch (Exception $e) {
+ $this->error = $e->getMessage();
+ }
+ return false;
+ }
+
+ /**
+ * uses json to setCredentials, the json must follow the form given in
+ * getCredentials
+ *
+ * @param array $data assoc array with data required by backend
+ * @returns bool if the credentials were in the correct format
+ */
+ public function setCredentialsInternal($data)
+ {
+ foreach (['username', 'password'] as $field) {
+ if (empty($data[$field])) {
+ $this->error = 'setCredentials: Missing field ' . $field;
+ return false;
+ }
+ }
+
+ if (empty($data['serverAddress'])) {
+ $this->error = "No url is given";
+ return false;
+ }
+
+ $this->username = $data['username'];
+ $this->password = $data['password'];
+
+ $this->serverAddress = $data['serverAddress'];
+ $this->clientVersion = $data['clientVersion'];
+
+ $this->verifyHostname = $data['verifyHostname'];
+ $this->verifyCert = $data['verifyCert'];
+
+ return true;
+ }
+
+ /**
+ * @return int desired caching time of results, in seconds. 0 = no caching
+ */
+ public function getCacheTime()
+ {
+ return 0;
+ }
+
+ /**
+ * @return int age after which timetables are no longer refreshed. should be
+ * greater than CacheTime.
+ */
+ public function getRefreshTime()
+ {
+ return 0;
+ }
+
+ /**
+ * Internal version of fetch, to be overridden by subclasses.
+ *
+ * @param $roomIds array with local ID as key and serverId as value
+ * @return array a recursive array that uses the roomID as key
+ * and has the schedule array as value. A shedule array contains an array in this format:
+ * ["start"=>'JJJJ-MM-DD HH:MM:SS',"end"=>'JJJJ-MM-DD HH:MM:SS',"title"=>string]
+ */
+ protected function fetchSchedulesInternal($requestedRoomIds)
+ {
+ $startDate = new DateTime('today 0:00');
+ $endDate = new DateTime('+7 days 0:00');
+ $client = $this->getClient();
+
+ $schedules = [];
+ foreach ($requestedRoomIds as $roomId) {
+ try {
+ $items = $this->findEventsForRoom($client, $startDate, $endDate, $roomId);
+ } catch (Exception $e) {
+ $this->error .= "Failed to search for events for room $roomId: '{$e->getMessage()}'\n";
+ continue;
+ }
+
+ // Iterate over the events that were found, printing some data for each.
+ foreach ($items as $item) {
+ $start = new DateTime($item->Start);
+ $end = new DateTime($item->End);
+
+ $schedules[$roomId][] = array(
+ 'title' => $item->Subject,
+ 'start' => $start->format('Y-m-d') . "T" . $start->format('G:i:s'),
+ 'end' => $end->format('Y-m-d') . "T" . $end->format('G:i:s')
+ );
+ }
+ }
+ return $schedules;
+ }
+
+ /**
+ * @param \jamesiarmes\PhpEws\Client $client
+ * @param \DateTime $startDate
+ * @param \DateTime $endDate
+ * @param string $roomAddress
+ * @return \jamesiarmes\PhpEws\Type\CalendarItemType[]
+ */
+ public function findEventsForRoom($client, $startDate, $endDate, $roomAddress)
+ {
+ $request = new FindItemType();
+ $request->Traversal = ItemQueryTraversalType::SHALLOW;
+ $request->ItemShape = new ItemResponseShapeType();
+ $request->ItemShape->BaseShape = DefaultShapeNamesType::ALL_PROPERTIES;
+
+ $request->CalendarView = new CalendarViewType();
+ $request->CalendarView->StartDate = $startDate->format('c');
+ $request->CalendarView->EndDate = $endDate->format('c');
+ $folderId = new DistinguishedFolderIdType();
+ $folderId->Id = DistinguishedFolderIdNameType::CALENDAR;
+ $folderId->Mailbox = new EmailAddressType();
+ $folderId->Mailbox->EmailAddress = $roomAddress;
+ $request->ParentFolderIds->DistinguishedFolderId[] = $folderId;
+ $response = $client->FindItem($request);
+ $response_messages = $response->ResponseMessages->FindItemResponseMessage;
+
+ $items = [];
+ foreach ($response_messages as $response_message) {
+ // Make sure the request succeeded.
+ if ($response_message->ResponseClass !== ResponseClassType::SUCCESS) {
+ $code = $response_message->ResponseCode;
+ $message = $response_message->MessageText;
+ $this->error .= "Failed to search for events for room $roomAddress: '$code: $message'\n";
+ continue;
+ }
+ $items = array_merge($items, $response_message->RootFolder->Items->CalendarItem);
+ }
+ return $items;
+ }
+
+ /**
+ * @return \jamesiarmes\PhpEws\Client
+ */
+ public function getClient()
+ {
+ $client = new Client($this->serverAddress, $this->username, $this->password, $this->clientVersion);
+ $client->setTimezone($this->timezone);
+ $client->setCurlOptions(array(
+ CURLOPT_SSL_VERIFYPEER => $this->verifyHostname,
+ CURLOPT_SSL_VERIFYHOST => $this->verifyCert
+ ));
+
+ return $client;
+ }
+
+}
diff --git a/modules-available/locationinfo/inc/coursebackend/exchange.todo b/modules-available/locationinfo/inc/coursebackend/exchange.todo
deleted file mode 100755
index 538f7382..00000000
--- a/modules-available/locationinfo/inc/coursebackend/exchange.todo
+++ /dev/null
@@ -1,203 +0,0 @@
-getClient();
- $request = new ResolveNamesType();
- $request->UnresolvedEntry = $this->username;
- $request->ReturnFullContactData = false;
-
- try {
- $response = $client->ResolveNames($request);
- } catch (Exception $e) {
- error_log("There was an error");
- error_log($e->getMessage());
- return false;
- }
-
- if ($response->ResponseMessages->ResolveNamesResponseMessage[0]->ResponseCode == "NoError") {
- $mailadress = $response->ResponseMessages->ResolveNamesResponseMessage[0]->ResolutionSet->Resolution[0]->Mailbox->EmailAddress;
- return !empty($mailadress);
- }
- return false;
- }
-
- /**
- * uses json to setCredentials, the json must follow the form given in
- * getCredentials
- *
- * @param array $data assoc array with data required by backend
- * @returns bool if the credentials were in the correct format
- */
- public function setCredentialsInternal($data) {
- foreach (['username', 'password'] as $field) {
- if (empty($data[$field])) {
- $this->error = 'setCredentials: Missing field ' . $field;
- return false;
- }
- }
-
- if (empty($data['baseUrl'])) {
- $this->error = "No url is given";
- return false;
- }
-
- $this->username = $data['username'];
- $this->password = $data['password'];
-
- $this->baseUrl = $data['baseUrl'];
- $this->client_version = $data['client_version'];
-
- $this->verifyHostname = $data['verifyHostname'];
- $this->verifyCert = $data['verifyCert'];
-
- return true;
- }
-
- /**
- * @return int desired caching time of results, in seconds. 0 = no caching
- */
- public function getCacheTime() {
- return 0;
- }
-
- /**
- * @return int age after which timetables are no longer refreshed should be
- * greater then CacheTime
- */
- public function getRefreshTime() {
- return 0;
- }
-
- /**
- * Internal version of fetch, to be overridden by subclasses.
- *
- * @param $roomIds array with local ID as key and serverId as value
- * @return array a recursive array that uses the roomID as key
- * and has the schedule array as value. A shedule array contains an array in this format:
- * ["start"=>'JJJJ-MM-DD HH:MM:SS',"end"=>'JJJJ-MM-DD HH:MM:SS',"title"=>string]
- */
- protected function fetchSchedulesInternal($requestedRoomIds) {
- $startDate = new DateTime('today 0:00');
- $endDate = new DateTime('+7 days 0:00');
- $client = $this->getClient();
-
- $schedules = [];
- foreach ($requestedRoomIds as $roomId) {
- $items = $this->findEventsForRoom($client, $startDate, $endDate, $roomId);
-
- // Iterate over the events that were found, printing some data for each.
- foreach ($items as $item) {
- $start = new DateTime($item->Start);
- $end = new DateTime($item->End);
-
- $schedules[$roomId][] = array(
- 'title' => $item->Subject,
- 'start' => $start->format('Y-m-d') . "T" . $start->format('G:i:s'),
- 'end' => $end->format('Y-m-d') . "T" . $end->format('G:i:s')
- );
- }
- }
- return $schedules;
- }
-
- public function findEventsForRoom($client, $start_date, $end_date, $email_room) {
- $request = new FindItemType();
- $request->Traversal = ItemQueryTraversalType::SHALLOW;
- $request->ItemShape = new ItemResponseShapeType();
- $request->ItemShape->BaseShape = DefaultShapeNamesType::ALL_PROPERTIES;
-
- $request->CalendarView = new CalendarViewType();
- $request->CalendarView->StartDate = $start_date->format('c');
- $request->CalendarView->EndDate = $end_date->format('c');
- $folder_id = new DistinguishedFolderIdType();
- $folder_id->Id = DistinguishedFolderIdNameType::CALENDAR;
- $folder_id->Mailbox = new EmailAddressType();
- $folder_id->Mailbox->EmailAddress = $email_room;
- $request->ParentFolderIds->DistinguishedFolderId[] = $folder_id;
- $response = $client->FindItem($request);
- $response_messages = $response->ResponseMessages->FindItemResponseMessage;
-
- $items = [];
- foreach ($response_messages as $response_message) {
- // Make sure the request succeeded.
- if ($response_message->ResponseClass != ResponseClassType::SUCCESS) {
- $code = $response_message->ResponseCode;
- $message = $response_message->MessageText;
- error_log("Failed to search for events with \"$code: $message\"\n");
- continue;
- }
- $items = $response_message->RootFolder->Items->CalendarItem;
- }
- return $items;
- }
-
- public function getClient() {
- $client = new Client($this->baseUrl, $this->username, $this->password, $this->client_version);
- $client->setTimezone($this->timezone);
- $client->setCurlOptions(array(
- CURLOPT_SSL_VERIFYPEER => $this->verifyHostname,
- CURLOPT_SSL_VERIFYHOST => $this->verifyCert
- ));
-
- return $client;
- }
-
- function var_error_log($object = null) {
- ob_start(); // start buffer capture
- var_dump($object); // dump the values
- $contents = ob_get_contents(); // put the buffer into a variable
- ob_end_clean(); // end capture
- error_log($contents); // log contents of the result of var_dump( $object )
- }
-}
-?>
--
cgit v1.2.3-55-g7522