From da8870e85f59dc8e83d2c4f50432f688080cb1d1 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Mon, 5 Mar 2018 14:17:36 +0100 Subject: [locationinfo] Add permissions --- .../locationinfo/inc/splittime.php.txt | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 modules-available/locationinfo/inc/splittime.php.txt (limited to 'modules-available/locationinfo/inc') diff --git a/modules-available/locationinfo/inc/splittime.php.txt b/modules-available/locationinfo/inc/splittime.php.txt new file mode 100644 index 00000000..53510fee --- /dev/null +++ b/modules-available/locationinfo/inc/splittime.php.txt @@ -0,0 +1,80 @@ +(Unfinished) + + /* + error_log('Pre calendar: ' . print_r($calendar, true)); + $bad = array(); + for ($i = 0; $i < count($calendar); ++$i) { // Use for..count as we append while iterating + $entry =& $calendar[$i]; + // YYYY-MM-DDHH:MM:SS + $s = explode('T', $entry['start']); + $e = explode('T', $entry['end']); + if (count($s) !== 2 || count($e) !== 2) { + error_log('Ignoring invalid calendar entry from backend ' . $this->serverId . ': ' . json_encode($entry)); + $bad[] = $i; + continue; + } + if ($e[0] === $s[0]) // Same day + continue; + $stime = explode(':', $s[1]); + $etime = explode(':', $e[1]); + if (count($stime) < 2 || count($etime) < 2) { + error_log('Ignoring invalid calendar entry from backend ' . $this->serverId . ': ' . json_encode($entry)); + $bad[] = $i; + continue; + } + // Fix start + if ($stime[0] == 23 && $stime[1] >= 30) { + // clamp to next day + $day = strtotime($s[0] . ' 12:00 +1 day'); + if ($day === false || $day <= 0) { + error_log('Ignoring invalid calendar entry from backend ' . $this->serverId . ': ' . json_encode($entry)); + $bad[] = $i; + continue; + } + $day = date('Y-m-d', $day); + $bad[] = $i; + $calendar[] = array( + 'title' => $entry['title'], + 'start' => $day . 'T00:00:01', + 'end' => $entry['end'] + ); + continue; + } + + // Fix end + if ($etime[0] == 0 && $etime[1] <= 30) { + // clamp to next day + $day = strtotime($e[0] . ' 12:00 -1 day'); + if ($day === false || $day <= 0) { + error_log('Ignoring invalid calendar entry from backend ' . $this->serverId . ': ' . json_encode($entry)); + $bad[] = $i; + continue; + } + $day = date('Y-m-d', $day); + $bad[] = $i; + $calendar[] = array( + 'title' => $entry['title'], + 'start' => $day . 'T23:59:59', + 'end' => $entry['end'] + ); + continue; + } + // Split + $nextday = strtotime($s[0] . ' 12:00 +1 day'); + $nextday = date('Y-m-d', $nextday); + $calendar[] = array( + 'title' => $entry['title'], + 'start' => $nextday . 'T00:00:01', + 'end' => $entry['end'] + ); + $entry['end'] = $s[0] . 'T23:59:59'; + } + unset($entry); + if (!empty($bad)) { + foreach ($bad as $i) { + unset($calendar[$i]); + } + $calendar = array_values($calendar); + } + */ + error_log('Post calendar: ' . print_r($calendar, true)); \ No newline at end of file -- cgit v1.2.3-55-g7522 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/inc') 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))(&#x[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 From d364765916f07b3d47eb6704b1af06e751454c13 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Thu, 5 Apr 2018 15:09:55 +0200 Subject: [locationinfo] Fix default setting for "select" backend options --- modules-available/locationinfo/inc/coursebackend.inc.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'modules-available/locationinfo/inc') diff --git a/modules-available/locationinfo/inc/coursebackend.inc.php b/modules-available/locationinfo/inc/coursebackend.inc.php index 7162c885..1da0086a 100644 --- a/modules-available/locationinfo/inc/coursebackend.inc.php +++ b/modules-available/locationinfo/inc/coursebackend.inc.php @@ -370,6 +370,9 @@ class BackendProperty { * @param mixed $current current value of this property. */ public function initForRender($current = null) { + if ($current === null) { + $current = $this->default; + } if (is_array($this->type)) { $this->template = 'dropdown'; $this->select_list = []; @@ -391,7 +394,7 @@ class BackendProperty { } elseif ($this->type === 'password') { $this->inputtype = Property::getPasswordFieldType(); } - $this->currentvalue = $current === null ? $this->default : $current; + $this->currentvalue = $current; } public $inputtype; public $template; -- cgit v1.2.3-55-g7522 From 476d7ceab912113c8feb657478c05154aeb3f26f Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 18 Apr 2018 12:01:01 +0200 Subject: [locationinfo] hisinone: Query relevant days only, not whole year/semester Speed up queries significantly by not going through all the courses for the whole year, but just query those that take place in the next seven days. We also reuse the curl handle now for some additional speedup. --- .../coursebackend/coursebackend_hisinone.inc.php | 84 ++++++++++++---------- 1 file changed, 46 insertions(+), 38 deletions(-) (limited to 'modules-available/locationinfo/inc') diff --git a/modules-available/locationinfo/inc/coursebackend/coursebackend_hisinone.inc.php b/modules-available/locationinfo/inc/coursebackend/coursebackend_hisinone.inc.php index 59bd9dc8..558f5cd0 100644 --- a/modules-available/locationinfo/inc/coursebackend/coursebackend_hisinone.inc.php +++ b/modules-available/locationinfo/inc/coursebackend/coursebackend_hisinone.inc.php @@ -8,6 +8,10 @@ class CourseBackend_HisInOne extends CourseBackend private $location; private $verifyHostname = true; private $verifyCert = true; + /** + * @var bool|resource + */ + private $curlHandle = false; public function setCredentialsInternal($data) @@ -27,7 +31,10 @@ class CourseBackend_HisInOne extends CourseBackend } $this->error = false; - $this->username = $data['username'] . "\t" . $data['role']; + $this->username = $data['username']; + if (!empty($data['role'])) { + $this->username .= "\t" . $data['role']; + } $this->password = $data['password']; $this->open = $data['open'] !== 'CourseService'; $url = preg_replace('#(/+qisserver(/+services\d+(/+OpenCourseService)?)?)?\W*$#i', '', $data['baseUrl']); @@ -60,7 +67,7 @@ class CourseBackend_HisInOne extends CourseBackend if (empty($this->location)) { $this->error = "Credentials are not set"; } else { - $this->findUnit(123456789, true); + $this->findUnit(123456789, date('Y-m-d'), true); } return $this->error === false; } @@ -70,18 +77,8 @@ class CourseBackend_HisInOne extends CourseBackend * @param bool $connectionCheckOnly true will only check if no soapError is returned, return value will be empty * @return array|bool if successful an array with the event ids that take place in the room */ - public function findUnit($roomId, $connectionCheckOnly = false) + public function findUnit($roomId, $day, $connectionCheckOnly = false) { - $termYear = date('Y'); - $termType1 = date('n'); - if ($termType1 > 3 && $termType1 < 10) { - $termType = 2; - } elseif ($termType1 > 10) { - $termType = 1; - $termYear = $termYear + 1; - } else { - $termType = 1; - } $doc = new DOMDocument('1.0', 'utf-8'); $doc->formatOutput = true; $envelope = $doc->createElementNS('http://schemas.xmlsoap.org/soap/envelope/', 'SOAP-ENV:Envelope'); @@ -90,18 +87,15 @@ class CourseBackend_HisInOne extends CourseBackend $envelope->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:ns1', 'http://www.his.de/ws/OpenCourseService'); } else { $envelope->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:ns1', 'http://www.his.de/ws/CourseService'); - $header = $this->getHeader($doc); - $envelope->appendChild($header); } + $header = $this->getHeader($doc); + $envelope->appendChild($header); //Body of the request $body = $doc->createElement('SOAP-ENV:Body'); $envelope->appendChild($body); $findUnit = $doc->createElement('ns1:findUnit'); $body->appendChild($findUnit); - $findUnit->appendChild($doc->createElement('termYear', $termYear)); - if ($termType1 != 3 && $termType1 != 10) { - $findUnit->appendChild($doc->createElement('termTypeValueId', $termType)); - } + $findUnit->appendChild($doc->createElement('ns1:individualDatesExecutionDate', $day)); $findUnit->appendChild($doc->createElement('ns1:roomId', $roomId)); $soap_request = $doc->saveXML(); @@ -146,7 +140,7 @@ class CourseBackend_HisInOne extends CourseBackend $idList = $this->getArrayPath($idSubDoc, $subpath); if ($idList === false) { $this->error = 'Cannot find ' . $subpath . ' after ' . $path; - @file_put_contents('/tmp/findUnit-2.' . $roomId . '.' . microtime(true), print_r($idSubDoc, true)); + @file_put_contents('/tmp/bwlp-findUnit-2.' . $roomId . '.' . microtime(true), print_r($idSubDoc, true)); } return $idList; } @@ -188,7 +182,9 @@ class CourseBackend_HisInOne extends CourseBackend "Content-length: " . strlen($request), ); - $soap_do = curl_init(); + if ($this->curlHandle === false) { + $this->curlHandle = curl_init(); + } $options = array( CURLOPT_RETURNTRANSFER => true, @@ -200,17 +196,16 @@ class CourseBackend_HisInOne extends CourseBackend CURLOPT_HTTPHEADER => $header, ); - curl_setopt_array($soap_do, $options); + curl_setopt_array($this->curlHandle, $options); - $output = curl_exec($soap_do); + $output = curl_exec($this->curlHandle); if ($output === false) { - $this->error = 'Curl error: ' . curl_error($soap_do); + $this->error = 'Curl error: ' . curl_error($this->curlHandle); } else { $this->error = false; ///Operation completed successfully } - curl_close($soap_do); return $output; } @@ -236,21 +231,28 @@ class CourseBackend_HisInOne extends CourseBackend if (empty($requestedRoomIds)) { return array(); } + $currentWeek = $this->getCurrentWeekDates(); $tTables = []; //get all eventIDs in a given room $eventIds = []; foreach ($requestedRoomIds as $roomId) { - $roomEventIds = $this->findUnit($roomId); - if ($roomEventIds === false) { - if ($this->error !== false) { - error_log('Cannot findUnit(' . $roomId . '): ' . $this->error); - $this->error = false; + $ok = false; + foreach ($currentWeek as $day) { + $roomEventIds = $this->findUnit($roomId, $day, false); + if ($roomEventIds === false) { + if ($this->error !== false) { + error_log('Cannot findUnit(' . $roomId . '): ' . $this->error); + $this->error = false; + } + // TODO: Error gets swallowed + continue; } - // TODO: Error gets swallowed - continue; + $ok = true; + $eventIds = array_merge($eventIds, $roomEventIds); + } + if ($ok) { + $tTables[$roomId] = []; } - $tTables[$roomId] = []; - $eventIds = array_merge($eventIds, $roomEventIds); } $eventIds = array_unique($eventIds); if (empty($eventIds)) { @@ -268,7 +270,6 @@ class CourseBackend_HisInOne extends CourseBackend } $eventDetails = array_merge($eventDetails, $event); } - $currentWeek = $this->getCurrentWeekDates(); $name = false; foreach ($eventDetails as $event) { foreach (array('/hisdefaulttext', @@ -323,9 +324,9 @@ class CourseBackend_HisInOne extends CourseBackend $envelope->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:ns1', 'http://www.his.de/ws/OpenCourseService'); } else { $envelope->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:ns1', 'http://www.his.de/ws/CourseService'); - $header = $this->getHeader($doc); - $envelope->appendChild($header); } + $header = $this->getHeader($doc); + $envelope->appendChild($header); //body of the request $body = $doc->createElement('SOAP-ENV:Body'); $envelope->appendChild($body); @@ -359,10 +360,17 @@ class CourseBackend_HisInOne extends CourseBackend { $returnValue = array(); $startDate = time(); - for ($i = 0; $i <= 7; $i++) { + for ($i = 0; $i < 7; $i++) { $returnValue[] = date('Y-m-d', strtotime("+{$i} day 12:00", $startDate)); } return $returnValue; } + public function __destruct() + { + if ($this->curlHandle !== false) { + curl_close($this->curlHandle); + } + } + } -- cgit v1.2.3-55-g7522 From 1c18aa67abaf179602458909e50d983a44ee2dc7 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 18 Apr 2018 12:03:52 +0200 Subject: [locationinfo] davinchi: Reuse curl handle --- .../coursebackend/coursebackend_davinci.inc.php | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'modules-available/locationinfo/inc') diff --git a/modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php b/modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php index 8843e372..ed3d7ec2 100644 --- a/modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php +++ b/modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php @@ -6,6 +6,10 @@ class CourseBackend_Davinci extends CourseBackend private $location; private $verifyHostname = true; private $verifyCert = true; + /** + * @var bool|resource + */ + private $curlHandle = false; public function setCredentialsInternal($data) { @@ -69,7 +73,9 @@ class CourseBackend_Davinci extends CourseBackend { $url = $this->location . "content=xml&type=room&name=" . urlencode($roomId) . "&startdate=" . $startDate->format('d.m.Y') . "&enddate=" . $endDate->format('d.m.Y'); - $ch = curl_init(); + if ($this->curlHandle === false) { + $this->curlHandle = curl_init(); + } $options = array( CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, @@ -78,16 +84,15 @@ class CourseBackend_Davinci extends CourseBackend CURLOPT_URL => $url, ); - curl_setopt_array($ch, $options); - $output = curl_exec($ch); + curl_setopt_array($this->curlHandle, $options); + $output = curl_exec($this->curlHandle); if ($output === false) { - $this->error = 'Curl error: ' . curl_error($ch); + $this->error = 'Curl error: ' . curl_error($this->curlHandle); return false; } else { $this->error = false; ///Operation completed successfully } - curl_close($ch); return $output; } @@ -142,4 +147,11 @@ class CourseBackend_Davinci extends CourseBackend } return $schedules; } + + public function __destruct() + { + if ($this->curlHandle !== false) { + curl_close($this->curlHandle); + } + } } -- cgit v1.2.3-55-g7522 From 6a3d722a044d5ba9e7e4fbb634f15e15eb390b9c Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 25 Apr 2018 17:04:57 +0200 Subject: [locationinfo] Default language to slx-admin session language for new panel --- modules-available/locationinfo/inc/locationinfo.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'modules-available/locationinfo/inc') diff --git a/modules-available/locationinfo/inc/locationinfo.inc.php b/modules-available/locationinfo/inc/locationinfo.inc.php index 38e271fe..c51be666 100644 --- a/modules-available/locationinfo/inc/locationinfo.inc.php +++ b/modules-available/locationinfo/inc/locationinfo.inc.php @@ -75,7 +75,7 @@ class LocationInfo { if ($type === 'DEFAULT') { return array( - 'language' => 'en', + 'language' => defined('LANG') ? LANG : 'en', 'mode' => 1, 'vertical' => false, 'eco' => false, @@ -92,7 +92,7 @@ class LocationInfo } if ($type === 'SUMMARY') { return array( - 'language' => 'en', + 'language' => defined('LANG') ? LANG : 'en', 'calupdate' => 30, 'roomupdate' => 15, 'configupdate' => 180, -- cgit v1.2.3-55-g7522 From cd092274b88599449902f480f35291768be6e99e Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 7 Aug 2018 16:54:01 +0200 Subject: [inc/User] Fix access to Page if class is not loaded --- inc/user.inc.php | 11 ++++- lang/pt/flag.png | Bin 1115 -> 0 bytes lang/pt/name.txt | 1 - modules-available/exams/lang/de/template-tags.json | 2 +- modules-available/exams/lang/en/template-tags.json | 2 +- .../coursebackend/coursebackend_hisinone.inc.php | 48 +++++++++++++-------- .../locationinfo/lang/de/template-tags.json | 2 +- .../locationinfo/lang/en/template-tags.json | 2 +- 8 files changed, 43 insertions(+), 25 deletions(-) delete mode 100644 lang/pt/flag.png delete mode 100644 lang/pt/name.txt (limited to 'modules-available/locationinfo/inc') diff --git a/inc/user.inc.php b/inc/user.inc.php index 2571c61c..20e8cd3d 100644 --- a/inc/user.inc.php +++ b/inc/user.inc.php @@ -34,8 +34,15 @@ class User if ($permission{0} === '.') { $permission = substr($permission, 1); } else { - $module = Page::getModule(); - $permission = $module ? $module->getIdentifier() . "." . $permission : $permission; + if (class_exists('Page')) { + $module = Page::getModule(); + if ($module !== false) { + $module = $module->getIdentifier(); + } + } else { + $module = strtolower(Request::any('do')); + } + $permission = $module ? $module . "." . $permission : $permission; } return PermissionUtil::userHasPermission(self::$user['userid'], $permission, $locationid); } diff --git a/lang/pt/flag.png b/lang/pt/flag.png deleted file mode 100644 index 78c57dea..00000000 Binary files a/lang/pt/flag.png and /dev/null differ diff --git a/lang/pt/name.txt b/lang/pt/name.txt deleted file mode 100644 index 811b10b4..00000000 --- a/lang/pt/name.txt +++ /dev/null @@ -1 +0,0 @@ -Português \ No newline at end of file diff --git a/modules-available/exams/lang/de/template-tags.json b/modules-available/exams/lang/de/template-tags.json index 8bf37143..1dd51374 100644 --- a/modules-available/exams/lang/de/template-tags.json +++ b/modules-available/exams/lang/de/template-tags.json @@ -29,7 +29,7 @@ "lang_headingMain": "bwLehrpool Pr\u00fcfungsmodus", "lang_id": "ID", "lang_lectureName": "Veranstaltungsname", - "lang_lectureOutOfRange": "Achtung: Start- bzw. Endzeitpunkt der Veranstaltung liegen au\u00dferhalb des oben angegebenen Zeitraums", + "lang_lectureOutOfRange": "Achtung: Der oben angegebene Zeitraum ist k\u00fcrzer als die Dauer der Veranstaltung", "lang_location": "Raum\/Ort", "lang_locationInfo": "W\u00e4hlen Sie hier die R\u00e4ume und Orte aus, die w\u00e4hrend des unten ausgew\u00e4hlten Zeitraums in den Pr\u00fcfungsmodus versetzt werden. Wenn sie hier keine Auswahl treffen, werden alle R\u00e4ume in den Pr\u00fcfungsmodus versetzt.", "lang_locations": "R\u00e4ume\/Orte", diff --git a/modules-available/exams/lang/en/template-tags.json b/modules-available/exams/lang/en/template-tags.json index af87bb01..23266154 100644 --- a/modules-available/exams/lang/en/template-tags.json +++ b/modules-available/exams/lang/en/template-tags.json @@ -29,7 +29,7 @@ "lang_headingMain": "bwLehrpool Exam Mode", "lang_id": "ID", "lang_lectureName": "Lecture name", - "lang_lectureOutOfRange": "Hint: Start or end date of given lecture lies outside of exam period given above", + "lang_lectureOutOfRange": "Hint: The exam period given above is shorter than the duration of the given lecture", "lang_location": "Room\/Location", "lang_locationInfo": "Select the rooms and locations you want to enable the exam mode in. Selecting nothing at all means that all clients will boot into exam mode during the given time period.", "lang_locations": "Rooms\/Locations", diff --git a/modules-available/locationinfo/inc/coursebackend/coursebackend_hisinone.inc.php b/modules-available/locationinfo/inc/coursebackend/coursebackend_hisinone.inc.php index 558f5cd0..3b26e625 100644 --- a/modules-available/locationinfo/inc/coursebackend/coursebackend_hisinone.inc.php +++ b/modules-available/locationinfo/inc/coursebackend/coursebackend_hisinone.inc.php @@ -274,8 +274,7 @@ class CourseBackend_HisInOne extends CourseBackend foreach ($eventDetails as $event) { foreach (array('/hisdefaulttext', '/hisshorttext', - '/hisshortcomment', - '/hisplanelements/hisplanelement/hisdefaulttext') as $path) { + '/hisshortcomment') as $path) { $name = $this->getArrayPath($event, $path); if (!empty($name) && !empty($name[0])) break; @@ -284,25 +283,38 @@ class CourseBackend_HisInOne extends CourseBackend if ($name === false) { $name = ['???']; } - $unitPlannedDates = $this->getArrayPath($event, - '/hisplanelements/hisplanelement/hisplannedDates/hisplannedDate/hisindividualDates/hisindividualDate'); - if ($unitPlannedDates === false) { - $this->error = 'Cannot find ./hisplanelements/hisplanelement/hisplannedDates/hisplannedDate/hisindividualDates/hisindividualDate'; - error_log('Cannot find ./hisplanelements/hisplanelement/hisplannedDates/hisplannedDate/hisindividualDates/hisindividualDate'); + $planElements = $this->getArrayPath($event, '/hisplanelements/hisplanelement'); + if ($planElements === false) { + $this->error = 'Cannot find ./hisplanelements/hisplanelement'; + error_log('Cannot find ./hisplanelements/hisplanelement'); error_log(print_r($event, true)); continue; } - foreach ($unitPlannedDates as $plannedDate) { - $eventRoomId = $this->getArrayPath($plannedDate, '/hisroomId')[0]; - $eventDate = $this->getArrayPath($plannedDate, '/hisexecutiondate')[0]; - if (in_array($eventRoomId, $requestedRoomIds) && in_array($eventDate, $currentWeek)) { - $startTime = $this->getArrayPath($plannedDate, '/hisstarttime')[0]; - $endTime = $this->getArrayPath($plannedDate, '/hisendtime')[0]; - $tTables[$eventRoomId][] = array( - 'title' => $name[0], - 'start' => $eventDate . "T" . $startTime, - 'end' => $eventDate . "T" . $endTime - ); + foreach ($planElements as $planElement) { + $unitPlannedDates = $this->getArrayPath($planElement, + '/hisplannedDates/hisplannedDate/hisindividualDates/hisindividualDate'); + if ($unitPlannedDates === false) { + $this->error = 'Cannot find ./hisplannedDates/hisplannedDate/hisindividualDates/hisindividualDate'; + error_log('Cannot find ./hisplannedDates/hisplannedDate/hisindividualDates/hisindividualDate'); + error_log(print_r($planElement, true)); + continue; + } + $localName = $this->getArrayPath($planElement, '/hisdefaulttext'); + if ($localName === false || empty($localName[0])) { + $localName = $name; + } + foreach ($unitPlannedDates as $plannedDate) { + $eventRoomId = $this->getArrayPath($plannedDate, '/hisroomId')[0]; + $eventDate = $this->getArrayPath($plannedDate, '/hisexecutiondate')[0]; + if (in_array($eventRoomId, $requestedRoomIds) && in_array($eventDate, $currentWeek)) { + $startTime = $this->getArrayPath($plannedDate, '/hisstarttime')[0]; + $endTime = $this->getArrayPath($plannedDate, '/hisendtime')[0]; + $tTables[$eventRoomId][] = array( + 'title' => $localName[0], + 'start' => $eventDate . "T" . $startTime, + 'end' => $eventDate . "T" . $endTime + ); + } } } } diff --git a/modules-available/locationinfo/lang/de/template-tags.json b/modules-available/locationinfo/lang/de/template-tags.json index bcdf7148..b51c420b 100644 --- a/modules-available/locationinfo/lang/de/template-tags.json +++ b/modules-available/locationinfo/lang/de/template-tags.json @@ -76,7 +76,7 @@ "lang_remoteSchedule": "Abruf Belegungsplan", "lang_room": "Raum", "lang_roomId": "Raum ID", - "lang_roomIdTooltip": "Die Raum ID, die der Server ben\u00f6tigt, um Kalenderdaten abzurufen", + "lang_roomIdTooltip": "Die Raum ID, die der Server ben\u00f6tigt, um Kalenderdaten abzurufen (bei Exchange die Postfachadresse)", "lang_roomupdateTooltip": "Zeit nach der die PCs aktualisiert werden (in Sekunden)", "lang_rotation": "Rotation", "lang_rotation0": "0\u00b0", diff --git a/modules-available/locationinfo/lang/en/template-tags.json b/modules-available/locationinfo/lang/en/template-tags.json index 558ddff0..f041dc0a 100644 --- a/modules-available/locationinfo/lang/en/template-tags.json +++ b/modules-available/locationinfo/lang/en/template-tags.json @@ -76,7 +76,7 @@ "lang_remoteSchedule": "Time table retrieval", "lang_room": "Room", "lang_roomId": "Room ID", - "lang_roomIdTooltip": "The ID of the room the server needs, for querying the calendar data", + "lang_roomIdTooltip": "The ID of the room the server needs, for querying the calendar data (when using exchange the room mailbox)", "lang_roomupdateTooltip": "Time the PCs in the room gets updated (in seconds)", "lang_rotation": "Rotation", "lang_rotation0": "0\u00b0", -- cgit v1.2.3-55-g7522 From 5eaab871e37bfedc1ad6532829031dcfa93c3d09 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 21 Nov 2018 15:04:51 +0100 Subject: [locationinfo] Fix infinite loop with malformed backend data --- modules-available/locationinfo/inc/infopanel.inc.php | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'modules-available/locationinfo/inc') diff --git a/modules-available/locationinfo/inc/infopanel.inc.php b/modules-available/locationinfo/inc/infopanel.inc.php index edeb9ccf..918030f0 100644 --- a/modules-available/locationinfo/inc/infopanel.inc.php +++ b/modules-available/locationinfo/inc/infopanel.inc.php @@ -75,6 +75,8 @@ class InfoPanel } /** + * {"language":"de","mode":1,"vertical":true,"eco":false,"scaledaysauto":true,"daystoshow":7,"rotation":0,"scale":56,"switchtime":10,"calupdate":120,"roomupdate":20, + * "overrides": { "12" : { "mode":4} } * Gets the location info of the given locations. * Append to passed array which is expected to * map location ids to properties of that location. @@ -157,6 +159,8 @@ class InfoPanel // Iterate over the locations we're actually interested in $locations = Location::getLocationsAssoc(); foreach ($idList as $locationId) { + if (empty($locationId)) + continue; // Start checking at actual location... $currentId = $locationId; while ($currentId !== 0) { @@ -175,6 +179,8 @@ class InfoPanel } } // Keep trying with parent + if (!isset($locations[$currentId])) + break; $currentId = $locations[$currentId]['parentlocationid']; } } -- cgit v1.2.3-55-g7522 From acd0f96696dc5c7d581902186f913fb3dff5302d Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Mon, 3 Dec 2018 11:55:51 +0100 Subject: [locationinfo] HiS: Check if event has any planned dates --- .../locationinfo/inc/coursebackend/coursebackend_hisinone.inc.php | 2 ++ 1 file changed, 2 insertions(+) (limited to 'modules-available/locationinfo/inc') diff --git a/modules-available/locationinfo/inc/coursebackend/coursebackend_hisinone.inc.php b/modules-available/locationinfo/inc/coursebackend/coursebackend_hisinone.inc.php index 3b26e625..22b1d8fb 100644 --- a/modules-available/locationinfo/inc/coursebackend/coursebackend_hisinone.inc.php +++ b/modules-available/locationinfo/inc/coursebackend/coursebackend_hisinone.inc.php @@ -291,6 +291,8 @@ class CourseBackend_HisInOne extends CourseBackend continue; } foreach ($planElements as $planElement) { + if (empty($planElement['hisplannedDates'])) + continue; $unitPlannedDates = $this->getArrayPath($planElement, '/hisplannedDates/hisplannedDate/hisindividualDates/hisindividualDate'); if ($unitPlannedDates === false) { -- cgit v1.2.3-55-g7522 From f57731abf206bf3030a7a95a9019aa398c3dea2e Mon Sep 17 00:00:00 2001 From: Christian Hofmaier Date: Mon, 3 Dec 2018 19:03:24 +0100 Subject: [locationinfo] add new settings for panels (counter, updaterate) - setting: consider only clients in roomplaner, instead of ip range - add option to set update rate in summary panels - directly initialize when mode is "only calendar" - Set counter to "-" if room has ongoing event - fix some spelling / unused code --- modules-available/locationinfo/api.inc.php | 23 +++++-- .../locationinfo/inc/locationinfo.inc.php | 7 +- .../locationinfo/lang/de/template-tags.json | 2 + .../locationinfo/lang/en/template-tags.json | 2 + modules-available/locationinfo/page.inc.php | 18 +++++- .../locationinfo/templates/frontend-default.html | 25 ++++++-- .../locationinfo/templates/frontend-summary.html | 74 ++++++---------------- .../templates/page-config-panel-default.html | 16 +++++ .../templates/page-config-panel-summary.html | 44 +++++++++++++ 9 files changed, 139 insertions(+), 72 deletions(-) (limited to 'modules-available/locationinfo/inc') diff --git a/modules-available/locationinfo/api.inc.php b/modules-available/locationinfo/api.inc.php index ad71de8b..c33c528e 100644 --- a/modules-available/locationinfo/api.inc.php +++ b/modules-available/locationinfo/api.inc.php @@ -7,7 +7,7 @@ HandleParameters(); /** - * Handles the API paramenters. + * Handles the API parameters. */ function HandleParameters() { @@ -20,7 +20,7 @@ function HandleParameters() } elseif ($get === "machines") { $locationIds = LocationInfo::getLocationsOr404($uuid); $output = array(); - InfoPanel::appendMachineData($output, $locationIds, false); + InfoPanel::appendMachineData($output, $locationIds, true); $output = array_values($output); } elseif ($get === "config") { $type = InfoPanel::getConfig($uuid, $output); @@ -30,7 +30,7 @@ function HandleParameters() } } elseif ($get === "pcstates") { $locationIds = LocationInfo::getLocationsOr404($uuid); - $output = getPcStates($locationIds); + $output = getPcStates($locationIds, $uuid); } elseif ($get === "locationtree") { $locationIds = LocationInfo::getLocationsOr404($uuid); $output = getLocationTree($locationIds); @@ -84,7 +84,7 @@ function getLastChangeTs($paneluuid) * @param int[] $idList list of the location ids. * @return array aggregated PC states */ -function getPcStates($idList) +function getPcStates($idList, $paneluuid) { $pcStates = array(); foreach ($idList as $id) { @@ -99,13 +99,24 @@ function getPcStates($idList) } $locationInfoList = array(); - InfoPanel::appendMachineData($locationInfoList, $idList); + InfoPanel::appendMachineData($locationInfoList, $idList, true); + + $panel = Database::queryFirst('SELECT paneluuid, panelconfig FROM locationinfo_panel WHERE paneluuid = :paneluuid', + compact('paneluuid')); + $config = json_decode($panel['panelconfig'], true); + foreach ($locationInfoList as $locationInfo) { $id = $locationInfo['id']; foreach ($locationInfo['machines'] as $pc) { $key = strtolower($pc['pcState']); if (isset($pcStates[$id][$key])) { - $pcStates[$id][$key]++; + if ($config['roomplaner']) { + if (isset($pc['x']) && isset($pc['y'])) { + $pcStates[$id][$key]++; + } + } else { + $pcStates[$id][$key]++; + } } } } diff --git a/modules-available/locationinfo/inc/locationinfo.inc.php b/modules-available/locationinfo/inc/locationinfo.inc.php index c51be666..88f96d29 100644 --- a/modules-available/locationinfo/inc/locationinfo.inc.php +++ b/modules-available/locationinfo/inc/locationinfo.inc.php @@ -80,6 +80,7 @@ class LocationInfo 'vertical' => false, 'eco' => false, 'prettytime' => true, + 'roomplaner' => true, 'scaledaysauto' => true, 'daystoshow' => 7, 'rotation' => 0, @@ -93,9 +94,9 @@ class LocationInfo if ($type === 'SUMMARY') { return array( 'language' => defined('LANG') ? LANG : 'en', - 'calupdate' => 30, - 'roomupdate' => 15, - 'configupdate' => 180, + 'roomplaner' => true, + 'eco' => false, + 'panelupdate' => 60, ); } return array(); diff --git a/modules-available/locationinfo/lang/de/template-tags.json b/modules-available/locationinfo/lang/de/template-tags.json index 7862297c..e93d83a9 100644 --- a/modules-available/locationinfo/lang/de/template-tags.json +++ b/modules-available/locationinfo/lang/de/template-tags.json @@ -78,6 +78,7 @@ "lang_room": "Raum", "lang_roomId": "Raum ID", "lang_roomIdTooltip": "Die Raum ID, die der Server ben\u00f6tigt, um Kalenderdaten abzurufen (bei Exchange die Postfachadresse)", + "lang_roomplanerTooltip": "Nur PCs berücksichtigen, die im Raumplaner gesetzt wurden", "lang_roomupdateTooltip": "Zeit nach der die PCs aktualisiert werden (in Sekunden)", "lang_rotation": "Rotation", "lang_rotation0": "0\u00b0", @@ -119,6 +120,7 @@ "lang_url": "URL", "lang_urlPanel": "URL-Panel", "lang_urlTooltip": "URL die aufgerufen wird", + "lang_useRoomplaner": "Raumplaner benutzen", "lang_vertical": "Vertikaler Modus", "lang_verticalTooltip": "Legt fest, ob Kalender und Raum \u00fcbereinander angezeigt werden sollen" } \ No newline at end of file diff --git a/modules-available/locationinfo/lang/en/template-tags.json b/modules-available/locationinfo/lang/en/template-tags.json index 2a191379..8a6e0724 100644 --- a/modules-available/locationinfo/lang/en/template-tags.json +++ b/modules-available/locationinfo/lang/en/template-tags.json @@ -78,6 +78,7 @@ "lang_room": "Room", "lang_roomId": "Room ID", "lang_roomIdTooltip": "The ID of the room the server needs, for querying the calendar data (when using exchange the room mailbox)", + "lang_roomplanerTooltip": "Only consider PCs which were set in the roomplaner", "lang_roomupdateTooltip": "Time the PCs in the room gets updated (in seconds)", "lang_rotation": "Rotation", "lang_rotation0": "0\u00b0", @@ -119,6 +120,7 @@ "lang_url": "URL", "lang_urlPanel": "URL panel", "lang_urlTooltip": "URL which is shown by the panel", + "lang_useRoomplaner": "Use roomplans", "lang_vertical": "Vertical mode", "lang_verticalTooltip": "Defines whether the room and calendar are shown above each other" } \ No newline at end of file diff --git a/modules-available/locationinfo/page.inc.php b/modules-available/locationinfo/page.inc.php index 3ff80927..26fa6c4e 100644 --- a/modules-available/locationinfo/page.inc.php +++ b/modules-available/locationinfo/page.inc.php @@ -359,6 +359,7 @@ class Page_LocationInfo extends Page 'vertical' => Request::post('vertical', false, 'bool'), 'eco' => Request::post('eco', false, 'bool'), 'prettytime' => Request::post('prettytime', false, 'bool'), + 'roomplaner' => Request::post('roomplaner', false, 'bool'), 'scaledaysauto' => Request::post('scaledaysauto', false, 'bool'), 'daystoshow' => Request::post('daystoshow', 7, 'int'), 'rotation' => Request::post('rotation', 0, 'int'), @@ -388,9 +389,19 @@ class Page_LocationInfo extends Page private function preparePanelConfigSummary() { + // Build json structure + $conf = array( + 'language' => Request::post('language', 'en', 'string'), + 'eco' => Request::post('eco', false, 'bool'), + 'roomplaner' => Request::post('roomplaner', false, 'bool'), + 'panelupdate' => Request::post('panelupdate', 30, 'int') + ); + if ($conf['panelupdate'] < 15) { + $conf['panelupdate'] = 15; + } // Check locations $locationids = self::getLocationIdsFromRequest(true); - return array('locationids' => $locationids); + return array('config' => $conf, 'locationids' => $locationids); } /** @@ -922,6 +933,7 @@ class Page_LocationInfo extends Page 'vertical_checked' => $config['vertical'] ? 'checked' : '', 'eco_checked' => $config['eco'] ? 'checked' : '', 'prettytime_checked' => $config['prettytime'] ? 'checked' : '', + 'roomplaner_checked' => $config['roomplaner'] ? 'checked' : '', 'scaledaysauto_checked' => $config['scaledaysauto'] ? 'checked' : '', 'daystoshow' => $config['daystoshow'], 'rotation' => $config['rotation'], @@ -947,9 +959,11 @@ class Page_LocationInfo extends Page 'uuid' => $id, 'panelname' => $panel['panelname'], 'languages' => $langs, - 'roomupdate' => $config['roomupdate'], + 'panelupdate' => $config['panelupdate'], + 'roomplaner_checked' => $config['roomplaner'] ? 'checked' : '', 'locations' => Location::getLocations(), 'locationids' => $panel['locationids'], + 'eco_checked' => $config['eco'] ? 'checked' : '', )); } } diff --git a/modules-available/locationinfo/templates/frontend-default.html b/modules-available/locationinfo/templates/frontend-default.html index d1ecaae8..7317f8e2 100755 --- a/modules-available/locationinfo/templates/frontend-default.html +++ b/modules-available/locationinfo/templates/frontend-default.html @@ -619,6 +619,11 @@ optional: generateProgressBar(); } + // Manually initialize mode 2, as initRoomLayout isn't called for this mode + if (room.config.mode === 2) { + queryCalendars(); + queryRooms(); + } mainUpdateLoop(); setInterval(mainUpdateLoop, 10000); setInterval(updateHeaders, globalConfig.eco ? 10000 : 1000); @@ -1116,12 +1121,11 @@ optional: * @param room Room */ function SetFreeSeats(room) { - room.$.seatsCounter.text(room.freePcs >= 0 ? room.freePcs : ''); + // if room has no allowed value, set text in the box to - + room.$.seatsCounter.text(room.freePcs >= 0 ? room.freePcs : '-'); room.$.seatsCounter.data('state', JSON.stringify(room.state)); if (room.freePcs > 0 && room.state && room.state.free) { - room.$.seatsBackground.css('background-color', '#250'); - } else if (room.freePcs === -1) { - room.$.seatsBackground.css('background-color', 'red'); + room.$.seatsBackground.css('background-color', '#250'); } else { room.$.seatsBackground.css('background-color', 'red'); } @@ -1148,7 +1152,8 @@ optional: if (!same) newText = t("closed"); } else if (tmp.state === "CalendarEvent") { if (!same) newText = tmp.title; - seats = -1; + // whilst event is running set freePcs to -, hopefully not breaking anything else with this + room.freePcs = "-"; } else if (tmp.state === "Free") { if (!same) newText = t("free"); } else if (tmp.state === "FreeNoEnd") { @@ -1496,8 +1501,14 @@ optional: for (var i = 0; i < update.length; i++) { var $div = $("#pc_" + room.id + "_" + update[i].id); // Pc free - if (update[i].pcState === "IDLE" || update[i].pcState === "OFFLINE" || update[i].pcState === "STANDBY") { - freePcs++; + if (room.config.roomplaner === true) { + if ((update[i].pcState === "IDLE" || update[i].pcState === "OFFLINE" || update[i].pcState === "STANDBY") && !isNaN(update[i].x) && !isNaN(update[i].y)) { + freePcs++; + } + } else { + if ((update[i].pcState === "IDLE" || update[i].pcState === "OFFLINE" || update[i].pcState === "STANDBY")) { + freePcs++; + } } $div.removeClass('BROKEN OFFLINE IDLE OCCUPIED STANDBY'.replace(update[i].pcState, '')).addClass(update[i].pcState); diff --git a/modules-available/locationinfo/templates/frontend-summary.html b/modules-available/locationinfo/templates/frontend-summary.html index 4105dd16..0053d1ff 100644 --- a/modules-available/locationinfo/templates/frontend-summary.html +++ b/modules-available/locationinfo/templates/frontend-summary.html @@ -116,6 +116,7 @@ var startdate; var roomidsString = ""; var config = {{{config}}}; + var lastPanelUpdate = 0; $(document).ready(function () { init(); @@ -139,6 +140,7 @@ SetUpDate(time); generateLayout(config.tree); update(); + setInterval(update, 10000); } function SetUpDate(d) { @@ -165,7 +167,7 @@ */ function generateObject(json, myParent, outermost) { var obj; - if (!json.children || json.children.length == 0) { + if (!json.children || json.children.length === 0) { obj = generateChild(myParent, json.locationid, json.locationname, outermost); } else { obj = generateParent(myParent, json.locationid, json.locationname, outermost); @@ -178,59 +180,24 @@ } /** - * Helper function to generate id string used in query functions - * @param list A string, wicht contains ids or not(for now) - * @param id An ID which should be added to the list + * Main Update loop, this loop runs every 10 seconds */ - function addIdToUpdateList(list, id) { - if (list == "") { - list += id; - } else { - list += ("," + id); - } - return list; - } - - - const ROOMUPDATE_MS = 2*60*1000; - const CALUPDATE_MS = 20*60*1000; - var timeout = null; - function update() { - var calendarUpdateIds = ""; - var rommUpdateIds = ""; - var count = 0; - var nextUpdate = 15000; - var property; - // TODO: Only query a few rooms is not possible with the new api stuff ... - for (property in rooms) { - if (rooms[property].lastCalendarUpdate === null || rooms[property].lastCalendarUpdate + CALUPDATE_MS < MyDate().getTime()) { - // TODO: NOT NECESSARY ANYMORE?! - calendarUpdateIds = addIdToUpdateList(calendarUpdateIds, rooms[property].id); - count++; - rooms[property].lastCalendarUpdate = MyDate().getTime(); - } - if (rooms[property].lastRoomUpdate === null || rooms[property].lastRoomUpdate + ROOMUPDATE_MS < MyDate().getTime()) { - // TODO: NOT NECESSARY ANYMORE?! - rommUpdateIds = addIdToUpdateList(rommUpdateIds, rooms[property].id); - count++; - rooms[property].lastRoomUpdate = MyDate().getTime(); - } - // TODO if (count > 7) break; - } - if (calendarUpdateIds !== "") { - queryCalendars(); - nextUpdate = 1000; - } - if (rommUpdateIds !== "") { + var date = MyDate(); + var now = date.getTime(); + if (lastPanelUpdate + (config.panelupdate * 1000) < now) { + // Set Roomupdate Interval has passed, update. queryRooms(); - nextUpdate = 1000; - } - if (nextUpdate !== 1000) { + queryCalendars(); + lastPanelUpdate = now; + for (var property in rooms) { + rooms[property].lastCalendarUpdate = now; + rooms[property].lastRoomUpdate = now; + } + } else { + // Set Roomupdate Interval has NOT passed, check if panel was changed since last call and reload if true. queryPanelChange(); } - clearTimeout(timeout); - setTimeout(update, nextUpdate); } function cleanDate(d) { @@ -283,7 +250,6 @@ cache: false, timeout: 30000, success: function (result) { - var l = result.length; if (result[0] == null) { console.log("Error: Backend reported null back for RoomUpdate, this might happend if the room isn't" + "configurated."); @@ -331,7 +297,7 @@ function updatePcStates(json) { var l = json.length; for (var i = 0; i < l; i++) { - updateRoomUsage(json[i].id, json[i].idle, json[i].occupied, json[i].offline, json[i].broken, json[i].standby) + updateRoomUsage(json[i].id, json[i].idle, json[i].occupied, json[i].offline, json[i].broken, json[i].standby); } } @@ -428,8 +394,8 @@ /** * computes state of a room, states are: - * closed, FreeNoEnd, Free, ClaendarEvent. - * @param Room Object + * closed, FreeNoEnd, Free, CalendarEvent. + * @param room Object */ function ComputeCurrentState(room) { if (room.lastRoomUpdate === null) { @@ -479,7 +445,7 @@ /** * checks if a room is open * @param room Room object - * @returns bool for open or not + * @returns boolean for open or not */ function IsOpenNow(room) { var now = new MyDate(); diff --git a/modules-available/locationinfo/templates/page-config-panel-default.html b/modules-available/locationinfo/templates/page-config-panel-default.html index f7009764..c2915298 100644 --- a/modules-available/locationinfo/templates/page-config-panel-default.html +++ b/modules-available/locationinfo/templates/page-config-panel-default.html @@ -107,6 +107,22 @@ + +
+
+
+ +
+
+ +
+
+

+ +

+
+
+
diff --git a/modules-available/locationinfo/templates/page-config-panel-summary.html b/modules-available/locationinfo/templates/page-config-panel-summary.html index 11f0dc65..737eef1f 100644 --- a/modules-available/locationinfo/templates/page-config-panel-summary.html +++ b/modules-available/locationinfo/templates/page-config-panel-summary.html @@ -70,6 +70,22 @@ + +
+
+
+ +
+
+ +
+
+

+ +

+
+
+